Hi Bruno, On Sun, Oct 10, 2010 at 3:34 PM, Bruno Haible <br...@clisp.org> wrote: > Bruce Korb wrote: >> > nobase_nodist_pkginclude_HEADERS = $(FNMATCH_H) $(FLOAT_H) $(STDDEF_H) ... >> >> so the script must first determine the full list of headers >> that might be provided, convert them to $(XXX_H) names and >> stuff the list into the *_HEADERS thing. > > Yes. > >> Having looked >> through the module sources, there is no clear way of >> deriving the list of header macro names.
> So you can recognize it through BUILT_SOURCES. > > $ for module in `./posix-modules`; do grep '^BUILT_SOURCES += \$(.*_H)$' > modules/$module; done Just to be completely clear, the BUILT_SOURCES in Makefile.am is now overloaded. Not only does it mean (to automake anyway) that the source gets built first, but also that it defines a header that is to be installed for libposix. The list derived via: local headerlist=$( \cd ${sdir}/modules egrep -h 'BUILT_SOURCES *\+=.*(_H\)|\.h)' ${mod_list} | \ sed 's/.*+= *//' | tr ' ' '\n') This is considerably shorter than the list of all header files used to build libposix.la: nobase_nodist_pkginclude_HEADERS = \ $(ERRNO_H) $(FLOAT_H) $(FNMATCH_H) \ $(GETOPT_H) $(GLOB_H) $(NETINET_IN_H) \ $(SCHED_H) $(STDARG_H) $(STDBOOL_H) \ $(STDDEF_H) $(STDINT_H) arpa/inet.h \ ctype.h dirent.h fcntl.h \ iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \ iconv_open-osf.h iconv_open-solaris.h inttypes.h \ langinfo.h locale.h math.h \ netdb.h poll.h search.h \ signal.h spawn.h stdio.h \ stdlib.h string.h sys/select.h \ sys/socket.h sys/stat.h sys/time.h \ sys/times.h sys/utsname.h sys/wait.h \ termios.h time.h unistd.h \ wchar.h wctype.h I also confess to also being puzzled by the iconv_open-*.h files. Your grep missed 'em but were they one per line, you'd have picked them up. That is a fairly nuanced distinction -- if it is intended. I suspect they should not get installed, but I don't think "more than one on a BUILT_SOURCES line means do not install" is a good algorithm. Perhaps the correct thing is to add a "libposix-install:" section? That is, make completely explicit what ought to be done. Thank you again. - Bruce