automake
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]