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],
342 # Added by Martin Baulig 12/15/98 for libc5 systems
343 if test "$gt_cv_func_gettext_libc" != "yes" \
344 && test "$gt_cv_func_gettext_libintl" = "yes"; then
346 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
350 if test "$CATOBJEXT" = "NONE"; then
351 AC_MSG_CHECKING([whether catgets can be used])
353 [ --with-catgets use catgets functions if available],
354 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
355 AC_MSG_RESULT($nls_cv_use_catgets)
357 if test "$nls_cv_use_catgets" = "yes"; then
358 dnl No gettext in C library. Try catgets next.
359 AC_CHECK_LIB(i, main)
360 AC_CHECK_FUNC(catgets,
361 [AC_DEFINE(HAVE_CATGETS)
362 INTLOBJS="\$(CATOBJS)"
363 AC_PATH_PROG(GENCAT, gencat, no)dnl
364 # if test "$GENCAT" != "no"; then
365 # AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
366 # if test "$GMSGFMT" = "no"; then
367 # AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
368 # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
370 # AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
371 # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
372 # USE_INCLUDED_LIBINTL=yes
376 # INTLDEPS='$(top_builddir)/intl/libintl.a'
378 # LIBS=`echo $LIBS | sed -e 's/-lintl//'`
379 # nls_cv_header_intl=intl/libintl.h
380 # nls_cv_header_libgt=intl/libgettext.h
386 if test "$CATOBJEXT" = "NONE"; then
387 dnl Neither gettext nor catgets in included in the C library.
388 dnl Fall back on GNU gettext library.
389 nls_cv_use_gnu_gettext=yes
393 if test "$nls_cv_use_gnu_gettext" != "yes"; then
394 AC_DEFINE(ENABLE_NLS)
396 # dnl Mark actions used to generate GNU NLS library.
397 # INTLOBJS="\$(GETTOBJS)"
398 # AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
399 # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
400 # AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
401 # AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
402 # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
404 # USE_INCLUDED_LIBINTL=yes
408 # INTLDEPS='$(top_builddir)/intl/libintl.a'
410 # LIBS=`echo $LIBS | sed -e 's/-lintl//'`
411 # nls_cv_header_intl=intl/libintl.h
412 # nls_cv_header_libgt=intl/libgettext.h
415 dnl Test whether we really found GNU xgettext.
416 if test "$XGETTEXT" != ":"; then
417 dnl If it is no GNU xgettext we define it as : so that the
418 dnl Makefiles still can work.
419 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
423 [found xgettext program is not GNU xgettext; ignore it])
428 # We need to process the po/ directory.
432 nls_cv_header_intl=intl/libintl.h
433 nls_cv_header_libgt=intl/libgettext.h
435 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
437 [case "$CONFIG_FILES" in *po/Makefile.in*)
438 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
442 # # If this is used in GNU gettext we have to set USE_NLS to `yes'
443 # # because some of the sources are only built for this goal.
444 # if test "$PACKAGE" = gettext; then
446 # USE_INCLUDED_LIBINTL=yes
449 dnl These rules are solely for the distribution goal. While doing this
450 dnl we only have to keep exactly one list of the available catalogs
452 for lang in $ALL_LINGUAS; do
453 GMOFILES="$GMOFILES $lang.gmo"
454 POFILES="$POFILES $lang.po"
457 dnl Make all variables we use known to autoconf.
458 AC_SUBST(USE_INCLUDED_LIBINTL)
461 AC_SUBST(DATADIRNAME)
471 AC_DEFUN(AM_GTK_GNU_GETTEXT,
472 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
473 AC_REQUIRE([AC_PROG_CC])dnl
474 AC_REQUIRE([AC_PROG_RANLIB])dnl
475 AC_REQUIRE([AC_ISC_POSIX])dnl
476 AC_REQUIRE([AC_HEADER_STDC])dnl
477 AC_REQUIRE([AC_C_CONST])dnl
478 AC_REQUIRE([AC_C_INLINE])dnl
479 AC_REQUIRE([AC_TYPE_OFF_T])dnl
480 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
481 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
482 AC_REQUIRE([AC_FUNC_MMAP])dnl
484 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
485 unistd.h sys/param.h])
486 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
487 strdup __argz_count __argz_stringify __argz_next])
489 if test "${ac_cv_func_stpcpy+set}" != "set"; then
490 AC_CHECK_FUNCS(stpcpy)
492 if test "${ac_cv_func_stpcpy}" = "yes"; then
493 AC_DEFINE(HAVE_STPCPY)
499 if test "x$CATOBJEXT" != "x"; then
500 if test "x$ALL_LINGUAS" = "x"; then
503 AC_MSG_CHECKING(for catalogs to be installed)
505 for lang in ${LINGUAS=$ALL_LINGUAS}; do
506 case "$ALL_LINGUAS" in
507 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
511 AC_MSG_RESULT($LINGUAS)
514 dnl Construct list of names of catalog files to be constructed.
515 if test -n "$LINGUAS"; then
516 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
520 dnl The reference to <locale.h> in the installed <libintl.h> file
521 dnl must be resolved because we cannot expect the users of this
522 dnl to define HAVE_LOCALE_H.
523 if test $ac_cv_header_locale_h = yes; then
524 INCLUDE_LOCALE_H="#include <locale.h>"
527 /* The system does not provide the header <locale.h>. Take care yourself. */"
529 AC_SUBST(INCLUDE_LOCALE_H)
531 dnl Determine which catalog format we have (if any is needed)
532 dnl For now we know about two different formats:
533 dnl Linux libc-5 and the normal X/Open format
534 test -d intl || mkdir intl
535 if test "$CATOBJEXT" = ".cat"; then
536 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
538 dnl Transform the SED scripts while copying because some dumb SEDs
539 dnl cannot handle comments.
540 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
542 dnl po2tbl.sed is always needed.
543 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
544 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
546 dnl In the intl/Makefile.in we have a special dependency which makes
547 dnl only sense for gettext. We comment this out for non-gettext
549 if test "$PACKAGE" = "gettext"; then
559 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
560 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
561 dnl Try to locate is.
563 if test -n "$ac_aux_dir"; then
564 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
566 if test -z "$MKINSTALLDIRS"; then
567 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
569 AC_SUBST(MKINSTALLDIRS)
571 dnl *** For now the libtool support in intl/Makefile is not for real.
575 dnl Generate list of files to be processed by xgettext which will
576 dnl be included in po/Makefile.
577 test -d po || mkdir po
578 if test "x$srcdir" != "x."; then
579 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
580 posrcprefix="$srcdir/"
582 posrcprefix="../$srcdir/"
588 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
589 < $srcdir/po/POTFILES.in > po/POTFILES