Hi Bruce, > >> <http://www.gnu.org/software/gnulib/manual/html_node/POSIX-Substitutes-Library.html>? > ... > 3. config.h needs to be installed.
We try to make all .h files self-contained. Therefore we use #if @HAVE_FOO@ in the *.in.h files, not #if HAVE_FOO But there are a couple of definitions from config.h which we haven't dealt with so far. Patches welcome. > 4. The various other headers that are determined to be needed as > replacements for the system headers should be installed, too, Yes. You can hack this into a Makefile.am. > as $(prefix)/include/gnulib/.... Or as $(prefix)/include/*.h, I would say. Assuming people don't pass --prefix=/usr, of course :-) > 6. Some date stamp version should be inserted into config.h > Despite all the caveats about feature tests vs. version tests, > the basic idea with gnulib is that it is pretty much a single > branch project. Consequently, needed features appear by > a particular date (version id). The whole idea is to largely > remove feature tests from individual projects*. Yes, a file libposix/version.h would be reasonable. Here's the idiom from libunistring: copnfigure.ac: AC_CONFIG_FILES([lib/libposix/version.h:lib/libposix/version.in.h]) lib/Makefile.am: # libposix/version.h is public. nobase_nodist_include_HEADERS += libposix/version.h lib/libposix/version.in.h: =============================================================================== /* Meta information about GNU libposix. Copyright (C) 2009-2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _LIBPOSIX_VERSION_H #define _LIBPOSIX_VERSION_H #ifdef __cplusplus extern "C" { #endif /* Version number: (major<<16) + (minor<<8) + subminor. */ #define _LIBPOSIX_VERSION @HEXVERSION@ extern const int _libposix_version; /* Likewise */ #ifdef __cplusplus } #endif #endif /* _LIBPOSIX_VERSION_H */ =============================================================================== > * Clients of this libposix thing would thus have something along > the lines of this in their configure.ac: > > AC_CHECK_LIBPOSIX([2010.09.16], > AC_MSG_ERROR([libposix is too old or not installed])) Yes, I agree with the idea. Of course this macro should use the 'havelib' module (so that --with-* options are offered and -rpath flags are handled automatically). Bruno