mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-12-21 06:59:11 +08:00
bcdfe9f273
In addition to moving the autoconf macro directory into the place expected by GNU developers ($top_srcdir/m4), we also simplify libtoolize somewhat by having libltdl use whatever directory was specified by the parent project. This is much more flexible, allows libltdl client projects to also use a single canonical `$top_srcdir/m4' macro directory, and maintains backward compatibility with existing projects that wish to continue using $ltdl_dir/m4. * libltdl/m4: Moved to it's parent directory. * Makefile.am (ACLOCAL_AMFLAGS, BUILDCHECK_ENVIRONMENT) (libltdl/Makefile.am, libltdl/aclocal.m4): Adjust. * configure.ac (AC_CONFIG_MACRO_DIR): Adjust. * libltdl/configure.ac (AC_CONFIG_MACRO_DIR): Remove. The libtoolize script can pick up the project macro directory from ACLOCAL_AMFLAGS in libltdl/Makefile.am, saving us from needing to regenerate configure for the sake of a different macro directory declared in the libltdl using client project. * libtoolize.m4sh (func_install_pkgmacro_subproject): Remove. (func_install_pkgmacro_parent): Remove. (subproject_macro_dir): Remove. (require_libltdl_Makefile_am, require_ltdl_aclocal_amflags) (require_ltdl_am_macro_dir): New functions, generated at runtime by adding libltdl/Makefile.am to the generation loop. (func_install_pkgmacro_files): Considerably simplified now that we have only a single macro directory to worry about. (require_ltdl_relative_macro_dir): New function. Calculate the relative path from $ltdl_dir to the parent project macro_dir. (require_Makefile_am_filter): Depending on $ltdl_mode, edit Makefile.am ACLOCAL_AMFLAGS to use the parent project macro directory if necessary. (require_aclocal_m4_filter): Make sure m4_includes point to the correct macro directory by editing the file as it is copied into the parent project. (func_install_pkgltdl_files): Use the filters. (func_check_macros): Remove various advice that no longer applies with an always shared macro directory. (func_require_ltdl_dir): Don't default ltdl_dir to subproject when `--ltdl' was not given. (func_require_ltdl_mode): Leave ltdl_mode empty when ltdl_dir is not set. (func_require_macro_dir): Default to $ltdl_dir/m4 in subproject mode with no other directory implied by AC_CONFIG_MACRO_DIR or ACLOCAL_AMFLAGS, otherwise m4 as before. * tests/libtoolize.at: Match new "creating file `Makefile.am'" messages correctly. (subproject ltdl with non-shared directories): This test no longer makes sense, so repurposed... (subproject ltdl with non-canonical macro dir): ...this, to ensure subproject ltdl continues to automatically share the parent macro directory. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Use new location of macro_dir. * NEWS: Updated. Signed-off-by: Gary V. Vaughan <gary@gnu.org>
80 lines
2.6 KiB
Plaintext
80 lines
2.6 KiB
Plaintext
# Portability macros for glibc argz. -*- Autoconf -*-
|
|
#
|
|
# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
|
# Written by Gary V. Vaughan <gary@gnu.org>
|
|
#
|
|
# This file is free software; the Free Software Foundation gives
|
|
# unlimited permission to copy and/or distribute it, with or without
|
|
# modifications, as long as this notice is preserved.
|
|
|
|
# serial 5 argz.m4
|
|
|
|
AC_DEFUN([gl_FUNC_ARGZ],
|
|
[gl_PREREQ_ARGZ
|
|
|
|
AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
|
|
|
|
AC_CHECK_TYPES([error_t],
|
|
[],
|
|
[AC_DEFINE([error_t], [int],
|
|
[Define to a type to use for `error_t' if it is not otherwise available.])
|
|
AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
|
|
does not typedef error_t.])],
|
|
[#if defined(HAVE_ARGZ_H)
|
|
# include <argz.h>
|
|
#endif])
|
|
|
|
ARGZ_H=
|
|
AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \
|
|
argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])])
|
|
|
|
dnl if have system argz functions, allow forced use of
|
|
dnl libltdl-supplied implementation (and default to do so
|
|
dnl on "known bad" systems). Could use a runtime check, but
|
|
dnl (a) detecting malloc issues is notoriously unreliable
|
|
dnl (b) only known system that declares argz functions,
|
|
dnl provides them, yet they are broken, is cygwin
|
|
dnl releases prior to 16-Mar-2007 (1.5.24 and earlier)
|
|
dnl So, it's more straightforward simply to special case
|
|
dnl this for known bad systems.
|
|
AS_IF([test -z "$ARGZ_H"],
|
|
[AC_CACHE_CHECK(
|
|
[if argz actually works],
|
|
[lt_cv_sys_argz_works],
|
|
[[case $host_os in #(
|
|
*cygwin*)
|
|
lt_cv_sys_argz_works=no
|
|
if test "$cross_compiling" != no; then
|
|
lt_cv_sys_argz_works="guessing no"
|
|
else
|
|
lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
|
|
save_IFS=$IFS
|
|
IFS=-.
|
|
set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
|
|
IFS=$save_IFS
|
|
lt_os_major=${2-0}
|
|
lt_os_minor=${3-0}
|
|
lt_os_micro=${4-0}
|
|
if test "$lt_os_major" -gt 1 \
|
|
|| { test "$lt_os_major" -eq 1 \
|
|
&& { test "$lt_os_minor" -gt 5 \
|
|
|| { test "$lt_os_minor" -eq 5 \
|
|
&& test "$lt_os_micro" -gt 24; }; }; }; then
|
|
lt_cv_sys_argz_works=yes
|
|
fi
|
|
fi
|
|
;; #(
|
|
*) lt_cv_sys_argz_works=yes ;;
|
|
esac]])
|
|
AS_IF([test "$lt_cv_sys_argz_works" = yes],
|
|
[AC_DEFINE([HAVE_WORKING_ARGZ], 1,
|
|
[This value is set to 1 to indicate that the system argz facility works])],
|
|
[ARGZ_H=argz.h
|
|
AC_LIBOBJ([argz])])])
|
|
|
|
AC_SUBST([ARGZ_H])
|
|
])
|
|
|
|
# Prerequisites of lib/argz.c.
|
|
AC_DEFUN([gl_PREREQ_ARGZ], [:])
|