diff options
author | Jim Meyering <meyering@redhat.com> | 2012-09-10 16:38:03 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2012-09-11 11:23:00 +0200 |
commit | 640fb7a108eec6242c85481fbc0093f67147918b (patch) | |
tree | 047709e86b198b5cbc9cb7ad968ab52c90da3b18 /gl/m4 | |
parent | 40e8affc16740e79713de7d929fcd594ce4fb87f (diff) | |
download | coreutils-640fb7a108eec6242c85481fbc0093f67147918b.tar.xz |
build: new module to convert lib/ to non-recursive make
* gl/modules/non-recursive-gnulib-prefix-hack: New module.
* gl/m4/non-recursive-gnulib-prefix-hack.m4:
(gl_NON_RECURSIVE_GNULIB_PREFIX_HACK): This is the snippet
that this module inserts near the end of configure.
* gl/build-aux/prefix-gnulib-mk: New script, from bison.
Changes from the code in bison:
(prefix_assignment): Split a long line.
(prefix): Add trailing slashes to avoid a single false match.
Prefix imaxtostr.c and the other *tostr.c file names manually.
Also, use $prefix in place of hard-coded "lib/".
Diffstat (limited to 'gl/m4')
-rw-r--r-- | gl/m4/non-recursive-gnulib-prefix-hack.m4 | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gl/m4/non-recursive-gnulib-prefix-hack.m4 b/gl/m4/non-recursive-gnulib-prefix-hack.m4 new file mode 100644 index 000000000..3c5c48ed8 --- /dev/null +++ b/gl/m4/non-recursive-gnulib-prefix-hack.m4 @@ -0,0 +1,29 @@ +dnl Copyright (C) 2012 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 gl_NON_RECURSIVE_GNULIB_PREFIX_HACK LIB_DIR +dnl Adjust configure-set $gl_LIBOBJS and each AC_SUBST'd *_H variable +dnl with a value ending in ".h" to reflect that these files are located +dnl in the directory specified by LIB_DIR. +AC_DEFUN([gl_NON_RECURSIVE_GNULIB_PREFIX_HACK], +[ + # This hack originated in bison. It is required when using non-recursive + # automake rules to build from gnulib-provided lib/ sources. Hence, LIB_DIR + # is usually simply "lib". Those rules use the list of names like "fchdir.o" + # and "strstr.o" in gl_LIBOBJS. With non-recursive make, we must prefix each + # such file name with the "lib/" prefix. See also build-aux/prefix-gnulib-mk. + gl_LIBOBJS=`echo "$gl_LIBOBJS" | sed -e 's, , $1/,g'` + + # Listing the names of the variables to prefix is error-prone. + # Rather, adjust each AC_SUBST'd variable whose name ends in '_H' + # and whose value ends in '.h'. + for ac_var in $ac_subst_vars + do + eval "ac_val=\$$ac_var" + case $ac_var:$ac_val in + (*_H:*.h) eval "$ac_var=$1/\$$ac_var";; + esac + done +]) |