| #! /bin/sh |
| # Generated from libtoolize.m4sh by GNU Autoconf 2.65. |
| # Generated from libtoolize.m4sh. |
| |
| # libtoolize (GNU libtool) 2.2.10 |
| # Written by Gary V. Vaughan <gary@gnu.org>, 2003 |
| |
| # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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: x86_64-unknown-linux-gnu |
| # $progname: (GNU libtool) 2.2.10 |
| # automake: $automake_version |
| # autoconf: $autoconf_version |
| # |
| # Report bugs to <bug-libtool@gnu.org>. |
| |
| : ${TAR=tar} |
| |
| PROGRAM=libtoolize |
| |
| # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh |
| # is ksh but when the shell is invoked as "sh" and the current value of |
| # the _XPG environment variable is not equal to 1 (one), the special |
| # positional parameter $0, within a function call, is the name of the |
| # function. |
| progpath="$0" |
| |
| ## -------------------- ## |
| ## M4sh Initialization. ## |
| ## -------------------- ## |
| |
| # Be more Bourne compatible |
| DUALCASE=1; export DUALCASE # for MKS sh |
| if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : |
| emulate sh |
| NULLCMD=: |
| # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which |
| # is contrary to our usage. Disable this feature. |
| alias -g '${1+"$@"}'='"$@"' |
| setopt NO_GLOB_SUBST |
| else |
| case `(set -o) 2>/dev/null` in #( |
| *posix*) : |
| set -o posix ;; #( |
| *) : |
| ;; |
| esac |
| fi |
| |
| |
| as_nl=' |
| ' |
| export as_nl |
| # Printing a long string crashes Solaris 7 /usr/bin/printf. |
| as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' |
| as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo |
| as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo |
| # Prefer a ksh shell builtin over an external printf program on Solaris, |
| # but without wasting forks for bash or zsh. |
| if test -z "$BASH_VERSION$ZSH_VERSION" \ |
| && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then |
| as_echo='print -r --' |
| as_echo_n='print -rn --' |
| elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then |
| as_echo='printf %s\n' |
| as_echo_n='printf %s' |
| else |
| if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then |
| as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' |
| as_echo_n='/usr/ucb/echo -n' |
| else |
| as_echo_body='eval expr "X$1" : "X\\(.*\\)"' |
| as_echo_n_body='eval |
| arg=$1; |
| case $arg in #( |
| *"$as_nl"*) |
| expr "X$arg" : "X\\(.*\\)$as_nl"; |
| arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; |
| esac; |
| expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" |
| ' |
| export as_echo_n_body |
| as_echo_n='sh -c $as_echo_n_body as_echo' |
| fi |
| export as_echo_body |
| as_echo='sh -c $as_echo_body as_echo' |
| fi |
| |
| # The user is always right. |
| if test "${PATH_SEPARATOR+set}" != set; then |
| PATH_SEPARATOR=: |
| (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { |
| (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || |
| PATH_SEPARATOR=';' |
| } |
| fi |
| |
| |
| # IFS |
| # We need space, tab and new line, in precisely that order. Quoting is |
| # there to prevent editors from complaining about space-tab. |
| # (If _AS_PATH_WALK were called with IFS unset, it would disable word |
| # splitting by setting IFS to empty value.) |
| IFS=" "" $as_nl" |
| |
| # Find who we are. Look in the path if we contain no directory separator. |
| case $0 in #(( |
| *[\\/]* ) as_myself=$0 ;; |
| *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
| for as_dir in $PATH |
| do |
| IFS=$as_save_IFS |
| test -z "$as_dir" && as_dir=. |
| test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break |
| done |
| IFS=$as_save_IFS |
| |
| ;; |
| esac |
| # We did not find ourselves, most probably we were run as `sh COMMAND' |
| # in which case we are not to be found in the path. |
| if test "x$as_myself" = x; then |
| as_myself=$0 |
| fi |
| if test ! -f "$as_myself"; then |
| $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 |
| exit 1 |
| fi |
| |
| # Unset variables that we do not need and which cause bugs (e.g. in |
| # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" |
| # suppresses any "Segmentation fault" message there. '((' could |
| # trigger a bug in pdksh 5.2.14. |
| for as_var in BASH_ENV ENV MAIL MAILPATH |
| do eval test x\${$as_var+set} = xset \ |
| && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : |
| done |
| PS1='$ ' |
| PS2='> ' |
| PS4='+ ' |
| |
| # NLS nuisances. |
| LC_ALL=C |
| export LC_ALL |
| LANGUAGE=C |
| export LANGUAGE |
| |
| # CDPATH. |
| (unset CDPATH) >/dev/null 2>&1 && unset CDPATH |
| |
| if test "x$CONFIG_SHELL" = x; then |
| as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : |
| emulate sh |
| NULLCMD=: |
| # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which |
| # is contrary to our usage. Disable this feature. |
| alias -g '\${1+\"\$@\"}'='\"\$@\"' |
| setopt NO_GLOB_SUBST |
| else |
| case \`(set -o) 2>/dev/null\` in #( |
| *posix*) : |
| set -o posix ;; #( |
| *) : |
| ;; |
| esac |
| fi |
| " |
| as_required="as_fn_return () { (exit \$1); } |
| as_fn_success () { as_fn_return 0; } |
| as_fn_failure () { as_fn_return 1; } |
| as_fn_ret_success () { return 0; } |
| as_fn_ret_failure () { return 1; } |
| |
| exitcode=0 |
| as_fn_success || { exitcode=1; echo as_fn_success failed.; } |
| as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } |
| as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } |
| as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } |
| if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : |
| |
| else |
| exitcode=1; echo positional parameters were not saved. |
| fi |
| test x\$exitcode = x0 || exit 1" |
| as_suggested="" |
| if (eval "$as_required") 2>/dev/null; then : |
| as_have_required=yes |
| else |
| as_have_required=no |
| fi |
| if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : |
| |
| else |
| as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
| as_found=false |
| for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH |
| do |
| IFS=$as_save_IFS |
| test -z "$as_dir" && as_dir=. |
| as_found=: |
| case $as_dir in #( |
| /*) |
| for as_base in sh bash ksh sh5; do |
| # Try only shells that exist, to save several forks. |
| as_shell=$as_dir/$as_base |
| if { test -f "$as_shell" || test -f "$as_shell.exe"; } && |
| { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : |
| CONFIG_SHELL=$as_shell as_have_required=yes |
| break 2 |
| fi |
| done;; |
| esac |
| as_found=false |
| done |
| $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && |
| { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : |
| CONFIG_SHELL=$SHELL as_have_required=yes |
| fi; } |
| IFS=$as_save_IFS |
| |
| |
| if test "x$CONFIG_SHELL" != x; then : |
| # We cannot yet assume a decent shell, so we have to provide a |
| # neutralization value for shells without unset; and this also |
| # works around shells that cannot unset nonexistent variables. |
| BASH_ENV=/dev/null |
| ENV=/dev/null |
| (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV |
| export CONFIG_SHELL |
| exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} |
| fi |
| |
| if test x$as_have_required = xno; then : |
| $as_echo "$0: This script requires a shell more modern than all" |
| $as_echo "$0: the shells that I found on your system." |
| if test x${ZSH_VERSION+set} = xset ; then |
| $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" |
| $as_echo "$0: be upgraded to zsh 4.3.4 or later." |
| else |
| $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, |
| $0: including any error possibly output before this |
| $0: message. Then install a modern shell, or manually run |
| $0: the script under such a shell if you do have one." |
| fi |
| exit 1 |
| fi |
| fi |
| fi |
| SHELL=${CONFIG_SHELL-/bin/sh} |
| export SHELL |
| # Unset more variables known to interfere with behavior of common tools. |
| CLICOLOR_FORCE= GREP_OPTIONS= |
| unset CLICOLOR_FORCE GREP_OPTIONS |
| |
| ## --------------------- ## |
| ## M4sh Shell Functions. ## |
| ## --------------------- ## |
| # as_fn_unset VAR |
| # --------------- |
| # Portably unset VAR. |
| as_fn_unset () |
| { |
| { eval $1=; unset $1;} |
| } |
| as_unset=as_fn_unset |
| ## -------------------- ## |
| ## Main body of script. ## |
| ## -------------------- ## |
| |
| |
| |
| |
| : ${CP="cp -f"} |
| test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} |
| : ${EGREP="/bin/grep -E"} |
| : ${FGREP="/bin/grep -F"} |
| : ${GREP="/bin/grep"} |
| : ${LN_S="ln -s"} |
| : ${MAKE="make"} |
| : ${MKDIR="mkdir"} |
| : ${MV="mv -f"} |
| : ${RM="rm -f"} |
| : ${SED="/bin/sed"} |
| : ${SHELL="${CONFIG_SHELL-/bin/sh}"} |
| : ${Xsed="$SED -e 1s/^X//"} |
| |
| # Global variables: |
| EXIT_SUCCESS=0 |
| EXIT_FAILURE=1 |
| EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. |
| EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. |
| |
| exit_status=$EXIT_SUCCESS |
| |
| # Make sure IFS has a sensible default |
| lt_nl=' |
| ' |
| IFS=" $lt_nl" |
| |
| dirname="s,/[^/]*$,," |
| basename="s,^.*/,," |
| |
| # func_dirname_and_basename file append nondir_replacement |
| # perform func_basename and func_dirname in a single function |
| # call: |
| # dirname: Compute the dirname of FILE. If nonempty, |
| # add APPEND to the result, otherwise set result |
| # to NONDIR_REPLACEMENT. |
| # value returned in "$func_dirname_result" |
| # basename: Compute filename of FILE. |
| # value retuned in "$func_basename_result" |
| # Implementation must be kept synchronized with func_dirname |
| # and func_basename. For efficiency, we do not delegate to |
| # those functions but instead duplicate the functionality here. |
| func_dirname_and_basename () |
| { |
| # Extract subdirectory from the argument. |
| func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` |
| if test "X$func_dirname_result" = "X${1}"; then |
| func_dirname_result="${3}" |
| else |
| func_dirname_result="$func_dirname_result${2}" |
| fi |
| func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` |
| } |
| |
| # Generated shell functions inserted here. |
| |
| # These SED scripts presuppose an absolute path with a trailing slash. |
| pathcar='s,^/\([^/]*\).*$,\1,' |
| pathcdr='s,^/[^/]*,,' |
| removedotparts=':dotsl |
| s@/\./@/@g |
| t dotsl |
| s,/\.$,/,' |
| collapseslashes='s@/\{1,\}@/@g' |
| finalslash='s,/*$,/,' |
| |
| # func_normal_abspath PATH |
| # Remove doubled-up and trailing slashes, "." path components, |
| # and cancel out any ".." path components in PATH after making |
| # it an absolute path. |
| # value returned in "$func_normal_abspath_result" |
| func_normal_abspath () |
| { |
| # Start from root dir and reassemble the path. |
| func_normal_abspath_result= |
| func_normal_abspath_tpath=$1 |
| func_normal_abspath_altnamespace= |
| case $func_normal_abspath_tpath in |
| "") |
| # Empty path, that just means $cwd. |
| func_stripname '' '/' "`pwd`" |
| func_normal_abspath_result=$func_stripname_result |
| return |
| ;; |
| # The next three entries are used to spot a run of precisely |
| # two leading slashes without using negated character classes; |
| # we take advantage of case's first-match behaviour. |
| ///*) |
| # Unusual form of absolute path, do nothing. |
| ;; |
| //*) |
| # Not necessarily an ordinary path; POSIX reserves leading '//' |
| # and for example Cygwin uses it to access remote file shares |
| # over CIFS/SMB, so we conserve a leading double slash if found. |
| func_normal_abspath_altnamespace=/ |
| ;; |
| /*) |
| # Absolute path, do nothing. |
| ;; |
| *) |
| # Relative path, prepend $cwd. |
| func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath |
| ;; |
| esac |
| # Cancel out all the simple stuff to save iterations. We also want |
| # the path to end with a slash for ease of parsing, so make sure |
| # there is one (and only one) here. |
| func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ |
| -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` |
| while :; do |
| # Processed it all yet? |
| if test "$func_normal_abspath_tpath" = / ; then |
| # If we ascended to the root using ".." the result may be empty now. |
| if test -z "$func_normal_abspath_result" ; then |
| func_normal_abspath_result=/ |
| fi |
| break |
| fi |
| func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ |
| -e "$pathcar"` |
| func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ |
| -e "$pathcdr"` |
| # Figure out what to do with it |
| case $func_normal_abspath_tcomponent in |
| "") |
| # Trailing empty path component, ignore it. |
| ;; |
| ..) |
| # Parent dir; strip last assembled component from result. |
| func_dirname "$func_normal_abspath_result" |
| func_normal_abspath_result=$func_dirname_result |
| ;; |
| *) |
| # Actual path component, append it. |
| func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent |
| ;; |
| esac |
| done |
| # Restore leading double-slash if one was found on entry. |
| func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result |
| } |
| |
| # func_relative_path SRCDIR DSTDIR |
| # generates a relative path from SRCDIR to DSTDIR, with a trailing |
| # slash if non-empty, suitable for immediately appending a filename |
| # without needing to append a separator. |
| # value returned in "$func_relative_path_result" |
| func_relative_path () |
| { |
| func_relative_path_result= |
| func_normal_abspath "$1" |
| func_relative_path_tlibdir=$func_normal_abspath_result |
| func_normal_abspath "$2" |
| func_relative_path_tbindir=$func_normal_abspath_result |
| |
| # Ascend the tree starting from libdir |
| while :; do |
| # check if we have found a prefix of bindir |
| case $func_relative_path_tbindir in |
| $func_relative_path_tlibdir) |
| # found an exact match |
| func_relative_path_tcancelled= |
| break |
| ;; |
| $func_relative_path_tlibdir*) |
| # found a matching prefix |
| func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" |
| func_relative_path_tcancelled=$func_stripname_result |
| if test -z "$func_relative_path_result"; then |
| func_relative_path_result=. |
| fi |
| break |
| ;; |
| *) |
| func_dirname $func_relative_path_tlibdir |
| func_relative_path_tlibdir=${func_dirname_result} |
| if test "x$func_relative_path_tlibdir" = x ; then |
| # Have to descend all the way to the root! |
| func_relative_path_result=../$func_relative_path_result |
| func_relative_path_tcancelled=$func_relative_path_tbindir |
| break |
| fi |
| func_relative_path_result=../$func_relative_path_result |
| ;; |
| esac |
| done |
| |
| # Now calculate path; take care to avoid doubling-up slashes. |
| func_stripname '' '/' "$func_relative_path_result" |
| func_relative_path_result=$func_stripname_result |
| func_stripname '/' '/' "$func_relative_path_tcancelled" |
| if test "x$func_stripname_result" != x ; then |
| func_relative_path_result=${func_relative_path_result}/${func_stripname_result} |
| fi |
| |
| # Normalisation. If bindir is libdir, return empty string, |
| # else relative path ending with a slash; either way, target |
| # file name can be directly appended. |
| if test ! -z "$func_relative_path_result"; then |
| func_stripname './' '' "$func_relative_path_result/" |
| func_relative_path_result=$func_stripname_result |
| fi |
| } |
| |
| # The name of this program: |
| func_dirname_and_basename "$progpath" |
| progname=$func_basename_result |
| |
| # Make sure we have an absolute path for reexecution: |
| case $progpath in |
| [\\/]*|[A-Za-z]:\\*) ;; |
| *[\\/]*) |
| progdir=$func_dirname_result |
| progdir=`cd "$progdir" && pwd` |
| progpath="$progdir/$progname" |
| ;; |
| *) |
| save_IFS="$IFS" |
| IFS=: |
| for progdir in $PATH; do |
| IFS="$save_IFS" |
| test -x "$progdir/$progname" && break |
| done |
| IFS="$save_IFS" |
| test -n "$progdir" || progdir=`pwd` |
| progpath="$progdir/$progname" |
| ;; |
| esac |
| |
| # Sed substitution that helps us do robust quoting. It backslashifies |
| # metacharacters that are still active within double-quoted strings. |
| Xsed="${SED}"' -e 1s/^X//' |
| sed_quote_subst='s/\([`"$\\]\)/\\\1/g' |
| |
| # Same as above, but do not quote variable references. |
| double_quote_subst='s/\(["`\\]\)/\\\1/g' |
| |
| # Re-`\' parameter expansions in output of double_quote_subst that were |
| # `\'-ed in input to the same. If an odd number of `\' preceded a '$' |
| # in input to double_quote_subst, that '$' was protected from expansion. |
| # Since each input `\' is now two `\'s, look for any number of runs of |
| # four `\'s followed by two `\'s and then a '$'. `\' that '$'. |
| bs='\\' |
| bs2='\\\\' |
| bs4='\\\\\\\\' |
| dollar='\$' |
| sed_double_backslash="\ |
| s/$bs4/&\\ |
| /g |
| s/^$bs2$dollar/$bs&/ |
| s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g |
| s/\n//g" |
| |
| # Standard options: |
| opt_dry_run=false |
| opt_help=false |
| opt_quiet=false |
| opt_verbose=false |
| opt_warning=: |
| |
| # func_echo arg... |
| # Echo program name prefixed message, along with the current mode |
| # name if it has been set yet. |
| func_echo () |
| { |
| $ECHO "$progname${mode+: }$mode: $*" |
| } |
| |
| # func_verbose arg... |
| # Echo program name prefixed message in verbose mode only. |
| func_verbose () |
| { |
| $opt_verbose && func_echo ${1+"$@"} |
| |
| # A bug in bash halts the script if the last line of a function |
| # fails when set -e is in force, so we need another command to |
| # work around that: |
| : |
| } |
| |
| # func_echo_all arg... |
| # Invoke $ECHO with all args, space-separated. |
| func_echo_all () |
| { |
| $ECHO "$*" |
| } |
| |
| # func_error arg... |
| # Echo program name prefixed message to standard error. |
| func_error () |
| { |
| $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 |
| } |
| |
| # func_warning arg... |
| # Echo program name prefixed warning message to standard error. |
| func_warning () |
| { |
| $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 |
| |
| # bash bug again: |
| : |
| } |
| |
| # func_fatal_error arg... |
| # Echo program name prefixed message to standard error, and exit. |
| func_fatal_error () |
| { |
| func_error ${1+"$@"} |
| exit $EXIT_FAILURE |
| } |
| |
| # func_fatal_help arg... |
| # Echo program name prefixed message to standard error, followed by |
| # a help hint, and exit. |
| func_fatal_help () |
| { |
| func_error ${1+"$@"} |
| func_fatal_error "$help" |
| } |
| help="Try \`$progname --help' for more information." ## default |
| |
| |
| # func_grep expression filename |
| # Check whether EXPRESSION matches any line of FILENAME, without output. |
| func_grep () |
| { |
| $GREP "$1" "$2" >/dev/null 2>&1 |
| } |
| |
| |
| # func_mkdir_p directory-path |
| # Make sure the entire path to DIRECTORY-PATH is available. |
| func_mkdir_p () |
| { |
| my_directory_path="$1" |
| my_dir_list= |
| |
| if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then |
| |
| # Protect directory names starting with `-' |
| case $my_directory_path in |
| -*) my_directory_path="./$my_directory_path" ;; |
| esac |
| |
| # While some portion of DIR does not yet exist... |
| while test ! -d "$my_directory_path"; do |
| # ...make a list in topmost first order. Use a colon delimited |
| # list incase some portion of path contains whitespace. |
| my_dir_list="$my_directory_path:$my_dir_list" |
| |
| # If the last portion added has no slash in it, the list is done |
| case $my_directory_path in */*) ;; *) break ;; esac |
| |
| # ...otherwise throw away the child directory and loop |
| my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` |
| done |
| my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` |
| |
| save_mkdir_p_IFS="$IFS"; IFS=':' |
| for my_dir in $my_dir_list; do |
| IFS="$save_mkdir_p_IFS" |
| # mkdir can fail with a `File exist' error if two processes |
| # try to create one of the directories concurrently. Don't |
| # stop in that case! |
| $MKDIR "$my_dir" 2>/dev/null || : |
| done |
| IFS="$save_mkdir_p_IFS" |
| |
| # Bail out if we (or some other process) failed to create a directory. |
| test -d "$my_directory_path" || \ |
| func_fatal_error "Failed to create \`$1'" |
| fi |
| } |
| |
| |
| # func_mktempdir [string] |
| # Make a temporary directory that won't clash with other running |
| # libtool processes, and avoids race conditions if possible. If |
| # given, STRING is the basename for that directory. |
| func_mktempdir () |
| { |
| my_template="${TMPDIR-/tmp}/${1-$progname}" |
| |
| if test "$opt_dry_run" = ":"; then |
| # Return a directory name, but don't create it in dry-run mode |
| my_tmpdir="${my_template}-$$" |
| else |
| |
| # If mktemp works, use that first and foremost |
| my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` |
| |
| if test ! -d "$my_tmpdir"; then |
| # Failing that, at least try and use $RANDOM to avoid a race |
| my_tmpdir="${my_template}-${RANDOM-0}$$" |
| |
| save_mktempdir_umask=`umask` |
| umask 0077 |
| $MKDIR "$my_tmpdir" |
| umask $save_mktempdir_umask |
| fi |
| |
| # If we're not in dry-run mode, bomb out on failure |
| test -d "$my_tmpdir" || \ |
| func_fatal_error "cannot create temporary directory \`$my_tmpdir'" |
| fi |
| |
| $ECHO "$my_tmpdir" |
| } |
| |
| |
| # func_quote_for_eval arg |
| # Aesthetically quote ARG to be evaled later. |
| # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT |
| # is double-quoted, suitable for a subsequent eval, whereas |
| # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters |
| # which are still active within double quotes backslashified. |
| func_quote_for_eval () |
| { |
| case $1 in |
| *[\\\`\"\$]*) |
| func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; |
| *) |
| func_quote_for_eval_unquoted_result="$1" ;; |
| esac |
| |
| case $func_quote_for_eval_unquoted_result in |
| # Double-quote args containing shell metacharacters to delay |
| # word splitting, command substitution and and variable |
| # expansion for a subsequent eval. |
| # Many Bourne shells cannot handle close brackets correctly |
| # in scan sets, so we specify it separately. |
| *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
| func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" |
| ;; |
| *) |
| func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" |
| esac |
| } |
| |
| |
| # func_quote_for_expand arg |
| # Aesthetically quote ARG to be evaled later; same as above, |
| # but do not quote variable references. |
| func_quote_for_expand () |
| { |
| case $1 in |
| *[\\\`\"]*) |
| my_arg=`$ECHO "$1" | $SED \ |
| -e "$double_quote_subst" -e "$sed_double_backslash"` ;; |
| *) |
| my_arg="$1" ;; |
| esac |
| |
| case $my_arg in |
| # Double-quote args containing shell metacharacters to delay |
| # word splitting and command substitution for a subsequent eval. |
| # Many Bourne shells cannot handle close brackets correctly |
| # in scan sets, so we specify it separately. |
| *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
| my_arg="\"$my_arg\"" |
| ;; |
| esac |
| |
| func_quote_for_expand_result="$my_arg" |
| } |
| |
| |
| # func_show_eval cmd [fail_exp] |
| # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is |
| # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP |
| # is given, then evaluate it. |
| func_show_eval () |
| { |
| my_cmd="$1" |
| my_fail_exp="${2-:}" |
| |
| ${opt_silent-false} || { |
| func_quote_for_expand "$my_cmd" |
| eval "func_echo $func_quote_for_expand_result" |
| } |
| |
| if ${opt_dry_run-false}; then :; else |
| eval "$my_cmd" |
| my_status=$? |
| if test "$my_status" -eq 0; then :; else |
| eval "(exit $my_status); $my_fail_exp" |
| fi |
| fi |
| } |
| |
| |
| # func_show_eval_locale cmd [fail_exp] |
| # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is |
| # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP |
| # is given, then evaluate it. Use the saved locale for evaluation. |
| func_show_eval_locale () |
| { |
| my_cmd="$1" |
| my_fail_exp="${2-:}" |
| |
| ${opt_silent-false} || { |
| func_quote_for_expand "$my_cmd" |
| eval "func_echo $func_quote_for_expand_result" |
| } |
| |
| if ${opt_dry_run-false}; then :; else |
| eval "$lt_user_locale |
| $my_cmd" |
| my_status=$? |
| eval "$lt_safe_locale" |
| if test "$my_status" -eq 0; then :; else |
| eval "(exit $my_status); $my_fail_exp" |
| fi |
| fi |
| } |
| |
| |
| # func_version |
| # Echo version message to standard output and exit. |
| func_version () |
| { |
| $SED -n '/(C)/!b go |
| :more |
| /\./!{ |
| N |
| s/\n# / / |
| b more |
| } |
| :go |
| /^# '$PROGRAM' (GNU /,/# warranty; / { |
| s/^# // |
| s/^# *$// |
| s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ |
| p |
| }' < "$progpath" |
| exit $? |
| } |
| |
| # func_usage |
| # Echo short help message to standard output and exit. |
| func_usage () |
| { |
| $SED -n '/^# Usage:/,/^# *.*--help/ { |
| s/^# // |
| s/^# *$// |
| s/\$progname/'$progname'/ |
| p |
| }' < "$progpath" |
| echo |
| $ECHO "run \`$progname --help | more' for full usage" |
| exit $? |
| } |
| |
| # func_help [NOEXIT] |
| # Echo long help message to standard output and exit, |
| # unless 'noexit' is passed as argument. |
| func_help () |
| { |
| $SED -n '/^# Usage:/,/# Report bugs to/ { |
| s/^# // |
| s/^# *$// |
| s*\$progname*'$progname'* |
| s*\$host*'"$host"'* |
| s*\$SHELL*'"$SHELL"'* |
| s*\$LTCC*'"$LTCC"'* |
| s*\$LTCFLAGS*'"$LTCFLAGS"'* |
| s*\$LD*'"$LD"'* |
| s/\$with_gnu_ld/'"$with_gnu_ld"'/ |
| s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ |
| s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ |
| p |
| }' < "$progpath" |
| ret=$? |
| if test -z "$1"; then |
| exit $ret |
| fi |
| } |
| |
| # func_missing_arg argname |
| # Echo program name prefixed message to standard error and set global |
| # exit_cmd. |
| func_missing_arg () |
| { |
| func_error "missing argument for $1." |
| exit_cmd=exit |
| } |
| |
| exit_cmd=: |
| |
| |
| |
| |
| |
| # 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=/usr/local/google/apenwarr/athena/out.mstc/host/usr |
| datadir=/usr/local/google/apenwarr/athena/out.mstc/host/usr/share |
| pkgdatadir=/usr/local/google/apenwarr/athena/out.mstc/host/usr/share/libtool |
| pkgltdldir=/usr/local/google/apenwarr/athena/out.mstc/host/usr/share/libtool |
| aclocaldir=/usr/local/google/apenwarr/athena/out.mstc/host/usr/share/aclocal |
| 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="func_echo_all $RM" |
| test -n "$LN_S" && LN_S="func_echo_all $LN_S" |
| CP="func_echo_all $CP" |
| MKDIR="func_echo_all $MKDIR" |
| TAR="func_echo_all $TAR" |
| fi |
| ;; |
| |
| --force|-f) opt_force=: ;; |
| |
| --install|-i) opt_install=: ;; |
| |
| --ltdl) opt_ltdl=: |
| if test "$#" -gt 0; then |
| case $1 in |
| -*) ;; |
| *) ltdldir=`$ECHO "$1" | $SED '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 "$opt" | $SED "$my_sed_long_arg"` |
| opt=`$ECHO "$opt" | $SED "$my_sed_long_opt"` |
| set dummy "$opt" "$arg" ${1+"$@"} |
| shift |
| ;; |
| |
| # Separate optargs to short options: |
| #-X*) |
| # arg=`$ECHO "$opt" | $SED "$my_sed_single_rest"` |
| # opt=`$ECHO "$opt" | $SED "$my_sed_single_opt"` |
| # set dummy "$opt" "$arg" ${1+"$@"} |
| # shift |
| # ;; |
| |
| # Separate non-argument short options: |
| -c*|-f*|-i*|-n*|-q*|-v*) |
| rest=`$ECHO "$opt" | $SED "$my_sed_single_rest"` |
| opt=`$ECHO "$opt" | $SED "$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; } |
| |
| 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 |
| |
| # 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_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 "$my_destdir/$my_file" | $SED "$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 "$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 |
| |
| $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 "$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 |
| # 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 "$my_searchfile" |
| |
| # 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= |
| func_dirname_and_basename "$my_filename" |
| my_filebase=$func_basename_result |
| for my_file in `func_included_files "$my_filename"`; do |
| if test -z "$my_macro_regex" || |
| test "$my_filename" = aclocal.m4 || |
| test "X$my_macro_regex" = "X$my_filebase" || |
| 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 "$1$2" | $SED "$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 "$my_serial1" | $SED "$my_sed_dot"` |
| my_serial2_part=`$ECHO "$my_serial2" | $SED "$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 "$my_serial1" | $SED "$my_sed_rest"` |
| my_serial2=`$ECHO "$my_serial2" | $SED "$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,[#;].*,, |
| 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 m4/argz.m4 m4/libtool.m4 m4/ltdl.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4; do |
| func_dirname_and_basename "$my_filename" |
| my_filename=$func_basename_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 |
| |
| pkgmacro_files="$pkgmacro_files:$my_filename" |
| done |
| |
| # strip spurious leading `:' |
| pkgmacro_files=`$ECHO "$pkgmacro_files" | $SED '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 libltdl/COPYING.LIB libltdl/README libltdl/Makefile.inc libltdl/Makefile.am libltdl/configure.ac libltdl/aclocal.m4 libltdl/Makefile.in libltdl/config-h.in libltdl/configure libltdl/argz_.h libltdl/argz.c libltdl/loaders/dld_link.c libltdl/loaders/dlopen.c libltdl/loaders/dyld.c libltdl/loaders/load_add_on.c libltdl/loaders/loadlibrary.c libltdl/loaders/shl_load.c libltdl/lt__dirent.c libltdl/lt__strl.c libltdl/libltdl/lt__alloc.h libltdl/libltdl/lt__dirent.h libltdl/libltdl/lt__glibc.h libltdl/libltdl/lt__private.h libltdl/libltdl/lt__strl.h libltdl/libltdl/lt_dlloader.h libltdl/libltdl/lt_error.h libltdl/libltdl/lt_system.h libltdl/libltdl/slist.h libltdl/loaders/preopen.c libltdl/lt__alloc.c libltdl/lt_dlloader.c libltdl/lt_error.c libltdl/ltdl.c libltdl/ltdl.h libltdl/slist.c; 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 "$pkgltdl_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_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 config/compile config/config.guess config/config.sub config/depcomp config/install-sh config/missing config/ltmain.sh; 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 "$pkgconfig_files" | $SED '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 is 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: |
| |