Initial revision
[rrdtool.git] / config / libtool / libtool.m4
1 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
2 ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
3 ## Originally by 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 40 AC_PROG_LIBTOOL
25 AC_DEFUN(AC_PROG_LIBTOOL,
26 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
27
28 # Save cache, so that ltconfig can load it
29 AC_CACHE_SAVE
30
31 # Actually configure libtool.  ac_aux_dir is where install-sh is found.
32 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
33 LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
34 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
35 DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
36 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
37 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
38 || AC_MSG_ERROR([libtool configure failed])
39
40 # Reload cache, that may have been modified by ltconfig
41 AC_CACHE_LOAD
42
43 # This can be used to rebuild libtool when needed
44 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
45
46 # Always use our own libtool.
47 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
48 AC_SUBST(LIBTOOL)dnl
49
50 # Redirect the config.log output again, so that the ltconfig log is not
51 # clobbered by the next message.
52 exec 5>>./config.log
53 ])
54
55 AC_DEFUN(AC_LIBTOOL_SETUP,
56 [AC_PREREQ(2.13)dnl
57 AC_REQUIRE([AC_ENABLE_SHARED])dnl
58 AC_REQUIRE([AC_ENABLE_STATIC])dnl
59 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
60 AC_REQUIRE([AC_CANONICAL_HOST])dnl
61 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
62 AC_REQUIRE([AC_PROG_RANLIB])dnl
63 AC_REQUIRE([AC_PROG_CC])dnl
64 AC_REQUIRE([AC_PROG_LD])dnl
65 AC_REQUIRE([AC_PROG_NM])dnl
66 AC_REQUIRE([AC_PROG_LN_S])dnl
67 dnl
68
69 # Check for any special flags to pass to ltconfig.
70 libtool_flags="--cache-file=$cache_file"
71 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
72 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
73 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
74 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
75 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
76 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
77 [libtool_flags="$libtool_flags --enable-dlopen"])
78 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
79 [libtool_flags="$libtool_flags --enable-win32-dll"])
80 AC_ARG_ENABLE(libtool-lock,
81   [  --disable-libtool-lock  avoid locking (might break parallel builds)])
82 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
83 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
84
85 # Some flags need to be propagated to the compiler or linker for good
86 # libtool support.
87 case "$host" in
88 *-*-irix6*)
89   # Find out which ABI we are using.
90   echo '[#]line __oline__ "configure"' > conftest.$ac_ext
91   if AC_TRY_EVAL(ac_compile); then
92     case "`/usr/bin/file conftest.o`" in
93     *32-bit*)
94       LD="${LD-ld} -32"
95       ;;
96     *N32*)
97       LD="${LD-ld} -n32"
98       ;;
99     *64-bit*)
100       LD="${LD-ld} -64"
101       ;;
102     esac
103   fi
104   rm -rf conftest*
105   ;;
106
107 *-*-sco3.2v5*)
108   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
109   SAVE_CFLAGS="$CFLAGS"
110   CFLAGS="$CFLAGS -belf"
111   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
112     [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
113   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
114     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
115     CFLAGS="$SAVE_CFLAGS"
116   fi
117   ;;
118
119 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
120 [*-*-cygwin* | *-*-mingw*)
121   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
122   AC_CHECK_TOOL(AS, as, false)
123   AC_CHECK_TOOL(OBJDUMP, objdump, false)
124   ;;
125 ])
126 esac
127 ])
128
129 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
130 AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
131
132 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
133 AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
134
135 # AC_ENABLE_SHARED - implement the --enable-shared flag
136 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
137 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
138 #   `yes'.
139 AC_DEFUN(AC_ENABLE_SHARED, [dnl
140 define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
141 AC_ARG_ENABLE(shared,
142 changequote(<<, >>)dnl
143 <<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
144 changequote([, ])dnl
145 [p=${PACKAGE-default}
146 case "$enableval" in
147 yes) enable_shared=yes ;;
148 no) enable_shared=no ;;
149 *)
150   enable_shared=no
151   # Look at the argument we got.  We use all the common list separators.
152   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
153   for pkg in $enableval; do
154     if test "X$pkg" = "X$p"; then
155       enable_shared=yes
156     fi
157   done
158   IFS="$ac_save_ifs"
159   ;;
160 esac],
161 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
162 ])
163
164 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
165 AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
166 AC_ENABLE_SHARED(no)])
167
168 # AC_ENABLE_STATIC - implement the --enable-static flag
169 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
170 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
171 #   `yes'.
172 AC_DEFUN(AC_ENABLE_STATIC, [dnl
173 define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
174 AC_ARG_ENABLE(static,
175 changequote(<<, >>)dnl
176 <<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
177 changequote([, ])dnl
178 [p=${PACKAGE-default}
179 case "$enableval" in
180 yes) enable_static=yes ;;
181 no) enable_static=no ;;
182 *)
183   enable_static=no
184   # Look at the argument we got.  We use all the common list separators.
185   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
186   for pkg in $enableval; do
187     if test "X$pkg" = "X$p"; then
188       enable_static=yes
189     fi
190   done
191   IFS="$ac_save_ifs"
192   ;;
193 esac],
194 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
195 ])
196
197 # AC_DISABLE_STATIC - set the default static flag to --disable-static
198 AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
199 AC_ENABLE_STATIC(no)])
200
201
202 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
203 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
204 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
205 #   `yes'.
206 AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
207 define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
208 AC_ARG_ENABLE(fast-install,
209 changequote(<<, >>)dnl
210 <<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
211 changequote([, ])dnl
212 [p=${PACKAGE-default}
213 case "$enableval" in
214 yes) enable_fast_install=yes ;;
215 no) enable_fast_install=no ;;
216 *)
217   enable_fast_install=no
218   # Look at the argument we got.  We use all the common list separators.
219   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
220   for pkg in $enableval; do
221     if test "X$pkg" = "X$p"; then
222       enable_fast_install=yes
223     fi
224   done
225   IFS="$ac_save_ifs"
226   ;;
227 esac],
228 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
229 ])
230
231 # AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
232 AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
233 AC_ENABLE_FAST_INSTALL(no)])
234
235 # AC_PROG_LD - find the path to the GNU or non-GNU linker
236 AC_DEFUN(AC_PROG_LD,
237 [AC_ARG_WITH(gnu-ld,
238 [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
239 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
240 AC_REQUIRE([AC_PROG_CC])dnl
241 AC_REQUIRE([AC_CANONICAL_HOST])dnl
242 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
243 ac_prog=ld
244 if test "$ac_cv_prog_gcc" = yes; then
245   # Check if gcc -print-prog-name=ld gives a path.
246   AC_MSG_CHECKING([for ld used by GCC])
247   ac_prog=`($CC -print-prog-name=ld) 2>&5`
248   case "$ac_prog" in
249     # Accept absolute paths.
250 changequote(,)dnl
251     [\\/]* | [A-Za-z]:[\\/]*)
252       re_direlt='/[^/][^/]*/\.\./'
253 changequote([,])dnl
254       # Canonicalize the path of ld
255       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
256       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
257         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
258       done
259       test -z "$LD" && LD="$ac_prog"
260       ;;
261   "")
262     # If it fails, then pretend we aren't using GCC.
263     ac_prog=ld
264     ;;
265   *)
266     # If it is relative, then search for the first ld in PATH.
267     with_gnu_ld=unknown
268     ;;
269   esac
270 elif test "$with_gnu_ld" = yes; then
271   AC_MSG_CHECKING([for GNU ld])
272 else
273   AC_MSG_CHECKING([for non-GNU ld])
274 fi
275 AC_CACHE_VAL(ac_cv_path_LD,
276 [if test -z "$LD"; then
277   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
278   for ac_dir in $PATH; do
279     test -z "$ac_dir" && ac_dir=.
280     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
281       ac_cv_path_LD="$ac_dir/$ac_prog"
282       # Check to see if the program is GNU ld.  I'd rather use --version,
283       # but apparently some GNU ld's only accept -v.
284       # Break only if it was the GNU/non-GNU ld that we prefer.
285       if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
286         test "$with_gnu_ld" != no && break
287       else
288         test "$with_gnu_ld" != yes && break
289       fi
290     fi
291   done
292   IFS="$ac_save_ifs"
293 else
294   ac_cv_path_LD="$LD" # Let the user override the test with a path.
295 fi])
296 LD="$ac_cv_path_LD"
297 if test -n "$LD"; then
298   AC_MSG_RESULT($LD)
299 else
300   AC_MSG_RESULT(no)
301 fi
302 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
303 AC_SUBST(LD)
304 AC_PROG_LD_GNU
305 ])
306
307 AC_DEFUN(AC_PROG_LD_GNU,
308 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
309 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
310 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
311   ac_cv_prog_gnu_ld=yes
312 else
313   ac_cv_prog_gnu_ld=no
314 fi])
315 ])
316
317 # AC_PROG_NM - find the path to a BSD-compatible name lister
318 AC_DEFUN(AC_PROG_NM,
319 [AC_MSG_CHECKING([for BSD-compatible nm])
320 AC_CACHE_VAL(ac_cv_path_NM,
321 [if test -n "$NM"; then
322   # Let the user override the test.
323   ac_cv_path_NM="$NM"
324 else
325   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
326   for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
327     test -z "$ac_dir" && ac_dir=.
328     if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
329       # Check to see if the nm accepts a BSD-compat flag.
330       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
331       #   nm: unknown option "B" ignored
332       if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
333         ac_cv_path_NM="$ac_dir/nm -B"
334         break
335       elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
336         ac_cv_path_NM="$ac_dir/nm -p"
337         break
338       else
339         ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
340         continue # so that we can try to find one that supports BSD flags
341       fi
342     fi
343   done
344   IFS="$ac_save_ifs"
345   test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
346 fi])
347 NM="$ac_cv_path_NM"
348 AC_MSG_RESULT([$NM])
349 AC_SUBST(NM)
350 ])
351
352 # AC_CHECK_LIBM - check for math library
353 AC_DEFUN(AC_CHECK_LIBM,
354 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
355 LIBM=
356 case "$host" in
357 *-*-beos* | *-*-cygwin*)
358   # These system don't have libm
359   ;;
360 *-ncr-sysv4.3*)
361   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
362   AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
363   ;;
364 *)
365   AC_CHECK_LIB(m, main, LIBM="-lm")
366   ;;
367 esac
368 ])
369
370 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
371 # the libltdl convenience library, adds --enable-ltdl-convenience to
372 # the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
373 # is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
374 # to be `${top_builddir}/libltdl'.  Make sure you start DIR with
375 # '${top_builddir}/' (note the single quotes!) if your package is not
376 # flat, and, if you're not using automake, define top_builddir as
377 # appropriate in the Makefiles.
378 AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
379   case "$enable_ltdl_convenience" in
380   no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
381   "") enable_ltdl_convenience=yes
382       ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
383   esac
384   LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
385   INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
386 ])
387
388 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
389 # the libltdl installable library, and adds --enable-ltdl-install to
390 # the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
391 # is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
392 # to be `${top_builddir}/libltdl'.  Make sure you start DIR with
393 # '${top_builddir}/' (note the single quotes!) if your package is not
394 # flat, and, if you're not using automake, define top_builddir as
395 # appropriate in the Makefiles.
396 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
397 AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
398   AC_CHECK_LIB(ltdl, main,
399   [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
400   [if test x"$enable_ltdl_install" = xno; then
401      AC_MSG_WARN([libltdl not installed, but installation disabled])
402    else
403      enable_ltdl_install=yes
404    fi
405   ])
406   if test x"$enable_ltdl_install" = x"yes"; then
407     ac_configure_args="$ac_configure_args --enable-ltdl-install"
408     LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
409     INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
410   else
411     ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
412     LIBLTDL="-lltdl"
413     INCLTDL=
414   fi
415 ])
416
417 dnl old names
418 AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
419 AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
420 AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
421 AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
422 AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
423 AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
424 AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
425
426 dnl This is just to silence aclocal about the macro not being used
427 ifelse([AC_DISABLE_FAST_INSTALL])dnl