The 'configmake' module, so far, assumes that file names in the build environment (a.k.a. $build_os) and file names in the target runtime environment (a.k.a. $host_os) are the same. But some people use environment where this is not the case: - When people do cross-compilation, or - When using Cygwin as the build environment for mingw or MSVC (such as documented in the INSTALL.windows file of some packages), - When people use a Debian distro as build environment and mingw + WINE as the host environment, - When using a cross-compiler to <cpu>-unknown-linux-gnu and QEMU for <cpu> in user-mode.
(Note: I don't call the latter three cases "cross compilation", because the built binaries can be executed directly on the machine.) These patches add support for the second case (Cygwin as the build environment for mingw or MSVC). Previously the generated configmake.h looked like this: /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ #if HAVE_WINSOCK2_H # include <winsock2.h> /* avoid mingw pollution on DATADIR */ #endif #define PREFIX "/usr/local/msvc64" #define EXEC_PREFIX "/usr/local/msvc64" #define BINDIR "/usr/local/msvc64/bin" #define SBINDIR "/usr/local/msvc64/sbin" #define LIBEXECDIR "/usr/local/msvc64/libexec" #define DATAROOTDIR "/usr/local/msvc64/share" #define DATADIR "/usr/local/msvc64/share" #define SYSCONFDIR "/usr/local/msvc64/etc" #define SHAREDSTATEDIR "/usr/local/msvc64/com" #define LOCALSTATEDIR "/usr/local/msvc64/var" #define RUNSTATEDIR "/usr/local/msvc64/var/run" #define INCLUDEDIR "/usr/local/msvc64/include" #define OLDINCLUDEDIR "/usr/include" #define DOCDIR "/usr/local/msvc64/share/doc/dummy" #define INFODIR "/usr/local/msvc64/share/info" #define HTMLDIR "/usr/local/msvc64/share/doc/dummy" #define DVIDIR "/usr/local/msvc64/share/doc/dummy" #define PDFDIR "/usr/local/msvc64/share/doc/dummy" #define PSDIR "/usr/local/msvc64/share/doc/dummy" #define LIBDIR "/usr/local/msvc64/lib" #define LISPDIR "/usr/local/msvc64/share/emacs/site-lisp" #define LOCALEDIR "/usr/local/msvc64/share/locale" #define MANDIR "/usr/local/msvc64/share/man" #define PKGDATADIR "/usr/local/msvc64/share/dummy" #define PKGINCLUDEDIR "/usr/local/msvc64/include/dummy" #define PKGLIBDIR "/usr/local/msvc64/lib/dummy" #define PKGLIBEXECDIR "/usr/local/msvc64/libexec/dummy" This is pointless, because the compiled programs want file names in native Windows syntax. With the patches above, said generated configmake.h becomes /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ #if HAVE_WINSOCK2_H # include <winsock2.h> /* avoid mingw pollution on DATADIR */ #endif #define PREFIX "C:\\cygwin64\\usr\\local\\msvc64" #define EXEC_PREFIX "C:\\cygwin64\\usr\\local\\msvc64" #define BINDIR "C:\\cygwin64\\usr\\local\\msvc64\\bin" #define SBINDIR "C:\\cygwin64\\usr\\local\\msvc64\\sbin" #define LIBEXECDIR "C:\\cygwin64\\usr\\local\\msvc64\\libexec" #define DATAROOTDIR "C:\\cygwin64\\usr\\local\\msvc64\\share" #define DATADIR "C:\\cygwin64\\usr\\local\\msvc64\\share" #define SYSCONFDIR "C:\\cygwin64\\usr\\local\\msvc64\\etc" #define SHAREDSTATEDIR "C:\\cygwin64\\usr\\local\\msvc64\\com" #define LOCALSTATEDIR "C:\\cygwin64\\usr\\local\\msvc64\\var" #define RUNSTATEDIR "C:\\cygwin64\\usr\\local\\msvc64\\var\\run" #define INCLUDEDIR "C:\\cygwin64\\usr\\local\\msvc64\\include" #define OLDINCLUDEDIR "C:\\cygwin64\\usr\\include" #define DOCDIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\doc\\dummy" #define INFODIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\info" #define HTMLDIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\doc\\dummy" #define DVIDIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\doc\\dummy" #define PDFDIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\doc\\dummy" #define PSDIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\doc\\dummy" #define LIBDIR "C:\\cygwin64\\usr\\local\\msvc64\\lib" #define LISPDIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\emacs\\site-lisp" #define LOCALEDIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\locale" #define MANDIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\man" #define PKGDATADIR "C:\\cygwin64\\usr\\local\\msvc64\\share\\dummy" #define PKGINCLUDEDIR "C:\\cygwin64\\usr\\local\\msvc64\\include\\dummy" #define PKGLIBDIR "C:\\cygwin64\\usr\\local\\msvc64\\lib\\dummy" #define PKGLIBEXECDIR "C:\\cygwin64\\usr\\local\\msvc64\\libexec\\dummy" With this configmake.h, a program can actually, at runtime, access files that were installed by "make install". 2023-02-18 Bruno Haible <br...@clisp.org> configmake: Add support for $build_os != $host_os. * m4/build-to-host.m4: New file. * m4/configmake.m4 (gl_CONFIGMAKE_PREP): Provide a configure-time definition for pkgdatadir, pkgincludedir, pkglibdir. (gl_CONFIGMAKE): New macro. * modules/configmake (Files): Add m4/build-to-host.m4. (configure.ac): Invoke gl_CONFIGMAKE instead of gl_CONFIGMAKE_PREP. (Makefile.am): For creating configmake.h, use the various *prefix_c_make and *dir_c_make variables. 2023-02-18 Bruno Haible <br...@clisp.org> configmake: Prepare for using directory names with backslashes. * modules/configmake (Makefile.am): Use printf instead of echo.
>From f77a31de60963c994cd9b42c8088be0e734962d7 Mon Sep 17 00:00:00 2001 From: Bruno Haible <br...@clisp.org> Date: Sat, 18 Feb 2023 13:28:48 +0100 Subject: [PATCH 1/2] configmake: Prepare for using directory names with backslashes. * modules/configmake (Makefile.am): Use printf instead of echo. --- ChangeLog | 5 +++++ modules/configmake | 56 +++++++++++++++++++++++----------------------- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index 269871c4c6..a9b58f9356 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2023-02-18 Bruno Haible <br...@clisp.org> + + configmake: Prepare for using directory names with backslashes. + * modules/configmake (Makefile.am): Use printf instead of echo. + 2023-02-18 Bruno Haible <br...@clisp.org> unilbrk tests: Fix compilation failures (regression 2023-02-11). diff --git a/modules/configmake b/modules/configmake index 5dcafb6305..0942a68542 100644 --- a/modules/configmake +++ b/modules/configmake @@ -22,34 +22,34 @@ configmake.h: Makefile echo '#if HAVE_WINSOCK2_H'; \ echo '# include <winsock2.h> /* avoid mingw pollution on DATADIR */'; \ echo '#endif'; \ - 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 RUNSTATEDIR "$(runstatedir)"'; \ - 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)"'; \ + printf '#define PREFIX %s\n' \"$(prefix)\"; \ + printf '#define EXEC_PREFIX %s\n' \"$(exec_prefix)\"; \ + printf '#define BINDIR %s\n' \"$(bindir)\"; \ + printf '#define SBINDIR %s\n' \"$(sbindir)\"; \ + printf '#define LIBEXECDIR %s\n' \"$(libexecdir)\"; \ + printf '#define DATAROOTDIR %s\n' \"$(datarootdir)\"; \ + printf '#define DATADIR %s\n' \"$(datadir)\"; \ + printf '#define SYSCONFDIR %s\n' \"$(sysconfdir)\"; \ + printf '#define SHAREDSTATEDIR %s\n' \"$(sharedstatedir)\"; \ + printf '#define LOCALSTATEDIR %s\n' \"$(localstatedir)\"; \ + printf '#define RUNSTATEDIR %s\n' \"$(runstatedir)\"; \ + printf '#define INCLUDEDIR %s\n' \"$(includedir)\"; \ + printf '#define OLDINCLUDEDIR %s\n' \"$(oldincludedir)\"; \ + printf '#define DOCDIR %s\n' \"$(docdir)\"; \ + printf '#define INFODIR %s\n' \"$(infodir)\"; \ + printf '#define HTMLDIR %s\n' \"$(htmldir)\"; \ + printf '#define DVIDIR %s\n' \"$(dvidir)\"; \ + printf '#define PDFDIR %s\n' \"$(pdfdir)\"; \ + printf '#define PSDIR %s\n' \"$(psdir)\"; \ + printf '#define LIBDIR %s\n' \"$(libdir)\"; \ + printf '#define LISPDIR %s\n' \"$(lispdir)\"; \ + printf '#define LOCALEDIR %s\n' \"$(localedir)\"; \ + printf '#define MANDIR %s\n' \"$(mandir)\"; \ + printf '#define MANEXT %s\n' \"$(manext)\"; \ + printf '#define PKGDATADIR %s\n' \"$(pkgdatadir)\"; \ + printf '#define PKGINCLUDEDIR %s\n' \"$(pkgincludedir)\"; \ + printf '#define PKGLIBDIR %s\n' \"$(pkglibdir)\"; \ + printf '#define PKGLIBEXECDIR %s\n' \"$(pkglibexecdir)\"; \ } | sed '/""/d' > $@-t $(AM_V_at)mv $@-t $@ -- 2.34.1
>From bb3fd10e6309f017618a12b2c10d3bfb813bfc08 Mon Sep 17 00:00:00 2001 From: Bruno Haible <br...@clisp.org> Date: Sat, 18 Feb 2023 16:59:22 +0100 Subject: [PATCH 2/2] configmake: Add support for $build_os != $host_os. * m4/build-to-host.m4: New file. * m4/configmake.m4 (gl_CONFIGMAKE_PREP): Provide a configure-time definition for pkgdatadir, pkgincludedir, pkglibdir. (gl_CONFIGMAKE): New macro. * modules/configmake (Files): Add m4/build-to-host.m4. (configure.ac): Invoke gl_CONFIGMAKE instead of gl_CONFIGMAKE_PREP. (Makefile.am): For creating configmake.h, use the various *prefix_c_make and *dir_c_make variables. --- ChangeLog | 12 ++++ m4/build-to-host.m4 | 73 ++++++++++++++++++++++ m4/configmake.m4 | 147 +++++++++++++++++++++++++++++++++++++++++++- modules/configmake | 57 ++++++++--------- 4 files changed, 258 insertions(+), 31 deletions(-) create mode 100644 m4/build-to-host.m4 diff --git a/ChangeLog b/ChangeLog index a9b58f9356..c1ca610548 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2023-02-18 Bruno Haible <br...@clisp.org> + + configmake: Add support for $build_os != $host_os. + * m4/build-to-host.m4: New file. + * m4/configmake.m4 (gl_CONFIGMAKE_PREP): Provide a configure-time + definition for pkgdatadir, pkgincludedir, pkglibdir. + (gl_CONFIGMAKE): New macro. + * modules/configmake (Files): Add m4/build-to-host.m4. + (configure.ac): Invoke gl_CONFIGMAKE instead of gl_CONFIGMAKE_PREP. + (Makefile.am): For creating configmake.h, use the various *prefix_c_make + and *dir_c_make variables. + 2023-02-18 Bruno Haible <br...@clisp.org> configmake: Prepare for using directory names with backslashes. diff --git a/m4/build-to-host.m4 b/m4/build-to-host.m4 new file mode 100644 index 0000000000..e3c72877f0 --- /dev/null +++ b/m4/build-to-host.m4 @@ -0,0 +1,73 @@ +# build-to-host.m4 serial 1 +dnl Copyright (C) 2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Bruno Haible. + +dnl When the build environment ($build_os) is different from the target runtime +dnl environment ($host_os), file names may need to be converted from the build +dnl environment syntax to the target runtime environment syntax. This is +dnl because the Makefiles are executed (mostly) by build environment tools and +dnl therefore expect file names in build environment syntax, whereas the runtime +dnl expects file names in target runtime environment syntax. +dnl +dnl For example, if $build_os = cygwin and $host_os = mingw32, filenames need +dnl be converted from Cygwin syntax to native Windows syntax: +dnl /cygdrive/c/foo/bar -> C:\foo\bar +dnl /usr/local/share -> C:\cygwin64\usr\local\share +dnl +dnl gl_BUILD_TO_HOST([somedir]) +dnl This macro takes as input an AC_SUBSTed variable 'somedir', which must +dnl already have its final value assigned, and produces two additional +dnl AC_SUBSTed variables 'somedir_c' and 'somedir_c_make', that designate the +dnl same file name value, just in different syntax: +dnl - somedir_c is the file name in target runtime environment syntax, +dnl as a C string (starting and ending with a double-quote, +dnl and with escaped backslashes and double-quotes in +dnl between). +dnl - somedir_c_make is the same thing, escaped for use in a Makefile. + +AC_DEFUN([gl_BUILD_TO_HOST], +[ + AC_REQUIRE([AC_CANONICAL_BUILD]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_BUILD_TO_HOST_INIT]) + + dnl Define somedir_c. + gl_final_[$1]="$[$1]" + dnl Translate it from build syntax to host syntax. + case "$build_os" in + cygwin*) + case "$host_os" in + mingw*) + gl_final_[$1]=`cygpath -w "$gl_final_[$1]"` ;; + esac + ;; + esac + dnl Convert it to C string syntax. + [$1]_c=`echo "$gl_final_[$1]" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes"` + [$1]_c='"'"$[$1]_c"'"' + AC_SUBST([$1_c]) + + dnl Define somedir_c_make. + [$1]_c_make=`echo "$[$1]_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2"` + dnl Use the substituted somedir variable, when possible, so that the user + dnl may adjust somedir a posteriori when there are no special characters. + if test "$[$1]_c_make" = '\"'"${gl_final_[$1]}"'\"'; then + [$1]_c_make='\"$([$1])\"' + fi + AC_SUBST([$1_c_make]) +]) + +dnl Some initializations for gl_BUILD_TO_HOST. +AC_DEFUN([gl_BUILD_TO_HOST_INIT], +[ + gl_sed_double_backslashes='s/\\/\\\\/g' + gl_sed_escape_doublequotes='s/"/\\"/g' +changequote(,)dnl + gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g" +changequote([,])dnl + gl_sed_escape_for_make_2='s,\$,\\$$,g' +]) diff --git a/m4/configmake.m4 b/m4/configmake.m4 index 7cd7cf5fb8..94f8ae24b9 100644 --- a/m4/configmake.m4 +++ b/m4/configmake.m4 @@ -1,4 +1,4 @@ -# configmake.m4 serial 4 +# configmake.m4 serial 5 dnl Copyright (C) 2010-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -21,7 +21,148 @@ AC_DEFUN([gl_CONFIGMAKE_PREP] AC_SUBST([runstatedir], ['${localstatedir}/run']) fi - dnl Automake 1.11 provides pkglibexecdir merely without AC_SUBST. - dnl This blind use of AC_SUBST is safe. + dnl Automake 1.11 provides the pkg*dir variables merely without AC_SUBST, + dnl that is, only at the Makefile.am level. AC_SUBST them, so that + dnl gl_CONFIGMAKE can compute the final values at configure time. + dnl Blindly assigning the value at configure time is OK, since configure + dnl does not have --pkg*dir=... options. + AC_SUBST([pkgdatadir], ['${datadir}/${PACKAGE}']) + AC_SUBST([pkgincludedir], ['${includedir}/${PACKAGE}']) + AC_SUBST([pkglibdir], ['${libdir}/${PACKAGE}']) AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}']) ]) + +# gl_CONFIGMAKE +# ------------- +# Find the final values of the standard directory variables, and create +# AC_SUBSTed *_c and *_c_make variables with the corresponding values in +# target runtime environment ($host_os) syntax. +AC_DEFUN([gl_CONFIGMAKE], +[ + AC_REQUIRE([gl_CONFIGMAKE_PREP]) + + dnl Save the values. + gl_save_prefix="${prefix}" + gl_save_exec_prefix="${exec_prefix}" + gl_save_bindir="${bindir}" + gl_save_sbindir="${sbindir}" + gl_save_libexecdir="${libexecdir}" + gl_save_datarootdir="${datarootdir}" + gl_save_datadir="${datadir}" + gl_save_sysconfdir="${sysconfdir}" + gl_save_sharedstatedir="${sharedstatedir}" + gl_save_localstatedir="${localstatedir}" + gl_save_runstatedir="${runstatedir}" + gl_save_includedir="${includedir}" + gl_save_oldincludedir="${oldincludedir}" + gl_save_docdir="${docdir}" + gl_save_infodir="${infodir}" + gl_save_htmldir="${htmldir}" + gl_save_dvidir="${dvidir}" + gl_save_pdfdir="${pdfdir}" + gl_save_psdir="${psdir}" + gl_save_libdir="${libdir}" + gl_save_lispdir="${lispdir}" + gl_save_localedir="${localedir}" + gl_save_mandir="${mandir}" + gl_save_pkgdatadir="${pkgdatadir}" + gl_save_pkgincludedir="${pkgincludedir}" + gl_save_pkglibdir="${pkglibdir}" + gl_save_pkglibexecdir="${pkglibexecdir}" + + dnl Find the final values. + dnl Unfortunately, prefix gets only finally determined at the end of + dnl configure. + if test "X$prefix" = "XNONE"; then + prefix="$ac_default_prefix" + fi + dnl Unfortunately, exec_prefix gets only finally determined at the end of + dnl configure. + if test "X$exec_prefix" = "XNONE"; then + exec_prefix='${prefix}' + fi + eval exec_prefix="$exec_prefix" + eval bindir="$bindir" + eval sbindir="$sbindir" + eval libexecdir="$libexecdir" + eval datarootdir="$datarootdir" + eval datadir="$datadir" + eval sysconfdir="$sysconfdir" + eval sharedstatedir="$sharedstatedir" + eval localstatedir="$localstatedir" + eval runstatedir="$runstatedir" + eval includedir="$includedir" + eval oldincludedir="$oldincludedir" + eval docdir="$docdir" + eval infodir="$infodir" + eval htmldir="$htmldir" + eval dvidir="$dvidir" + eval pdfdir="$pdfdir" + eval psdir="$psdir" + eval libdir="$libdir" + eval lispdir="$lispdir" + eval localedir="$localedir" + eval mandir="$mandir" + eval pkgdatadir="$pkgdatadir" + eval pkgincludedir="$pkgincludedir" + eval pkglibdir="$pkglibdir" + eval pkglibexecdir="$pkglibexecdir" + + dnl Transform the final values. + gl_BUILD_TO_HOST([prefix]) + gl_BUILD_TO_HOST([exec_prefix]) + gl_BUILD_TO_HOST([bindir]) + gl_BUILD_TO_HOST([sbindir]) + gl_BUILD_TO_HOST([libexecdir]) + gl_BUILD_TO_HOST([datarootdir]) + gl_BUILD_TO_HOST([datadir]) + gl_BUILD_TO_HOST([sysconfdir]) + gl_BUILD_TO_HOST([sharedstatedir]) + gl_BUILD_TO_HOST([localstatedir]) + gl_BUILD_TO_HOST([runstatedir]) + gl_BUILD_TO_HOST([includedir]) + gl_BUILD_TO_HOST([oldincludedir]) + gl_BUILD_TO_HOST([docdir]) + gl_BUILD_TO_HOST([infodir]) + gl_BUILD_TO_HOST([htmldir]) + gl_BUILD_TO_HOST([dvidir]) + gl_BUILD_TO_HOST([pdfdir]) + gl_BUILD_TO_HOST([psdir]) + gl_BUILD_TO_HOST([libdir]) + gl_BUILD_TO_HOST([lispdir]) + gl_BUILD_TO_HOST([localedir]) + gl_BUILD_TO_HOST([mandir]) + gl_BUILD_TO_HOST([pkgdatadir]) + gl_BUILD_TO_HOST([pkgincludedir]) + gl_BUILD_TO_HOST([pkglibdir]) + gl_BUILD_TO_HOST([pkglibexecdir]) + + dnl Restore the values. + pkglibexecdir="${gl_save_pkglibexecdir}" + pkglibdir="${gl_save_pkglibdir}" + pkgincludedir="${gl_save_pkgincludedir}" + pkgdatadir="${gl_save_pkgdatadir}" + mandir="${gl_save_mandir}" + localedir="${gl_save_localedir}" + lispdir="${gl_save_lispdir}" + libdir="${gl_save_libdir}" + psdir="${gl_save_psdir}" + pdfdir="${gl_save_pdfdir}" + dvidir="${gl_save_dvidir}" + htmldir="${gl_save_htmldir}" + infodir="${gl_save_infodir}" + docdir="${gl_save_docdir}" + oldincludedir="${gl_save_oldincludedir}" + includedir="${gl_save_includedir}" + runstatedir="${gl_save_runstatedir}" + localstatedir="${gl_save_localstatedir}" + sharedstatedir="${gl_save_sharedstatedir}" + sysconfdir="${gl_save_sysconfdir}" + datadir="${gl_save_datadir}" + datarootdir="${gl_save_datarootdir}" + libexecdir="${gl_save_libexecdir}" + sbindir="${gl_save_sbindir}" + bindir="${gl_save_bindir}" + exec_prefix="${gl_save_exec_prefix}" + prefix="${gl_save_prefix}" +]) diff --git a/modules/configmake b/modules/configmake index 0942a68542..7ca9c5c6ca 100644 --- a/modules/configmake +++ b/modules/configmake @@ -3,12 +3,13 @@ Access from source code to variables set by "configure" or "make". Files: m4/configmake.m4 +m4/build-to-host.m4 Depends-on: gen-header configure.ac: -gl_CONFIGMAKE_PREP +gl_CONFIGMAKE AC_PROG_MKDIR_P Makefile.am: @@ -22,34 +23,34 @@ configmake.h: Makefile echo '#if HAVE_WINSOCK2_H'; \ echo '# include <winsock2.h> /* avoid mingw pollution on DATADIR */'; \ echo '#endif'; \ - printf '#define PREFIX %s\n' \"$(prefix)\"; \ - printf '#define EXEC_PREFIX %s\n' \"$(exec_prefix)\"; \ - printf '#define BINDIR %s\n' \"$(bindir)\"; \ - printf '#define SBINDIR %s\n' \"$(sbindir)\"; \ - printf '#define LIBEXECDIR %s\n' \"$(libexecdir)\"; \ - printf '#define DATAROOTDIR %s\n' \"$(datarootdir)\"; \ - printf '#define DATADIR %s\n' \"$(datadir)\"; \ - printf '#define SYSCONFDIR %s\n' \"$(sysconfdir)\"; \ - printf '#define SHAREDSTATEDIR %s\n' \"$(sharedstatedir)\"; \ - printf '#define LOCALSTATEDIR %s\n' \"$(localstatedir)\"; \ - printf '#define RUNSTATEDIR %s\n' \"$(runstatedir)\"; \ - printf '#define INCLUDEDIR %s\n' \"$(includedir)\"; \ - printf '#define OLDINCLUDEDIR %s\n' \"$(oldincludedir)\"; \ - printf '#define DOCDIR %s\n' \"$(docdir)\"; \ - printf '#define INFODIR %s\n' \"$(infodir)\"; \ - printf '#define HTMLDIR %s\n' \"$(htmldir)\"; \ - printf '#define DVIDIR %s\n' \"$(dvidir)\"; \ - printf '#define PDFDIR %s\n' \"$(pdfdir)\"; \ - printf '#define PSDIR %s\n' \"$(psdir)\"; \ - printf '#define LIBDIR %s\n' \"$(libdir)\"; \ - printf '#define LISPDIR %s\n' \"$(lispdir)\"; \ - printf '#define LOCALEDIR %s\n' \"$(localedir)\"; \ - printf '#define MANDIR %s\n' \"$(mandir)\"; \ + printf '#define PREFIX %s\n' $(prefix_c_make); \ + printf '#define EXEC_PREFIX %s\n' $(exec_prefix_c_make); \ + printf '#define BINDIR %s\n' $(bindir_c_make); \ + printf '#define SBINDIR %s\n' $(sbindir_c_make); \ + printf '#define LIBEXECDIR %s\n' $(libexecdir_c_make); \ + printf '#define DATAROOTDIR %s\n' $(datarootdir_c_make); \ + printf '#define DATADIR %s\n' $(datadir_c_make); \ + printf '#define SYSCONFDIR %s\n' $(sysconfdir_c_make); \ + printf '#define SHAREDSTATEDIR %s\n' $(sharedstatedir_c_make); \ + printf '#define LOCALSTATEDIR %s\n' $(localstatedir_c_make); \ + printf '#define RUNSTATEDIR %s\n' $(runstatedir_c_make); \ + printf '#define INCLUDEDIR %s\n' $(includedir_c_make); \ + printf '#define OLDINCLUDEDIR %s\n' $(oldincludedir_c_make); \ + printf '#define DOCDIR %s\n' $(docdir_c_make); \ + printf '#define INFODIR %s\n' $(infodir_c_make); \ + printf '#define HTMLDIR %s\n' $(htmldir_c_make); \ + printf '#define DVIDIR %s\n' $(dvidir_c_make); \ + printf '#define PDFDIR %s\n' $(pdfdir_c_make); \ + printf '#define PSDIR %s\n' $(psdir_c_make); \ + printf '#define LIBDIR %s\n' $(libdir_c_make); \ + printf '#define LISPDIR %s\n' $(lispdir_c_make); \ + printf '#define LOCALEDIR %s\n' $(localedir_c_make); \ + printf '#define MANDIR %s\n' $(mandir_c_make); \ printf '#define MANEXT %s\n' \"$(manext)\"; \ - printf '#define PKGDATADIR %s\n' \"$(pkgdatadir)\"; \ - printf '#define PKGINCLUDEDIR %s\n' \"$(pkgincludedir)\"; \ - printf '#define PKGLIBDIR %s\n' \"$(pkglibdir)\"; \ - printf '#define PKGLIBEXECDIR %s\n' \"$(pkglibexecdir)\"; \ + printf '#define PKGDATADIR %s\n' $(pkgdatadir_c_make); \ + printf '#define PKGINCLUDEDIR %s\n' $(pkgincludedir_c_make); \ + printf '#define PKGLIBDIR %s\n' $(pkglibdir_c_make); \ + printf '#define PKGLIBEXECDIR %s\n' $(pkglibexecdir_c_make); \ } | sed '/""/d' > $@-t $(AM_V_at)mv $@-t $@ -- 2.34.1