autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Handling PACKAGE, PACKAGE_VERSION, etc. with multiple libraries


From: Noah Misch
Subject: Re: Handling PACKAGE, PACKAGE_VERSION, etc. with multiple libraries
Date: Thu, 5 Aug 2004 14:33:01 -0700
User-agent: Mutt/1.5.6i

On Wed, Aug 04, 2004 at 03:19:48PM -0700, J.T. Conklin wrote:

> Both ACE and TAO create config.h files which are used in compiling the
> respective libraries.  The config.h files are also installed and are
> referenced by library headers, as the macros defined within are needed
> in the implementation of inline functions, etc.
> 
> The ACE and TAO macros do not conflict, since they use ACE_ and TAO_
> prefixes.  The system macros like SIZEOF_DOUBLE and HAVE_UNISTD_H do
> not conflict, since they are defined with the same values.  But the
> PACKAGE macros defined by autoconf (PACKAGE, PACKAGE_NAME, PACKAGE_-
> VERSION, etc.) do.
> 
> Fortunately these macros aren't used by either ACE or TAO, so all
> there is are annoying compiler warnings.  Is there any better way 
> to handle this so that the PACKAGE macros aren't defined in config.h?
> I'm afraid this will only get worse as I go beyond ACE and TAO and 
> start autoconfiscating more of the related libraries.

You could remove the macros with a ``make'' rule like the following:

config-real.h: config.h
        sed 's,^\(#define PACKAGE.*\)$,/* \1 */,g' $^ >$@

To export only ACE_ and TAO_ macros, you could do this:

config-real.h: config.h
        grep -B2 '^#define \(TAO\|ACE\)_' $^ >$@

-B2 may not be portable, but you could omit that if you don't care for the
comments and line breaks.

Does that help?




reply via email to

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