configure/build system

Arran Cudbard-Bell a.cudbardb at freeradius.org
Wed Nov 7 14:56:29 CET 2012


Hi All,

Over the past few days i've been making modifications to the autoconf scripts to fix some long standing issues.

Previously autoconf.h would be installed along with the library files, and #included from <freeradius-server/libradius.h>,
this meant programs and libraries that included libradius.h and their own autoconf headers could get annoying redefinition warnings, and depending on the order of inclusion, may have had their autoconf values overridden.

With the new system, header files that require values from autoconf.h are preprocessed to substitute the autoconf values before they're used or installed.

Unfortunately this caused issues at build time, where modules or library files were relying on the inclusion of libradius.h to provide autoconf.h definitions.

The fix for this was to change CFLAGS to include -imacros src/include/features.h and src/include/autoconf.h. This means the definitions from features.h (all the WITH_* defines like WITH_DHCP, WITH_TCP etc..) and from autoconf.h (all the HEAD_* defines) are available everwhere, but are never emitted.

This makes life a bit simpler when writing modules, and means anyone wanting to build against the libraries FreeRADIUS installs, can now do so without issues.

Please can you check the server still builds correctly, you'll probably want to reconfigure before hand.

-Arran




More information about the Freeradius-Devel mailing list