[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Corba IDL and automake
From: |
Alexandre Duret-Lutz |
Subject: |
Re: Corba IDL and automake |
Date: |
Tue, 25 Feb 2003 17:46:36 +0100 |
User-agent: |
Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-pc-linux-gnu) |
>>> "Thomas" == Thomas Richter <address@hidden> writes:
[...]
Thomas> 1) If I run "automake --foreign", I get the following warnings:
Thomas> idl/Makefile.am:21: invalid variable `noinst_libidl_a_HEADERS'
Thomas> idl/Makefile.am:8: invalid unused variable name: `IDL_SOURCES'
Thomas> Why is "noinst_libidl_a_HEADERS" invalid? These are header files for
Thomas> the idl static library that are not to be included in the distribution.
Because foo_HEADERS means "please install these header in the
$(foodir) directory during `make install'", and you haven't
defined $(noinst_libidl_adir).
These headers should be listed in libidl_a_SOURCES or
nodist_libidla_a_SOURCES (whether you want to distribute them or
not).
Thomas> Why is IDL_SOURCES unused? It is very well used in all
Thomas> the lines below.
It's not used by Automake. Automake reserves *_SOURCES
variables. IDL_SOURCES would be the sources for an undeclared
IDL program, so Automake presumes you made a typo.
Thomas> 2) I need to specify an explicit make rule how to form
Thomas> an object from a .cpp file. If I don't, then the
Thomas> automake generated makefile does not include any such
Thomas> rule, and it won't compile any object code and would
Thomas> rather fail to build the final library. Why is this so,
Automake doesn't understand what you do because you are using
many "GNUmakisms" such as "$(forall...)" or %-rules. By doing
so you hide data, so Automake cannot help.
Thomas> and what would be a more apropriate solution instead of
Thomas> giving the rule manually (which is, as far as I
Thomas> understand it, against the automake paradigm).
I suggest you install Automake 1.7.3 (any version >= 1.7 will
do), and run it with the -Wall option. This will flag various
unportable constructs in your Makefile.
If you fixes these (using `.idl.cpp:' instead of `%.cpp: %.idl',
using `$(idlsources:.idl=.cpp)' instead of `$(forall...)'), then
Automake should work better. At least it will see your sources,
so it can output rules to build them.
--
Alexandre Duret-Lutz