diff options
Diffstat (limited to 'm4/non-recursive-gnulib-prefix-hack.m4')
-rw-r--r-- | m4/non-recursive-gnulib-prefix-hack.m4 | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/m4/non-recursive-gnulib-prefix-hack.m4 b/m4/non-recursive-gnulib-prefix-hack.m4 new file mode 100644 index 0000000..d2cb9e7 --- /dev/null +++ b/m4/non-recursive-gnulib-prefix-hack.m4 @@ -0,0 +1,32 @@ +dnl Copyright (C) 2012-2018 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], +[ + # Tell AC_LIBSOURCES where to find source files like alloca.c. + AC_CONFIG_LIBOBJ_DIR([$1]) + + # 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 +]) |