| m4_define([_m4_divert(SCRIPT)], 100) |
| m4_divert_push([SCRIPT])#! /bin/sh |
| # @configure_input@ |
| |
| # libtoolize (GNU @PACKAGE@@TIMESTAMP@) @VERSION@ |
| # Written by Gary V. Vaughan <gary@gnu.org>, 2003 |
| |
| # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
| # This is free software; see the source for copying conditions. There is NO |
| # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| |
| # Libtoolize is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License as published by |
| # the Free Software Foundation; either version 2 of the License, or |
| # (at your option) any later version. |
| # |
| # Libtoolize is distributed in the hope that it will be useful, but |
| # WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with libtoolize; see the file COPYING. If not, a copy |
| # can be downloaded from http://www.gnu.org/licenses/gpl.html, |
| # or obtained by writing to the Free Software Foundation, Inc., |
| # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| |
| # Usage: $progname [OPTION]... |
| # |
| # Prepare a package to use libtool. |
| # |
| # -c, --copy copy files rather than symlinking them |
| # --debug enable verbose shell tracing |
| # -n, --dry-run print commands rather than running them |
| # -f, --force replace existing files |
| # -i, --install copy missing auxiliary files |
| # --ltdl[=DIR] install libltdl sources [default: libltdl] |
| # --no-warn don't display warning messages |
| # --nonrecursive prepare ltdl for non-recursive make |
| # -q, --quiet work silently |
| # --recursive prepare ltdl for recursive make |
| # --subproject prepare ltdl to configure and build independently |
| # -v, --verbose verbosely report processing |
| # --version print version information and exit |
| # -h, --help print short or long help message |
| # |
| # The following space or comma delimited options can be passed to $progname |
| # via the environment variable LIBTOOLIZE_OPTIONS, unknown environment |
| # options are ignored: |
| # |
| # --debug enable verbose shell tracing |
| # --no-warn don't display warning messages |
| # --quiet work silently |
| # --verbose verbosely report processing |
| # |
| # You must `cd' to the top directory of your package before you run |
| # `$progname'. |
| # |
| # When reporting a bug, please describe a test case to reproduce it and |
| # include the following information: |
| # |
| # host-triplet: @host_triplet@ |
| # $progname: (GNU @PACKAGE@@TIMESTAMP@) @VERSION@ |
| # automake: $automake_version |
| # autoconf: $autoconf_version |
| # |
| # Report bugs to <bug-libtool@gnu.org>. |
| |
| : ${TAR=tar} |
| |
| PROGRAM=libtoolize |
| |
| AS_SHELL_SANITIZE |
| $as_unset CDPATH |
| |
| m4_include([getopt.m4sh]) |
| |
| M4SH_VERBATIM([[ |
| # 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 |
| |
| |
| # Command line options: |
| opt_debug=: |
| opt_force=false |
| opt_install=false |
| opt_link=: |
| opt_ltdl=false |
| |
| seen_autoconf=false |
| seen_libtool=false |
| seen_ltdl=false |
| |
| # 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: |
| prefix=@prefix@ |
| datadir=@datadir@ |
| pkgdatadir=@pkgdatadir@ |
| pkgltdldir=@pkgdatadir@ |
| aclocaldir=@aclocaldir@ |
| auxdir= |
| macrodir= |
| ltdldir= |
| configure_ac=configure.in |
| |
| # Lists of all files libtoolize has ever installed. These are removed |
| # before installing the latest files when --force was passed to help |
| # 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_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 slist.c" |
| |
| # Parse environment options |
| { |
| my_sed_env_opt='1s/^\([^,:; ]*\).*$/\1/;q' |
| my_sed_env_rest='1s/^[^,:; ]*[,:; ]*\(.*\)$/\1/;q' |
| |
| while test -n "$LIBTOOLIZE_OPTIONS"; do |
| opt=`echo "$LIBTOOLIZE_OPTIONS" | sed "$my_sed_env_opt"` |
| LIBTOOLIZE_OPTIONS=`echo "$LIBTOOLIZE_OPTIONS" | sed "$my_sed_env_rest"` |
| |
| case $opt in |
| --debug) opt_debug=: ;; |
| --no-warn) opt_warning=false ;; |
| --quiet) opt_quiet=: ;; |
| --verbose) opt_verbose=: ;; |
| |
| --*) func_warning "unrecognized environment option \`$opt'" ;; |
| *) func_fatal_help "garbled LIBTOOLIZE_OPTIONS near \`$opt'" ;; |
| esac |
| done |
| } |
| |
| |
| # Parse options once, thoroughly. This comes as soon as possible in |
| # the script to make things like `libtoolize --version' happen quickly. |
| { |
| # sed scripts: |
| my_sed_single_opt='1s/^\(..\).*$/\1/;q' |
| my_sed_single_rest='1s/^..\(.*\)$/\1/;q' |
| my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' |
| my_sed_long_arg='1s/^--[^=]*=//' |
| |
| while test "$#" -gt 0; do |
| opt="$1" |
| shift |
| case $opt in |
| --copy|-c) opt_link=false ;; |
| |
| --debug) func_echo "enabling shell trace mode" |
| opt_debug='set -x' |
| $opt_debug |
| ;; |
| |
| --dry-run|-n) if $opt_dry_run; then :; else |
| opt_dry_run=: |
| RM="$ECHO $RM" |
| test -n "$LN_S" && LN_S="$ECHO $LN_S" |
| CP="$ECHO $CP" |
| MKDIR="$ECHO $MKDIR" |
| TAR="$ECHO $TAR" |
| fi |
| ;; |
| |
| --force|-f) opt_force=: ;; |
| |
| --install|-i) opt_install=: ;; |
| |
| --ltdl) opt_ltdl=: |
| if test "$#" -gt 0; then |
| case $1 in |
| -*) ;; |
| *) ltdldir=`$ECHO "X$1" | $Xsed -e 's,/*$,,'` |
| shift |
| ;; |
| esac |
| fi |
| ;; |
| |
| --no-warn) opt_warning=false ;; |
| |
| --nonrecursive|--non-recursive) |
| ltdl_mode=nonrecursive |
| ;; |
| |
| --quiet|--automake|-q) # --automake is for 1.5 compatibility |
| opt_quiet=: |
| ;; |
| |
| --recursive) ltdl_mode=recursive ;; |
| |
| --subproject) ltdl_mode=subproject ;; |
| |
| --verbose|-v) opt_verbose=: ;; |
| |
| # Separate optargs to long options: |
| --*=*) |
| arg=`$ECHO "X$opt" | $Xsed -e "$my_sed_long_arg"` |
| opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_long_opt"` |
| set dummy "$opt" "$arg" ${1+"$@"} |
| shift |
| ;; |
| |
| # Separate optargs to short options: |
| #-X*) |
| # arg=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_rest"` |
| # opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_opt"` |
| # set dummy "$opt" "$arg" ${1+"$@"} |
| # shift |
| # ;; |
| |
| # Separate non-argument short options: |
| -c*|-f*|-i*|-n*|-q*|-v*) |
| rest=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_rest"` |
| opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_opt"` |
| set dummy "$opt" "-$rest" ${1+"$@"} |
| shift |
| ;; |
| |
| -\?|-h) func_usage ;; |
| --help) func_help ;; |
| --version) func_version ;; |
| --) break ;; |
| -*) func_fatal_help "unrecognized option \`$opt'" ;; |
| *) func_fatal_help "too many arguments" ;; |
| esac |
| done |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| if test -n "$1"; then |
| eval my_msg=\$$1 |
| |
| if test -n "$my_msg"; then |
| func_echo "$my_msg" |
| eval $1="" |
| fi |
| fi |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| |
| test -f "$1" || \ |
| { func_error "\`$1' not copied: not a regular file"; return 1; } |
| |
| my_f1=`$ECHO "X$1" | $Xsed -e "$basename"` |
| |
| if test -d "$2"; then |
| |
| func_copy_cb "$my_f1" \ |
| `$ECHO "X$1" | $Xsed -e "$dirname"` "$2" "$3" |
| |
| else |
| |
| # Supporting this would mean changing the timestamp: |
| test "X$my_f1" = X`$ECHO "X$2" | $Xsed -e "$basename"` \ |
| || func_fatal_error "func_copy() cannot change filename on copy" |
| |
| func_copy_cb "$my_f1" \ |
| `$ECHO "X$1" | $Xsed -e "$dirname"` \ |
| `$ECHO "X$2" | $Xsed -e "$dirname"` \ |
| "$3" |
| |
| fi |
| |
| return $copy_return_status # set in func_copy_cb |
| } |
| |
| |
| # 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 () |
| { |
| $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 "X$my_destdir/$my_file" | $Xsed -e "$dirname"` |
| |
| $RM "$my_destdir/$my_file" |
| if $opt_link; then |
| 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 |
| else |
| 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 |
| 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 |
| } |
| |
| |
| # 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 |
| |
| $my_copy_cb "$my_filename" "$my_srcdir" "$my_destdir" "$my_msg_var" |
| done |
| IFS="$my_save_IFS" |
| } |
| |
| |
| # func_fixup_Makefile srcfile srcdir destdir |
| func_fixup_Makefile () |
| { |
| $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 "X$repl" | $Xsed -e '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 |
| |
| $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 |
| } |
| |
| # 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"` |
| |
| $seen_autoconf || { |
| my_configure_ac= |
| test -n "$configure_ac" && my_configure_ac="$configure_ac: " |
| func_verbose "${my_configure_ac}not using Autoconf" |
| |
| # 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 |
| } |
| |
| # ---------------------------------------------------- # |
| # Probe macro usage in configure.ac and/or aclocal.m4. # |
| # ---------------------------------------------------- # |
| |
| my_sed_traces='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,, |
| s,^.*AC_REQUIRE(.*$,,; s,^.*m4_require(.*$,,; s,^.*m4_define(.*$,, |
| s,^.*A[CU]_DEFUN(.*$,,; s,^.*m4_defun(.*$,, |
| /AC_CONFIG_AUX_DIR(/ { |
| s,^.*AC_CONFIG_AUX_DIR([[ ]*\([^])]*\).*$,ac_auxdir=\1, |
| p |
| } |
| /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"` |
| |
| |
| # ----------------- # |
| # Validate ltdldir. # |
| # ----------------- # |
| |
| ac_ltdldir=`$ECHO "X$ac_ltdldir" | $Xsed -e '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 |
| # 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=. |
| |
| |
| # ------------------------------ # |
| # 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,^[^=]*=[ ]*\(.*\), \1, |
| 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 |
| if test "X$arg" = "X-I"; then |
| my_macrodir_is_next=: |
| else |
| my_macrodir_is_next=false |
| fi |
| fi |
| done |
| fi |
| |
| 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 () |
| { |
| $opt_debug |
| my_searchfile="$1" |
| |
| my_include_regex= |
| my_sed_include=' |
| /^m4_include(\[.*\])$/ { |
| s,^m4_include(\[\(.*\)\])$,\1, |
| p |
| } |
| d' |
| |
| if test -f "$my_searchfile"; then |
| $ECHO "X$my_searchfile" | $Xsed |
| |
| # Only recurse when we don't care if all the variables we use get |
| # trashed, since they are in global scope. |
| for my_filename in `$SED "$my_sed_include" "$my_searchfile"`; do |
| func_included_files $my_filename |
| done |
| fi |
| } |
| |
| |
| # func_serial filename [macro_regex] |
| # Output the value of the serial number comment in FILENAME, where the |
| # comment line must also match MACRO_REGEX, if given. |
| func_serial () |
| { |
| $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, |
| q |
| } |
| d' |
| |
| # Search FILENAME and all the files it m4_includes for a serial number |
| # in the file that AC_DEFUNs MACRO_REGEX. |
| my_serial= |
| for my_file in `func_included_files "$my_filename"`; do |
| if test -z "$my_macro_regex" || |
| test "$my_filename" = aclocal.m4 || |
| test "$my_macro_regex" = `echo "$my_filename" | $SED "$basename"` || |
| func_grep '^AC_DEFUN(\@<:@'"$my_macro_regex" "$my_file" |
| then |
| my_serial=`$SED -e "$my_sed_serial" "$my_file"` |
| break |
| fi |
| done |
| |
| # If the file has no serial number, we assume it's ancient. |
| test -n "$my_serial" || my_serial=0 |
| |
| $ECHO $my_serial |
| } |
| |
| |
| # func_serial_max serial1 serial2 |
| # Compare (possibly multi-part, '.' delimited) serial numbers, and |
| # return the largest in $func_serial_max_result. If they are the |
| # same, func_serial_max_result will be empty. |
| func_serial_max () |
| { |
| $opt_debug |
| my_serial1="$1" |
| my_serial2="$2" |
| |
| my_sed_dot='s/\..*$//g' |
| my_sed_rest='s/^[0-9][1-9]*\.*//' |
| my_sed_digits='s/[^0-9.]//g' |
| |
| # Incase they turn out to be the same, we'll set it to empty |
| func_serial_max_result= |
| |
| test "X$1$2" = X`$ECHO "X$1$2" | $Xsed -e "$my_sed_digits"` || { |
| func_error "serial numbers \`$1' or \`$2' contain non-digit chars" |
| return |
| } |
| |
| while test -n "$my_serial1$my_serial2"; do |
| my_serial1_part=`$ECHO "X$my_serial1" | $Xsed -e "$my_sed_dot"` |
| my_serial2_part=`$ECHO "X$my_serial2" | $Xsed -e "$my_sed_dot"` |
| |
| test -z "$my_serial1_part$my_serial2_part" \ |
| && break |
| |
| test -z "$my_serial1_part" \ |
| && { func_serial_max_result="$2"; break; } |
| |
| test -z "$my_serial2_part" \ |
| && { func_serial_max_result="$1"; break; } |
| |
| test "$my_serial1_part" -gt "$my_serial2_part" \ |
| && { func_serial_max_result="$1"; break; } |
| |
| test "$my_serial2_part" -gt "$my_serial1_part" \ |
| && { func_serial_max_result="$2"; break; } |
| |
| my_serial1=`$ECHO "X$my_serial1" | $Xsed -e "$my_sed_rest"` |
| my_serial2=`$ECHO "X$my_serial2" | $Xsed -e "$my_sed_rest"` |
| done |
| } |
| |
| |
| # func_serial_update_check srcfile src_serial destfile dest_serial |
| # Unless SRC_SERIAL is newer than DEST_SERIAL set $func_serial_update_check |
| # to 'false'. |
| func_serial_update_check () |
| { |
| $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 "X$my_src_serial" = "X0" && { |
| func_warning "no serial number on \`$my_srcfile', not copying." |
| return |
| } |
| |
| # Determine whether the destination has an older serial. |
| func_serial_max "$my_src_serial" "$my_dest_serial" |
| test "X$my_src_serial" = "X$func_serial_max_result" || my_update_p=false |
| |
| test "X$my_src_serial" = "X$func_serial_max_result" \ |
| && func_verbose "\`$my_srcfile' is serial $my_src_serial, greater than $my_dest_serial in \`$my_destfile'" |
| |
| 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_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_aclocal_update_check filename |
| # Unless serial number of FILENAME is newer than the matching serial number |
| # in aclocal.m4, set $func_aclocal_update_check to 'false'. |
| func_aclocal_update_check () |
| { |
| $opt_debug |
| my_srcfile="$aclocaldir/$1" |
| my_destfile="aclocal.m4" |
| |
| 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 "X$my_src_serial" = "X0" && |
| my_src_serial=`func_serial "$my_srcfile" 'A[CM]_PROG_LIBTOOL'` |
| test "X$my_dest_serial" = "X0" && |
| my_dest_serial=`func_serial "$my_destfile" 'A[CM]_PROG_LIBTOOL'` |
| ;; |
| ltdl.m4) |
| my_src_serial=`func_serial "$my_srcfile" LTDL_INIT` |
| my_dest_serial=`func_serial "$my_destfile" LTDL_INIT` |
| ;; |
| *) |
| 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_serial_update filename srcdir destdir [msg_var] [macro_re] [old_macro_re] |
| # Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME |
| # has a newer serial number, or DESTFILE does not yet exist, or the user |
| # specified `--force' at the command line. If given, MACRO_REGEX or |
| # OLD_MACRO_REGEX must match any text after "# serial N" in both files. |
| func_serial_update () |
| { |
| $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" |
| |
| test -f "$my_srcfile" || func_fatal_error "\`$my_srcfile' does not exist." |
| |
| if test -f "$my_destfile"; then |
| my_src_serial=`func_serial "$my_srcfile" "$my_macro_regex"` |
| my_dest_serial=`func_serial "$my_destfile" "$my_macro_regex"` |
| |
| # Strictly, this libtoolize ought not to have to deal with ancient |
| # serial formats, but we accept them here to be complete: |
| test "X$my_src_serial" = "X0" && |
| my_src_serial=`func_serial "$my_srcfile" "$my_old_macro_regex"` |
| |
| 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" |
| fi |
| |
| if $my_serial_update_p || $opt_force; then |
| 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 |
| $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 " | $NL2SP` in |
| |
| # Skip included files: |
| *" $my_destfile "*) ;; |
| |
| # Otherwise compare to aclocal.m4 serial number (func_serial |
| # returns 0 for older macro serial numbers before we provided |
| # serial tags, so the update message will be correctly given |
| # if aclocal.m4 contains an untagged --i.e older-- macro file): |
| *) |
| if test -f aclocal.m4; then |
| 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_echo_once "$my_msg_var" |
| func_echo "You should add the contents of \`$my_destfile' to \`aclocal.m4'." |
| fi |
| fi |
| ;; |
| esac |
| return $my_return_status |
| } |
| |
| |
| # func_keyword_update filename srcdir destdir sed_script [msg_var] |
| # Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME |
| # has a newer revision according to the serial number extracted by |
| # SED_SCRIPT, or DESTFILE does not yet exist, or the user specified |
| # `--force' at the command line. |
| func_keyword_update () |
| { |
| $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_keyword_update_p=: |
| |
| test -f "$my_srcfile" || func_fatal_error "\`$my_srcfile' does not exist." |
| |
| if test -f "$my_destfile"; then |
| my_src_serial=`$SED -e "$my_sed_script" "$my_srcfile"` |
| test -z "$my_src_serial" && { |
| func_warning "no serial number in \`$my_srcfile', not copying." |
| return |
| } |
| |
| my_dest_serial=`$SED -e "$my_sed_script" "$my_destfile"` |
| test -n "$my_dest_serial" || my_dest_serial=0 |
| |
| func_serial_update_check \ |
| "$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial" |
| my_keyword_update_p="$func_serial_update_check_result" |
| fi |
| |
| if $my_keyword_update_p || $opt_force; then |
| 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_echo_once "$my_msg_var" |
| func_echo "\`$my_destfile' is already up to date." |
| fi |
| } |
| |
| |
| # func_ltmain_update filename srcdir destdir [msg_var] |
| # Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME |
| # has a newer revision, or DESTFILE does not yet exist, or the user |
| # specified `--force' at the command line. |
| func_ltmain_update () |
| { |
| $opt_debug |
| my_sed_ltmain=' |
| /^package_revision='\''*[0-9][1-9.]*'\''*/ { |
| s,^package_revision='\''*\([0-9.]*\)'\''*[ ]*$,\1, |
| p |
| } |
| d' |
| |
| func_keyword_update "$1" "$2" "$3" "$my_sed_ltmain" "$4" |
| |
| return $my_return_status |
| } |
| |
| |
| # func_config_update filename srcdir destdir [msg_var] |
| # Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME |
| # has a newer timestamp, or DESTFILE does not yet exist, or the user |
| # specified `--force' at the command line. |
| func_config_update () |
| { |
| $opt_debug |
| my_sed_config=' |
| /^timestamp='\''*[0-9][1-9-]*'\''*/ { |
| s,^timestamp='\''*\([0-9-]*\)'\''*,\1, |
| s/-/./g |
| p |
| } |
| d' |
| |
| func_keyword_update "$1" "$2" "$3" "$my_sed_config" "$4" |
| |
| return $my_return_status |
| } |
| |
| |
| # func_install_update filename srcdir destdir [msg_var] |
| # Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME |
| # has a newer timestamp, or DESTFILE does not yet exist, or the user |
| # specified `--force' at the command line. |
| func_install_update () |
| { |
| $opt_debug |
| my_sed_install=' |
| /^scriptversion='\''*[0-9][1-9.-]*'\''*/ { |
| s,^scriptversion='\''*\([0-9.-]*\)'\''*,\1, |
| s/-/./g |
| p |
| } |
| d' |
| |
| func_keyword_update "$1" "$2" "$3" "$my_sed_install" "$4" |
| |
| return $my_return_status |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| pkgmacro_files= # GLOBAL VAR |
| |
| my_glob_exclude="$1" |
| |
| # Massage a value for pkgmacro_files from the value used in Makefile.am. |
| for my_filename in @aclocal_DATA@; do |
| my_filename=`$ECHO "X$my_filename" | $Xsed -e "$basename"` |
| |
| # 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 |
| |
| pkgmacro_files="$pkgmacro_files:$my_filename" |
| done |
| |
| # strip spurious leading `:' |
| pkgmacro_files=`$ECHO "X$pkgmacro_files" | $Xsed -e 's,^:*,,'` |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| |
| # 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 "$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 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 |
| |
| func_copy_some_files "argz.m4:libtool.m4:ltdl.m4:$pkgmacro_files" \ |
| "$aclocaldir" "$subproject_macrodir" pkgmacro_header |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| |
| # 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 "$macrodir/$file" && func_verbose "rm -f '$macrodir/$file'" |
| rm -f "$macrodir/$file" |
| done |
| |
| # 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 |
| func_verbose "Not copying \`$macrodir/argz.m4', libltdl not used." |
| fi |
| |
| func_serial_update libtool.m4 "$aclocaldir" "$macrodir" \ |
| my_pkgmacro_header LT_INIT 'A[CM]_PROG_LIBTOOL' |
| |
| 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_install_pkgmacro_files |
| # Install copies of the libtool and libltdl m4 macros into this package. |
| func_install_pkgmacro_files () |
| { |
| $opt_debug |
| |
| # argz.m4, libtool.m4 and ltdl.m4 are handled specially: |
| func_massage_aclocal_DATA 'argz.m4|libtool.m4|ltdl.m4' |
| |
| # 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 |
| |
| # 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_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 () |
| { |
| $opt_debug |
| pkgltdl_files= # GLOBAL VAR |
| |
| my_glob_exclude="$1" |
| |
| # Massage a value for pkgltdl_files from the value used in Makefile.am |
| for my_filename in @pkgltdl_files@; do |
| |
| # Strip surplus leading 'libltdl/': |
| my_filename=`expr "X$my_filename" : 'Xlibltdl/\(.*\)'` |
| |
| # 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 |
| |
| # ignore duplicates |
| case :$pkgltdl_files: in |
| *:$my_filename:*) ;; |
| *) pkgltdl_files="$pkgltdl_files:$my_filename" ;; |
| esac |
| done |
| |
| # strip spurious leading `:' |
| pkgltdl_files=`$ECHO "X$pkgltdl_files" | $Xsed -e '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_pkgconfig_files and func_install_pkgmacro_files resp. |
| func_install_pkgltdl_files () |
| { |
| $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 |
| |
| # 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 |
| |
| # These files are handled specially, depending on ltdl_mode: |
| if test "x$ltdl_mode" = "xsubproject"; then |
| func_massage_pkgltdl_files 'Makefile.inc' |
| else |
| func_massage_pkgltdl_files 'Makefile.am|Makefile.in*|aclocal.m4|config*' |
| fi |
| |
| 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) |
| func_fixup_Makefile "Makefile.am" "$pkgltdldir/libltdl" "$ltdldir" |
| ;; |
| nonrecursive) |
| func_fixup_Makefile "Makefile.inc" "$pkgltdldir/libltdl" "$ltdldir" |
| ;; |
| esac |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| pkgconfig_files= # GLOBAL VAR |
| |
| my_glob_exclude="$1" |
| |
| # Massage a value for pkgconfig_files from the value used in Makefile.am |
| for my_filename in @pkgconfig_files@; do |
| |
| # 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 |
| |
| # ignore duplicates |
| case :$pkgconfig_files: in |
| *:$my_filename:*) ;; |
| *) pkgconfig_files="$pkgconfig_files:$my_filename" ;; |
| esac |
| done |
| |
| # strip spurious leading `:' |
| pkgconfig_files=`$ECHO "X$pkgconfig_files" | $Xsed -e 's,^:*,,'` |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| |
| # 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 |
| |
| # 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 |
| |
| func_copy_some_files "$pkgconfig_files" \ |
| "$pkgdatadir" "$ltdldir" pkgconfig_header |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| |
| # 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 |
| |
| 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 |
| |
| 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 |
| func_ltmain_update ltmain.sh \ |
| "$pkgdatadir/config" "$auxdir" pkgconfig_header |
| } |
| |
| |
| # 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 () |
| { |
| $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 |
| |
| # 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 |
| |
| # 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 |
| |
| # 4. AC_CONFIG_AUX_DIR was not specified: |
| else |
| func_verbose "AC_CONFIG_AUX_DIR not defined, not copying libtool auxiliary files." |
| fi |
| } |
| |
| |
| # 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 () |
| { |
| $opt_debug |
| my_dirvar="$1" |
| my_dir=`eval echo "\\\$$my_dirvar"` |
| |
| # Is it a directory at all? |
| test -d "$my_dir" \ |
| || func_fatal_error "\$$my_dirvar not a directory: \`$my_dir'" |
| |
| # 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'" |
| } |
| |
| |
| # func_check_macros |
| # Sanity check macros from aclocal.m4 against installed versions. |
| func_check_macros () |
| { |
| $opt_debug |
| $opt_quiet && return |
| $seen_autoconf || return |
| |
| 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 |
| |
| my_needed="libtool.m4 ltoptions.m4 ltversion.m4 ltsugar.m4 lt~obsolete.m4" |
| $opt_ltdl && my_needed="$my_needed argz.m4 ltdl.m4" |
| |
| 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 |
| |
| 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 "$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 |
| |
| ## ---------------------------------------------------------- ## |
| ## 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 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 |
| |
| 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 |
| |
| # 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=: |
| |
| 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 |
| |
| if test -z "$am_macrodir$macrodir"; then |
| func_echo "Consider adding \`-I m4' to ACLOCAL_AMFLAGS in Makefile.am." |
| |
| 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 |
| |
| # 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 |
| } |
| |
| |
| ## ----------- ## |
| ## Main. ## |
| ## ----------- ## |
| |
| { |
| # Allow the user to override the master libtoolize repository: |
| if test -n "$_lt_pkgdatadir"; then |
| pkgltdldir="$_lt_pkgdatadir" |
| pkgdatadir="$_lt_pkgdatadir/libltdl" |
| aclocaldir="$_lt_pkgdatadir/libltdl/m4" |
| fi |
| func_nonemptydir_p pkgltdldir |
| func_nonemptydir_p pkgdatadir |
| func_nonemptydir_p aclocaldir |
| |
| 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 |
| # LTDL_INIT was not seen, so we can't just use one variable for both |
| # 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: |
| $seen_ltdl && opt_ltdl=: |
| |
| func_install_pkgconfig_files |
| func_install_pkgmacro_files |
| func_install_pkgltdl_files |
| |
| func_check_macros |
| } |
| |
| exit $exit_status |
| |
| # Local Variables: |
| # mode:shell-script |
| # sh-indentation:2 |
| # End: |
| ]]) |