X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=acinclude.m4;h=0eb9c1f31a1562b2b1ee6249cbc9547a2b4e6bb7;hb=4d95fcf5105d5f4641c34daae577e68ec986ffbd;hp=5f811319e87dbe1d87aa5c64671b4b260c79bb41;hpb=4944c86a9318bc5b5578ab145a95c116ffd2c9fd;p=pspp-builds.git diff --git a/acinclude.m4 b/acinclude.m4 index 5f811319..0eb9c1f3 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,433 +1,153 @@ -dnl --------------------------------------------------------- ## -dnl The following definitions are from gettext-0.10.27. ## -dnl --------------------------------------------------------- ## - -# Macro to add for using GNU gettext. -# Ulrich Drepper , 1995. - -# serial 2 - -AC_DEFUN(AM_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) - - USE_INCLUDED_LIBINTL=no - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - AC_DEFINE(ENABLE_NLS) - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) +dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Prerequisites. + +dnl Instead of giving an error about each prerequisite as we encounter it, +dnl group them all together at the end of the run, to be user-friendly. +AC_DEFUN([PSPP_REQUIRED_PREREQ], [pspp_required_prereqs="$pspp_required_prereqs + $1"]) +AC_DEFUN([PSPP_OPTIONAL_PREREQ], [pspp_optional_prereqs="$pspp_optional_prereqs + $1"]) +AC_DEFUN([PSPP_CHECK_PREREQS], +[ + if test "$pspp_optional_prereqs" != ""; then + AC_MSG_WARN([The following optional prerequisites are not installed. +You may wish to install them to obtain additional functionality:$pspp_optional_prereqs]) +fi + if test "$pspp_required_prereqs" != ""; then + AC_MSG_ERROR([The following required prerequisites are not installed. +You must install them before PSPP can be built:$pspp_required_prereqs]) +fi +]) + - 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 +dnl Check that a new enough version of Perl is available. +AC_DEFUN([PSPP_PERL], +[ + AC_PATH_PROG([PERL], perl, no) + AC_SUBST([PERL])dnl + if test "$PERL" != no && $PERL -e 'require 5.005_03;'; then :; else + PSPP_REQUIRED_PREREQ([Perl 5.005_03 (or later)]) + fi +]) - AC_CHECK_HEADER(libintl.h, - [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, - [AC_TRY_LINK([#include ], [return (int) gettext ("")], - gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) +dnl Check that libplot is available. +AC_DEFUN([PSPP_LIBPLOT], +[ + AC_ARG_WITH(libplot, [ --without-libplot don't compile in support of charts (using libplot)]) - if test "$gt_cv_func_gettext_libc" != "yes"; then - AC_CHECK_LIB(intl, bindtextdomain, - [AC_CACHE_CHECK([for gettext in libintl], - gt_cv_func_gettext_libintl, - [AC_TRY_LINK([], [return (int) gettext ("")], - gt_cv_func_gettext_libintl=yes, - gt_cv_func_gettext_libintl=no)])]) - fi + if test x"$with_libplot" != x"no" ; then + AC_CHECK_LIB(plot, pl_newpl_r,, + [PSPP_REQUIRED_PREREQ([libplot (or use --without-libplot)])]) + fi +]) - if test "$gt_cv_func_gettext_libc" = "yes" \ - || test "$gt_cv_func_gettext_libintl" = "yes"; then - AC_DEFINE(HAVE_GETTEXT) - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl - if test "$MSGFMT" != "no"; then - AC_CHECK_FUNCS(dcgettext) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr], - [CATOBJEXT=.gmo - DATADIRNAME=share], - [CATOBJEXT=.mo - DATADIRNAME=lib]) - INSTOBJEXT=.mo - fi - fi - ]) +dnl Check that off_t is defined as an integer type. +dnl Solaris sometimes declares it as a struct, if it +dnl thinks that the compiler does not support `long long'. +AC_DEFUN([PSPP_OFF_T], +[ + AC_COMPILE_IFELSE([#include + #include + off_t x = 0; + int main (void) + { + lseek (0, 1, 2); + return 0; + }], [], [AC_MSG_ERROR( + [Your system's definition of off_t is broken. You are probably + using Solaris. You can probably fix the problem with + `--disable-largefile' or `CFLAGS=-ansi'.])]) +]) - 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) +dnl Check whether a warning flag is accepted. +dnl If so, add it to CFLAGS. +dnl Example: PSPP_ENABLE_WARNING(-Wdeclaration-after-statement) +AC_DEFUN([PSPP_ENABLE_WARNING], +[ + m4_define([pspp_cv_name], [pspp_cv_[]m4_translit([$1], [-], [_])])dnl + AC_CACHE_CHECK([whether $CC accepts $1], [pspp_cv_name], + [pspp_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,)], [pspp_cv_name[]=yes], [pspp_cv_name[]=no]) + CFLAGS="$pspp_save_CFLAGS"]) + if test $pspp_cv_name = yes; then + CFLAGS="$CFLAGS $1" + fi +]) - 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_PROG(GMSGFMT, gmsgfmt, no) - if test "$GMSGFMT" = "no"; then - AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) - fi - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.cat - INSTOBJEXT=.cat - DATADIRNAME=lib - INTLDEPS="../intl/libintl.a" - INTLLIBS=$INTLDEPS - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h - fi]) - fi - fi +dnl Check for readline and history libraries. - 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 +dnl Modified for PSPP by Ben Pfaff, based on readline.m4 serial 3 from +dnl gnulib, which was written by Simon Josefsson, with help from Bruno +dnl Haible and Oskar Liljeblad. - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_SUBST(MSGFMT) - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.gmo - INSTOBJEXT=.mo - DATADIRNAME=share - INTLDEPS="../intl/libintl.a" - INTLLIBS=$INTLDEPS - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - nls_cv_header_intl=intl/libintl.h - nls_cv_header_libgt=intl/libgettext.h +AC_DEFUN([PSPP_READLINE], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libreadline and define LIBREADLINE, LTLIBREADLINE and + dnl INCREADLINE accordingly. + AC_LIB_LINKFLAGS_BODY([readline]) + AC_LIB_LINKFLAGS_BODY([history]) + + dnl Add $INCREADLINE to CPPFLAGS before performing the following checks, + dnl because if the user has installed libreadline and not disabled its use + dnl via --without-libreadline-prefix, he wants to use it. The AC_TRY_LINK + dnl will then succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCREADLINE $INCHISTORY]) + + AC_CACHE_CHECK(for readline, gl_cv_lib_readline, [ + gl_cv_lib_readline=no + am_save_LIBS="$LIBS" + dnl On some systems, -lreadline doesn't link without an additional + dnl -lncurses or -ltermcap. + dnl Try -lncurses before -ltermcap, because libtermcap is unsecure + dnl by design and obsolete since 1994. Try -lcurses last, because + dnl libcurses is unusable on some old Unices. + for extra_lib in "" ncurses termcap curses; do + LIBS="$am_save_LIBS $LIBREADLINE $LIBHISTORY" + if test -n "$extra_lib"; then + LIBS="$LIBS -l$extra_lib" 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 + AC_TRY_LINK([#include +#include +#include ], + [readline((char*)0); add_history((char*)0);], + gl_cv_lib_readline=yes) + if test "$gl_cv_lib_readline" = yes; then + if test -n "$extra_lib"; then + LIBREADLINE="$LIBREADLINE $LIBHISTORY -l$extra_lib" + LTLIBREADLINE="$LTLIBREADLINE $LTLIBHISTORY -l$extra_lib" + fi + break 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 - - # If this is used in GNU gettext we have to set USE_NLS to `yes' - # because some of the sources are only built for this goal. - if test "$PACKAGE" = gettext; then - USE_NLS=yes - USE_INCLUDED_LIBINTL=yes - 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(USE_INCLUDED_LIBINTL) - 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(POFILES) - AC_SUBST(POSUB) - ]) - -AC_DEFUN(AM_GNU_GETTEXT, - [AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_ISC_POSIX])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([argz.h 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 \ -__argz_count __argz_stringify __argz_next]) - - 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 - - AM_LC_MESSAGES - AM_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 libc-5 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 In the intl/Makefile.in we have a special dependency which makes - dnl only sense for gettext. We comment this out for non-gettext - dnl packages. - if test "$PACKAGE" = "gettext"; then - GT_NO="#NO#" - GT_YES= - else - GT_NO= - GT_YES="#YES#" - fi - AC_SUBST(GT_NO) - AC_SUBST(GT_YES) - - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but ($top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test $ac_aux_dir; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z $MKINSTALLDIRS; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) - - dnl Configure the intl/Makefile for shared libs. - if test "${enable_shared+set}" = set; then - l=l - else - l= - fi - AC_SUBST(l) - - 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 + LIBS="$am_save_LIBS" ]) -# Search path for a program which passes the given test. -# Ulrich Drepper , 1996. - -# serial 1 - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN(AM_PATH_PROG_WITH_TEST, -[# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test -n "[$]$1"; then - AC_MSG_RESULT([$]$1) -else - AC_MSG_RESULT(no) -fi -AC_SUBST($1)dnl + if test "$gl_cv_lib_readline" = yes; then + AC_DEFINE(HAVE_READLINE, 1, [Define if you have the readline library.]) + AC_MSG_CHECKING([how to link with libreadline]) + AC_MSG_RESULT([$LIBREADLINE]) + else + dnl If $LIBREADLINE didn't lead to a usable library, we don't + dnl need $INCREADLINE either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBREADLINE= + LTLIBREADLINE= + LIBHISTORY= + LTLIBHISTORY= + PSPP_OPTIONAL_PREREQ([libreadline (which may itself require libncurses or libtermcap)]) + fi + AC_SUBST(LIBREADLINE) + AC_SUBST(LTLIBREADLINE) ]) -# Check whether LC_MESSAGES is available in . -# Ulrich Drepper , 1995. - -# serial 1 - -AC_DEFUN(AM_LC_MESSAGES, - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include ], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES) - fi - fi]) - -dnl Check longest integer in digits. - -AC_DEFUN([BLP_INT_DIGITS], -[ -AC_MSG_CHECKING(number of digits in LONG_MIN (incl. sign)) -AC_CACHE_VAL(blp_int_digits, - [AC_TRY_RUN([#include - #include - int - main() - { - int len; - char s[80]; - sprintf(s, "%ld", LONG_MAX); - len = strlen(s); - sprintf(s, "%ld", LONG_MIN); - if(strlen(s)>len) len=strlen(s); - sprintf(s, "%lu", ULONG_MAX); - if(strlen(s)>len) len=strlen(s); - exit(len); - } - ], - eval "blp_int_digits=19", - eval "blp_int_digits=$?" - if test "$blp_int_digits" -lt 11; then - blp_int_digits=11 - fi, - eval "blp_int_digits=19") - ]) -AC_DEFINE_UNQUOTED(INT_DIGITS, $blp_int_digits) -AC_MSG_RESULT($blp_int_digits) -])dnl - -dnl Check quality of this machine's sprintf implementation. - -AC_DEFUN([BLP_IS_SPRINTF_GOOD], -[ -AC_MSG_CHECKING(if sprintf returns a char count) -AC_CACHE_VAL(blp_is_sprintf_good, - [AC_TRY_RUN([#include - int - main() - { - char s[8]; - exit((int)sprintf(s, "abcdefg")!=7); - } - ], - eval "blp_is_sprintf_good=yes", - eval "blp_is_sprintf_good=no", - eval "blp_is_sprintf_good=no") - ]) -if test "$blp_is_sprintf_good" = yes; then - AC_DEFINE(HAVE_GOOD_SPRINTF) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi -])dnl - -dnl Check for proper random number generator. - -AC_DEFUN([BLP_RANDOM], -[ -AC_MSG_CHECKING(random number generator) -AC_CACHE_VAL(blp_random_good, - AC_TRY_COMPILE([#include ], [int x=RAND_MAX;], - blp_random_good=yes, blp_random_good=no)) -if test "$blp_random_good" = yes; then - AC_DEFINE(HAVE_GOOD_RANDOM) - AC_MSG_RESULT(good) -else - AC_MSG_RESULT(bad) -fi -])dnl - dnl aclocal.m4 ends here