1## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*- 2## Copyright (C) 1996-1998 Free Software Foundation, Inc. 3## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 4## 5## This program is free software; you can redistribute it and/or modify 6## it under the terms of the GNU General Public License as published by 7## the Free Software Foundation; either version 2 of the License, or 8## (at your option) any later version. 9## 10## This program is distributed in the hope that it will be useful, but 11## WITHOUT ANY WARRANTY; without even the implied warranty of 12## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13## General Public License for more details. 14## 15## You should have received a copy of the GNU General Public License 16## along with this program; if not, write to the Free Software 17## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18## 19## As a special exception to the GNU General Public License, if you 20## distribute this file as part of a program that contains a 21## configuration script generated by Autoconf, you may include it under 22## the same distribution terms that you use for the rest of that program. 23 24# serial 24 AM_PROG_LIBTOOL 25AC_DEFUN(AM_PROG_LIBTOOL, 26[AC_REQUIRE([AM_ENABLE_SHARED])dnl 27AC_REQUIRE([AM_DISABLE_STATIC])dnl 28AC_REQUIRE([AC_CANONICAL_HOST])dnl 29AC_REQUIRE([AC_PROG_RANLIB])dnl 30AC_REQUIRE([AC_PROG_CC])dnl 31AC_REQUIRE([AM_PROG_LD])dnl 32AC_REQUIRE([AM_PROG_NM])dnl 33AC_REQUIRE([AC_PROG_LN_S])dnl 34dnl 35# Always use our own libtool. 36LIBTOOL='$(TOP)/libtool' 37AC_SUBST(LIBTOOL)dnl 38 39# Check for any special flags to pass to ltconfig. 40libtool_flags= 41test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" 42test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" 43test "$silent" = yes && libtool_flags="$libtool_flags --silent" 44test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" 45test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" 46 47# Some flags need to be propagated to the compiler or linker for good 48# libtool support. 49case "$host" in 50*-*-irix6*) 51 # Find out which ABI we are using. 52 echo '[#]line __oline__ "configure"' > conftest.$ac_ext 53 if AC_TRY_EVAL(ac_compile); then 54 case "`/usr/bin/file conftest.o`" in 55 *32-bit*) 56 LD="${LD-ld} -32" 57 ;; 58 *N32*) 59 LD="${LD-ld} -n32" 60 ;; 61 *64-bit*) 62 LD="${LD-ld} -64" 63 ;; 64 esac 65 fi 66 rm -rf conftest* 67 ;; 68 69*-*-sco3.2v5*) 70 # On SCO OpenServer 5, we need -belf to get full-featured binaries. 71 CFLAGS="$CFLAGS -belf" 72 ;; 73esac 74 75# Actually configure libtool. ac_aux_dir is where install-sh is found. 76CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ 77LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ 78${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ 79$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ 80|| AC_MSG_ERROR([libtool configure failed]) 81]) 82 83# AM_ENABLE_SHARED - implement the --enable-shared flag 84# Usage: AM_ENABLE_SHARED[(DEFAULT)] 85# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to 86# `yes'. 87AC_DEFUN(AM_ENABLE_SHARED, 88[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl 89AC_ARG_ENABLE(shared, 90changequote(<<, >>)dnl 91<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT] 92changequote([, ])dnl 93[ --enable-shared=PKGS only build shared libraries if the current package 94 appears as an element in the PKGS list], 95[p=${PACKAGE-default} 96case "$enableval" in 97yes) enable_shared=yes ;; 98no) enable_shared=no ;; 99*) 100 enable_shared=no 101 # Look at the argument we got. We use all the common list separators. 102 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," 103 for pkg in $enableval; do 104 if test "X$pkg" = "X$p"; then 105 enable_shared=yes 106 fi 107 done 108 IFS="$ac_save_ifs" 109 ;; 110esac], 111enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl 112]) 113 114# AM_DISABLE_SHARED - set the default shared flag to --disable-shared 115AC_DEFUN(AM_DISABLE_SHARED, 116[AM_ENABLE_SHARED(no)]) 117 118# AM_DISABLE_STATIC - set the default static flag to --disable-static 119AC_DEFUN(AM_DISABLE_STATIC, 120[AM_ENABLE_STATIC(no)]) 121 122# AM_ENABLE_STATIC - implement the --enable-static flag 123# Usage: AM_ENABLE_STATIC[(DEFAULT)] 124# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to 125# `yes'. 126AC_DEFUN(AM_ENABLE_STATIC, 127[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl 128AC_ARG_ENABLE(static, 129changequote(<<, >>)dnl 130<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT] 131changequote([, ])dnl 132[ --enable-static=PKGS only build shared libraries if the current package 133 appears as an element in the PKGS list], 134[p=${PACKAGE-default} 135case "$enableval" in 136yes) enable_static=yes ;; 137no) enable_static=no ;; 138*) 139 enable_static=no 140 # Look at the argument we got. We use all the common list separators. 141 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," 142 for pkg in $enableval; do 143 if test "X$pkg" = "X$p"; then 144 enable_static=yes 145 fi 146 done 147 IFS="$ac_save_ifs" 148 ;; 149esac], 150enable_static=AM_ENABLE_STATIC_DEFAULT)dnl 151]) 152 153 154# AM_PROG_LD - find the path to the GNU or non-GNU linker 155AC_DEFUN(AM_PROG_LD, 156[AC_ARG_WITH(gnu-ld, 157[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], 158test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) 159AC_REQUIRE([AC_PROG_CC]) 160ac_prog=ld 161if test "$ac_cv_prog_gcc" = yes; then 162 # Check if gcc -print-prog-name=ld gives a path. 163 AC_MSG_CHECKING([for ld used by GCC]) 164 ac_prog=`($CC -print-prog-name=ld) 2>&5` 165 case "$ac_prog" in 166 # Accept absolute paths. 167 /* | [A-Za-z]:\\*) 168 test -z "$LD" && LD="$ac_prog" 169 ;; 170 "") 171 # If it fails, then pretend we aren't using GCC. 172 ac_prog=ld 173 ;; 174 *) 175 # If it is relative, then search for the first ld in PATH. 176 with_gnu_ld=unknown 177 ;; 178 esac 179elif test "$with_gnu_ld" = yes; then 180 AC_MSG_CHECKING([for GNU ld]) 181else 182 AC_MSG_CHECKING([for non-GNU ld]) 183fi 184AC_CACHE_VAL(ac_cv_path_LD, 185[if test -z "$LD"; then 186 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" 187 for ac_dir in $PATH; do 188 test -z "$ac_dir" && ac_dir=. 189 if test -f "$ac_dir/$ac_prog"; then 190 ac_cv_path_LD="$ac_dir/$ac_prog" 191 # Check to see if the program is GNU ld. I'd rather use --version, 192 # but apparently some GNU ld's only accept -v. 193 # Break only if it was the GNU/non-GNU ld that we prefer. 194 if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then 195 test "$with_gnu_ld" != no && break 196 else 197 test "$with_gnu_ld" != yes && break 198 fi 199 fi 200 done 201 IFS="$ac_save_ifs" 202else 203 ac_cv_path_LD="$LD" # Let the user override the test with a path. 204fi]) 205LD="$ac_cv_path_LD" 206if test -n "$LD"; then 207 AC_MSG_RESULT($LD) 208else 209 AC_MSG_RESULT(no) 210fi 211test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) 212AC_SUBST(LD) 213AM_PROG_LD_GNU 214]) 215 216AC_DEFUN(AM_PROG_LD_GNU, 217[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, 218[# I'd rather use --version here, but apparently some GNU ld's only accept -v. 219if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then 220 ac_cv_prog_gnu_ld=yes 221else 222 ac_cv_prog_gnu_ld=no 223fi]) 224]) 225 226# AM_PROG_NM - find the path to a BSD-compatible name lister 227AC_DEFUN(AM_PROG_NM, 228[AC_MSG_CHECKING([for BSD-compatible nm]) 229AC_CACHE_VAL(ac_cv_path_NM, 230[case "$NM" in 231/* | [A-Za-z]:\\*) 232 ac_cv_path_NM="$NM" # Let the user override the test with a path. 233 ;; 234*) 235 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" 236 for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do 237 test -z "$ac_dir" && ac_dir=. 238 if test -f $ac_dir/nm; then 239 # Check to see if the nm accepts a BSD-compat flag. 240 # Adding the `sed 1q' prevents false positives on HP-UX, which says: 241 # nm: unknown option "B" ignored 242 if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then 243 ac_cv_path_NM="$ac_dir/nm -B" 244 elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then 245 ac_cv_path_NM="$ac_dir/nm -p" 246 else 247 ac_cv_path_NM="$ac_dir/nm" 248 fi 249 break 250 fi 251 done 252 IFS="$ac_save_ifs" 253 test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm 254 ;; 255esac]) 256NM="$ac_cv_path_NM" 257AC_MSG_RESULT([$NM]) 258AC_SUBST(NM) 259]) 260