From: sof Date: Wed, 3 Sep 1997 23:53:05 +0000 (+0000) Subject: [project @ 1997-09-03 23:53:03 by sof] X-Git-Tag: Approximately_1000_patches_recorded~42 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=b035961905be6e49b3f26dd33e0dd0224b726b2b [project @ 1997-09-03 23:53:03 by sof] Moved feature tests from configure.in to aclocal.m4 and macroified them --- diff --git a/aclocal.m4 b/aclocal.m4 index 84a17e8..b1d79d0 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,5 +1,5 @@ # -# extra autoconf macros for Glasgow fptools distribution +# Extra autoconf macros for the Glasgow fptools # # @@ -56,8 +56,15 @@ dnl ** check for leading underscores in symbol names # We assume that they _haven't_ if anything goes wrong. # AC_DEFUN(AC_UNDERSCORE, -[AC_CHECK_LIB(elf, elf_begin, LIBS="-lelf $LIBS")dnl +[AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl AC_CACHE_CHECK([leading underscore in symbol names], ac_cv_lead_uscore, +[# +# Hack!: nlist() under Digital UNIX insist on there being an _, +# but symbol table listings show none. What is going on here?!? +# +if test $HostPlatform = "alpha-dec-osf1"; then + ac_cv_lead_uscore='no' +else AC_TRY_RUN([#ifdef HAVE_NLIST_H #include changequote(<<, >>)dnl @@ -75,18 +82,236 @@ char **argv; changequote([, ])dnl #endif exit(1); -}], ac_cv_lead_uscore=yes, ac_cv_lead_uscore=no, ac_cv_lead_uscore=NO)), +}], ac_cv_lead_uscore=yes, ac_cv_lead_uscore=no, ac_cv_lead_uscore=NO) +fi +]) +LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'` +AC_SUBST(LeadingUnderscore) +]) + # -# Hack!: nlist() under Digital UNIX insist on there being an _, -# but symbol table listings show none. What is going on here?!? +# Check for Happy and version. # -if test $HostPlatform = "alpha-dec-osf1"; then - LeadingUnderscore=NO +AC_DEFUN(AC_HAPPY, +[AC_PATH_PROG(HappyCmd,happy) +AC_CACHE_CHECK([for version of happy], ac_cv_happy_version, +[if test x"$HappyCmd" != x; then + ac_cv_happy_version="`$HappyCmd -v | +changequote(, )dnl + grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ; +changequote([, ])dnl else - LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'` + ac_cv_happy_version=""; fi; -test -n "$verbose" && echo " setting LeadingUnderscore to $LeadingUnderscore" -AC_SUBST(LeadingUnderscore) +]) +HappyVersion=$ac_cv_happy_version; +AC_SUBST(HappyVersion) +]) + +# +# What's the best way of doing context diffs? +# +# (NB: NeXTStep thinks diff'ing a file against itself is "trouble") +# +AC_DEFUN(AC_PROG_DIFF, +[AC_CACHE_CHECK([for ok way to do context diffs], ac_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' +else + if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then + ac_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." + exit 1 + fi +fi +rm -f conftest1 conftest2 +]), +ContextDiffCmd=$ac_cv_context_diffs +AC_SUBST(ContextDiffCmd) ]) +# +# Finding the Right Yacc +# +AC_DEFUN(AC_PROG_YACCY, +[AC_PROG_YACC +if test "$YACC" = "yacc"; then + AC_CACHE_CHECK([if it is an OK yacc], ac_cv_prog_yacc, + [AC_CHECK_PROG(WhatCmd, what, what, :) + $WhatCmd $YACC > conftest.out + if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then + echo "I don't trust your $YaccCmd; it looks like an old Sun yacc" + if test -f /usr/lang/yacc; then + echo "I'm going to use /usr/lang/yacc instead" + ac_cv_prog_yacc=/usr/lang/yacc + else + echo "I'm assuming the worst...no parser generator at all" + ac_cv_prog_yacc=: + fi + elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then + echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc" + echo "I'm assuming the worst...no parser generator at all" + ac_cv_prog_yacc=: + else + ac_cv_prog_yacc=$YACC + fi + rm -fr conftest* +]) +else + ac_cv_prog_yacc=$YACC +fi +YaccCmd=$ac_cv_prog_yacc +AC_SUBST(YaccCmd) +]) +dnl Checking for ar and its arguments + whether we need ranlib. +# +# ArCmd and RANLIB are AC_SUBST'ed +# +AC_DEFUN(AC_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" + exit 1; +fi +if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then + ArCmd="$ArCmd clqs" + NeedRanLib='' +elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then + ArCmd="$ArCmd cqs" + NeedRanLib='' +elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then + ArCmd="$ArCmd clq" + NeedRanLib='YES' +elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then + ArCmd="$ArCmd cq" + NeedRanLib='YES' +elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then + ArCmd="$ArCmd cq" + NeedRanLib='YES' +else + echo "I can't figure out how to use your $ArCmd" + exit 1 +fi +rm -rf conftest* +test -n "$ArCmd" && test -n "$verbose" && echo " setting ArCmd to $ArCmd" +AC_SUBST(ArCmd) +if test -z "$NeedRanLib"; then + RANLIB=':' + test -n "$verbose" && echo " setting RANLIB to $RANLIB" + AC_SUBST(RANLIB) +else + AC_PROG_RANLIB +fi +]) + +# +dnl AC_SHEBANG_PERL - can we she-bang perl? +# +AC_DEFUN(AC_SHEBANG_PERL, +[AC_CACHE_CHECK([if your perl works in shell scripts], ac_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 +else + ac_cv_shebang_perl=no +fi +rm -f conftest +])]) + +# +# Extra testing of the result AC_PROG_CC, testing the gcc version no. +# *Must* be called after AC_PROG_CC +# +AC_DEFUN(AC_HAVE_GCC, +[AC_CACHE_CHECK([whether you have an ok gcc], ac_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' +else +changequote(, )dnl + cmd_string="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version \(egcs-\)\?\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \2 \\\* 10 + \3/g' `" +changequote([, ])dnl + if test `eval $cmd_string 2>/dev/null` != "1"; then + echo '' + 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' +fi +]) +HaveGcc=`echo $ac_cv_have_gcc | sed 'y/yesno/YESNO/'` +AC_SUBST(HaveGcc) +]) + +# +# AC_PROG_GNUCPP gathers the path to the cpp that the +# gcc driver calls upon. +# +# Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional') +# +AC_DEFUN(AC_PROG_GNUCPP, +[AC_CACHE_CHECK([how to invoke cpp directly], ac_cv_gnu_cpp, +[if echo $CPP | grep gcc >/dev/null 2>&1; then + echo > conftest.c + gcc -v -E conftest.c >/dev/null 2>conftest.out + echo '/(\S+(\/|\\\\)cpp)/ && print "[$]1";' > conftest.pl + # GNUCPP: used in jmake.c (GnuCppCmd) and in mkdependC + # (where we could do with the usual pre-#defines) + ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`" + rm -fr conftest* +else + # It is likely that this will go terribly wrong.. + ac_cv_gnu_cpp='cc -E' +fi +]) +GNUCPP=$ac_cv_gnu_cpp +if test "$GNUCPP" = "cc -E"; then + RAWCPP="$GNUCPP" +else + RAWCPP="$GNUCPP -traditional" +fi +AC_SUBST(GNUCPP) +AC_SUBST(RAWCPP) +]) + +# +# Small feature test for perl version. Assumes PerlCmd +# contains path to perl binary +# +AC_DEFUN(AC_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 + echo " +************************************************************************ +Uh-oh...looks like you have Perl 4.035. + +Perl version 4.035 has a bug to do with recursion that will bite if +you run the lit2texi script, when making Info files from +literate files of various sorts. Either use perl5, the last version of perl4 +(4.036), or an older version (e.g., perl 4.019). Failing that, don't create +any Info files :-) +************************************************************************ +" + fi +else + if grep "version 5" conftest.out >/dev/null 2>&1; then + : + else + echo "I'm not sure if your version of perl will work," + echo "but it's worth a shot, eh?" + fi +fi +rm -fr conftest* +]) diff --git a/configure.in b/configure.in index 5fee36b..ad34154 100644 --- a/configure.in +++ b/configure.in @@ -33,13 +33,11 @@ fi hardtop=`pwd` hardtop=`echo $hardtop | sed 's|^/tmp_mnt/|/|' | sed 's|^/grasp_tmp|/local/grasp_tmp|'` -#OLD: hardtop=`echo $hardtop | sed 's|^/tmp_mnt/|/|' | sed 's|^/export/|/|' | sed 's|^/grasp_tmp|/local/grasp_tmp|'` - echo '' echo "*** The top of your build tree is: $hardtop" AC_SUBST(hardtop) -# ------------------------------------------------------------------------- +####-------------------------------------------------------------------- dnl ** choose host(/target/build) platform # # Guess host/target/build platform(s) if necessary. @@ -268,34 +266,11 @@ AC_SUBST(HostVendor_CPP) dnl AC_SUBST(BuildVendor_CPP) dnl AC_SUBST(TargetVendor_CPP) -# ------------------------------------------------------------------------- +####-------------------------------------------------------------------- dnl dnl * _GENERAL_ CONFIGURATION CHECKS # -dnl ** are we at Glasgow? -# -# This stuff is in danger of going away.. -# -if test -d /local/fp -a -d /users/fp/simonpj; then - echo "Brilliant! You must be a Glaswegian." - AT_GLASGOW=1 - if test "x$prefix" = xNONE; then - prefix=/local/fp - echo "Assuming installation prefix of $prefix" - fi - if test "x$exec_prefix" = xNONE; then - # Sigh: the defn of exec_prefix does not include the bin* bit... - # WDP 94/07 - exec_prefix=/local/fp - echo "Assuming binary installation prefix of $exec_prefix" - fi -else - AT_GLASGOW=0 -fi -AC_SUBST(AT_GLASGOW) -test -n "$verbose" && echo " setting AT_GLASGOW to $AT_GLASGOW" -# -# + # dnl ** does #! work? # @@ -303,238 +278,91 @@ AC_SYS_INTERPRETER() # dnl ** look for `perl', but watch out for version 4.035 # -AC_CHECK_PROG(PerlCmd,perl,$ac_dir/$ac_word) +AC_PATH_PROG(PerlCmd,perl) if test -z "$PerlCmd"; then - echo "You must install perl before you can continue" - echo "Perhaps it is already installed, but not in your PATH?" - exit 1 + echo "You must install perl before you can continue" + echo "Perhaps it is already installed, but not in your PATH?" + exit 1 else - $PerlCmd -v >conftest.out 2>&1 - if egrep "version 4" conftest.out >/dev/null 2>&1; then - if egrep "Patch level: 35" conftest.out >/dev/null 2>&1; then - echo " -************************************************************************ -Uh-oh...looks like you have Perl 4.035. - -Perl version 4.035 has a bug to do with recursion that will bite if -you run the lit2texi script, when making Info files from -literate files of various sorts. Either use the current version -(4.036), an older version (e.g., perl 4.019) or apply the patch in -glafp-utils/perl-4.035-fixes to your 4.035 perl. -************************************************************************ -" - fi - else - if egrep "version 5" conftest.out >/dev/null 2>&1; then - : - else - echo "I'm not sure if your version of perl will work," - echo "but it's worth a shot, eh?" - fi - fi - rm -fr conftest* +AC_CHECK_PERL_VERSION fi + # dnl ** does #!.../perl work? (sometimes it's too long...) -echo "checking if \`#!$PerlCmd' works in shell scripts" -echo "#!$PerlCmd"' -exit $1; -' > conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null) -if test $? -ne 69; then - echo "It does!" -else - echo "It doesn't! Perhaps \`#!$PerlCmd' is too long (often 32 characters max)" - exit 1 -fi -rm -f conftest # -dnl ** check if perl library is properly installed +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 +#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 # + # dnl ** look for GCC and find out which version # Figure out which C compiler to use. Gcc is preferred. # If gcc, make sure it's at least 2.1 # AC_PROG_CC -if test -z "$GCC"; then - echo "You would be better off with gcc" - echo "Perhaps it is already installed, but not in your PATH?" - HaveGcc='NO' -else - gcc -v > conftest.out 2>&1 - echo '/version (\d+)\.(\d+)/ && $1*10+$2 > 20 && print "YES";' > conftest.pl - HaveGcc=`eval $PerlCmd -n conftest.pl conftest.out` - if test -z "$HaveGcc"; then - echo "I'm not sure if your version of gcc will work," - echo "but it's worth a shot, eh?" - HaveGcc='YES' - fi - rm -fr conftest* -fi -AC_SUBST(HaveGcc) +AC_HAVE_GCC + +# +dnl ** figure out how to invoke cpp directly (gcc -E is no good) +# +AC_PROG_CPP +AC_PROG_GNUCPP -# Deprecated (AC_PROG_CC does it): AC_C_CROSS # dnl ** figure out how to do context diffs -# (NB: NeXTStep thinks diff'ing a file against itself is "trouble") # -echo foo > conftest1 -echo foo > conftest2 -if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then - ContextDiffCmd='diff -C 1' -else - if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then - ContextDiffCmd='diff -c1' - else - echo "Can't figure out how to do context diffs." - echo "Neither \`diff -C 1' nor \`diff -c1' works." - exit 1 - fi -fi -rm -f conftest1 conftest2 -AC_SUBST(ContextDiffCmd) +AC_PROG_DIFF + # dnl ** look for a decent parser generator (bison preferred) # -# -AC_CHECK_PROG(YaccCmd, bison, bison -y) -if test -z "$YaccCmd"; then - echo "Can't find bison out there..." - AC_CHECK_PROG(WhatCmd, what, what, :) - AC_CHECK_PROG(YaccCmd, yacc, $ac_dir/$ac_word) - if test -z "$YaccCmd"; then - echo "But that's okay...I can't find yacc either." - YaccCmd=: - else - $WhatCmd $YaccCmd > conftest.out - if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then - echo "I don't trust your $YaccCmd; it looks like an old Sun yacc" - if test -f /usr/lang/yacc; then - echo "I'm going to use /usr/lang/yacc instead" - YaccCmd=/usr/lang/yacc - else - echo "I'm assuming the worst...no parser generator at all" - YaccCmd=: - fi - elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then - echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc" - echo "I'm assuming the worst...no parser generator at all" - YaccCmd=: - else - echo "But that's okay...as far as I know, your yacc will work." - fi - rm -fr conftest* - fi -fi +# (AC_PROG_YACCY is AC_PROG_YACC, but with some extra testing +# on the suitability of the 'yacc' returned.) +AC_PROG_YACCY +# dnl ** Find lex command (lex or flex) and library (-ll or -lfl) # AC_PROG_LEX -# ------------------------------------------------------------------------- -# -dnl ** figure out how to invoke cpp directly (gcc -E is no good) -# -AC_PROG_CPP -if echo $CPP | egrep gcc >/dev/null 2>&1; then - echo > conftest.c - gcc -v -E conftest.c >/dev/null 2>conftest.out - echo '/(\S+\/cpp)/ && print "$1";' > conftest.pl - # GNUCPP: used in jmake.c (GnuCppCmd) and in mkdependC - # (where we could do with the usual pre-#defines) - GNUCPP="`eval $PerlCmd -n conftest.pl conftest.out`" - test -n "$verbose" && echo " setting GNUCPP to $GNUCPP" - # RAWCPP: we do not want *any* pre-#defines... - # (e.g., hscpp, mkdependHS) - RAWCPP="`eval $PerlCmd -n conftest.pl conftest.out` -traditional" - test -n "$verbose" && echo " setting RAWCPP to $RAWCPP" - rm -fr conftest* -fi -# ToDo: what are GNUCPP and RAWCPP if the above if didn't fire? WDP 95/02 -AC_SUBST(GNUCPP) -AC_SUBST(RAWCPP) # dnl ** figure out how to do a BSD-ish install # AC_PROG_INSTALL # -dnl ** figure out what arguments to feed to `ar' +dnl ** how to invoke `ar' and `ranlib' # -AC_CHECK_PROG(ArCmd,ar,$ac_dir/$ac_word) -if test -z "$ArCmd"; then - echo "You don't seem to have ar...I have no idea how to make a library" - exit 1; -fi -if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then - ArCmd="$ArCmd clqs" - NeedRanLib='' -elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then - ArCmd="$ArCmd cqs" - NeedRanLib='' -elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then - ArCmd="$ArCmd clq" - NeedRanLib='YES' -elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then - ArCmd="$ArCmd cq" - NeedRanLib='YES' -elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then - ArCmd="$ArCmd cq" - NeedRanLib='YES' -else - echo "I can't figure out how to use your $ArCmd" - exit 1 -fi -rm -rf conftest* -test -n "$ArCmd" && test -n "$verbose" && echo " setting ArCmd to $ArCmd" -AC_SUBST(ArCmd) -# -dnl ** figure out if we need `ranlib' -# -if test -z "$NeedRanLib"; then - # we hackily override a few platforms on a case-by-case basis - case $HostPlatform in - i386-*-linuxaout) - NeedRanLib='YES' - ;; - *) RANLIB=':' - ;; - esac - test -n "$verbose" && echo " setting RANLIB to $RANLIB" -fi -if test -n "$NeedRanLib"; then - AC_PROG_RANLIB -fi -AC_SUBST(RANLIB) +AC_PROG_AR_AND_RANLIB + # # dnl ** Check to see whether ln -s works # -AC_PROG_LN_S() -AC_SUBST(LN_S) +AC_PROG_LN_S + # dnl ** Find the path to sed ** -AC_PATH_PROG(SedCmd,sed,$ac_dir/$ac_word) -# -# It better be around somewhere (we wouldn't -# exec this script properly if it wasn't!) # -AC_SUBST(SedCmd) +AC_PATH_PROG(SedCmd,sed) + # dnl ** check for time command ** -AC_PATH_PROG(TimeCmd,time,$ac_dir/$ac_word) -# -AC_SUBST(TimeCmd) +AC_PATH_PROG(TimeCmd,time) + # dnl ** check for tar ** # @@ -542,13 +370,11 @@ dnl ** check for tar ** # AC_PATH_PROGS(TarCmd,gtar tar,tar) - # dnl ** check for gzip/compress ** AC_PATH_PROGS(CompressCmd,gzip compress,gzip) compress_nm=`basename $CompressCmd` - if test x"$compress_nm" = xgzip; then CompressCmd="$CompressCmd -d" CompressSuffix="gz" @@ -557,10 +383,11 @@ else fi AC_SUBST(CompressCmd) AC_SUBST(CompressSuffix) + # -dnl ** check for installed happy binary +dnl ** check for installed happy binary + version # -AC_PATH_PROG(HappyCmd,happy) +AC_HAPPY # # @@ -573,6 +400,12 @@ dnl ** check for installed green-card binary # AC_PATH_PROG(GreencardCmd,green-card) +#### program checking section ends here #### + +####-------------------------------------------------- +#### checking the state of the local header files and syscalls #### + +# dnl ** check for full ANSI header (.h) files # AC_HEADER_STDC @@ -621,22 +454,9 @@ AC_UNDERSCORE AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h ) -# -# It'll break soon enough if it didn't, but we perform a sanity -# check here on the generated config.mk file to see if the -# sed that was used is of the well-behaved sort. -# -#grep @ mk/config.mk > conftest.out -#if grep -v '# enclosed in @at-signs@.' conftest.out >/dev/null 2>&1; then -# : -#else -# echo 'Hmm..suspicious, did the configure script perform all the @..@ substitutions in mk/config.mk?..'; -# grep -v '# enclosed in @at-signs@.' conftest.out /dev/null -#fi -#rm -f conftest* - echo '' echo '************************************************' echo '*** NOW DO: gmake boot followed by gmake all' +echo '*** (where gmake == GNU make)' echo '************************************************' exit 0