diff options
Diffstat (limited to 'aclocal.m4')
-rw-r--r-- | aclocal.m4 | 418 |
1 files changed, 396 insertions, 22 deletions
@@ -1,6 +1,80 @@ -# All fp_* macros are: -# Copyright (C) 1992, 1994 Free Software Foundation, Inc. -# Francois Pinard <pinard@iro.umontreal.ca>, 1992. +# Local additions to Autoconf macros. +# Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc. +# François Pinard <pinard@iro.umontreal.ca>, 1992. + +AC_DEFUN(jm_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + if test $USE_MAINTAINER_MODE = yes; then + MAINT= + else + MAINT='#M#' + fi + AC_SUBST(MAINT)dnl +] +) + +AC_DEFUN(gm_DECL_SBRK, +[AC_CACHE_CHECK(for sbrk declaration in unistd.h, ac_cv_decl_sbrk, +[AC_EGREP_HEADER(sbrk, unistd.h, + ac_cv_decl_sbrk=yes, ac_cv_decl_sbrk=no)]) +if test $ac_cv_decl_sbrk = yes; then + AC_DEFINE(HAVE_DECL_SBRK) +fi +]) + +AC_DEFUN(gm_DECL_SYS_ERRLIST, +[AC_CACHE_CHECK(for sys_errlist declaration, ac_cv_decl_sys_errlist, +[ac_cv_decl_sys_errlist=no + AC_EGREP_HEADER(sys_errlist, errno.h, ac_cv_decl_sys_errlist=yes) + AC_EGREP_HEADER(sys_errlist, stdio.h, ac_cv_decl_sys_errlist=yes) + AC_EGREP_HEADER(sys_errlist, error.h, ac_cv_decl_sys_errlist=yes) + ]) +if test $ac_cv_decl_sys_errlist = yes; then + AC_DEFINE(HAVE_DECL_SYS_ERRLIST) +fi +]) + + +## --------------------------------------------------------- ## +## Use A*_PROG_INSTALL, supplementing it with INSTALL_SCRIPT ## +## substitution. ## +## --------------------------------------------------------- ## + +AC_DEFUN(fp_PROG_INSTALL, +[AC_PROG_INSTALL +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL} -m 755' +AC_SUBST(INSTALL_SCRIPT)dnl +]) + +## ------------------------------- ## +## Check for function prototypes. ## +## ------------------------------- ## + +AC_DEFUN(fp_C_PROTOTYPES, +[AC_REQUIRE([fp_PROG_CC_STDC]) +AC_MSG_CHECKING([for function prototypes]) +if test "$ac_cv_prog_cc_stdc" != no; then + AC_MSG_RESULT(yes) + AC_DEFINE(PROTOTYPES) + U= ANSI2KNR= +else + AC_MSG_RESULT(no) + U=_ ANSI2KNR=./ansi2knr +fi +AC_SUBST(U)dnl +AC_SUBST(ANSI2KNR)dnl +]) + +## ----------------------------------------- ## +## ANSIfy the C compiler whenever possible. ## +## ----------------------------------------- ## # @defmac AC_PROG_CC_STDC # @maindex PROG_CC_STDC @@ -10,7 +84,7 @@ # options that select ANSI C on some system or another. It considers the # compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and # handles function prototypes correctly. -# +# # If you use this macro, you should check after calling it whether the C # compiler has been set to accept ANSI C; if not, the shell variable # @code{ac_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source @@ -18,7 +92,7 @@ # program @code{ansi2knr}, which comes with Ghostscript. # @end defmac -define(fp_PROG_CC_STDC, +AC_DEFUN(fp_PROG_CC_STDC, [AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) AC_CACHE_VAL(ac_cv_prog_cc_stdc, [ac_cv_prog_cc_stdc=no @@ -28,15 +102,14 @@ ac_save_CFLAGS="$CFLAGS" # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX -Aa -D_HPUX_SOURCE -# CX/UX -Xa (-Xc is strict ANSI) -# SVR4 -Xc -for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" -Xa -Xc +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CFLAGS="$ac_save_CFLAGS $ac_arg" AC_TRY_COMPILE( [#if !defined(__STDC__) || __STDC__ != 1 choke me -#endif +#endif ], [int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);};], @@ -51,19 +124,320 @@ case "x$ac_cv_prog_cc_stdc" in esac ]) -# Check for function prototypes. +## -------------------------------------------- ## +## Check if --with-regex was given. ## +## Slightly modified version of fp_WITH_REGEX. ## +## -------------------------------------------- ## -AC_DEFUN(fp_C_PROTOTYPES, -[AC_REQUIRE([fp_PROG_CC_STDC]) -AC_MSG_CHECKING([for function prototypes]) -if test "$ac_cv_prog_cc_stdc" != no; then - AC_MSG_RESULT(yes) - AC_DEFINE(PROTOTYPES) - U= ANSI2KNR= -else - AC_MSG_RESULT(no) - U=_ ANSI2KNR=ansi2knr +AC_DEFUN(ud_WITH_REGEX, +[AC_MSG_CHECKING(which of rx or regex is wanted) +AC_ARG_WITH(regex, +[ --with-regex use older regex in lieu of GNU rx for matching], +[if test "$withval" = yes; then + ac_with_regex=1 + AC_MSG_RESULT(regex) + AC_DEFINE(WITH_REGEX) + REGEXOBJ=regex.o +fi]) +if test -z "$ac_with_regex"; then + AC_MSG_RESULT(rx) + AC_CHECK_FUNC(re_rx_search, , [REGEXOBJ=rx.o]) fi -AC_SUBST(U)dnl -AC_SUBST(ANSI2KNR)dnl +AC_SUBST(REGEXOBJ)dnl +]) + +dnl ------------------------ +dnl Emacs LISP file handling +dnl ------------------------ +AC_DEFUN(ud_PATH_LISPDIR, + [AC_PATH_PROG(EMACS, emacs, no) + if test $EMACS != "no"; then + AC_MSG_CHECKING([where .elc files should go]) + dnl Set default value + LISPDIR="\$(datadir)/emacs/site-lisp" + if test "x$prefix" = "xNONE"; then + if test -d $ac_default_prefix/share/emacs/site-lisp; then + LISPDIR="\$(prefix)/share/emacs/site-lisp" + else + if test -d $ac_default_prefix/lib/emacs/site-lisp; then + LISPDIR="\$(prefix)/lib/emacs/site-lisp" + fi + fi + else + if test -d $prefix/share/emacs/site-lisp; then + LISPDIR="\$(prefix)/share/emacs/site-lisp" + else + if test -d $prefix/lib/emacs/site-lisp; then + LISPDIR="\$(prefix)/lib/emacs/site-lisp" + fi + fi + fi + AC_MSG_RESULT($LISPDIR) + ELCFILES="\$(ELCFILES)" + fi + AC_SUBST(LISPDIR) + AC_SUBST(ELCFILES)]) + +dnl --------------------------------------------------------- ## +dnl The following definitions all have to go into the ## +dnl aclocal.m4 files of the packages to be internationalized. ## +dnl Last updated for gettext-0.10.11. ## +dnl --------------------------------------------------------- ## + +AC_DEFUN(md_PATH_PROG, + [AC_PATH_PROG($1,$2,$3)dnl + if echo $$1 | grep openwin > /dev/null; then + echo "WARNING: Do not use OpenWin's $2. (Better remove it.)" >&AC_FD_MSG + ac_cv_path_$1=$2 + $1=$2 + fi +]) + +dnl Check NLS options + +AC_DEFUN(ud_LC_MESSAGES, + [if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], ud_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], + ud_cv_val_LC_MESSAGES=yes, ud_cv_val_LC_MESSAGES=no)]) + if test $ud_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES) + fi + fi]) + +AC_DEFUN(ud_WITH_NLS, + [AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + AC_DEFINE(ENABLE_NLS) + AC_MSG_CHECKING([for explicitly using GNU gettext]) + AC_ARG_WITH(gnu-gettext, + [ --with-gnu-gettext use the GNU gettext library], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If gettext or catgets are available (in this order) we + dnl use this. Else we have to fall back to GNU NLS library. + dnl catgets is only used if permitted by option --with-catgets. + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + + AC_CHECK_HEADER(libintl.h, + [AC_CHECK_LIB(intl, main) + AC_CHECK_FUNC(gettext, + [AC_DEFINE(HAVE_GETTEXT) + md_PATH_PROG(MSGFMT, msgfmt, no)dnl + if test "$MSGFMT" != "no"; then + AC_CHECK_FUNCS(dcgettext) + md_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + md_PATH_PROG(XGETTEXT, xgettext, :) + CATOBJEXT=.mo + INSTOBJEXT=.mo + DATADIRNAME=lib + fi])]) + + if test "$CATOBJEXT" = "NONE"; then + AC_MSG_CHECKING([whether catgets can be used]) + AC_ARG_WITH(catgets, + [ --with-catgets use catgets functions if available], + nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) + AC_MSG_RESULT($nls_cv_use_catgets) + + if test "$nls_cv_use_catgets" = "yes"; then + dnl No gettext in C library. Try catgets next. + AC_CHECK_LIB(i, main) + AC_CHECK_FUNC(catgets, + [AC_DEFINE(HAVE_CATGETS) + INTLOBJS="\$(CATOBJS)" + AC_PATH_PROG(GENCAT, gencat, no)dnl + if test "$GENCAT" != "no"; then + AC_PATH_PROGS(GMSGFMT, [gmsgfmt msgfmt], msgfmt) + md_PATH_PROG(XGETTEXT, xgettext, :) + CATOBJEXT=.cat + INSTOBJEXT=.cat + DATADIRNAME=lib + INTLDEPS="../intl/libintl.a" + INTLLIBS=$INTLDEPS + INTLSUB=intl + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi]) + fi + fi + + if test "$CATOBJEXT" = "NONE"; then + dnl Neither gettext nor catgets in included in the C library. + dnl Fall back on GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + INTLOBJS="\$(GETTOBJS)" + md_PATH_PROG(MSGFMT, msgfmt, msgfmt) + md_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + md_PATH_PROG(XGETTEXT, xgettext, :) + AC_SUBST(MSGFMT) + CATOBJEXT=.gmo + INSTOBJEXT=.mo + DATADIRNAME=share + INTLDEPS="../intl/libintl.a" + INTLLIBS=$INTLDEPS + INTLSUB=intl + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext programs is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + else + DATADIRNAME=share + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.in. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLDEPS) + AC_SUBST(INTLLIBS) + AC_SUBST(INTLOBJS) + AC_SUBST(INTLSUB) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +AC_DEFUN(ud_GNU_GETTEXT, + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + + AC_CHECK_HEADERS([limits.h locale.h nl_types.h malloc.h string.h unistd.h values.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp]) + + if test "${ac_cv_func_stpcpy+set}" != "set"; then + AC_CHECK_FUNCS(stpcpy) + fi + if test "${ac_cv_func_stpcpy}" = "yes"; then + AC_DEFINE(HAVE_STPCPY) + fi + + ud_LC_MESSAGES + ud_WITH_NLS + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl Determine which catalog format we have (if any is needed) + dnl For now we know about two different formats: + dnl Linux and the normal X/Open format + test -d intl || mkdir intl + if test "$CATOBJEXT" = ".cat"; then + AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) + + dnl Transform the SED scripts while copying because some dumb SEDs + dnl cannot handle comments. + sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed + fi + dnl po2tbl.sed is always needed. + sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ + $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + +dnl AC_REPLACE_GNU_GETOPT +AC_DEFUN(AC_REPLACE_GNU_GETOPT, +[AC_CHECK_FUNC(getopt_long, , [LIBOBJS="$LIBOBJS getopt1.o getopt.o"]) +AC_SUBST(LIBOBJS)dnl +]) + +dnl AC_REPLACE_OBSTACK +AC_DEFUN(AC_REPLACE_OBSTACK, +[AC_CACHE_CHECK([for obstacks], gt_cv_func_obstack, +[AC_TRY_LINK([#include "obstack.h"], +[struct obstack *mem;obstack_free(mem,NULL)], + gt_cv_func_obstack=yes, gt_cv_func_obstack=no)]) +if test $gt_cv_func_obstack = no; then + LIBOBJS="$LIBOBJS obstack.o" +fi +AC_SUBST(LIBOBJS)dnl ]) |