X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=d660017da6656bdbd8f1449cbb89864bc3665ca9;hb=f257e94329e61fb040acb10c41f8c44ed7b437ce;hp=e2c46f782b41e102b93658446f536bf045e357c4;hpb=53386c359c55bd6eaa13c35fe174c9274ff5888e;p=ghc-hetmet.git diff --git a/aclocal.m4 b/aclocal.m4 index e2c46f7..d660017 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -171,52 +171,41 @@ done ])# FP_CHECK_CONSTS -dnl ** check for leading underscores in symbol names -dnl -dnl Test for determining whether symbol names have a leading -dnl underscore. -dnl -dnl We assume that they _haven't_ if anything goes wrong. -dnl -dnl Some nlist implementations seem to try to be compatible by ignoring -dnl a leading underscore sometimes (eg. FreeBSD). We therefore have -dnl to work around this by checking for *no* leading underscore first. -dnl Sigh. --SDM -dnl -dnl Similarly on OpenBSD, but this test doesn't help. -- dons -dnl -AC_DEFUN(FPTOOLS_UNDERSCORE, -[AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl -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 shows none. What is going on here?!? -dnl -dnl Another hack: cygwin doesn't come with nlist.h , so we hardwire -dnl the underscoredness of that "platform" -changequote(<<, >>)dnl -<< +# FP_LEADING_UNDERSCORE +# --------------------- +# Test for determining whether symbol names have a leading underscore. We assume +# that they _haven't_ if anything goes wrong. Sets the output variable +# LeadingUnderscore to YES or NO and defines LEADING_UNDERSCORE correspondingly. +# +# Some nlist implementations seem to try to be compatible by ignoring a leading +# underscore sometimes (eg. FreeBSD). We therefore have to work around this by +# checking for *no* leading underscore first. Sigh. --SDM +# +# Similarly on OpenBSD, but this test doesn't help. -- dons +AC_DEFUN([FP_LEADING_UNDERSCORE], +[AC_CHECK_LIB([elf], [nlist], [LIBS="-lelf $LIBS"]) +AC_CACHE_CHECK([leading underscore in symbol names], [fptools_cv_leading_underscore], [ +# Hack!: nlist() under Digital UNIX insist on there being an _, +# but symbol table listings shows none. What is going on here?!? +# +# Another hack: cygwin doesn't come with nlist.h , so we hardwire +# the underscoredness of that "platform" case $HostPlatform in *openbsd*) # x86 openbsd is ELF from 3.4 >, meaning no leading uscore - case $build in - i386-*2\.[[0-9]] | i386-*3\.[[0-3]] ) fptools_cv_lead_uscore='yes' ;; - *) fptools_cv_lead_uscore='no' ;; - esac ;; -alpha-dec-osf*) fptools_cv_lead_uscore='no';; -*cygwin32) fptools_cv_lead_uscore='yes';; -*mingw32) fptools_cv_lead_uscore='yes';; -*) >> -changequote([, ])dnl -AC_TRY_RUN([#ifdef HAVE_NLIST_H + case $build in + i386-*2\.@<:@0-9@:>@ | i386-*3\.@<:@0-3@:>@ ) fptools_cv_leading_underscore=yes ;; + *) fptools_cv_leading_underscore=no ;; + esac ;; +alpha-dec-osf*) fptools_cv_leading_underscore=no;; +*cygwin32) fptools_cv_leading_underscore=yes;; +*mingw32) fptools_cv_leading_underscore=yes;; +*) AC_RUN_IFELSE([AC_LANG_SOURCE([[#ifdef HAVE_NLIST_H #include -changequote(<<, >>)dnl -<< struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}}; struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}}; #endif -main(argc, argv) +int main(argc, argv) int argc; char **argv; { @@ -224,19 +213,16 @@ char **argv; if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0) exit(1); if(nlist(argv[0], xYzzY2) == 0 && xYzzY2[0].n_value != 0) - exit(0);>> -changequote([, ])dnl + exit(0); #endif exit(1); -}], fptools_cv_lead_uscore=yes, fptools_cv_lead_uscore=no, fptools_cv_lead_uscore=NO) +}]])],[fptools_cv_leading_underscore=yes],[fptools_cv_leading_underscore=no],[fptools_cv_leading_underscore=no]) ;; -esac); -LeadingUnderscore=`echo $fptools_cv_lead_uscore | sed 'y/yesno/YESNO/'` -AC_SUBST(LeadingUnderscore) -case $LeadingUnderscore in -YES) AC_DEFINE([LEADING_UNDERSCORE], [1], [Define to 1 if C symbols have a leading underscore added by the compiler.]);; -esac -]) +esac]); +AC_SUBST([LeadingUnderscore], [`echo $fptools_cv_leading_underscore | sed 'y/yesno/YESNO/'`]) +if test x"$fptools_cv_leading_underscore" = xyes; then + AC_DEFINE([LEADING_UNDERSCORE], [1], [Define to 1 if C symbols have a leading underscore added by the compiler.]) +fi])# FP_LEADING_UNDERSCORE # FP_COMPARE_VERSIONS(VERSION1, TEST, VERSION2, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) @@ -431,7 +417,7 @@ esac AC_DEFUN([FP_PROG_AR_IS_GNU], [AC_REQUIRE([FP_PROG_AR]) AC_CACHE_CHECK([whether $fp_prog_ar_raw is GNU ar], [fp_cv_prog_ar_is_gnu], -[if $fp_prog_ar_raw --version | grep "GNU" > /dev/null 2> /dev/null; then +[if $fp_prog_ar_raw --version 2> /dev/null | grep "GNU" > /dev/null 2>&1; then fp_cv_prog_ar_is_gnu=yes else fp_cv_prog_ar_is_gnu=no @@ -509,8 +495,8 @@ AC_CACHE_CHECK([whether $fp_prog_ar_raw supports -input], [fp_cv_prog_ar_support if test $fp_prog_ar_is_gnu = no; then rm -f conftest* touch conftest.lst - if $fp_prog_ar_raw $fp_prog_ar_args conftest.a -input conftest.lst > /dev/null 2> /dev/null; then - fp_cv_prog_ar_supports_input=yes + if FP_EVAL_STDERR([$fp_prog_ar_raw $fp_prog_ar_args conftest.a -input conftest.lst]) >/dev/null; then + test -s conftest.err || fp_cv_prog_ar_supports_input=yes fi rm -f conftest* fi]) @@ -669,7 +655,7 @@ dnl AC_DEFUN(FPTOOLS_GHC_VERSION, [FPTOOLS_NOCACHE_CHECK([version of ghc], [fptools_version_of_ghc], ["${WithGhc-ghc}" --version > conftestghc 2>&1 - cat conftestghc >&AC_FD_CC + cat conftestghc >&AS_MESSAGE_LOG_FD #Useless Use Of cat award... fptools_version_of_ghc=`cat conftestghc | sed -n -e 's/, patchlevel *\([[0-9]]\)/.\1/;s/.* version \([[0-9]][[0-9.]]*\).*/\1/p'` rm -fr conftest* @@ -708,6 +694,19 @@ ifelse($#, [1], [dnl ])dnl +AC_DEFUN(FPTOOLS_GHC_HAS_READLINE, +[AC_CACHE_CHECK([whether ghc has readline package], [fptools_ghc_has_readline], +[if "${GhcPkgCmd-ghc-pkg}" --show-package readline >/dev/null 2>&1; then + fptools_ghc_has_readline='yes'; + GhcHasReadline='YES'; + else + fptools_ghc_has_readline='no'; + GhcHasReadline='NO'; + fi + AC_SUBST(GhcHasReadline) +]) +]) + dnl ** Map an arithmetic C type to a Haskell type. dnl Based on autconf's AC_CHECK_SIZEOF. @@ -725,7 +724,7 @@ AC_CACHE_VAL(AC_CV_NAME, [AC_CV_NAME_supported=yes fp_check_htype_save_cppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" -AC_TRY_RUN([#include +AC_RUN_IFELSE([AC_LANG_SOURCE([[#include #include #if HAVE_SYS_TYPES_H @@ -796,9 +795,9 @@ main() { } fclose(f); exit(0); -}],AC_CV_NAME=`cat conftestval`, -ifelse([$2], , [AC_CV_NAME=NotReallyAType; AC_CV_NAME_supported=no], AC_CV_NAME=$2), -ifelse([$3], , [AC_CV_NAME=NotReallyATypeCross; AC_CV_NAME_supported=no], AC_CV_NAME=$3))]) dnl +}]])],[AC_CV_NAME=`cat conftestval`], +[ifelse([$2], , [AC_CV_NAME=NotReallyAType; AC_CV_NAME_supported=no], [AC_CV_NAME=$2])], +[ifelse([$3], , [AC_CV_NAME=NotReallyATypeCross; AC_CV_NAME_supported=no], [AC_CV_NAME=$3])])]) dnl CPPFLAGS="$fp_check_htype_save_cppflags" if test "$AC_CV_NAME_supported" = yes; then AC_MSG_RESULT($AC_CV_NAME) @@ -926,14 +925,66 @@ fi ])# FP_CHECK_DOCBOOK_DTD +# FP_GEN_FO +# ------------------ +# Generates a formatting objects document in conftest.fo. +AC_DEFUN([FP_GEN_FO], +[rm -f conftest.fo +cat > conftest.fo << EOF + + + + + + + + + + + Test! + + + + +EOF +]) # FP_GEN_FO + + +# FP_PROG_FOP +# ----------- +# Set the output variable 'FopCmd' to the first working 'fop' in the current +# 'PATH'. Note that /usr/bin/fop is broken in SuSE 9.1 (unpatched), so try +# /usr/share/fop/fop.sh in that case (or no 'fop'), too. +AC_DEFUN([FP_PROG_FOP], +[AC_PATH_PROGS([FopCmd1], [fop]) +if test -n "$FopCmd1"; then + AC_CACHE_CHECK([for $FopCmd1 usability], [fp_cv_fop_usability], + [FP_GEN_FO + if "$FopCmd1" -fo conftest.fo -ps conftest.ps > /dev/null 2>&1; then + fp_cv_fop_usability=yes + else + fp_cv_fop_usability=no + fi + rm -rf conftest*]) + if test x"$fp_cv_fop_usability" = xyes; then + FopCmd=$FopCmd1 + fi +fi +if test -z "$FopCmd"; then + AC_PATH_PROGS([FopCmd2], [fop.sh], , [/usr/share/fop]) + FopCmd=$FopCmd2 +fi +AC_SUBST([FopCmd]) +])# FP_PROG_FOP + + # FP_PROG_FO_PROCESSOR # -------------------- # Try to find an FO processor. PassiveTeX output is sometimes a bit strange, so -# try FOP first. Furthermore, /usr/bin/fop is broken in SuSE 9.1, so try the -# "real" fop.sh first. Sets the output variables FopCmd, XmltexCmd, DvipsCmd, -# and PdfxmltexCmd. +# try FOP first. Sets the output variables FopCmd, XmltexCmd, DvipsCmd, and +# PdfxmltexCmd. AC_DEFUN([FP_PROG_FO_PROCESSOR], -[AC_PATH_PROGS([FopCmd], [fop.sh fop], [], [$PATH:/usr/share/fop]) +[AC_REQUIRE([FP_PROG_FOP]) AC_PATH_PROG([XmltexCmd], [xmltex]) AC_PATH_PROG([DvipsCmd], [dvips]) if test -z "$FopCmd"; then @@ -954,53 +1005,24 @@ fi ])# FP_PROG_FO_PROCESSOR -dnl ** Check which CATALOG file we have to use with DocBook SGML. -dnl -dnl FPTOOLS_DOCBOOK_CATALOG(VARIABLE, JADE, STYLESHEET, CATALOGS-TO-CHECK-FOR) -dnl -dnl If any of the catalogs given in CATALOGS-TO-CHECK-FOR works on this -dnl platform, let VARIABLE refer to this catalog; otherwise, VARIABLE -dnl is set to "no". JADE is the jade executable and STYLESHEET -dnl a DocBook style sheet. -dnl -AC_DEFUN(FPTOOLS_DOCBOOK_CATALOG, -[AC_CACHE_CHECK([for DocBook CATALOG], fptools_cv_sgml_catalog, -[ -cat > conftest.sgml << EOF - -
- -Test -Test -
Test
-Test -
-Test - -Test. - - -
-EOF -fptools_cv_sgml_catalog=no -if test -z "$SGML_CATALOG_FILES" ; then - for fptools_catalog in $4; do - ac_try="$2 -t rtf -d $3#print -c $fptools_catalog conftest.sgml" - if AC_TRY_EVAL(ac_try); then - fptools_cv_sgml_catalog=[$]fptools_catalog - break - fi - done +# FP_PROG_GHC_PKG +# ---------------- +# Try to find a ghc-pkg matching the ghc mentioned in the environment variable +# WithGhc. If the latter is unset or no matching ghc-pkg can be found, try to +# find a plain ghc-pkg. Sets the output variable GhcPkgCmd. +AC_DEFUN([FP_PROG_GHC_PKG], +[AC_CACHE_CHECK([for ghc-pkg matching $WithGhc], fp_cv_matching_ghc_pkg, +[fp_ghc_pkg_guess=`echo $WithGhc | sed 's,ghc\(@<:@^/\\@:>@*\)$,ghc-pkg\1,'` +if "$fp_ghc_pkg_guess" -l > /dev/null 2>&1; then + fp_cv_matching_ghc_pkg=$fp_ghc_pkg_guess else -# If the env var SGML_CATALOG_FILES is defined, assume things are cool. - fptools_cv_sgml_catalog="yes" -fi -]) -rm -rf conftest* -if test $fptools_cv_sgml_catalog != "no"; then - $1=$fptools_cv_sgml_catalog -fi -]) + fp_cv_matching_ghc_pkg=no +fi]) +if test x"$fp_cv_matching_ghc_pkg" = xno; then + AC_PATH_PROG([GhcPkgCmd], [ghc-pkg]) +else + GhcPkgCmd=$fp_cv_matching_ghc_pkg +fi])# FP_PROG_GHC_PKG # FP_CHECK_WIN32 @@ -1067,7 +1089,7 @@ AC_DEFUN([FP_CHECK_GL_HELPER], fp_try_lib=`echo $fp_try_lib | sed -e 's/^-l//' -e 's/$/.lib/'` fi LIBS="$fp_try_lib ${$1_LIBS} $fp_save_LIBS" - AC_TRY_LINK([$3], [$4], [fp_cv_check_$1_lib="$fp_try_lib ${$1_LIBS}"; break]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([$3], [$4])], [fp_cv_check_$1_lib="$fp_try_lib ${$1_LIBS}"; break]) done LIBS="$fp_save_LIBS" CPPFLAGS="$fp_save_CPPFLAGS"]) @@ -1089,7 +1111,7 @@ AC_DEFUN([FP_CHECK_GL_HELPER], # ----------- AC_DEFUN([FP_CHECK_GL], [AC_REQUIRE([FP_PATH_X]) -AC_REQUIRE([AC_CANONICAL_SYSTEM]) +AC_REQUIRE([AC_CANONICAL_TARGET]) AC_ARG_ENABLE([hopengl], [AC_HELP_STRING([--enable-hopengl], @@ -1129,7 +1151,7 @@ else *-lopengl32*|*opengl32.lib*) ;; *) fp_save_LIBS="$LIBS" LIBS="$LIBS -lopengl32" - AC_TRY_LINK([@%:@include ], [glEnd()], + AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[glEnd()]])], [GL_LIBS="$GL_LIBS -lopengl32"; GL_LIBS0="$GL_LIBS0 -lopengl32"]) LIBS="$fp_save_LIBS" ;; @@ -1200,21 +1222,21 @@ AC_SUBST([GLUT_LIBS]) ])# FP_CHECK_GLUT -dnl @synopsis FP_EMPTY_STRUCTS -dnl -dnl Check whether empty structs is accepted by CC. +# FP_EMPTY_STRUCTS +# ---------------- +# Define output variable SUPPORTS_EMPTY_STRUCTS if empty structs are accepted by +# CC. dnl AC_DEFUN(FP_EMPTY_STRUCTS, -[AC_CACHE_CHECK(empty struct support, fptools_cv_empty_structs, -[AC_TRY_COMPILE([ -typedef struct { /*empty*/ } StgFoo; -], -[int i;], -fptools_cv_empty_structs=yes, -fptools_cv_empty_structs=no)]) -if test "$fptools_cv_empty_structs" = yes; then -AC_DEFINE([SUPPORTS_EMPTY_STRUCTS], [1], [Define to 1 if C compiler supports declaration of empty structure types.]) +[AC_CACHE_CHECK(empty struct support, fp_cv_empty_structs, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[typedef struct { /* empty */ } StgFoo;]], +[[int i;]])], +[fp_cv_empty_structs=yes], +[fp_cv_empty_structs=no])]) +if test x"$fp_cv_empty_structs" = xyes; then + AC_DEFINE([SUPPORTS_EMPTY_STRUCTS], [1], [Define to 1 if C compiler supports declaration of empty structure types.]) fi ]) + # LocalWords: fi