[Top][All Lists]

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

Re: Use of config.h: summary of responses.

From: Bob Friesenhahn
Subject: Re: Use of config.h: summary of responses.
Date: Mon, 13 Sep 2004 14:25:43 -0500 (CDT)

On Mon, 13 Sep 2004, Daniel Reed wrote:

These points illustrate that it is possible to design a poor API. It is
possible such APIs could be better designed from the get go, or made better
at an API version bump. The autotools can help with this.

)    2) 'const' support
)    3) 'inline' support

const and other modifiers are exactly the types of things that should *not*
be made dependent on the characteristics of the system build environment.
Interface files should use them in accordance to a particular, fixed
environment, and rely on dependent packages to detect or recreate that
environment as needed. The autotools can help with this.

You are saying that it is ok if an application which compiles stops compiling if it includes a header file for a library which is configured via autoconf? The dependent application is then responsible for supplying the missing stuff necessary to allow the included header file to compile? I don't agree that this is ok.

This is why the autotools are so important: They provide a highly-uniform
build environment for software, regardless of the underlying system's

If a piece of software is designed with POSIX and other environment
standards as a requirement, the autotools can be used to guarantee or
simulate those environments regardless of the characteristics of the actual
system environment. There should not be a reason to allow characteristics
from the system environment to "leak" into the interfaces of the software.

Autoconf is not currently providing a guarantee or simulation of any environment. A file *can* request that certain POSIX typedefs be emulated (via "config.h") if they are not otherwise available. Every package is responsible for assuring that its own requirements are met. Packages are not responsible for assuring that the requirements of *other* packages are met.

Bob Friesenhahn

reply via email to

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