📄 libtool.m4
字号:
# _LT_TAG_COMPILER# ----------------m4_defun([_LT_TAG_COMPILER],[AC_REQUIRE([AC_PROG_CC])dnl_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl# If no C compiler was specified, use CC.LTCC=${LTCC-"$CC"}# If no C compiler flags were specified, use CFLAGS.LTCFLAGS=${LTCFLAGS-"$CFLAGS"}# Allow CC to be a program name with arguments.compiler=$CC])# _LT_TAG_COMPILER# _LT_COMPILER_BOILERPLATE# ------------------------# Check for compiler boilerplate output or warnings with# the simple compiler test code.m4_defun([_LT_COMPILER_BOILERPLATE],[ac_outfile=conftest.$ac_objextprintf "$lt_simple_compile_test_code" >conftest.$ac_exteval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err_lt_compiler_boilerplate=`cat conftest.err`$RM conftest*])# _LT_COMPILER_BOILERPLATE# _LT_LINKER_BOILERPLATE# ----------------------# Check for linker boilerplate output or warnings with# the simple link test code.m4_defun([_LT_LINKER_BOILERPLATE],[ac_outfile=conftest.$ac_objextprintf "$lt_simple_link_test_code" >conftest.$ac_exteval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err_lt_linker_boilerplate=`cat conftest.err`$RM conftest*])# _LT_LINKER_BOILERPLATE# _LT_SYS_MODULE_PATH_AIX# -----------------------# Links a minimal program and checks the executable# for the system default hardcoded library path. In most cases,# this is /usr/lib:/lib, but when the MPI compilers are used# the location of the communication and MPI libs are included too.# If we don't find anything, use the default library path according# to the aix ld manual.m4_defun([_LT_SYS_MODULE_PATH_AIX],[AC_LINK_IFELSE(AC_LANG_PROGRAM,[lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }'aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`# Check for a 64-bit object if we didn't find anything.if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`fi],[])if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi])# _LT_SYS_MODULE_PATH_AIX# _LT_SHELL_INIT(ARG)# -------------------m4_define([_LT_SHELL_INIT],[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)])$1AC_DIVERT_POP])# _LT_SHELL_INIT# _LT_PROG_ECHO_BACKSLASH# -----------------------# Add some code to the start of the generated configure script which# will find an echo command which doesn't interpret backslashes.m4_defun([_LT_PROG_ECHO_BACKSLASH],[_LT_SHELL_INIT([# Check that we are running under the correct shell.SHELL=${CONFIG_SHELL-/bin/sh}case X$lt_ECHO inX*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;;esacECHO=${lt_ECHO-echo}if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shiftelif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over :elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! :else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}fiif test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF[$]*_LT_EOF exit 0fi# The HP-UX ksh and POSIX shell print the target directory to stdout# if CDPATH is set.(unset CDPATH) >/dev/null 2>&1 && unset CDPATHif test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fifi# Copy echo and quote the copy suitably for passing to libtool from# the Makefile, instead of quoting the original, which is used later.lt_ECHO=$ECHOif test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"fiAC_SUBST(lt_ECHO)])_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])_LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes])])# _LT_PROG_ECHO_BACKSLASH# _LT_ENABLE_LOCK# ---------------m4_defun([_LT_ENABLE_LOCK],[AC_REQUIRE([AC_OBJEXT])dnlAC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])])test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes# Some flags need to be propagated to the compiler or linker for good# libtool support.case $host inia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;;*-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;;x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;;*-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;;sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;;esacneed_locks="$enable_libtool_lock"])# _LT_ENABLE_LOCK# _LT_CMD_OLD_ARCHIVE# -------------------m4_defun([_LT_CMD_OLD_ARCHIVE],[AC_CHECK_TOOL(AR, ar, false)test -z "$AR" && AR=artest -z "$AR_FLAGS" && AR_FLAGS=cru_LT_DECL([], [AR], [1], [The archiver])_LT_DECL([], [AR_FLAGS], [1])AC_CHECK_TOOL(STRIP, strip, :)test -z "$STRIP" && STRIP=:_LT_DECL([], [STRIP], [1], [A symbol stripping program])AC_CHECK_TOOL(RANLIB, ranlib, :)test -z "$RANLIB" && RANLIB=:_LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive])# Determine commands to create old-style static archives.old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'old_postinstall_cmds='chmod 644 $oldlib'old_postuninstall_cmds=if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"fi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -