X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=modules%2Fconfigmake;h=b814ffdff53524eed775e316baa088984c717008;hb=439db487c60a05eaf541fc9d8dd49218bcb8fd8d;hp=4f162b9f8924c93b493397fee8dbe1a6921b3525;hpb=6c541ce48d57d04ec4cbc37c9fd0526f6cf32f4b;p=gnulib.git diff --git a/modules/configmake b/modules/configmake index 4f162b9f8..b814ffdff 100644 --- a/modules/configmake +++ b/modules/configmake @@ -8,33 +8,54 @@ Depends-on: configure.ac: Makefile.am: +# Retrieve values of the variables through 'configure' followed by +# 'make', not directly through 'configure', so that a user who +# sets some of these variables consistently on the 'make' command +# line gets correct results. +# +# One advantage of this approach, compared to the classical +# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS, +# is that it protects against the use of undefined variables. +# If, say, $(libdir) is not set in the Makefile, LIBDIR is not +# defined by this module, and code using LIBDIR gives a +# compilation error. +# +# Another advantage is that 'make' output is shorter. +# # Listed in the same order as the GNU makefile conventions. -configmake.h: - ( \ - echo '#define CONFIGMAKE_PREFIX "$(prefix)"'; \ - echo '#define CONFIGMAKE_EXEC_PREFIX "$(exec_prefix)"'; \ - echo '#define CONFIGMAKE_BINDIR "$(bindir)"'; \ - echo '#define CONFIGMAKE_SBINDIR "$(sbindir)"'; \ - echo '#define CONFIGMAKE_LIBEXECDIR "$(libexecdir)"'; \ - echo '#define CONFIGMAKE_DATAROOTDIR "$(datarootdir)"'; \ - echo '#define CONFIGMAKE_DATADIR "$(datadir)"'; \ - echo '#define CONFIGMAKE_SYSCONFDIR "$(sysconfdir)"'; \ - echo '#define CONFIGMAKE_SHAREDSTATEDIR "$(sharedstatedir)"'; \ - echo '#define CONFIGMAKE_LOCALSTATEDIR "$(localstatedir)"'; \ - echo '#define CONFIGMAKE_INCLUDEDIR "$(includedir)"'; \ - echo '#define CONFIGMAKE_OLDINCLUDEDIR "$(oldincludedir)"'; \ - echo '#define CONFIGMAKE_DOCDIR "$(docdir)"'; \ - echo '#define CONFIGMAKE_INFODIR "$(infodir)"'; \ - echo '#define CONFIGMAKE_HTMLDIR "$(htmldir)"'; \ - echo '#define CONFIGMAKE_DVIDIR "$(dvidir)"'; \ - echo '#define CONFIGMAKE_PDFDIR "$(pdfdir)"'; \ - echo '#define CONFIGMAKE_PSDIR "$(psdir)"'; \ - echo '#define CONFIGMAKE_LIBDIR "$(libdir)"'; \ - echo '#define CONFIGMAKE_LISPDIR "$(lispdir)"'; \ - echo '#define CONFIGMAKE_LOCALEDIR "$(localedir)"'; \ - echo '#define CONFIGMAKE_MANDIR "$(mandir)"'; \ - echo '#define CONFIGMAKE_MANEXT "$(manext)"'; \ - :) | sed '/""/d' >$@-t +# The Automake-defined pkg* macros are appended, in the order +# listed in the Automake 1.10a+ documentation. +configmake.h: Makefile + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + echo '#define PREFIX "$(prefix)"'; \ + echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ + echo '#define BINDIR "$(bindir)"'; \ + echo '#define SBINDIR "$(sbindir)"'; \ + echo '#define LIBEXECDIR "$(libexecdir)"'; \ + echo '#define DATAROOTDIR "$(datarootdir)"'; \ + echo '#define DATADIR "$(datadir)"'; \ + echo '#define SYSCONFDIR "$(sysconfdir)"'; \ + echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ + echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ + echo '#define INCLUDEDIR "$(includedir)"'; \ + echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ + echo '#define DOCDIR "$(docdir)"'; \ + echo '#define INFODIR "$(infodir)"'; \ + echo '#define HTMLDIR "$(htmldir)"'; \ + echo '#define DVIDIR "$(dvidir)"'; \ + echo '#define PDFDIR "$(pdfdir)"'; \ + echo '#define PSDIR "$(psdir)"'; \ + echo '#define LIBDIR "$(libdir)"'; \ + echo '#define LISPDIR "$(lispdir)"'; \ + echo '#define LOCALEDIR "$(localedir)"'; \ + echo '#define MANDIR "$(mandir)"'; \ + echo '#define MANEXT "$(manext)"'; \ + echo '#define PKGDATADIR "$(pkgdatadir)"'; \ + echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ + echo '#define PKGLIBDIR "$(pkglibdir)"'; \ + echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ + } | sed '/""/d' > $@-t mv $@-t $@ BUILT_SOURCES += configmake.h CLEANFILES += configmake.h configmake.h-t