[CFT] nALFS-1.2.0-gnubuild-pre3

Kevin P. Fleming kpfleming at linuxfromscratch.org
Sun Oct 12 18:14:29 PDT 2003


Some significant changes this time:

- directory structure is back to the original layout

- there is now only a single Makefile.am at the top of the tree, the 
build no longer uses recursive make invocations. this Makefile.am is 
produced by a bootstrap script (which is not in the tarball but will 
be in CVS), so the Makefile itself does not have to be manually edited 
as source files are added/removed/renamed. using a single Makefile 
also allows for parallel builds to work more efficiently.

- src/handlers.c has been converted to use ltdl.c (libtool's dynamic 
loading library) instead of libdl directly, but doing this required:

- modules with hyphens in their names (new-*) have been renamed to use 
underscores instead. part of the preparation for allowing static 
builds is to prefix all exported symbols from the plugin modules with 
their module name (which is done by a new macro in 
src/include/nALFS.h), and hyphens are not legal characters in ANSI C 
identifiers. since the modules will be merged back together in the 
near future anyway, this will not be a big problem. with this done, it 
is now possible to:

- static builds of nALFS are available with this version. the "simple" 
static build requires the addition of "--enable-static 
--disable-shared" to the configure command line. this produces an 
nALFS executable with the library and all handlers included in the 
binary itself, but the binary will still depend on outside shared 
libraries (libc, libxml2, libcurl/libssl if they are used, etc). to 
make a completely static binary, use LDFLAGS="-all-static" on the make 
command line (in addition to the configure options above). this 
produces an nALFS binary that needs no shared libraries at all. 
compiling this way will produce some warnings, because nALFS (and 
libxml2, libcurl) uses some glibc functions that are in libnss, which 
means that even a static nALFS still needs those glibc runtime 
libraries to be around.

There are some minor things left on my to-do list for this version, 
but I think it's getting close to being ready to put in CVS, assuming 
some people can test it and don't report problems :-) I have run some 
small builds with it (in both shared and static mode) and it seems to 
operate fine here, but I'm anxious to hear how it works for others.

More information about the alfs-discuss mailing list