[Top][All Lists]

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

Re: Tricking AC_DEFINE to hide template?

From: Stepan Kasal
Subject: Re: Tricking AC_DEFINE to hide template?
Date: Fri, 13 May 2005 16:31:21 +0200
User-agent: Mutt/1.4.1i


On Thu, May 12, 2005 at 10:44:57PM +0200, Lars J. Aas wrote:
> I'd like to separate system-detection-defines and user-feature-toggle-
> defines into two separate headers.  I'd set up the user-feature-toggle-
> defines header file manually, but config.status should know about the
> whole set of defines and know how to "edit" it, and not keep duplicates
> in the real config.h header if you know what I mean...

I faced this problem in goffice project;

But I decided to left the defines in the main config.h, too.

The user one is created from template
Thusly goffice-features.h is a subset of the main config.h.

I see no problem with the duplicated information; both instances are
generated automatically, so there is no danger.

But if you use a header both for compilation and then install it, you
end up including both the main config.h and the features.h .
Thus there are duplicated definitions, though they are identical.

Can this duplication cause warnings?
I don't know, and I'd be glad to hear from an expert here.

The goffice project contains a hack which prevents including both headers
together.  But if I could rely that the preprocessor wouldn't complain if
both definitions are exactly the same, it might be actually better to
remove the hack, to have another check that the two headers really match.

Answer #2:
Yes, I think you can achieve what you want with this definition:

[cat >>confdefs.h <<\_ACEOF
address@hidden:@define] $1 m4_if($#, 1, 1, [$2])

it's the definition of AC_DEFINE, with the autoheader hook removed.

Of course, the problem with this hack is that you can never bee sure
that it'll work with future versions of autoconf.  That's why I decided
against it in goffice.

Have a nice day,
        Stepan Kasal

reply via email to

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