From 90825aa2271fac914ff9c0a7007e604debbbe93b Mon Sep 17 00:00:00 2001 From: sof Date: Fri, 24 Jul 1998 10:42:40 +0000 Subject: [PATCH] [project @ 1998-07-24 10:42:33 by sof] Added long long feature test; macro namespace cleanup --- acconfig.h | 3 ++ aclocal.m4 | 124 ++++++++++++++++++++++++++++++++++---------------------- configure.in | 51 +++++++++-------------- mk/config.h.in | 3 ++ 4 files changed, 101 insertions(+), 80 deletions(-) diff --git a/acconfig.h b/acconfig.h index 0a00122..2f954a8 100644 --- a/acconfig.h +++ b/acconfig.h @@ -33,6 +33,9 @@ /* Define if time.h or sys/time.h define the altzone variable */ #undef HAVE_ALTZONE +/* Define if C compiler supports long long types */ +#undef HAVE_LONG_LONG + /* Define if C Symbols have a leading underscore added by the compiler */ #undef LEADING_UNDERSCORE diff --git a/aclocal.m4 b/aclocal.m4 index 2447a1c..12e39bc 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,21 +1,24 @@ -dnl $Id: aclocal.m4,v 1.22 1998/04/10 12:38:38 simonm Exp $ +dnl $Id: aclocal.m4,v 1.23 1998/07/24 10:42:34 sof Exp $ dnl dnl Extra autoconf macros for the Glasgow fptools dnl +dnl To be a good autoconf citizen, names of local macros have +dnl prefixed with FPTOOLS_ to ensure we don't clash +dnl with any pre-supplied autoconf ones. dnl dnl Are we running under the GNU libc? Need -D_GNU_SOURCE to get dnl caddr_t and such. dnl -AC_DEFUN(AC_GNU_LIBC, -[AC_CACHE_CHECK([GNU libc], ac_cv_gnu_libc, +AC_DEFUN(FPTOOLS_GNU_LIBC, +[AC_CACHE_CHECK([GNU libc], fptools_cv_gnu_libc, [AC_EGREP_CPP(yes, [#include #ifdef __GLIBC__ yes #endif -], ac_cv_gnu_libc=yes, ac_cv_gnu_libc=no)]) -if test "$ac_cv_gnu_libc" = yes; then +], fptools_cv_gnu_libc=yes, fptools_cv_gnu_libc=no)]) +if test "$fptools_cv_gnu_libc" = yes; then AC_DEFINE(_GNU_SOURCE) fi ]) @@ -24,8 +27,8 @@ dnl dnl Has timezone the type time_t or long (HP-UX 10.20 apparently dnl has `long'..) dnl -AC_DEFUN(AC_TYPE_TIMEZONE, -[AC_CACHE_CHECK([type of timezone], ac_cv_type_timezone, +AC_DEFUN(FPTOOLS_TYPE_TIMEZONE, +[AC_CACHE_CHECK([type of timezone], fptools_cv_type_timezone, [AC_TRY_COMPILE([#if TIME_WITH_SYS_TIME # include # include @@ -39,14 +42,14 @@ AC_DEFUN(AC_TYPE_TIMEZONE, extern time_t timezone; ], -[int i;], ac_cv_type_timezone=time_t, ac_cv_type_timezone=long)]) -AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $ac_cv_type_timezone) +[int i;], fptools_cv_type_timezone=time_t, fptools_cv_type_timezone=long)]) +AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $fptools_cv_type_timezone) ]) dnl *** Is altzone available? *** dnl -AC_DEFUN(AC_ALTZONE, -[AC_CACHE_CHECK([altzone], ac_cv_altzone, +AC_DEFUN(FPTOOLS_ALTZONE, +[AC_CACHE_CHECK([altzone], fptools_cv_altzone, [AC_TRY_LINK([#if TIME_WITH_SYS_TIME # include # include @@ -58,8 +61,8 @@ AC_DEFUN(AC_ALTZONE, # endif #endif ], [return altzone;], -ac_cv_altzone=yes, ac_cv_altzone=no)]) -if test "$ac_cv_altzone" = yes; then +fptools_cv_altzone=yes, fptools_cv_altzone=no)]) +if test "$fptools_cv_altzone" = yes; then AC_DEFINE(HAVE_ALTZONE) fi ]) @@ -71,18 +74,18 @@ dnl underscore. dnl dnl We assume that they _haven't_ if anything goes wrong. dnl -AC_DEFUN(AC_UNDERSCORE, +AC_DEFUN(FPTOOLS_UNDERSCORE, [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl -AC_CACHE_CHECK([leading underscore in symbol names], ac_cv_lead_uscore, +AC_CACHE_CHECK([leading underscore in symbol names], fptools_cv_lead_uscore, dnl dnl Hack!: nlist() under Digital UNIX insist on there being an _, -dnl but symbol table listings show none. What is going on here?!? +dnl but symbol table listings shows none. What is going on here?!? dnl changequote(<<, >>)dnl << case $HostPlatform in -alpha-dec-osf*) ac_cv_lead_uscore='no';; +alpha-dec-osf*) fptools_cv_lead_uscore='no';; *) >> changequote([, ])dnl AC_TRY_RUN([#ifdef HAVE_NLIST_H @@ -105,7 +108,7 @@ changequote([, ])dnl }], ac_cv_lead_uscore=yes, ac_cv_lead_uscore=no, ac_cv_lead_uscore=NO) ;; esac); -LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'` +LeadingUnderscore=`echo $fptools_cv_lead_uscore | sed 'y/yesno/YESNO/'` AC_SUBST(LeadingUnderscore) case $LeadingUnderscore in YES) AC_DEFINE(LEADING_UNDERSCORE);; @@ -115,18 +118,18 @@ esac dnl dnl Check for Happy and version. dnl -AC_DEFUN(AC_HAPPY, +AC_DEFUN(FPTOOLS_HAPPY, [AC_PATH_PROG(HappyCmd,happy) -AC_CACHE_CHECK([for version of happy], ac_cv_happy_version, +AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version, [if test x"$HappyCmd" != x; then - ac_cv_happy_version="`$HappyCmd -v | + fptools_cv_happy_version="`$HappyCmd -v | changequote(, )dnl grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ; changequote([, ])dnl else - ac_cv_happy_version=""; + fptools_cv_happy_version=""; fi; -if expr "$ac_cv_happy_version" "<" 1.4 > /dev/null 2>&1; then +if expr "$fptools_cv_happy_version" "<" 1.4 > /dev/null 2>&1; then echo echo "Happy version 1.4 or later is required to compile GHC." exit 1; @@ -141,15 +144,15 @@ dnl What's the best way of doing context diffs? dnl dnl (NB: NeXTStep thinks diff'ing a file against itself is "trouble") dnl -AC_DEFUN(AC_PROG_DIFF, -[AC_CACHE_CHECK([for ok way to do context diffs], ac_cv_context_diffs, +AC_DEFUN(FPTOOLS_PROG_DIFF, +[AC_CACHE_CHECK([for ok way to do context diffs], fptools_cv_context_diffs, [echo foo > conftest1 echo foo > conftest2 if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then - ac_cv_context_diffs='diff -C 1' + fptools_cv_context_diffs='diff -C 1' else if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then - ac_cv_context_diffs='diff -c1' + fptools_cv_context_diffs='diff -c1' else echo "Can't figure out how to do context diffs." echo "Neither \`diff -C 1' nor \`diff -c1' works." @@ -158,14 +161,14 @@ else fi rm -f conftest1 conftest2 ]) -ContextDiffCmd=$ac_cv_context_diffs +ContextDiffCmd=$fptools_cv_context_diffs AC_SUBST(ContextDiffCmd) ]) dnl dnl Finding the Right Yacc dnl -AC_DEFUN(AC_PROG_YACCY, +AC_DEFUN(FPTOOLS_PROG_YACCY, [AC_PROG_YACC if test "$YACC" = "yacc"; then AC_CACHE_CHECK([if it is an OK yacc], ac_cv_prog_yacc, @@ -200,7 +203,7 @@ dnl *** Checking for ar and its arguments + whether we need ranlib. dnl dnl ArCmd and RANLIB are AC_SUBST'ed dnl -AC_DEFUN(AC_PROG_AR_AND_RANLIB, +AC_DEFUN(FPTOOLS_PROG_AR_AND_RANLIB, [AC_PATH_PROG(ArCmd,ar) if test -z "$ArCmd"; then echo "You don't seem to have ar in your PATH...I have no idea how to make a library" @@ -240,17 +243,17 @@ fi dnl dnl AC_SHEBANG_PERL - can we she-bang perl? dnl -AC_DEFUN(AC_SHEBANG_PERL, -[AC_CACHE_CHECK([if your perl works in shell scripts], ac_cv_shebang_perl, +AC_DEFUN(FPTOOLS_SHEBANG_PERL, +[AC_CACHE_CHECK([if your perl works in shell scripts], fptools_cv_shebang_perl, [echo "#!$PerlCmd"' exit $1; ' > conftest chmod u+x conftest (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null) if test $? -ne 69; then - ac_cv_shebang_perl=yes + fptools_cv_shebang_perl=yes else - ac_cv_shebang_perl=no + fptools_cv_shebang_perl=no fi rm -f conftest ])]) @@ -259,13 +262,13 @@ dnl dnl Extra testing of the result AC_PROG_CC, testing the gcc version no. dnl *Must* be called after AC_PROG_CC dnl -AC_DEFUN(AC_HAVE_GCC, -[AC_CACHE_CHECK([whether you have an ok gcc], ac_cv_have_gcc, +AC_DEFUN(FPTOOLS_HAVE_GCC, +[AC_CACHE_CHECK([whether you have an ok gcc], fptools_cv_have_gcc, [if test -z "$GCC"; then echo '' echo "You would be better off with gcc" echo "Perhaps it is already installed, but not in your PATH?" - ac_cv_have_gcc='no' + fptools_cv_have_gcc='no' else changequote(, )dnl cmd_string="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \1 \\\* 10 + \2/g' `" @@ -275,27 +278,27 @@ changequote([, ])dnl echo "I'm not sure if your version of gcc will work," echo "but it's worth a shot, eh?" fi - ac_cv_have_gcc='yes' + fptools_cv_have_gcc='yes' fi ]) -HaveGcc=`echo $ac_cv_have_gcc | sed 'y/yesno/YESNO/'` +HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'` AC_SUBST(HaveGcc) ]) dnl -dnl AC_PROG_GNUCPP gathers the path to the cpp that the +dnl FPTOOLS_PROG_GNUCPP gathers the path to the cpp that the dnl gcc driver calls upon. dnl dnl Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional') dnl -AC_DEFUN(AC_PROG_GNUCPP, -[AC_CACHE_CHECK([how to invoke GNU cpp directly], ac_cv_gnu_cpp, +AC_DEFUN(FPTOOLS_PROG_GNUCPP, +[AC_CACHE_CHECK([how to invoke GNU cpp directly], fptools_cv_gnu_cpp, [if test "$HaveGcc" = "YES"; then echo > conftest.c gcc -v -E conftest.c >/dev/null 2>conftest.out # \x5c = backslash echo 'tr/\x5c/\//; /(\S+\/cpp)/ && print "[$]1";' > conftest.pl - ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`" + fptools_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`" rm -fr conftest* else # We need to be able to invoke CPP directly, preferably @@ -303,10 +306,10 @@ AC_DEFUN(AC_PROG_GNUCPP, # this at the moment). # Take a guess at what to use, this probably won't work. echo Warning: GNU cpp not found, using $CPP - ac_cv_gnu_cpp = $CPP + fptools_cv_gnu_cpp = $CPP fi ]) -GNUCPP=$ac_cv_gnu_cpp +GNUCPP=$fptools_cv_gnu_cpp RAWCPP="$GNUCPP -traditional" AC_SUBST(GNUCPP) AC_SUBST(RAWCPP) @@ -315,7 +318,7 @@ AC_SUBST(RAWCPP) dnl Small feature test for perl version. Assumes PerlCmd dnl contains path to perl binary dnl -AC_DEFUN(AC_CHECK_PERL_VERSION, +AC_DEFUN(FPTOOLS_CHECK_PERL_VERSION, [$PerlCmd -v >conftest.out 2>&1 if grep "version 4" conftest.out >/dev/null 2>&1; then if grep "Patch level: 35" conftest.out >/dev/null 2>&1; then @@ -346,8 +349,8 @@ dnl ** figure out the alignment restriction of a type dnl (required SIZEOF test but AC_CHECK_SIZEOF doesn't call PROVIDE dnl so we can't call REQUIRE) -dnl GHC_CHECK_ALIGNMENT(TYPE) -AC_DEFUN(GHC_CHECK_ALIGNMENT, +dnl FPTOOLS_CHECK_ALIGNMENT(TYPE) +AC_DEFUN(FPTOOLS_CHECK_ALIGNMENT, [changequote(<<, >>)dnl dnl The name to #define. define(<>, translit(alignment_$1, [a-z *], [A-Z_P]))dnl @@ -385,3 +388,28 @@ undefine([AC_CV_NAME])dnl undefine([AC_CV_SIZEOF_NAME])dnl ]) +dnl ** figure out whether C compiler supports 'long long's +dnl (Closely based on Andreas Zeller's macro for testing +dnl for this under C++) +dnl +dnl If the C compiler supports `long long' types, +dnl define `HAVE_LONG_LONG'. +dnl +AC_DEFUN(FPTOOLS_C_LONG_LONG, +[ +AC_REQUIRE([AC_PROG_CC]) +AC_MSG_CHECKING(whether ${CC} supports long long types) +AC_CACHE_VAL(fptools_cv_have_long_long, +[ +AC_LANG_SAVE +AC_LANG_C +AC_TRY_COMPILE(,[long long a;], +fptools_cv_have_long_long=yes, +fptools_cv_have_long_long=no) +AC_LANG_RESTORE +]) +AC_MSG_RESULT($fptools_cv_have_long_long) +if test "$fptools_cv_have_long_long" = yes; then +AC_DEFINE(HAVE_LONG_LONG) +fi +]) diff --git a/configure.in b/configure.in index 28acfda..28e2a33 100644 --- a/configure.in +++ b/configure.in @@ -312,29 +312,13 @@ if test -z "$PerlCmd"; then echo "Perhaps it is already installed, but not in your PATH?" exit 1 else -AC_CHECK_PERL_VERSION +FPTOOLS_CHECK_PERL_VERSION fi # dnl ** does #!.../perl work? (sometimes it's too long...) # -AC_SHEBANG_PERL - -# Remove: we work around the problem in the single place -# where we rely on something (getopts) from the libraries. -# -#dnl ** check if perl library is properly installed -# -# (by seeing if a "do 'getopts.pl'" works... -#if $PerlCmd -e 'do "getopts.pl" || exit(1); exit(0);' > /dev/null 2>&1 ; then -# : -#else -# echo "I think your perl library is misinstalled:" -# echo "The following script did not work:" -# echo ' do "getopts.pl" || exit(1); exit(0);' -# echo 'But, anyway, we will continue in our quest..' -#fi -# +FPTOOLS_SHEBANG_PERL # dnl ** look for GCC and find out which version @@ -342,25 +326,25 @@ dnl ** look for GCC and find out which version # If gcc, make sure it's at least 2.1 # AC_PROG_CC -AC_HAVE_GCC +FPTOOLS_HAVE_GCC # dnl ** figure out how to invoke cpp directly (gcc -E is no good) # AC_PROG_CPP -AC_PROG_GNUCPP +FPTOOLS_PROG_GNUCPP # dnl ** figure out how to do context diffs # -AC_PROG_DIFF +FPTOOLS_PROG_DIFF # dnl ** look for a decent parser generator (bison preferred) # -# (AC_PROG_YACCY is AC_PROG_YACC, but with some extra testing +# (FPTOOLS_PROG_YACCY is AC_PROG_YACC, but with some extra testing # on the suitability of the 'yacc' returned.) -AC_PROG_YACCY +FPTOOLS_PROG_YACCY # dnl ** Find lex command (lex or flex) and library (-ll or -lfl) @@ -374,7 +358,7 @@ AC_PROG_INSTALL # dnl ** how to invoke `ar' and `ranlib' # -AC_PROG_AR_AND_RANLIB +FPTOOLS_PROG_AR_AND_RANLIB # # @@ -416,7 +400,7 @@ dnl dnl ** check for installed happy binary + version dnl (don't do it if we're booting from .hc files though.) if (test "$BootingFromHc" = "NO"); then -AC_HAPPY +FPTOOLS_HAPPY fi; #### program checking section ends here #### @@ -445,11 +429,11 @@ AC_STRUCT_TIMEZONE # dnl ** what's the type of timezone? -AC_TYPE_TIMEZONE +FPTOOLS_TYPE_TIMEZONE # dnl ** do we have altzone? -AC_ALTZONE +FPTOOLS_ALTZONE dnl ** what are the sizes of various types dnl (these must come before GHC_CHECK_ALIGNMENT) @@ -460,10 +444,13 @@ AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(void *, 4) dnl ** what are alignment constraints on various types -GHC_CHECK_ALIGNMENT(unsigned int) dnl redundant but harmless -GHC_CHECK_ALIGNMENT(long) -GHC_CHECK_ALIGNMENT(float) -GHC_CHECK_ALIGNMENT(double) +FPTOOLS_CHECK_ALIGNMENT(unsigned int) dnl redundant but harmless +FPTOOLS_CHECK_ALIGNMENT(long) +FPTOOLS_CHECK_ALIGNMENT(float) +FPTOOLS_CHECK_ALIGNMENT(double) + +dnl ** do we have long longs? +FPTOOLS_C_LONG_LONG # dnl ** check for specific library functions that we are interested in @@ -498,7 +485,7 @@ AC_TYPE_SIGNAL # dnl ** check for leading underscores in symbol names # -AC_UNDERSCORE +FPTOOLS_UNDERSCORE AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h ) diff --git a/mk/config.h.in b/mk/config.h.in index 5ecc8ab..cfe087e 100644 --- a/mk/config.h.in +++ b/mk/config.h.in @@ -78,6 +78,9 @@ /* Define if time.h or sys/time.h define the altzone variable */ #undef HAVE_ALTZONE +/* Define if C compiler supports long long types */ +#undef HAVE_LONG_LONG + /* Define if C Symbols have a leading underscore added by the compiler */ #undef LEADING_UNDERSCORE -- 1.7.10.4