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
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.
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.
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.
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.
24 # serial 24 AM_PROG_LIBTOOL
25 AC_DEFUN(AM_PROG_LIBTOOL,
26 [AC_REQUIRE([AM_ENABLE_SHARED])dnl
27 AC_REQUIRE([AM_ENABLE_STATIC])dnl
28 AC_REQUIRE([AC_CANONICAL_HOST])dnl
29 AC_REQUIRE([AC_PROG_RANLIB])dnl
30 AC_REQUIRE([AC_PROG_CC])dnl
31 AC_REQUIRE([AM_PROG_LD])dnl
32 AC_REQUIRE([AM_PROG_NM])dnl
33 AC_REQUIRE([AC_PROG_LN_S])dnl
35 # Always use our own libtool.
36 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
39 # Check for any special flags to pass to ltconfig.
41 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
42 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
43 test "$silent" = yes && libtool_flags="$libtool_flags --silent"
44 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
45 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
47 # Some flags need to be propagated to the compiler or linker for good
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
70 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
71 CFLAGS="$CFLAGS -belf"
75 # Actually configure libtool. ac_aux_dir is where install-sh is found.
76 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
77 LD="$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])
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
87 AC_DEFUN(AM_ENABLE_SHARED,
88 [define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
90 changequote(<<, >>)dnl
91 << --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT]
93 [ --enable-shared=PKGS only build shared libraries if the current package
94 appears as an element in the PKGS list],
97 yes) enable_shared=yes ;;
98 no) 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
111 enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
114 # AM_DISABLE_SHARED - set the default shared flag to --disable-shared
115 AC_DEFUN(AM_DISABLE_SHARED,
116 [AM_ENABLE_SHARED(no)])
118 # AM_DISABLE_STATIC - set the default static flag to --disable-static
119 AC_DEFUN(AM_DISABLE_STATIC,
120 [AM_ENABLE_STATIC(no)])
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
126 AC_DEFUN(AM_ENABLE_STATIC,
127 [define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
128 AC_ARG_ENABLE(static,
129 changequote(<<, >>)dnl
130 << --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT]
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}
136 yes) enable_static=yes ;;
137 no) 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
150 enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
154 # AM_PROG_LD - find the path to the GNU or non-GNU linker
157 [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
158 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
159 AC_REQUIRE([AC_PROG_CC])
161 if 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`
166 # Accept absolute paths.
168 test -z "$LD" && LD="$ac_prog"
171 # If it fails, then pretend we aren't using GCC.
175 # If it is relative, then search for the first ld in PATH.
179 elif test "$with_gnu_ld" = yes; then
180 AC_MSG_CHECKING([for GNU ld])
182 AC_MSG_CHECKING([for non-GNU ld])
184 AC_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
197 test "$with_gnu_ld" != yes && break
203 ac_cv_path_LD="$LD" # Let the user override the test with a path.
206 if test -n "$LD"; then
211 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
216 AC_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.
219 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
220 ac_cv_prog_gnu_ld=yes
226 # AM_PROG_NM - find the path to a BSD-compatible name lister
228 [AC_MSG_CHECKING([for BSD-compatible nm])
229 AC_CACHE_VAL(ac_cv_path_NM,
232 ac_cv_path_NM="$NM" # Let the user override the test with a path.
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"
247 ac_cv_path_NM="$ac_dir/nm"
253 test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
261 # Macro to add for using GNU gettext.
262 # Ulrich Drepper <drepper@cygnus.com>, 1995.
264 # Modified to never use included libintl.
265 # Owen Taylor <otaylor@redhat.com>, 12/15/1998
268 # This file can be copied and used freely without restrictions. It can
269 # be used in projects which are not available under the GNU Public License
270 # but which still want to provide support for the GNU gettext functionality.
271 # Please note that the actual code is *not* freely available.
275 AC_DEFUN(AM_GTK_WITH_NLS,
276 [AC_MSG_CHECKING([whether NLS is requested])
277 dnl Default is enabled NLS
279 [ --disable-nls do not use Native Language Support],
280 USE_NLS=$enableval, USE_NLS=yes)
281 AC_MSG_RESULT($USE_NLS)
284 USE_INCLUDED_LIBINTL=no
286 dnl If we use NLS figure out what method
287 if test "$USE_NLS" = "yes"; then
288 AC_DEFINE(ENABLE_NLS)
289 # AC_MSG_CHECKING([whether included gettext is requested])
290 # AC_ARG_WITH(included-gettext,
291 # [ --with-included-gettext use the GNU gettext library included here],
292 # nls_cv_force_use_gnu_gettext=$withval,
293 # nls_cv_force_use_gnu_gettext=no)
294 # AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
295 nls_cv_force_use_gnu_gettext="no"
297 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
298 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
299 dnl User does not insist on using GNU NLS library. Figure out what
300 dnl to use. If gettext or catgets are available (in this order) we
301 dnl use this. Else we have to fall back to GNU NLS library.
302 dnl catgets is only used if permitted by option --with-catgets.
307 AC_CHECK_HEADER(libintl.h,
308 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
309 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
310 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
312 if test "$gt_cv_func_gettext_libc" != "yes"; then
313 AC_CHECK_LIB(intl, bindtextdomain,
314 [AC_CACHE_CHECK([for gettext in libintl],
315 gt_cv_func_gettext_libintl,
316 [AC_CHECK_LIB(intl, gettext,
317 gt_cv_func_gettext_libintl=yes,
318 gt_cv_func_gettext_libintl=no)],
319 gt_cv_func_gettext_libintl=no)])
322 if test "$gt_cv_func_gettext_libc" = "yes" \
323 || test "$gt_cv_func_gettext_libintl" = "yes"; then
324 AC_DEFINE(HAVE_GETTEXT)
325 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
326 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
327 if test "$MSGFMT" != "no"; then
328 AC_CHECK_FUNCS(dcgettext)
329 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
330 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
331 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
332 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
333 return _nl_msg_cat_cntr],
343 if test "$CATOBJEXT" = "NONE"; then
344 AC_MSG_CHECKING([whether catgets can be used])
346 [ --with-catgets use catgets functions if available],
347 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
348 AC_MSG_RESULT($nls_cv_use_catgets)
350 if test "$nls_cv_use_catgets" = "yes"; then
351 dnl No gettext in C library. Try catgets next.
352 AC_CHECK_LIB(i, main)
353 AC_CHECK_FUNC(catgets,
354 [AC_DEFINE(HAVE_CATGETS)
355 INTLOBJS="\$(CATOBJS)"
356 AC_PATH_PROG(GENCAT, gencat, no)dnl
357 # if test "$GENCAT" != "no"; then
358 # AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
359 # if test "$GMSGFMT" = "no"; then
360 # AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
361 # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
363 # AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
364 # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
365 # USE_INCLUDED_LIBINTL=yes
369 # INTLDEPS='$(top_builddir)/intl/libintl.a'
371 # LIBS=`echo $LIBS | sed -e 's/-lintl//'`
372 # nls_cv_header_intl=intl/libintl.h
373 # nls_cv_header_libgt=intl/libgettext.h
379 if test "$CATOBJEXT" = "NONE"; then
380 dnl Neither gettext nor catgets in included in the C library.
381 dnl Fall back on GNU gettext library.
382 nls_cv_use_gnu_gettext=yes
386 if test "$nls_cv_use_gnu_gettext" != "yes"; then
387 AC_DEFINE(ENABLE_NLS)
389 # dnl Mark actions used to generate GNU NLS library.
390 # INTLOBJS="\$(GETTOBJS)"
391 # AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
392 # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
393 # AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
394 # AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
395 # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
397 # USE_INCLUDED_LIBINTL=yes
401 # INTLDEPS='$(top_builddir)/intl/libintl.a'
403 # LIBS=`echo $LIBS | sed -e 's/-lintl//'`
404 # nls_cv_header_intl=intl/libintl.h
405 # nls_cv_header_libgt=intl/libgettext.h
408 dnl Test whether we really found GNU xgettext.
409 if test "$XGETTEXT" != ":"; then
410 dnl If it is no GNU xgettext we define it as : so that the
411 dnl Makefiles still can work.
412 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
416 [found xgettext program is not GNU xgettext; ignore it])
421 # We need to process the po/ directory.
425 nls_cv_header_intl=intl/libintl.h
426 nls_cv_header_libgt=intl/libgettext.h
428 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
430 [case "$CONFIG_FILES" in *po/Makefile.in*)
431 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
435 # # If this is used in GNU gettext we have to set USE_NLS to `yes'
436 # # because some of the sources are only built for this goal.
437 # if test "$PACKAGE" = gettext; then
439 # USE_INCLUDED_LIBINTL=yes
442 dnl These rules are solely for the distribution goal. While doing this
443 dnl we only have to keep exactly one list of the available catalogs
445 for lang in $ALL_LINGUAS; do
446 GMOFILES="$GMOFILES $lang.gmo"
447 POFILES="$POFILES $lang.po"
450 dnl Make all variables we use known to autoconf.
451 AC_SUBST(USE_INCLUDED_LIBINTL)
454 AC_SUBST(DATADIRNAME)
464 AC_DEFUN(AM_GTK_GNU_GETTEXT,
465 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
466 AC_REQUIRE([AC_PROG_CC])dnl
467 AC_REQUIRE([AC_PROG_RANLIB])dnl
468 AC_REQUIRE([AC_ISC_POSIX])dnl
469 AC_REQUIRE([AC_HEADER_STDC])dnl
470 AC_REQUIRE([AC_C_CONST])dnl
471 AC_REQUIRE([AC_C_INLINE])dnl
472 AC_REQUIRE([AC_TYPE_OFF_T])dnl
473 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
474 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
475 AC_REQUIRE([AC_FUNC_MMAP])dnl
477 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
478 unistd.h sys/param.h])
479 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
480 strdup __argz_count __argz_stringify __argz_next])
482 if test "${ac_cv_func_stpcpy+set}" != "set"; then
483 AC_CHECK_FUNCS(stpcpy)
485 if test "${ac_cv_func_stpcpy}" = "yes"; then
486 AC_DEFINE(HAVE_STPCPY)
492 if test "x$CATOBJEXT" != "x"; then
493 if test "x$ALL_LINGUAS" = "x"; then
496 AC_MSG_CHECKING(for catalogs to be installed)
498 for lang in ${LINGUAS=$ALL_LINGUAS}; do
499 case "$ALL_LINGUAS" in
500 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
504 AC_MSG_RESULT($LINGUAS)
507 dnl Construct list of names of catalog files to be constructed.
508 if test -n "$LINGUAS"; then
509 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
513 dnl The reference to <locale.h> in the installed <libintl.h> file
514 dnl must be resolved because we cannot expect the users of this
515 dnl to define HAVE_LOCALE_H.
516 if test $ac_cv_header_locale_h = yes; then
517 INCLUDE_LOCALE_H="#include <locale.h>"
520 /* The system does not provide the header <locale.h>. Take care yourself. */"
522 AC_SUBST(INCLUDE_LOCALE_H)
524 dnl Determine which catalog format we have (if any is needed)
525 dnl For now we know about two different formats:
526 dnl Linux libc-5 and the normal X/Open format
527 test -d intl || mkdir intl
528 if test "$CATOBJEXT" = ".cat"; then
529 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
531 dnl Transform the SED scripts while copying because some dumb SEDs
532 dnl cannot handle comments.
533 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
535 dnl po2tbl.sed is always needed.
536 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
537 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
539 dnl In the intl/Makefile.in we have a special dependency which makes
540 dnl only sense for gettext. We comment this out for non-gettext
542 if test "$PACKAGE" = "gettext"; then
552 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
553 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
554 dnl Try to locate is.
556 if test -n "$ac_aux_dir"; then
557 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
559 if test -z "$MKINSTALLDIRS"; then
560 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
562 AC_SUBST(MKINSTALLDIRS)
564 dnl *** For now the libtool support in intl/Makefile is not for real.
568 dnl Generate list of files to be processed by xgettext which will
569 dnl be included in po/Makefile.
570 test -d po || mkdir po
571 if test "x$srcdir" != "x."; then
572 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
573 posrcprefix="$srcdir/"
575 posrcprefix="../$srcdir/"
581 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
582 < $srcdir/po/POTFILES.in > po/POTFILES