summaryrefslogtreecommitdiff
path: root/libtoolize.m4sh
diff options
context:
space:
mode:
Diffstat (limited to 'libtoolize.m4sh')
-rw-r--r--libtoolize.m4sh1997
1 files changed, 861 insertions, 1136 deletions
diff --git a/libtoolize.m4sh b/libtoolize.m4sh
index 31bbf3e7..cd15c58a 100644
--- a/libtoolize.m4sh
+++ b/libtoolize.m4sh
@@ -1,6 +1,6 @@
m4_pattern_allow([dnl])
AS_INIT[]m4_divert_push([HEADER-COPYRIGHT])
-# libtoolize (GNU @PACKAGE@) @VERSION@
+# libtoolize (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
# Written by Gary V. Vaughan <gary@gnu.org>, 2003
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
@@ -59,7 +59,7 @@ AS_INIT[]m4_divert_push([HEADER-COPYRIGHT])
# include the following information:
#
# host-triplet: @host_triplet@
-# $progname: (GNU @PACKAGE@) @VERSION@
+# $progname: (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
# automake: $automake_version
# autoconf: $autoconf_version
#
@@ -67,12 +67,22 @@ AS_INIT[]m4_divert_push([HEADER-COPYRIGHT])
# GNU @PACKAGE@ home page: <@PACKAGE_URL@>.
# General help using GNU software: <http://www.gnu.org/gethelp/>.
+: ${TAR=tar}
+
PROGRAM=libtoolize
m4_divert_pop
m4_include([getopt.m4sh])
M4SH_VERBATIM([[
+# ltdl can be installed to be self-contained (subproject, the default);
+# or to be configured by a parent project, either with a recursive or
+# nonrecursive automake driven make:
+ltdl_mode=
+
+# Locations for important files:
+ltdldir=
+
# Parse environment options
{
my_sed_env_opt='1s/^\([^,:; ]*\).*$/\1/;q'
@@ -86,7 +96,7 @@ M4SH_VERBATIM([[
--debug|--no-warn|--quiet|--verbose)
envopts="${envopts+$envopts }$opt" ;;
--*) env_warning="${env_warning+$env_warning
-}unrecognized environment option \`$opt'" ;;
+}unrecognized environment option \`$opt'" ;;
*) func_fatal_help "garbled LIBTOOLIZE_OPTIONS near \`$opt'" ;;
esac
done
@@ -110,22 +120,23 @@ M4SH_GETOPTS(
CP="func_echo_all $CP"
test -n "$LN_S" && LN_S="func_echo_all $LN_S"
MKDIR="func_echo_all $MKDIR"
- RM="func_echo_all $RM"],
+ RM="func_echo_all $RM"
+ TAR="func_echo_all $TAR"],
[q], [--quiet|--automake], [], [],
[v], [--verbose], [], [],
[], [--no-warning|--no-warn], [], [],
[], [--nonrecursive|--non-recursive], [], [],
[], [--recursive], [], [],
- [], [--subproject], [], [],
+ [], [--standalone], [], [],
[?], [--ltdl], [false], [
# This is tricky, since we're overloading $opt_ltdl to be the
# optarg for --ltdl during option processing, but then stashing
- # the (optional) optarg in $ltdl_dir and reusing $opt_ltdl to
+ # the (optional) optarg in $ltdldir and reusing $opt_ltdl to
# indicate that --ltdl was seen during option processing. Also,
- # be careful that --ltdl=foo --ltdl=bar results in ltdl_dir=bar:
+ # be careful that --ltdl=foo --ltdl=bar results in ltdldir=bar:
case $opt_ltdl in
false|:) ;; # a bare '--ltdl' followed by another option
- *) ltdl_dir=`$ECHO "$optarg" |$SED 's|/*$||'` ;;
+ *) ltdldir=`$ECHO "$optarg" | $SED 's,/*$,,'` ;;
esac
opt_ltdl=:],
[
@@ -133,18 +144,18 @@ M4SH_GETOPTS(
test -n "$env_warning" &&
echo "$env_warning" |while read line; do func_warning "$line"; done
- # validate $opt_nonrecursive, $opt_recursive and $opt_subproject
+ # validate $opt_nonrecursive, $opt_recursive and $opt_standalone
if $opt_nonrecursive; then
- if $opt_recursive || $opt_subproject; then
- func_error "you can have at most one of --non-recursive, --recursive and --subproject"
+ if $opt_recursive || $opt_standalone; then
+ func_error "you can have at most one of --non-recursive, --recursive and --standalone"
fi
ltdl_mode=nonrecursive
elif $opt_recursive; then
- $opt_subproject &&
- func_error "you can have at most one of --non-recursive, --recursive and --subproject"
+ $opt_standalone &&
+ func_error "you can have at most one of --non-recursive, --recursive and --standalone"
ltdl_mode=recursive
- elif $opt_subproject; then
- ltdl_mode=subproject
+ elif $opt_standalone; then
+ ltdl_mode=standalone
fi
# any remaining arguments are an error
@@ -154,179 +165,441 @@ M4SH_GETOPTS(
M4SH_VERBATIM([[
-# func_whisper arg...
-# Echo program name prefixed message unless $opt_quiet was given.
-func_whisper ()
-{
- $debug_cmd
-
- $opt_quiet || func_echo ${1+"$@"}
-}
-
-# func_whisper_once msg_var
-# Call func_whisper with the value of MSG_VAR, and then set MSG_VAR='' so
-# that subsequent calls will have no effect.
-func_whisper_once ()
+# func_echo_once msg_var
+# Calls func_echo with the value of MSG_VAR, and then sets MSG_VAR="" so
+# that subsequent calls have no effect.
+func_echo_once ()
{
- $debug_cmd
-
+ $opt_debug
if test -n "$1"; then
eval my_msg=\$$1
if test -n "$my_msg"; then
- func_whisper "$my_msg"
- eval $1=
+ func_echo "$my_msg"
+ eval $1=""
fi
fi
}
-# func_whisper_hdr msg_var arg...
-# With at least 1 non-empty ARG, call func_whisper_once with MSG_VAR,
-# and then func_whisper with the remaining arguments.
-func_whisper_hdr ()
+# func_copy srcfile destfile [msg_var]
+# A wrapper for func_copy_cb that accepts arguments in the same order
+# as the cp(1) shell command.
+func_copy ()
{
- $debug_cmd
+ $opt_debug
+
+ test -f "$1" || \
+ { func_error "\`$1' not copied: not a regular file"; return 1; }
- my_msg_var=$1; shift
- test -n "$*" || return
+ func_dirname_and_basename "$1"
+ my_f1=$func_basename_result
+
+ if test -d "$2"; then
+
+ func_copy_cb "$my_f1" \
+ `$ECHO "$1" | $SED "$dirname"` "$2" "$3"
+
+ else
- func_whisper_once "$my_msg_var"
- func_whisper "$*"
+ # Supporting this would mean changing the timestamp:
+ func_dirname_and_basename "$2"
+ my_tname=$func_basename_result
+ test "X$my_f1" = "X$my_tname" \
+ || func_fatal_error "func_copy() cannot change filename on copy"
+
+ func_copy_cb "$my_f1" \
+ `$ECHO "$1" | $SED "$dirname"` \
+ `$ECHO "$2" | $SED "$dirname"` \
+ "$3"
+
+ fi
+
+ return $copy_return_status # set in func_copy_cb
}
-# func_whisper_error_hdr msg_var arg...
-# Much the same as func_whisper_header, but for (non-fatal) error
-# messages.
-func_whisper_error_hdr ()
+# func_copy_cb filename srcdir destdir [msg_var]
+# If option `--copy' was specified, or soft-linking SRCFILE to DESTFILE fails,
+# then try to copy SRCFILE to DESTFILE (without changing the timestamp if
+# possible).
+func_copy_cb ()
{
- $debug_cmd
+ $opt_debug
+ my_file="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_msg_var="$4"
+ copy_return_status=1
+
+ # Libtool is probably misinstalled if this happens:
+ test -f "$my_srcdir/$my_file" ||
+ func_fatal_error "\`$my_file' not found in \`$my_srcdir'"
+
+ case $opt_verbose in
+ false) my_copy_msg="file \`$my_destdir/$my_file'" ;;
+ *) my_copy_msg="file from \`$my_srcdir/$my_file'" ;;
+ esac
+ func_mkdir_p `$ECHO "$my_destdir/$my_file" | $SED "$dirname"`
+
+ $RM "$my_destdir/$my_file"
+ if $opt_copy; then
+ if { ( cd "$my_srcdir" && $TAR chf - "$my_file" ) 2>/dev/null \
+ | ( umask 0 && cd "$my_destdir" && $TAR xf - ) >/dev/null 2>&1; } \
+ && touch "$my_destdir/$my_file"; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet || func_echo "copying $my_copy_msg"
+ copy_return_status=0
+ fi
+ else
+ if test "$my_file" = "aclocal.m4"; then
+ if { ( cd "$my_srcdir" && $TAR chf - "$my_file" ) 2>/dev/null \
+ | ( umask 0 && cd "$my_destdir" && $TAR xf - ) >/dev/null 2>&1 ; }
+ then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet || func_echo "copying $my_copy_msg"
+ copy_return_status=0
+ fi
+ else
+ if $LN_S "$my_srcdir/$my_file" "$my_destdir/$my_file"; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet || func_echo "linking $my_copy_msg"
+ copy_return_status=0
+ fi
+ fi
+ fi
+ if test "$copy_return_status" != 0; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ func_error "can not copy \`$my_srcdir/$my_file' to \`$my_destdir/'"
+ exit_status=$EXIT_FAILURE
+ fi
+}
- my_msg_var=$1; shift
- test -n "$*" || return
- func_whisper_once "$my_msg_var"
- func_error "$*"
+# func_copy_some_files srcfile_spec srcdir destdir [msg_var] [cb=func_copy_cb]
+# Call COPY_CB for each regular file in SRCDIR named by the ':' delimited
+# names in SRCFILE_SPEC. The odd calling convention is needed to allow
+# spaces in file and directory names.
+func_copy_some_files ()
+{
+ $opt_debug
+ my_srcfile_spec="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_msg_var="$4"
+ my_copy_cb="${5-func_copy_cb}"
+
+ my_save_IFS="$IFS"
+ IFS=:
+ for my_filename in $my_srcfile_spec; do
+ IFS="$my_save_IFS"
+ if test -f "$my_srcdir/$my_filename"; then
+ if test "X$my_copy_cb" = Xfunc_copy_cb; then
+ $opt_force || if test -f "$my_destdir/$my_filename"; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet \
+ || func_error "\`$my_destdir/$my_filename' exists: use \`--force' to overwrite"
+ continue
+ fi
+ fi
+ else
+ func_echo_once "$my_msg_var"
+ func_fatal_error "\`$my_filename' not found in \`$my_srcdir'"
+ fi
- exit_status=$EXIT_FAILURE
+ $my_copy_cb "$my_filename" "$my_srcdir" "$my_destdir" "$my_msg_var"
+ done
+ IFS="$my_save_IFS"
}
-# func_copy filename srcdir destdir [msg_var [filter]]
-# If option `--copy' was specified, or soft-linking SRCFILE to DESTFILE
-# fails, then try to copy SRCFILE to DESTFILE (making sure to update the
-# timestamp so that a series of files with dependencies can be copied
-# in the right order that their timestamps won't trigger rebuilds). If
-# FILTER is non-empty, it is a sed script to apply to SRCFILE as it is
-# copied. MSG_VAR names a variable for use with func_whisper_hdr.
-func_copy ()
+# func_fixup_Makefile srcfile srcdir destdir
+func_fixup_Makefile ()
{
- $debug_cmd
+ $opt_debug
+ my_filename="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_fixup_non_subpackage_script="\
+ s,(LIBOBJS),(ltdl_LIBOBJS),g
+ s,(LTLIBOBJS),(ltdl_LTLIBOBJS),g
+ s,libltdl/configure.ac,,
+ s,libltdl/configure,,
+ s,libltdl/aclocal.m4,,
+ s,libltdl/config-h.in,,
+ s,libltdl/Makefile.am,,
+ s,libltdl/Makefile.in,,
+ /^[ ]*\\\\\$/d"
+ case $my_filename in
+ Makefile.am)
+ my_fixup_non_subpackage_script=`echo "$my_fixup_non_subpackage_script" | \
+ sed 's,libltdl/,,'`
+ my_fixup_inc_paths_script= ;;
+ Makefile.inc)
+ repl=$ltdldir
+ repl_uscore=`$ECHO "$repl" | $SED 's,[/.+-],_,g'`
+ my_fixup_inc_paths_script="\
+ s,libltdl_,@repl_uscore@_,
+ s,libltdl/,@repl@/,
+ s,: libltdl/,: @repl@/,
+ s, -Ilibltdl , -I@repl@ ,
+ s,\\\$(libltdl_,\$(@repl_uscore@_,
+ s,)/libltdl ,)/@repl@ ,
+ s,@repl_uscore@,${repl_uscore},g
+ s,@repl@,${repl},g"
+ ;;
+ esac
- my_filename=$1
- my_srcdir=$2
- my_destdir=$3
- my_msg_var=$4
- my_filter=$5
+ $RM "$my_destdir/$my_filename" 2>/dev/null
+ $opt_quiet || func_echo "creating file \`$my_destdir/$my_filename'"
+ if $opt_dry_run; then :;
+ else
+ $SED "$my_fixup_non_subpackage_script
+ $my_fixup_inc_paths_script" \
+ < "$my_srcdir/$my_filename" > "$my_destdir/$my_filename" ||
+ func_fatal_error "cannot create $my_destdir/$my_filename"
+ fi
+}
- my_srcfile=$my_srcdir/$my_filename
- my_destfile=$my_destdir/$my_filename
+# func_scan_files
+# Scan configure.(ac|in) and aclocal.m4 (if present) for use of libltdl
+# and libtool. Possibly running some of these tools if necessary.
+# Libtoolize affects the contents of aclocal.m4, and should be run before
+# aclocal, so we can't use configure --trace which relies on a consistent
+# configure.(ac|in) and aclocal.m4.
+func_scan_files ()
+{
+ $opt_debug
+ # Prefer configure.ac to configure.in
+ test -f configure.ac && configure_ac=configure.ac
+ test -f "$configure_ac" || configure_ac=
+
+ # Set local variables to reflect contents of configure.ac
+ my_sed_scan_configure_ac='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
+ /AC_INIT/ {
+ s,^.*$,seen_autoconf=:,
+ p
+ }
+ d'
+ test -z "$configure_ac" \
+ || eval `$SED "$my_sed_scan_configure_ac" "$configure_ac"`
- # Libtool is probably misinstalled if this happens:
- test -f "$my_srcfile" || {
- func_whisper_error_hdr "$my_msg_var" "\`$my_srcfile' not found"
- return 1
- }
+ $seen_autoconf || {
+ my_configure_ac=
+ test -n "$configure_ac" && my_configure_ac="$configure_ac: "
+ func_verbose "${my_configure_ac}not using Autoconf"
- # Require --force to remove existing $my_destfile.
- $opt_force && $RM "$my_destfile"
- test -f "$my_destfile" && {
- func_whisper_error_hdr "$my_msg_var" \
- "\`$my_destfile' exists: use \`--force' to overwrite"
- return 1
+ # Make sure ltdldir and ltdl_mode have sensible defaults
+ # since we return early here:
+ test -n "$ltdldir" || ltdldir=libltdl
+ test -n "$ltdl_mode" || ltdl_mode=subproject
+
+ return
}
- # Be careful to support `func_copy dir/target srcbase destbase'.
- func_dirname "$my_destfile"
- func_mkdir_p "$func_dirname_result"
+ # ---------------------------------------------------- #
+ # Probe macro usage in configure.ac and/or aclocal.m4. #
+ # ---------------------------------------------------- #
- # Filters always take priority.
- if test -n "$my_filter"; then
- if $opt_dry_run || {
- ( umask 0
- $SED -e "$my_filter" "$my_srcfile" > "$my_destfile"
- ) >/dev/null 2>&1
+ my_sed_traces='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,
+ s,^.*AC_REQUIRE(.*$,,; s,^.*m4@&t@_require(.*$,,;
+ s,^.*m4@&t@_define(.*$,,
+ s,^.*A[CU]_DEFUN(.*$,,; s,^.*m4@&t@_defun(.*$,,
+ /AC_CONFIG_AUX_DIR(/ {
+ s,^.*AC_CONFIG_AUX_DIR([[ ]*\([^])]*\).*$,ac_auxdir=\1,
+ p
}
- then
- func_whisper_once "$my_msg_var"
- if $opt_verbose; then
- func_whisper "$SED -e '$my_filter' $my_srcfile > $my_destfile"
- else
- func_whisper "creating file \`$my_destfile'"
- fi
- else
- func_whisper_error_hdr "$my_msg_var" "creating \`$my_destfile' from \`$my_srcfile' failed"
- return 1
- fi
- return 0
- fi
+ /AC_CONFIG_MACRO_DIR(/ {
+ s,^.*AC_CONFIG_MACRO_DIR([[ ]*\([^])]*\).*$,ac_macrodir=\1,
+ p
+ }
+ /_LT_CONFIG_LTDL_DIR(/d
+ /LT_CONFIG_LTDL_DIR(/ {
+ s,^.*LT_CONFIG_LTDL_DIR([[ ]*\([^])]*\).*$,ac_ltdldir=\1,
+ p
+ }
+ /\@<:@A[CM]_PROG_LIBTOOL/d
+ /A[CM]_PROG_LIBTOOL/ {
+ s,^.*$,seen_libtool=:,
+ p
+ }
+ /the.*option into.*LT_INIT.*parameter/d
+ /\@<:@LT_INIT/d
+ /LT_INIT/ {
+ s,^.*$,seen_libtool=:,
+ p
+ }
+ /\@<:@LTDL_INIT/d
+ /LTDL_INIT/ {
+ s,^.*LTDL_INIT([[ ]*\([^])]*\).*$,ltdl_options="\1",
+ s,^.*LTDL_INIT[ ]*$,seen_ltdl=:,
+ p
+ }
+ /LT_WITH_LTDL/ {
+ s,^.*$,seen_ltdl=:,
+ p
+ }
+ /AC_LIB_LTDL/ {
+ s,^.*$,seen_ltdl=:,
+ p
+ }
+ /AC_WITH_LTDL/ {
+ s,^.*$,seen_ltdl=:,
+ p
+ }
+ d'
+ eval `cat aclocal.m4 "$configure_ac" 2>/dev/null | $SED "$my_sed_traces"`
- # Otherwise copy or link according to `--copy' option.
- if $opt_copy; then
- my_copycmd=$CP
- my_copy_type=copying
- else
- my_copycmd=$LN_S
- my_copy_type=linking
- fi
- my_copy_msg="$my_copy_type file \`$my_destfile'"
- $opt_verbose && my_copy_msg="$my_copycmd $my_srcfile $my_destdir"
- if $opt_dry_run || {
- ( umask 0
- $my_copycmd "$my_srcfile" "$my_destfile"
- ) >/dev/null 2>&1
- }
- then
- func_whisper_hdr "$my_msg_var" "$my_copy_msg"
+ # ----------------- #
+ # Validate ltdldir. #
+ # ----------------- #
+
+ ac_ltdldir=`$ECHO "$ac_ltdldir" | $SED 's,/*$,,'`
+
+ # If $configure_ac contains AC_CONFIG_LTDL_DIR, check that its
+ # arguments were not given in terms of a shell variable!
+ case "$ac_ltdldir" in
+ *\$*)
+ func_fatal_error "can not handle variables in LT_CONFIG_LTDL_DIR"
+ ;;
+ esac
+
+ # If neither --ltdl nor LT_CONFIG_LTDL_DIR are specified, default to
+ # `libltdl'. If both are specified, they must be the same. Otherwise,
+ # take the one that is given! (If LT_CONFIG_LTDL_DIR is not specified
+ # we suggest adding it later in this code.)
+ case x$ac_ltdldir,x$ltdldir in
+ x,x) ltdldir=libltdl ;;
+ x*,x) ltdldir=$ac_ltdldir ;;
+ x,x*) ltdldir=$ltdldir ;;
+ *)
+ test x"$ac_ltdldir" = x"$ltdldir" || \
+ func_fatal_error "--ltdl='$ltdldir' does not match LT_CONFIG_LTDL_DIR($ac_ltdldir)"
+ ;;
+ esac
+
+
+ # ------------------- #
+ # Validate ltdl_mode. #
+ # ------------------- #
+
+ test -n "$ltdl_options" && seen_ltdl=:
+
+ # If $configure_ac contains LTDL_INIT, check that its
+ # arguments were not given in terms of a shell variable!
+ case "$ltdl_options" in
+ *\$*)
+ func_fatal_error "can not handle variables in LTDL_INIT"
+ ;;
+ esac
+
+ # Extract mode name from ltdl_options
+ # FIXME: Diagnose multiple conflicting modes in ltdl_options
+ ac_ltdl_mode=
+ case " $ltdl_options " in
+ *" nonrecursive "*) ac_ltdl_mode=nonrecursive ;;
+ *" recursive "*) ac_ltdl_mode=recursive ;;
+ *" subproject "*) ac_ltdl_mode=subproject ;;
+ esac
+
+ # If neither --ltdl nor an LTDL_INIT mode are specified, default to
+ # `subproject'. If both are specified, they must be the same. Otherwise,
+ # take the one that is given!
+ case x$ac_ltdl_mode,x$ltdl_mode in
+ x,x) ltdl_mode=subproject ;;
+ x*,x) ltdl_mode=$ac_ltdl_mode ;;
+ x,x*) ltdl_mode=$ltdl_mode ;;
+ *)
+ test x"$ac_ltdl_mode" = x"$ltdl_mode" || \
+ func_fatal_error "--$ltdl_mode does not match LTDL_INIT($ac_ltdl_mode)"
+ ;;
+ esac
+
+ # ---------------- #
+ # Validate auxdir. #
+ # ---------------- #
+
+ if test -n "$ac_auxdir"; then
+ # If $configure_ac contains AC_CONFIG_AUX_DIR, check that it was
+ # not given in terms of a shell variable!
+ case "$ac_auxdir" in
+ *\$*)
+ func_fatal_error "can not handle variables in AC_CONFIG_AUX_DIR"
+ ;;
+ *)
+ auxdir=$ac_auxdir
+ ;;
+ esac
else
- func_whisper_error_hdr "$my_msg_var" \
- "$my_copy_type \`$my_srcdir/$my_filename' to \`$my_destdir/' failed"
- return 1
+ # Try to discover auxdir the same way it is discovered by configure.
+ # Note that we default to the current directory.
+ for dir in . .. ../..; do
+ if test -f "$dir/install-sh"; then
+ auxdir=$dir
+ break
+ elif test -f "$dir/install.sh"; then
+ auxdir="$dir"
+ break
+ fi
+ done
fi
-}
+ # Just use the current directory if all else fails.
+ test -n "$auxdir" || auxdir=.
-# func_extract_trace macro_name [filename ...]
-# set `$func_extract_trace_result' to a colon delimited list of arguments
-# to MACRO_NAME in FILENAME. If no FILENAME is given, then
-# `configure.ac' is assumed.
-func_extract_trace ()
-{
- $opt_debug
- if test 1 -eq $#; then
- test -n "$configure_ac" || return
- set dummy "$@" "$configure_ac"; shift
+ # ------------------------------ #
+ # Find local m4 macro directory. #
+ # ------------------------------ #
+
+ # Hunt for ACLOCAL_AMFLAGS in `Makefile.am' for a `-I' argument.
+
+ my_sed_aclocal_flags='
+ /^[ ]*ACLOCAL_[A-Z_]*FLAGS[ ]*=[ ]*/ {
+ s,,,
+ q
+ }
+ d'
+ if test -f Makefile.am; then
+ my_macrodir_is_next=false
+ for arg in `$SED "$my_sed_aclocal_flags" Makefile.am`; do
+ if $my_macrodir_is_next; then
+ am_macrodir="$arg"
+ break
+ else
+ case $arg in
+ -I) my_macrodir_is_next=: ;;
+ -I*)
+ am_macrodir=`$ECHO "$arg" | sed 's,^-I,,'`
+ break
+ ;;
+ *) my_macrodir_is_next=false ;;
+ esac
+ fi
+ done
fi
- func_extract_trace_result=`$extract_trace ${1+"$@"}`
-}
+ macrodir="$ac_macrodir"
+ test -z "$macrodir" && macrodir="$am_macrodir"
+ if test -n "$am_macrodir" && test -n "$ac_macrodir"; then
+ test "$am_macrodir" = "$ac_macrodir" \
+ || func_fatal_error "AC_CONFIG_MACRO_DIR([$ac_macrodir]) conflicts with ACLOCAL_AMFLAGS=-I $am_macrodir."
+ fi
+}
# func_included_files searchfile
# Output INCLUDEFILE if SEARCHFILE m4_includes it, else output SEARCHFILE.
func_included_files ()
{
- $debug_cmd
-
- my_searchfile=$1
+ $opt_debug
+ my_searchfile="$1"
my_include_regex=
my_sed_include='
/^m4@&t@_include(\[.*\])$/ {
- s|^m4@&t@_include(\[\(.*\)\])$|\1|
+ s,^m4@&t@_include(\[\(.*\)\])$,\1,
p
}
d'
@@ -348,13 +621,12 @@ func_included_files ()
# comment line must also match MACRO_REGEX, if given.
func_serial ()
{
- $debug_cmd
-
- my_filename=$1
- my_macro_regex=$2
+ $opt_debug
+ my_filename="$1"
+ my_macro_regex="$2"
my_sed_serial='
/^# serial [1-9][0-9.]*[ ]*'"$my_macro_regex"'[ ]*$/ {
- s|^# serial \([1-9][0-9.]*\).*$|\1|
+ s,^# serial \([1-9][0-9.]*\).*$,\1,
q
}
d'
@@ -366,7 +638,7 @@ func_serial ()
my_filebase=$func_basename_result
for my_file in `func_included_files "$my_filename"`; do
if test -z "$my_macro_regex" ||
- test aclocal.m4 = "$my_filename" ||
+ test "$my_filename" = aclocal.m4 ||
test "X$my_macro_regex" = "X$my_filebase" ||
func_grep '^AC_DEFUN(\@<:@'"$my_macro_regex" "$my_file"
then
@@ -388,10 +660,9 @@ func_serial ()
# same, func_serial_max_result will be empty.
func_serial_max ()
{
- $debug_cmd
-
- my_serial1=$1
- my_serial2=$2
+ $opt_debug
+ my_serial1="$1"
+ my_serial2="$2"
my_sed_dot='s/\..*$//g'
my_sed_rest='s/^[0-9][1-9]*\.*//'
@@ -413,16 +684,16 @@ func_serial_max ()
&& break
test -z "$my_serial1_part" \
- && { func_serial_max_result=$2; break; }
+ && { func_serial_max_result="$2"; break; }
test -z "$my_serial2_part" \
- && { func_serial_max_result=$1; break; }
+ && { func_serial_max_result="$1"; break; }
test "$my_serial1_part" -gt "$my_serial2_part" \
- && { func_serial_max_result=$1; break; }
+ && { func_serial_max_result="$1"; break; }
test "$my_serial2_part" -gt "$my_serial1_part" \
- && { func_serial_max_result=$2; break; }
+ && { func_serial_max_result="$2"; break; }
my_serial1=`$ECHO "$my_serial1" | $SED "$my_sed_rest"`
my_serial2=`$ECHO "$my_serial2" | $SED "$my_sed_rest"`
@@ -435,19 +706,15 @@ func_serial_max ()
# to 'false'.
func_serial_update_check ()
{
- $debug_cmd
-
- $require_ac_ltdl_dir
- $require_ac_macro_dir
-
- my_srcfile=$1
- my_src_serial=$2
- my_destfile=$3
- my_dest_serial=$4
+ $opt_debug
+ my_srcfile="$1"
+ my_src_serial="$2"
+ my_destfile="$3"
+ my_dest_serial="$4"
my_update_p=:
if test -f "$my_destfile"; then
- test 0 = "$my_src_serial" && {
+ test "X$my_src_serial" = "X0" && {
func_warning "no serial number on \`$my_srcfile', not copying."
return
}
@@ -461,13 +728,13 @@ func_serial_update_check ()
if test "X$my_dest_serial" = "X$func_serial_max_result"; then
func_verbose "\`$my_srcfile' is serial $my_src_serial, less than $my_dest_serial in \`$my_destfile'"
- $opt_force || if test -n "$ac_macro_dir$ac_ltdl_dir"; then
+ $opt_force || if test -n "$ac_macrodir$ac_ltdldir"; then
func_error "\`$my_destfile' is newer: use \`--force' to overwrite"
fi
fi
fi
- func_serial_update_check_result=$my_update_p
+ func_serial_update_check_result="$my_update_p"
}
@@ -476,23 +743,20 @@ func_serial_update_check ()
# in aclocal.m4, set $func_aclocal_update_check to 'false'.
func_aclocal_update_check ()
{
- $debug_cmd
-
- my_filename=$1
-
- my_srcfile=$aclocaldir/$1
- my_destfile=aclocal.m4
+ $opt_debug
+ my_srcfile="$aclocaldir/$1"
+ my_destfile="aclocal.m4"
- case $my_filename in
+ case $need in
libtool.m4)
my_src_serial=`func_serial "$my_srcfile" LT_INIT`
my_dest_serial=`func_serial "$my_destfile" LT_INIT`
# Strictly, this libtoolize ought not to have to deal with ancient
# serial formats, but we accept them here to be complete:
- test 0 = "$my_src_serial" &&
+ test "X$my_src_serial" = "X0" &&
my_src_serial=`func_serial "$my_srcfile" 'A[CM]_PROG_LIBTOOL'`
- test 0 = "$my_dest_serial" &&
+ test "X$my_dest_serial" = "X0" &&
my_dest_serial=`func_serial "$my_destfile" 'A[CM]_PROG_LIBTOOL'`
;;
ltdl.m4)
@@ -500,15 +764,15 @@ func_aclocal_update_check ()
my_dest_serial=`func_serial "$my_destfile" LTDL_INIT`
;;
*)
- my_src_serial=`func_serial "$my_srcfile" "$my_filename"`
- my_dest_serial=`func_serial "$my_destfile" "$my_filename"`
+ my_src_serial=`func_serial "$my_srcfile" "$need"`
+ my_dest_serial=`func_serial "$my_destfile" "$need"`
;;
esac
func_serial_update_check \
"$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial"
- func_aclocal_update_check_result=$func_serial_update_check_result
+ func_aclocal_update_check_result="$func_serial_update_check_result"
}
@@ -519,19 +783,18 @@ func_aclocal_update_check ()
# OLD_MACRO_REGEX must match any text after "# serial N" in both files.
func_serial_update ()
{
- $debug_cmd
-
- my_filename=$1
- my_srcdir=$2
- my_destdir=$3
- my_msg_var=$4
- my_macro_regex=$5
- my_old_macro_regex=$6
+ $opt_debug
+ my_filename="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_msg_var="$4"
+ my_macro_regex="$5"
+ my_old_macro_regex="$6"
my_serial_update_p=:
my_return_status=1
- my_srcfile=$my_srcdir/$my_filename
- my_destfile=$my_destdir/$my_filename
+ my_srcfile="$my_srcdir/$my_filename"
+ my_destfile="$my_destdir/$my_filename"
test -f "$my_srcfile" || func_fatal_error "\`$my_srcfile' does not exist."
@@ -541,30 +804,31 @@ func_serial_update ()
# Strictly, this libtoolize ought not to have to deal with ancient
# serial formats, but we accept them here to be complete:
- test 0 = "$my_src_serial" &&
+ test "X$my_src_serial" = "X0" &&
my_src_serial=`func_serial "$my_srcfile" "$my_old_macro_regex"`
- test 0 = "$my_dest_serial" &&
+ test "X$my_dest_serial" = "X0" &&
my_dest_serial=`func_serial "$my_destfile" "$my_old_macro_regex"`
func_serial_update_check \
"$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial"
- my_serial_update_p=$func_serial_update_check_result
+ my_serial_update_p="$func_serial_update_check_result"
fi
if $my_serial_update_p || $opt_force; then
- $RM "$my_destfile"
- func_copy "$my_filename" "$my_srcdir" "$my_destdir" "$my_msg_var"
+ func_copy "$my_srcfile" "$my_destfile" "$my_msg_var"
my_return_status=$?
elif $opt_force && test "X$my_dest_serial" = "X$my_src_serial"; then
- func_whisper_hdr "$my_msg_var" "\`$my_destfile' is already up to date."
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet \
+ || func_echo "\`$my_destfile' is already up to date."
fi
# Do this after the copy for hand maintained `aclocal.m4', incase
# it has `m4_include([DESTFILE])', so the copy effectively already
# updated `aclocal.m4'.
my_included_files=`func_included_files aclocal.m4`
- case `echo " "$my_included_files" "` in
+ case `echo " $my_included_files " | $NL2SP` in
# Skip included files:
*" $my_destfile "*) ;;
@@ -578,8 +842,8 @@ func_serial_update ()
func_serial_max \
"$my_src_serial" `func_serial aclocal.m4 "$my_macro_regex"`
if test "X$my_src_serial" = "X$func_serial_max_result"; then
- func_whisper_hdr "$my_msg_var" \
- "You should add the contents of \`$my_destfile' to \`aclocal.m4'."
+ func_echo_once "$my_msg_var"
+ func_echo "You should add the contents of \`$my_destfile' to \`aclocal.m4'."
fi
fi
;;
@@ -595,16 +859,15 @@ func_serial_update ()
# `--force' at the command line.
func_keyword_update ()
{
- $debug_cmd
-
- my_filename=$1
- my_srcdir=$2
- my_destdir=$3
- my_sed_script=$4
- my_msg_var=$5
+ $opt_debug
+ my_filename="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_sed_script="$4"
+ my_msg_var="$5"
- my_srcfile=$my_srcdir/$my_filename
- my_destfile=$my_destdir/$my_filename
+ my_srcfile="$my_srcdir/$my_filename"
+ my_destfile="$my_destdir/$my_filename"
my_keyword_update_p=:
@@ -622,14 +885,14 @@ func_keyword_update ()
func_serial_update_check \
"$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial"
- my_keyword_update_p=$func_serial_update_check_result
+ my_keyword_update_p="$func_serial_update_check_result"
fi
if $my_keyword_update_p || $opt_force; then
- $RM "$my_destfile"
- func_copy "$my_filename" "$my_srcdir" "$my_destdir" "$my_msg_var"
+ func_copy "$my_srcfile" "$my_destfile" "$my_msg_var"
elif $opt_verbose || $opt_force && test "X$my_dest_serial" = "X$my_src_serial"; then
- func_whisper_hdr "$my_msg_var" "\`$my_destfile' is already up to date."
+ func_echo_once "$my_msg_var"
+ func_echo "\`$my_destfile' is already up to date."
fi
}
@@ -640,11 +903,10 @@ func_keyword_update ()
# specified `--force' at the command line.
func_ltmain_update ()
{
- $debug_cmd
-
+ $opt_debug
my_sed_ltmain='
/^package_revision='\''*[0-9][1-9.]*'\''*/ {
- s|^package_revision='\''*\([0-9.]*\)'\''*[ ]*$|\1|
+ s,^package_revision='\''*\([0-9.]*\)'\''*[ ]*$,\1,
p
}
d'
@@ -661,12 +923,11 @@ func_ltmain_update ()
# specified `--force' at the command line.
func_config_update ()
{
- $debug_cmd
-
+ $opt_debug
my_sed_config='
/^timestamp='\''*[0-9][1-9-]*'\''*/ {
- s|^timestamp='\''*\([0-9-]*\)'\''*|\1|
- s|-|.|g
+ s,^timestamp='\''*\([0-9-]*\)'\''*,\1,
+ s/-/./g
p
}
d'
@@ -683,13 +944,12 @@ func_config_update ()
# specified `--force' at the command line.
func_install_update ()
{
- $debug_cmd
-
+ $opt_debug
my_sed_install='
/^scriptversion='\''*[0-9][1-9.-]*'\''*/ {
- s|[#;].*||
- s|^scriptversion='\''*\([0-9.-]*\)'\''*|\1|
- s|-|.|g
+ s,[#;].*,,
+ s,^scriptversion='\''*\([0-9.-]*\)'\''*,\1,
+ s/-/./g
p
}
d'
@@ -700,1035 +960,481 @@ func_install_update ()
}
-# func_install_pkgmacro_files
-# Install copies of the libtool and libltdl m4 macros into this package.
-func_install_pkgmacro_files ()
+# func_massage_aclocal_DATA [glob_exclude]
+# @aclocal_DATA\@ is substituted as per its value in Makefile.am;
+# this function massages it into a suitable format for func_copy_some_files.
+func_massage_aclocal_DATA ()
{
- $debug_cmd
-
- $require_ac_macro_dir
- $require_am_macro_dir
- $require_ltdl_mode
- $require_macro_dir
+ $opt_debug
+ pkgmacro_files= # GLOBAL VAR
- $opt_ltdl || test -n "$ac_macro_dir$am_macro_dir" || return
+ my_glob_exclude="$1"
- # Remove any lingering files that my have been installed by some
- # previous libtoolize release:
- $opt_force && for file in $all_pkgmacro_files; do
- test -f "$macro_dir/$file" && func_verbose "rm -f '$macro_dir/$file'"
- rm -f "$macro_dir/$file"
- done
+ # Massage a value for pkgmacro_files from the value used in Makefile.am.
+ for my_filename in @aclocal_DATA@; do
+ func_dirname_and_basename "$my_filename"
+ my_filename=$func_basename_result
- # Install the libltdl autoconf macros to this project's source tree.
- $opt_quiet || if test -n "$ac_macro_dir"; then
- my_pkgmacro_header="putting macros in AC_CONFIG_MACRO_DIR, \`$ac_macro_dir'."
- else
- my_pkgmacro_header="putting macros in \`$macro_dir'."
- fi
+ # ignore excluded filenames
+ if test -n "$my_glob_exclude"; then
+ my_cont=false
+ eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
+ $my_cont && continue
+ fi
- for file in $pkgmacro_files; do
- case $file in
- libtool.m4)
- func_serial_update "$file" "$aclocaldir" "$macro_dir" \
- my_pkgmacro_header LT_INIT 'A[CM]_PROG_LIBTOOL'
- ;;
- ltdl.m4)
- if $opt_ltdl; then
- func_serial_update "$file" "$aclocaldir" "$macro_dir" \
- my_pkgmacro_header 'LTDL_INIT'
- else
- func_verbose "Not copying \`$macro_dir/$file', libltdl not used."
- fi
- ;;
- ltoptions.m4|ltsugar.m4|ltversion.m4|lt~obsolete.m4)
- func_serial_update "$file" "$aclocaldir" "$macro_dir" \
- my_pkgmacro_header "$file"
- ;;
- *)
- if $opt_ltdl; then
- func_serial_update "$file" "$aclocaldir" "$macro_dir" \
- my_pkgmacro_header "$file"
- else
- func_verbose "Not copying \`$macro_dir/$file', libltdl not used."
- fi
- ;;
- esac
+ pkgmacro_files="$pkgmacro_files:$my_filename"
done
+
+ # strip spurious leading `:'
+ pkgmacro_files=`$ECHO "$pkgmacro_files" | $SED 's,^:*,,'`
}
-# func_install_pkgltdl_files
-# Install copies of the libltdl files into this package. Any auxiliary
-# or m4 macro files needed in the libltdl tree will also be copied by
-# func_install_pkgaux_files and func_install_pkgmacro_files resp.
-func_install_pkgltdl_files ()
+# func_install_pkgmacro_subproject
+# Unless --quiet was passed, display a message. Then copy pkgmacro_files
+# from libtool installation tree to subproject libltdl tree.
+func_install_pkgmacro_subproject ()
{
- $debug_cmd
-
- $opt_ltdl || return
-
- $require_ac_ltdl_dir
- $require_ltdl_dir
- $require_ltdl_mode
+ $opt_debug
# Remove any lingering files that my have been installed by some
# previous libtoolize release:
- $opt_force && for file in $all_pkgltdl_files; do
- test -f "$ltdl_dir/$file" && func_verbose "rm -f '$ltdl_dir/$file'"
- rm -f "$ltdl_dir/$file"
+ $opt_force && for file in $all_pkgmacro_files; do
+ test -f "$subproject_macrodir/$file" && func_verbose "rm -f '$subproject_macrodir/$file'"
+ rm -f "$subproject_macrodir/$file"
done
# Copy all the files from installed libltdl to this project, if the
- # user specified `--ltdl'.
- $opt_quiet || if test -n "$ac_ltdl_dir"; then
- pkgltdl_header="putting libltdl files in LT_CONFIG_LTDL_DIR, \`$ac_ltdl_dir'."
- else
- pkgltdl_header="putting libltdl files in \`$ltdl_dir'."
+ # user specified a macrodir.
+ $opt_quiet || if test "x$macrodir" != "x$subproject_macrodir"; then
+ pkgmacro_header="putting macros in \`$subproject_macrodir'."
+ elif test -n "$subproject_macrodir"; then
+ pkgmacro_header="putting macros in AC_CONFIG_MACRO_DIR, \`$subproject_macrodir'."
fi
- $require_Makefile_am_filter
- $require_Makefile_inc_filter
-
- # Copy ltdl sources appropriate to the requested ltdl_mode.
- for file in $pkgltdl_files; do
- my_copy_filter=
- case $file in
- Makefile.am|Makefile.in)
- test nonrecursive = "$ltdl_mode" && continue
- my_copy_filter=$Makefile_am_filter
- ;;
-
- ltdl.mk)
- test nonrecursive = "$ltdl_mode" || continue
- my_copy_filter=$Makefile_inc_filter
- ;;
-
- aclocal.m4)
- test subproject = "$ltdl_mode" && {
- $require_aclocal_m4_filter
-
- # Always copy aclocal.m4, otherwise regenerating it can
- # overwrite the destination if it is symlinked.
- ( opt_copy=:
- func_copy "$file" "$pkgltdldir" "$ltdl_dir" \
- pkgltdl_header "$aclocal_m4_filter"
- )
- }
- continue
- ;;
-
- config-h.in)
- test subproject = "$ltdl_mode" || continue
- ;;
-
- configure)
- test subproject = "$ltdl_mode" && {
- $require_configure_ac_filter
-
- # Always copy configure, otherwise regenerating it can
- # overwrite the destination if it is symlinked.
- ( opt_copy=:
- func_copy "$file" "$pkgltdldir" "$ltdl_dir" \
- pkgltdl_header "$configure_ac_filter"
- )
- }
- continue
- ;;
-
- configure.ac)
- test subproject = "$ltdl_mode" || continue
- $require_configure_ac_filter
- my_copy_filter=$configure_ac_filter
- ;;
- esac
-
- # Still here? Copy the file then, with selected filters.
- func_copy "$file" "$pkgltdldir" "$ltdl_dir" \
- pkgltdl_header "$my_copy_filter"
-
- # FIXME: Remove in 2013
- # (along with deprecation warning in func_check_macros)
- test ltdl.mk = "$file" \
- && func_grep "^-\?include $ltdl_dir/Makefile.inc\$" Makefile.am \
- && mv "$ltdl_dir/$file" "$ltdl_dir/Makefile.inc" \
- && func_whisper "renaming file \`$ltdl_dir/Makefile.inc'"
- done
+ func_copy_some_files "argz.m4:libtool.m4:ltdl.m4:$pkgmacro_files" \
+ "$aclocaldir" "$subproject_macrodir" pkgmacro_header
}
-# func_install_pkgaux_files
-# Install copies of the auxiliary files into this package according to
-# the whether libltdl is included as a subproject, and whether the parent
-# shares the AC_CONFIG_AUX_DIR setting.
-func_install_pkgaux_files ()
+# func_install_pkgmacro_parent
+# Unless --quiet was passed, or AC_CONFIG_MACRO_DIR was not seen, display
+# a message. Then update appropriate macros if newer ones are available
+# from the libtool installation tree.
+func_install_pkgmacro_parent ()
{
- $debug_cmd
-
- $require_ac_aux_dir
- $require_aux_dir
- $require_configure_ac
- $require_ltdl_mode
+ $opt_debug
# Remove any lingering files that my have been installed by some
# previous libtoolize release:
- $opt_force && for file in $all_pkgaux_files; do
- test -f "$aux_dir/$file" && func_verbose "rm -f '$aux_dir/$file'"
- rm -f "$aux_dir/$file"
+ $opt_force && for file in $all_pkgmacro_files; do
+ test -f "$macrodir/$file" && func_verbose "rm -f '$macrodir/$file'"
+ rm -f "$macrodir/$file"
done
- if test -n "$ac_aux_dir"; then
- pkgaux_header="putting auxiliary files in AC_CONFIG_AUX_DIR, \`$ac_aux_dir'."
+ # Copy all the files from installed libltdl to this project, if the
+ # user specified a macrodir.
+ $opt_quiet || if test -n "$ac_macrodir"; then
+ my_pkgmacro_header="putting macros in AC_CONFIG_MACRO_DIR, \`$ac_macrodir'."
+ elif test -n "$macrodir"; then
+ my_pkgmacro_header="putting macros in \`$macrodir'."
+ fi
+
+ if $opt_ltdl; then
+ func_serial_update argz.m4 "$aclocaldir" "$macrodir" \
+ my_pkgmacro_header argz.m4
else
- pkgaux_header="putting auxiliary files in \`$aux_dir'."
+ func_verbose "Not copying \`$macrodir/argz.m4', libltdl not used."
fi
- for file in $pkgaux_files; do
- case $file in
- config.guess|config.sub)
- $opt_install || test subproject = "$ltdl_mode" || continue
- func_config_update "$file" "$pkgauxdir" "$aux_dir" pkgaux_header
- ;;
- install-sh)
- $opt_install || test subproject = "$ltdl_mode" || continue
- func_install_update "$file" "$pkgauxdir" "$aux_dir" pkgaux_header
- ;;
- ltmain.sh)
- func_ltmain_update "$file" "$pkgauxdir" "$aux_dir" pkgaux_header
- ;;
- *)
- test subproject = "$ltdl_mode" || continue
- func_copy "$file" "$pkgauxdir" "$aux_dir" pkgaux_header
- ;;
- esac
- done
+ func_serial_update libtool.m4 "$aclocaldir" "$macrodir" \
+ my_pkgmacro_header LT_INIT 'A[CM]_PROG_LIBTOOL'
- # If the parent project is using Autoconf and linking with Libtool,
- # even if subproject libltdl already has a copy, the parent project
- # will still need to build libtool for its own purposes, and might
- # need another copy of ltmain.sh if the parent didn't declare an
- # AC_CONFIG_AUX_DIR.
- pkgaux_hdr="putting another copy of auxiliary files in \`.'"
- test -f "$configure_ac" \
- && test -z "$ac_aux_dir" \
- && test subproject = "$ltdl_mode" \
- && test "$aux_dir" = "$ltdl_dir" \
- && func_ltmain_update "$file" "$pkgauxdir" . pkgaux_hdr
-
- # FIXME: Remove in 2013.
- # Very old parent projects using `libtoolize --install --ltdl', and
- # a top-level $configure_ac to build the ltdl subproject, but not
- # using Automake themselves, might still be relying on the old
- # behaviour of libtoolize to put a second copy of some `Auxiliary
- # Programs' needed by the top-level configure (instead of using
- # the recommended method: `automake --add-missing').
- test -f "$configure_ac" \
- && test subproject = "$ltdl_mode" \
- && test "$aux_dir" = "$ltdl_dir" \
- && func_config_update config.guess "$pkgauxdir" . pkgaux_hdr \
- && func_config_update config.sub "$pkgauxdir" . pkgaux_hdr \
- && func_install_update install-sh "$pkgauxdir" . pkgaux_hdr
+ if $opt_ltdl; then
+ func_serial_update ltdl.m4 "$aclocaldir" "$macrodir" \
+ my_pkgmacro_header 'LTDL_INIT'
+ else
+ func_verbose "Not copying \`$macrodir/ltdl.m4', libltdl not used."
+ fi
+
+ my_save_IFS="$IFS"
+ IFS=:
+ for file in $pkgmacro_files; do
+ IFS="$my_save_IFS"
+ func_serial_update "$file" "$aclocaldir" "$macrodir" \
+ my_pkgmacro_header "$file"
+ done
+ IFS="$my_save_IFS"
}
-# func_nonemptydir_p dirvar
-# DIRVAR is the name of a variable to evaluate. Unless DIRVAR names
-# a directory that exists and is non-empty abort with a diagnostic.
-func_nonemptydir_p ()
+# func_install_pkgmacro_files
+# Install copies of the libtool and libltdl m4 macros into this package.
+func_install_pkgmacro_files ()
{
- $debug_cmd
+ $opt_debug
- my_dirvar=$1
- my_dir=`eval echo "\\\$$my_dirvar"`
+ # argz.m4, libtool.m4 and ltdl.m4 are handled specially:
+ func_massage_aclocal_DATA 'argz.m4|libtool.m4|ltdl.m4'
- # Is it a directory at all?
- test -d "$my_dir" \
- || func_fatal_error "\$$my_dirvar is not a directory: \`$my_dir'"
+ # 1. Parent has separate macrodir to subproject ltdl:
+ if $opt_ltdl && test "x$ltdl_mode" = "xsubproject" &&
+ test -n "$macrodir" && test "x$macrodir" != "x$subproject_macrodir"
+ then
+ func_install_pkgmacro_parent
+ func_install_pkgmacro_subproject
- # check that the directories contents can be ls'ed
- test -n "`{ cd $my_dir && ls; } 2>/dev/null`" \
- || func_fatal_error "cannot list files: \`$my_dir'"
+ # 2. Parent shares macrodir with subproject ltdl:
+ elif $opt_ltdl && test "x$ltdl_mode" = "xsubproject"
+ # && test "x$macrodir" = "x$subproject_macrodir"
+ then
+ func_install_pkgmacro_subproject
+
+ # 3. Not a subproject, but macrodir was specified in parent:
+ elif test -n "$macrodir"; then
+ func_install_pkgmacro_parent
+
+ # 4. AC_CONFIG_MACRO_DIR was not specified:
+ else
+ func_verbose "AC_CONFIG_MACRO_DIR not defined, not copying libtool macros."
+ fi
}
-# func_check_macros
-# Sanity check macros from aclocal.m4 against installed versions.
-func_check_macros ()
+# func_massage_pkgltdl_files [glob_exclude]
+# @pkgltdl_files\@ is substituted as per its value in Makefile.am; this
+# function massages it into a suitable format for func_copy_some_files.
+func_massage_pkgltdl_files ()
{
- $debug_cmd
-
- $require_ac_ltdl_dir
- $require_ac_macro_dir
- $require_am_macro_dir
- $require_aux_dir
- $require_configure_ac
- $require_ltdl_dir
- $require_ltdl_mode
- $require_macro_dir
- $require_seen_ltdl
- $require_seen_libtool
+ $opt_debug
+ pkgltdl_files= # GLOBAL VAR
- $opt_quiet && return
- test -n "$configure_ac" || return
+ my_glob_exclude="$1"
- ac_config_macro_dir_advised=false
+ # Massage a value for pkgltdl_files from the value used in Makefile.am
+ for my_filename in @pkgltdl_files@; do
- if test -z "$ac_macro_dir$am_macro_dir"; then
- my_missing=
- for file in $pkgmacro_files; do
- case $file in
- argz.m4|ltdl.m4) $opt_ltdl || continue ;;
- esac
- if test -f "aclocal.m4"; then
- func_aclocal_update_check $file
- $func_aclocal_update_check_result || continue
- fi
- my_missing="$my_missing $file"
- done
+ # Strip surplus leading 'libltdl/':
+ my_filename=`expr "X$my_filename" : 'Xlibltdl/\(.*\)'`
- if test -n "$my_missing"; then
- func_echo "You should add the contents of the following files to \`aclocal.m4':"
- for need in $my_missing; do
- func_echo " \`$aclocaldir/$need'"
- done
+ # ignore excluded filenames
+ if test -n "$my_glob_exclude"; then
+ my_cont=false
+ eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
+ $my_cont && continue
fi
- fi
- ## ---------------------------------------------------------- ##
- ## Since we return early here when --no-warn was given: ##
- ## DO NOT PUT ANYTHING BUT UPGRADE ADVICE MESSAGES BELOW HERE ##
- ## ---------------------------------------------------------- ##
-
- $opt_warning || return
-
- $seen_libtool ||
- func_echo "Remember to add \`LT_INIT' to $configure_ac."
-
- # Suggest using LTDL_INIT if appropriate:
- $opt_ltdl && if test : != "$seen_ltdl"; then
- case $ltdl_mode in
- subproject) ltdl_init_args= ;;
- *) ltdl_init_args="([$ltdl_mode])" ;;
+ # ignore duplicates
+ case :$pkgltdl_files: in
+ *:$my_filename:*) ;;
+ *) pkgltdl_files="$pkgltdl_files:$my_filename" ;;
esac
- func_echo "Remember to add \`LTDL_INIT$ltdl_init_args' to $configure_ac."
- fi
-
- if $opt_ltdl; then
- # Remind the user to call LT_CONFIG_LTDL_DIR:
- test -n "$ac_ltdl_dir" ||
- func_echo "Remember to add \`LT_CONFIG_LTDL_DIR([$ltdl_dir])' to \`$configure_ac'."
-
- # For nonrecursive mode, warn about continued use of Makefile.inc:
- # FIXME: Remove in 2013
- # (along with last minute rename in func_install_pkgltdl_files)
- if test nonrecursive = "$ltdl_mode"; then
- if func_grep "^-\?include $ltdl_dir/Makefile.inc\$" Makefile.am;
- then
- func_error "Use of \`include $ltdl_dir/Makefile.inc' is deprecated!"
- func_echo "Consider updating to use of \`include $ltdl_dir/ltdl.mk' in Makefile.am."
- fi
- fi
- fi
-
- # Suggest modern idioms for storing autoconf macros:
- $ac_config_macro_dir_advised || if test -z "$ac_macro_dir" || test . = "$macro_dir"; then
- func_echo "Consider adding \`AC_CONFIG_MACRO_DIR([m4])' to $configure_ac and"
- func_echo "rerunning $progname, to keep the correct libtool macros in-tree."
- ac_config_macro_dir_advised=:
-
- elif test -z "$ac_macro_dir"; then
- func_echo "Consider adding \`AC_CONFIG_MACRO_DIR([$macro_dir])' to $configure_ac,"
- func_echo "and rerunning $progname and aclocal."
- ac_config_macro_dir_advised=:
- fi
-
- if test -z "$am_macro_dir$ac_macro_dir"; then
- func_echo "Consider adding \`-I m4' to ACLOCAL_AMFLAGS in Makefile.am."
-
- elif test -z "$am_macro_dir"; then
- func_echo "Consider adding \`-I $macro_dir' to ACLOCAL_AMFLAGS in Makefile.am."
- fi
-
- # Don't trace for this, we're just checking the user didn't invoke it
- # directly from configure.ac.
- $SED 's|dnl .*$||; s|# .*$||' "$configure_ac" | grep AC_PROG_RANLIB >/dev/null &&
- func_echo "\`AC_PROG_RANLIB' is rendered obsolete by \`LT_INIT'"
+ done
- # FIXME: Ensure ltmain.sh, libtool.m4 and ltdl.m4 are from the same release
+ # strip spurious leading `:'
+ pkgltdl_files=`$ECHO "$pkgltdl_files" | $SED 's,^:*,,'`
}
-
-## ------------------##
-## Helper functions. ##
-## ------------------##
-
-# This section contains the helper functions used by the rest of
-# this script.
-
-
-# func_autoconf_configure MAYBE-CONFIGURE-FILE
-# ------------------------------------------
-# Ensure that MAYBE-CONFIGURE-FILE is the name of a file in the current
-# directory which contains an uncommented call to AC_INIT.
-func_autoconf_configure ()
+# func_install_pkgltdl_files
+# Install copies of the libltdl files into this package. Any auxiliary
+# or m4 macro files needed in the libltdl tree will also be copied by
+# func_install_pkgconfig_files and func_install_pkgmacro_files resp.
+func_install_pkgltdl_files ()
{
- $debug_cmd
-
- _G_sed_no_comment='s|#.*$||; s|^dnl .*$||; s| dnl .*$||;'
- _G_ac_init=
-
- # If we were passed a genuine file, make sure it calls AC_INIT.
- test -f "$1" \
- && _G_ac_init=`$SED "$_G_sed_no_comment" "$1" |grep AC_INIT`
-
- # Otherwise it is not a genuine Autoconf input file.
- test -n "$_G_ac_init"
- _G_status=$?
-
- test 0 -ne $_G_status \
- && func_verbose "\`$1' not using Autoconf"
-
- (exit $_G_status)
-}
+ $opt_debug
+ $opt_ltdl || return
+ # Remove any lingering files that my have been installed by some
+ # previous libtoolize release:
+ $opt_force && for file in $all_pkgltdl_files; do
+ test -f "$ltdldir/$file" && func_verbose "rm -f '$ltdldir/$file'"
+ rm -f "$ltdldir/$file"
+ done
-## -------------------- ##
-## Resource management. ##
-## -------------------- ##
+ # Copy all the files from installed libltdl to this project, if the
+ # user specified `--ltdl'.
+ $opt_quiet || if test -n "$ac_ltdldir"; then
+ pkgltdl_header="putting libltdl files in LT_CONFIG_LTDL_DIR, \`$ac_ltdldir'."
+ elif test -n "$ltdldir"; then
+ pkgltdl_header="putting libltdl files in \`$ltdldir'."
+ fi
-# This section contains definitions for functions that each ensure a
-# particular resource (a file, or a non-empty configuration variable for
-# example) is available, and if appropriate to extract default values
-# from pertinent package files. Where a variable already has a non-
-# empty value (as set by the package's `bootstrap.conf'), that value is
-# used in preference to deriving the default. Call them using their
-# associated `require_*' variable to ensure that they are executed, at
-# most, once.
-#
-# Some of the require functions are very similar, so we generate those
-# as this file is sourced. They look complicated, but they are the same
-# as normal function declarations wrapped in "eval '<definition>'", so
-# that embedded single quotes need to be escaped, and wherever a symbol
-# is generated, we drop out of the single quotes and expand a variable
-# that holds the symbol.
-#
-# After that, the rest appear in asciibetical order.
-
-for base in aux_dir macro_dir; do
-
- # require_ltdl_relative_aux_dir
- # require_ltdl_relative_macro_dir
- # -------------------------------
- # Set ltdl_relative_aux_dir to the relative path from $ltdl_dir to
- # the parent project auxiliary directory, and similarly for relative
- # macro directory.
- r=ltdl_relative_$base # _r_esource acquired by calling this function
- v=require_$r # _v_ariable pointing to the function
- f=func_$v # _f_unction name
- eval $v'='$f'
- '$f' ()
- {
- $debug_cmd
-
- $require_ltdl_dir
- $require_'$base'
-
- func_relative_path "$ltdl_dir" "$'$base'"
- '$r'=$func_relative_path_result
-
- test -n "$'$r'" && func_verbose "'$r'='\'\$$r\''"
-
- '$v'=:
- }'
- # Some of these functions need to acquire the resource managed by the
- # lexically preceding function; $o serves that purpose.
- o=$r
-
-done
-
-for base in '' ltdl_; do
- if test ltdl_ = "$base"; then p='$pkgltdldir/'; else p=; fi
-
- # require_Makefile_am
- # require_ltdl_Makefile_am
- # ------------------------
- # If not already set, set Makefile_am to `Makefile.am' if that file is
- # present in the current directory, and similarly for
- # `$pkgltdldir/Makefile.am'.
- r=${base}Makefile_am
- v=require_$r
- f=func_$v
- eval $v'='$f'
- '$f' ()
- {
- $debug_cmd
-
- test -n "$'$r'" || '$r'='$p'Makefile.am
-
- if test -f "$'$r'"; then
- func_verbose "found \`$'$r\''"
+ # These files are handled specially, depending on ltdl_mode:
+ if test "x$ltdl_mode" = "xsubproject"; then
+ func_massage_pkgltdl_files 'Makefile.inc'
else
- '$r'=
+ func_massage_pkgltdl_files 'Makefile.am|Makefile.in*|aclocal.m4|config*'
fi
- '$v'=:
- }'
- o=$r
-
-
- # require_aclocal_amflags
- # require_ltdl_aclocal_amflags
- # ----------------------------
- # Extract `$aclocal_amflags' from `Makefile.am' if present, and
- # similarly for `libltdl/Makefile.am'.
- r=${base}aclocal_amflags
- v=require_$r
- f=func_$v
- eval $v'='$f'
- '$f' ()
- {
- $debug_cmd
-
- $require_'$o'
-
- test -n "$'$o'" && {
- _G_sed_extract_aclocal_amflags='\''s|#.*$||
- /^[ ]*ACLOCAL_AMFLAGS[ ]*=/ {
- s|^.*=[ ]*\(.*\)|'$r'="\1"|
- p
- }'\''
-
- _G_aclocal_flags_cmd=`$SED -n "$_G_sed_extract_aclocal_amflags" \
- "$'$o'"`
- eval "$_G_aclocal_flags_cmd"
-
- test -n "$'$r'" && func_verbose "'$r'='\$$r\''"
- }
-
- '$v'=:
- }'
- o=$r
-
-
- # require_am_macro_dir
- # require_ltdl_am_macro_dir
- # -------------------------
- # Set am_macro_dir to the first directory specified in
- # ACLOCAL_AMFLAGS from `Makefile.am', and similarly for
- # 'libltdl/Makefile.am'.
- r=${base}am_macro_dir
- v=require_$r
- f=func_$v
- eval $v'='$f'
- '$f' ()
- {
- $debug_cmd
-
- $require_'$o'
-
- _G_minus_I_seen=false
- for _G_arg in $'$o'; do
- case $_G_minus_I_seen,$_G_arg in
- :,*) '$r'=$_G_arg; break ;;
- *,-I) _G_minus_I_seen=: ;;
- *,-I*) '$r'=`expr x$_G_opt : '\''x-I\(.*\)$'\''`; break ;;
- esac
- done
-
- test -n "$'$r'" && func_verbose "'$r'='\'\$$r\''"
-
- '$v'=:
- }'
- o=$r
-
-done
-
-
-# require_Makefile_am_filter
-# --------------------------
-# Set `Makefile_am_filter' ready for passing to func_copy when libltdl's
-# stock Makefile.am contents need to be filtered to work in recursive
-# mode.
-require_Makefile_am_filter=func_require_Makefile_am_filter
-func_require_Makefile_am_filter ()
-{
- $debug_cmd
-
- $require_ltdl_mode
+ func_copy_some_files "$pkgltdl_files" \
+ "$pkgltdldir/libltdl" "$ltdldir" pkgltdl_header
+ # For recursive ltdl modes, copy a suitable Makefile.{am,inc}:
case $ltdl_mode in
recursive)
- Makefile_am_filter='
- /^[^#]/{
- s|(LIBOBJS)|(ltdl_LIBOBJS)|g
- s|(LTLIBOBJS)|(ltdl_LTLIBOBJS)|g
- }'
+ func_fixup_Makefile "Makefile.am" "$pkgltdldir/libltdl" "$ltdldir"
;;
-
- subproject)
- $require_ltdl_ac_aux_dir
- $require_ltdl_am_macro_dir
- $require_ltdl_relative_aux_dir
- $require_ltdl_relative_macro_dir
-
- test "$ltdl_am_macro_dir" = "$ltdl_relative_macro_dir" || {
- my_am_macro_dir_regex=`$ECHO "\
-$ltdl_am_macro_dir" |$SED "$sed_make_literal_regex"`
-
- Makefile_am_filter="
- /^ACLOCAL_AMFLAGS = /{
- s| -I $my_am_macro_dir_regex\$| -I $ltdl_relative_macro_dir|
- }
- s|dir)/$my_am_macro_dir_regex|dir)/$ltdl_relative_macro_dir|g"
- }
-
- test "$ltdl_ac_aux_dir" = "$ltdl_relative_aux_dir" || {
- my_aux_dir_regex=`$ECHO "\
-$ltdl_ac_aux_dir" |$SED "$sed_make_literal_regex"`
-
- Makefile_am_filter="$Makefile_am_filter
- s|$my_aux_dir_regex|$ltdl_relative_aux_dir|g
- s|/\./|/|g
- "
- }
+ nonrecursive)
+ func_fixup_Makefile "Makefile.inc" "$pkgltdldir/libltdl" "$ltdldir"
;;
esac
-
- require_Makefile_am_filter=:
}
-# require_Makefile_inc_filter
-# ---------------------------
-# Set `Makefile_inc_filter' ready for passing to func_copy in order for
-# the contents of Makefile.inc to match the nonrecursive libltdl
-# directory into which it is copied.
-require_Makefile_inc_filter=func_require_Makefile_inc_filter
-func_require_Makefile_inc_filter ()
+# func_massage_pkgconfig_files [glob_exclude]
+# @pkgconfig_files\@ is substituted as per its value in Makefile.am; this
+# function massages it into a suitable format for func_copy_some_files.
+func_massage_pkgconfig_files ()
{
- $debug_cmd
-
- $require_ltdl_dir
-
- # Note that we strip comments right here, rather than rely on
- # using a $SED that allows comments.
- my_uscore=`$ECHO "$ltdl_dir" | $SED 's|[/.+-]|_|g'`
- Makefile_inc_filter=`$ECHO '
- /^[^#]/{
-
- # Use only libltdl conditional objects.
- s|(LIBOBJS)|(ltdl_LIBOBJS)|g
- s|(LTLIBOBJS)|(ltdl_LTLIBOBJS)|g
-
- # Convert libltdl path and variable sections to $ltdl_dir.
- s|libltdl_|@my_uscore@_|
- s|libltdl/|@ltdl_dir@/|
- s|: libltdl/|: @ltdl_dir@/|
- s| -Ilibltdl | -I@ltdl_dir@ |
- s|\$(libltdl_|\$(@my_uscore@_|
- s|)/libltdl |)/@ltdl_dir@ |
- s|@my_uscore@|'"$my_uscore"'|g
- s|@ltdl_dir@|'"$ltdl_dir"'|g
-
- }' | $SED '/^[ ]*#/d;/^$/d'`
-
- require_Makefile_inc_filter=:
-}
-
+ $opt_debug
+ pkgconfig_files= # GLOBAL VAR
-# require_ac_aux_dir
-# ------------------
-# Extract ac_aux_dir from AC_CONFIG_AUX_DIR.
-require_ac_aux_dir=func_require_ac_aux_dir
-func_require_ac_aux_dir ()
-{
- $debug_cmd
+ my_glob_exclude="$1"
- $require_configure_ac
+ # Massage a value for pkgconfig_files from the value used in Makefile.am
+ for my_filename in @pkgconfig_files@; do
- test -n "$configure_ac" && {
- func_extract_trace AC_CONFIG_AUX_DIR
- ac_aux_dir=$func_extract_trace_result
+ # ignore excluded filenames
+ if test -n "$my_glob_exclude"; then
+ my_cont=false
+ eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
+ $my_cont && continue
+ fi
- case $ac_aux_dir in
- *\$*)
- func_fatal_error "\
-cannot expand unknown variable in AC_CONFIG_AUX_DIR argument."
- ;;
+ # ignore duplicates
+ case :$pkgconfig_files: in
+ *:$my_filename:*) ;;
+ *) pkgconfig_files="$pkgconfig_files:$my_filename" ;;
esac
- }
-
- test -n "$ac_aux_dir" && func_verbose "ac_aux_dir='$ac_aux_dir'"
+ done
- require_ac_aux_dir=:
+ # strip spurious leading `:'
+ pkgconfig_files=`$ECHO "$pkgconfig_files" | $SED 's,^:*,,'`
}
-# require_ac_ltdl_dir
-# -------------------
-# Extract ac_ltdl_dir from LT_CONFIG_LTDL_DIR.
-require_ac_ltdl_dir=func_require_ac_ltdl_dir
-func_require_ac_ltdl_dir ()
+# func_install_pkgconfig_subproject
+# Unless --quiet was passed, display a message. Then copy pkgconfig_files
+# from libtool installation tree to subproject libltdl tree.
+func_install_pkgconfig_subproject ()
{
- $debug_cmd
-
- $require_configure_ac
+ $opt_debug
- if test -n "$configure_ac"; then
- func_extract_trace LT_CONFIG_LTDL_DIR
- ac_ltdl_dir=`expr "$func_extract_trace_result" : '\([^:]*\)'`
+ # Remove any lingering files that my have been installed by some
+ # previous libtoolize release:
+ $opt_force && for file in $all_pkgconfig_files; do
+ test -f "$subproject_auxdir/$file" && func_verbose "rm -f '$subproject_auxdir/$file'"
+ rm -f "$subproject_auxdir/$file"
+ done
- case $ac_ltdl_dir in
- *\$*)
- func_fatal_error "\
-cannot expand unknown variable in LT_CONFIG_LTDL_DIR argument."
- ;;
- esac
+ # Copy all the files from installed libltdl to this project, if the
+ # user specified an auxdir.
+ $opt_quiet || if test "x$ac_auxdir" = "x$subproject_auxdir"; then
+ pkgconfig_header="putting auxiliary files in AC_CONFIG_AUX_DIR, \`$subproject_auxdir'."
+ elif test -n "$auxdir"; then
+ pkgconfig_header="putting auxiliary files in \`$auxdir'."
fi
- # Strip trailing slashes.
- ac_ltdl_dir=`echo "$ac_ltdl_dir" |$SED 's|/*$||'`
-
- require_ac_ltdl_dir=:
-}
-
-
-# require_ac_ltdl_mode
-# --------------------
-# Extract mode name from LTDL_INIT options.
-require_ac_ltdl_mode=func_require_ac_ltdl_mode
-func_require_ac_ltdl_mode ()
-{
- $debug_cmd
-
- $require_ac_ltdl_options
-
- case " $ac_ltdl_options " in
- *" nonrecursive "*) ac_ltdl_mode=nonrecursive ;;
- *" recursive "*) ac_ltdl_mode=recursive ;;
- *" subproject "*) ac_ltdl_mode=subproject ;;
- esac
-
- require_ac_ltdl_mode=:
+ func_copy_some_files "$pkgconfig_files" \
+ "$pkgdatadir" "$ltdldir" pkgconfig_header
}
-# require_ac_ltdl_options
-# -----------------------
-# Extract ac_ltdl_options from LTDL_INIT.
-require_ac_ltdl_options=func_require_ac_ltdl_options
-func_require_ac_ltdl_options ()
+# func_install_pkgconfig_parent
+# Unless --quiet was passed, or AC_CONFIG_AUX_DIR was not seen, display a
+# message. Then update appropriate auxiliary files if newer ones are
+# available from the libtool installation tree.
+func_install_pkgconfig_parent ()
{
- $debug_cmd
-
- $require_configure_ac
+ $opt_debug
- if test -n "$configure_ac"; then
- func_extract_trace LTDL_INIT
- ac_ltdl_options=$func_extract_trace_result
+ # Remove any lingering files that my have been installed by some
+ # previous libtoolize release:
+ $opt_force && for file in $all_pkgconfig_files; do
+ test -f "$auxdir/$file" && func_verbose "rm -f '$auxdir/$file'"
+ rm -f "$auxdir/$file"
+ done
- case $ac_ltdl_options in
- *\$*)
- func_fatal_error "\
-cannot expand unknown variable in LTDL_INIT argument."
- ;;
- esac
+ if test -n "$ac_auxdir"; then
+ pkgconfig_header="putting auxiliary files in AC_CONFIG_AUX_DIR, \`$ac_auxdir'."
+ elif test -n "$auxdir" || test "x$ltdldir" = "x."; then
+ pkgconfig_header="putting auxiliary files in \`$auxdir'."
fi
- require_ac_ltdl_mode=:
-}
-
-
-# require_ac_macro_dir
-# --------------------
-# Extract ac_macro_dir from AC_CONFIG_MACRO_DIR.
-require_ac_macro_dir=func_require_ac_macro_dir
-func_require_ac_macro_dir ()
-{
- $debug_cmd
-
- $require_configure_ac
-
- if test -n "$configure_ac"; then
- func_extract_trace AC_CONFIG_MACRO_DIR
- ac_macro_dir=$func_extract_trace_result
+ if $opt_install; then
+ func_config_update config.guess \
+ "$pkgdatadir/config" "$auxdir" pkgconfig_header
+ func_config_update config.sub \
+ "$pkgdatadir/config" "$auxdir" pkgconfig_header
+ func_install_update install-sh \
+ "$pkgdatadir/config" "$auxdir" pkgconfig_header
fi
-
- require_ac_macro_dir=:
+ func_ltmain_update ltmain.sh \
+ "$pkgdatadir/config" "$auxdir" pkgconfig_header
}
-# require_aclocal_m4_filter
-# -------------------------
-# Set `aclocal_m4_filter' ready for passing to func_copy when libltdl's
-# stock aclocal.m4 contents need to be filtered to work in recursive
-# mode.
-require_aclocal_m4_filter=func_require_aclocal_m4_filter
-func_require_aclocal_m4_filter ()
-{
- $debug_cmd
-
- $require_ltdl_am_macro_dir
- $require_ltdl_relative_macro_dir
-
- test "$ltdl_am_macro_dir" = "$ltdl_relative_macro_dir" || {
- my_am_macro_dir_regex=`$ECHO "\
-$ltdl_am_macro_dir" |$SED "$sed_make_literal_regex"`
-
- # Tricky [m] quoting to stop m4sh processing from flagging an
- # undefined macro.
- aclocal_m4_filter="
- /^[m]4_include(/{
- s|$my_am_macro_dir_regex|$ltdl_relative_macro_dir|g
- }"
- }
-
- require_aclocal_m4_filter=:
-}
-
-
-# require_aux_dir
-# ---------------
-# Set aux_dir according to AC_CONFIG_AUX_DIR or else use the same
-# heuristics as Autoconf to intuit an appropriate setting.
-require_aux_dir=func_require_aux_dir
-func_require_aux_dir ()
+# func_install_pkgconfig_files
+# Install copies of the auxiliary files into this package according to
+# the whether libltdl is included as a subproject, and whether the parent
+# shares the AC_CONFIG_AUX_DIR setting.
+func_install_pkgconfig_files ()
{
- $debug_cmd
-
- $require_ac_aux_dir
-
- test -z "$aux_dir" && aux_dir=$ac_aux_dir
-
- # Subproject ltdl without $configure_ac keeps pkgauxfiles in
- # specified --ltdl optarg directory.
- test -z "$aux_dir" && $opt_ltdl && {
- $require_configure_ac
-
- test -n "$configure_ac" || {
- $require_ltdl_dir
- $require_ltdl_mode
-
- test subproject = "$ltdl_mode" && aux_dir=$ltdl_dir
- }
- }
-
- test -z "$aux_dir" && {
- # Try to intuit aux_dir using the same heuristic as Autoconf.
- for _G_dir in . .. ../..; do
- if test -f "$_G_dir/install-sh" || test -f "$_G_dir/install.sh"
- then
- aux_dir=$_G_dir
- break
- fi
- done
- }
-
- # Use the current directory if all else fails.
- test -z "$aux_dir" && aux_dir=.
-
- require_aux_dir=:
-}
+ $opt_debug
+ func_massage_pkgconfig_files
+ # 1. Parent shares auxdir with subproject ltdl:
+ if $opt_ltdl && test "x$ltdl_mode" = "xsubproject" &&
+ test "x$ac_auxdir" = "x$subproject_auxdir"
+ then
+ func_install_pkgconfig_subproject
-# require_configure_ac
-# --------------------
-# Ensure that there is a `configure.ac' or `configure.in' file in this
-# directory, and that `$configure_ac' contains its name.
-require_configure_ac=func_require_configure_ac
-func_require_configure_ac ()
-{
- $debug_cmd
+ # 2. Parent has separate auxdir to subproject ltdl:
+ elif $opt_ltdl && test "x$ltdl_mode" = "xsubproject"
+ # && test "x$auxdir" != "x$subproject_auxdir" is implied
+ then
+ if $seen_autoconf; then
+ func_install_pkgconfig_parent
+ fi
+ func_install_pkgconfig_subproject
- test -z "$configure_ac" \
- && func_autoconf_configure configure.ac && configure_ac=configure.ac
- test -z "$configure_ac" \
- && func_autoconf_configure configure.in && configure_ac=configure.in
- test -z "$configure_ac" \
- || func_verbose "found \`$configure_ac'"
+ # 3. Not subproject, but AC_CONFIG_AUX_DIR was used in parent:
+ elif test -n "$ac_auxdir" || test "x$auxdir" = "x."; then
+ func_install_pkgconfig_parent
- require_configure_ac=:
+ # 4. AC_CONFIG_AUX_DIR was not specified:
+ else
+ func_verbose "AC_CONFIG_AUX_DIR not defined, not copying libtool auxiliary files."
+ fi
}
-# require_configure_ac_filter
-# ---------------------------
-# Set `configure_ac_filter' ready for passing to func_copy when
-# libltdl's stock configure.ac contents need to be filtered to work in
-# subproject mode.
-require_configure_ac_filter=func_require_configure_ac_filter
-func_require_configure_ac_filter ()
+# func_nonemptydir_p dirvar
+# DIRVAR is the name of a variable to evaluate. Unless DIRVAR names
+# a directory that exists and is non-empty abort with a diagnostic.
+func_nonemptydir_p ()
{
- $debug_cmd
-
- $require_ltdl_ac_aux_dir
- $require_ltdl_relative_aux_dir
-
- test "$ltdl_ac_aux_dir" = "$ltdl_relative_aux_dir" || {
- my_aux_dir_regex=`$ECHO "\
-$ltdl_ac_aux_dir" |$SED "$sed_make_literal_regex"`
+ $opt_debug
+ my_dirvar="$1"
+ my_dir=`eval echo "\\\$$my_dirvar"`
- configure_ac_filter="
- s|$my_aux_dir_regex|$ltdl_relative_aux_dir|g
- "
- }
+ # Is it a directory at all?
+ test -d "$my_dir" \
+ || func_fatal_error "\$$my_dirvar is not a directory: \`$my_dir'"
- require_configure_ac_filter=:
+ # check that the directories contents can be ls'ed
+ test -n "`{ cd $my_dir && ls; } 2>/dev/null`" \
+ || func_fatal_error "can not list files: \`$my_dir'"
}
-# require_ltdl_ac_aux_dir
-# -----------------------
-# This needs to work in subproject mode, when GNU M4 may not be
-# available and hence extract-trace can't be used. But since we
-# installed libltdl/configure.ac, then we already know what value
-# we used.
-require_ltdl_ac_aux_dir=func_require_ltdl_ac_aux_dir
-func_require_ltdl_ac_aux_dir ()
+# func_check_macros
+# Sanity check macros from aclocal.m4 against installed versions.
+func_check_macros ()
{
- $debug_cmd
-
- ltdl_ac_aux_dir="@ltdl_ac_aux_dir@"
- func_verbose "ltdl_ac_aux_dir='$ltdl_ac_aux_dir'"
+ $opt_debug
+ $opt_quiet && return
+ $seen_autoconf || return
- require_ltdl_ac_aux_dir=:
-}
+ ac_config_macro_dir_advised=false
+ if test -n "$ac_macrodir$ltdldir" && test -z "$macrodir"; then
+ my_ac_config_macro_srcdir="$aclocaldir"
+ if $opt_ltdl && test "$macrodir" != "$subproject_macrodir"; then
+ my_ac_config_macro_srcdir="$subproject_macrodir"
+ fi
-# require_ltdl_dir
-# ----------------
-# If both are specified, ensure both --ltdl=LTDL_DIR and
-# LT_CONFIG_LTDL_DIR agree, and set ltdl_dir to the value of either.
-require_ltdl_dir=func_require_ltdl_dir
-func_require_ltdl_dir ()
-{
- $debug_cmd
+ my_needed="libtool.m4 ltoptions.m4 ltversion.m4 ltsugar.m4 lt~obsolete.m4"
+ $opt_ltdl && my_needed="$my_needed argz.m4 ltdl.m4"
- $require_ac_ltdl_dir
+ if test -f "aclocal.m4"; then
+ for need in $my_needed; do
+ func_aclocal_update_check $need
+ $func_aclocal_update_check_result && my_missing="$my_missing $need"
+ done
+ else
+ my_missing="$my_needed"
+ fi
- test -z "$ltdl_dir" && ltdl_dir=$ac_ltdl_dir
- test -z "$ltdl_dir" && $opt_ltdl && ltdl_dir=libltdl
+ if test -n "$my_missing"; then
+ func_echo "You should add the contents of the following files to \`aclocal.m4':"
+ for need in $my_missing; do
+ func_echo " \`$my_ac_config_macro_srcdir/$need'"
+ done
- if test -n "$ac_ltdl_dir"; then
- test "$ac_ltdl_dir" = "$ltdl_dir" || func_fatal_error "\
---ltdl='$ltdl_dir' does not match LT_CONFIG_LTDL_DIR($ac_ltdl_dir)"
+ if test "$my_ac_config_macro_srcdir" != "$aclocaldir"; then
+ func_echo "or else add \`AC_CONFIG_MACRO_DIR([$subproject_macrodir])' to $configure_ac."
+ ac_config_macro_dir_advised=:
+ fi
+ fi
fi
- require_ltdl_dir=:
-}
-
-
-# require_ltdl_mode
-# -----------------
-# If both are specified, ensure both command line setting and LTDL_INIT
-# option agree, and set ltdl_mode to the value of either.
-require_ltdl_mode=func_require_ltdl_mode
-func_require_ltdl_mode ()
-{
- $debug_cmd
-
- $require_ac_ltdl_mode
+ ## ---------------------------------------------------------- ##
+ ## Since we return early here when --no-warn was given: ##
+ ## DO NOT PUT ANYTHING BUT UPGRADE ADVICE MESSAGES BELOW HERE ##
+ ## ---------------------------------------------------------- ##
- test -z "$ltdl_mode" && ltdl_mode=$ac_ltdl_mode
- test -z "$ltdl_mode" && {
- $require_ltdl_dir
+ $opt_warning || return
- test -n "$ltdl_dir" && ltdl_mode=subproject
- }
+ $seen_libtool ||
+ func_echo "Remember to add \`LT_INIT' to $configure_ac."
- if test -n "$ac_ltdl_mode"; then
- test "$ac_ltdl_mode" = "$ltdl_mode" || func_fatal_error "\
---$ltdl_mode does not match LTDL_INIT($ac_ltdl_mode)"
+ # Suggest using LTDL_INIT if appropriate:
+ $opt_ltdl && if test x$seen_ltdl != x:; then
+ case $ltdl_mode in
+ subproject) ltdl_init_args="" ;;
+ *) ltdl_init_args="([$ltdl_mode])" ;;
+ esac
+ func_echo "Remember to add \`LTDL_INIT$ltdl_init_args' to $configure_ac."
fi
- func_verbose "ltdl mode='$ltdl_mode'"
-
- require_ltdl_mode=:
-}
-
-
-# require_macro_dir
-# -----------------
-# If both are specified, ensure both ACLOCAL_AMFLAGS and
-# AC_CONFIG_MACRO_DIR agree, and set macro_dir to the value of either.
-require_macro_dir=func_require_macro_dir
-func_require_macro_dir ()
-{
- $debug_cmd
-
- $require_ac_macro_dir
- $require_am_macro_dir
-
- # AC_CONFIG_MACRO_DIR takes precedence.
- macro_dir=$ac_macro_dir
-
- # Followed by first -I optarg from ACLOCAL_AMFLAGS.
- test -z "$macro_dir" && macro_dir=$am_macro_dir
-
- # Subproject ltdl without either of the above keeps macros in
- # specified --ltdl optarg subdirectory.
- test -z "$macro_dir" && $opt_ltdl && {
- $require_ltdl_dir
- $require_ltdl_mode
-
- test subproject = "$ltdl_mode" && macro_dir=$ltdl_dir/m4
- }
-
- # Use ./m4 as the last resort.
- test -z "$macro_dir" && macro_dir=m4
-
- # Diagnose conflicts.
- if test -n "$ac_macro_dir" && test -n "$am_macro_dir"; then
- test "$ac_macro_dir" = "$am_macro_dir" || func_fatal_error "\
-AC_CONFIG_MACRO_DIR([$ac_macro_dir]) conflicts with ACLOCAL_AMFLAGS=-I $am_macro_dir."
+ if $opt_ltdl; then
+ # Remind the user to call LT_CONFIG_LTDL_DIR:
+ test -n "$ac_ltdldir" ||
+ func_echo "Remember to add \`LT_CONFIG_LTDL_DIR([$ltdldir])' to \`$configure_ac'."
+
+ # For subproject mode, offer some suggestions for avoiding duplicate
+ # files in a project that uses libltdl:
+ if test "x$ltdl_mode" = "xsubproject"; then
+ test "$subproject_auxdir" = "$auxdir" ||
+ func_echo "Consider using \`AC_CONFIG_AUX_DIR([$subproject_auxdir])' in $configure_ac."
+ $ac_config_macro_dir_advised || test "$subproject_macrodir" = "$macrodir" ||
+ func_echo "Consider using \`AC_CONFIG_MACRO_DIR([$subproject_macrodir])' in $configure_ac."
+ ac_config_macro_dir_advised=:
+ fi
fi
- require_macro_dir=:
-}
-
-
-# require_seen_ltdl
-# -----------------
-# Determine from contents of $configure_ac whether this project contains
-# libltdl.
-require_seen_ltdl=func_require_seen_ltdl
-func_require_seen_ltdl ()
-{
- $debug_cmd
-
- $require_configure_ac
+ # Suggest modern idioms for storing autoconf macros:
+ $ac_config_macro_dir_advised || if test -z "$ac_macrodir" || test x"$macrodir" = x.; then
+ func_echo "Consider adding \`AC_CONFIG_MACRO_DIR([m4])' to $configure_ac and"
+ func_echo "rerunning $progname, to keep the correct libtool macros in-tree."
+ ac_config_macro_dir_advised=:
- if test -n "$configure_ac"; then
- func_extract_trace AC_LIB_LTDL,AC_WITH_LTDL,LT_WITH_LTDL,LTDL_INIT
- test -n "$func_extract_trace_result" && seen_ltdl=:
+ elif test -z "$ac_macrodir$ltdldir"; then
+ func_echo "Consider adding \`AC_CONFIG_MACRO_DIR([$macrodir])' to $configure_ac,"
+ func_echo "and rerunning $progname and aclocal."
+ ac_config_macro_dir_advised=:
fi
- test -n "$seen_ltdl" || seen_ltdl=false
-
- require_seen_ltdl=:
-}
-
-
-# require_seen_libtool
-# --------------------
-# Determine from contents of $configure_ac whether this project is using
-# Libtool to compile (some of) its objects.
-require_seen_libtool=func_require_seen_libtool
-func_require_seen_libtool ()
-{
- $debug_cmd
- $require_configure_ac
+ if test -z "$am_macrodir$macrodir"; then
+ func_echo "Consider adding \`-I m4' to ACLOCAL_AMFLAGS in Makefile.am."
- if test -n "$configure_ac"; then
- func_extract_trace AM_PROG_LIBTOOL,AC_PROG_LIBTOOL,LT_INIT
- test -n "$func_extract_trace_result" && seen_libtool=:
+ elif test -z "$am_macrodir"; then
+ if $opt_ltdl && test "x$ltdl_mode" = "xsubproject" && test "$subproject_macrodir" != "$macrodir"; then
+ func_echo "Consider adding \`-I $subproject_macrodir' to ACLOCAL_AMFLAGS in Makefile.am."
+ else
+ func_echo "Consider adding \`-I $macrodir' to ACLOCAL_AMFLAGS in Makefile.am."
+ fi
fi
- test -n "$seen_libtool" || seen_libtool=false
- require_seen_libtool=:
-}
+ # Don't trace for this, we're just checking the user didn't invoke it
+ # directly from configure.ac.
+ $SED 's,dnl .*$,,; s,# .*$,,' "$configure_ac" | grep AC_PROG_RANLIB >/dev/null &&
+ func_echo "\`AC_PROG_RANLIB' is rendered obsolete by \`LT_INIT'"
+ # FIXME: Ensure ltmain.sh, libtool.m4 and ltdl.m4 are from the same release
+}
## ----------- ##
@@ -1741,35 +1447,55 @@ func_require_seen_libtool ()
# ensure a clean upgrade.
# Do not remove config.guess nor config.sub, we don't install them
# without --install, and the project may not be using Automake.
- all_pkgaux_files="compile install-sh depcomp missing ltmain.sh snippet/_Noreturn.h snippet/arg-nonnull.h snippet/c++defs.h snippet/warn-on-use.h"
+ all_pkgconfig_files="ltmain.sh"
all_pkgmacro_files="argz.m4 libtool.m4 ltdl.m4 ltoptions.m4 ltsugar.m4 ltversion.in ltversion.m4 lt~obsolete.m4"
- all_pkgltdl_files="COPYING.LIB Makefile Makefile.in Makefile.inc Makefile.am README acinclude.m4 aclocal.m4 argz_.h argz.c config.h.in config-h.in configure configure.ac configure.in libltdl/lt__alloc.h libltdl/lt__dirent.h libltdl/lt__glibc.h libltdl/lt__private.h libltdl/lt__strl.h libltdl/lt_dlloader.h libltdl/lt_error.h libltdl/lt_system.h libltdl/slist.h loaders/dld_link.c loaders/dlopen.c loaders/dyld.c loaders/load_add_on.c loaders/loadlibrary.c loaders/preopen.c loaders/shl_load.c lt__alloc.c lt__dirent.c lt__strl.c lt_dlloader.c lt_error.c ltdl.c ltdl.h ltdl.mk slist.c"
-
- # Files installed by func_install_*, some files are missing from these
- # lists deliberately because their respective func_install has to handle
- # the missing filenames specially.
- pkgaux_files="@pkgaux_files@"
- pkgltdl_files="@pkgltdl_files@"
- pkgmacro_files="@pkgmacro_files@"
+ all_pkgltdl_files="COPYING.LIB Makefile Makefile.in Makefile.inc Makefile.am README acinclude.m4 aclocal.m4 argz_.h argz.c config.h.in config-h.in configure configure.ac configure.in libltdl/lt__alloc.h libltdl/lt__dirent.h libltdl/lt__glibc.h libltdl/lt__private.h libltdl/lt__strl.h libltdl/lt_dlloader.h libltdl/lt_error.h libltdl/lt_system.h libltdl/slist.h loaders/dld_link.c loaders/dlopen.c loaders/dyld.c loaders/load_add_on.c loaders/loadlibrary.c loaders/preopen.c loaders/shl_load.c lt__alloc.c lt__dirent.c lt__strl.c lt_dlloader.c lt_error.c ltdl.c ltdl.h slist.c"
# Locations for important files:
- prefix="@prefix@"
- datadir="@datadir@"
- pkgauxdir="@pkgauxdir@"
- pkgltdldir="@pkgdatadir@"
- aclocaldir="@aclocaldir@"
+ prefix=@prefix@
+ datadir=@datadir@
+ pkgdatadir=@pkgdatadir@
+ pkgltdldir=@pkgdatadir@
+ aclocaldir=@aclocaldir@
+ auxdir=
+ macrodir=
+ configure_ac=configure.in
+
+ seen_autoconf=false
+ seen_libtool=false
+ seen_ltdl=false
+
+ # test EBCDIC or ASCII
+ case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ SP2NL='tr \040 \012'
+ NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ SP2NL='tr \100 \n'
+ NL2SP='tr \r\n \100\100'
+ ;;
+ esac
# Allow the user to override the master libtoolize repository:
if test -n "$_lt_pkgdatadir"; then
- pkgauxdir=$_lt_pkgdatadir/build-aux
- pkgltdldir=$_lt_pkgdatadir/libltdl
- aclocaldir=$_lt_pkgdatadir/m4
+ pkgltdldir="$_lt_pkgdatadir"
+ pkgdatadir="$_lt_pkgdatadir/libltdl"
+ aclocaldir="$_lt_pkgdatadir/libltdl/m4"
fi
- func_nonemptydir_p pkgauxdir
func_nonemptydir_p pkgltdldir
+ func_nonemptydir_p pkgdatadir
func_nonemptydir_p aclocaldir
- extract_trace=$pkgauxdir/extract-trace
+ func_scan_files
+
+ case $ltdldir in
+ .) ltdlprefix= ;;
+ *) ltdlprefix=$ltdldir/ ;;
+ esac
+ subproject_auxdir=${ltdlprefix}config
+ subproject_macrodir=${ltdlprefix}m4
# :::BE CAREFUL HERE:::
# func_check_macros needs to check whether --ltdl was specified when
@@ -1777,10 +1503,9 @@ func_require_seen_libtool ()
# conditions, or that check will be impossible. No need to clutter the
# rest of the code with '$opt_ltdl || $seen_ltdl' though, because we CAN
# safely set opt_ltdl to true if LTDL_INIT was seen:
- $require_seen_ltdl
$seen_ltdl && opt_ltdl=:
- func_install_pkgaux_files
+ func_install_pkgconfig_files
func_install_pkgmacro_files
func_install_pkgltdl_files