X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=6e9801fbc858a4bbb059d11fa319d43e6ab236c3;hb=1366008113d6618bcf3e3e25849cae22cd054ef4;hp=727832024799debc5d3b1e97bbdde3df7cbc0560;hpb=fd2318bbb638215314f3b2a9904125607cd67512;p=ghc-base.git diff --git a/aclocal.m4 b/aclocal.m4 index 7278320..6e9801f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -7,8 +7,10 @@ # Implementation note: We are lazy and use an internal autoconf macro, but it # is supported in autoconf versions 2.50 up to the actual 2.57, so there is # little risk. +# The public AC_COMPUTE_INT macro isn't supported by some versions of +# autoconf. AC_DEFUN([FP_COMPUTE_INT], -[_AC_COMPUTE_INT([$1], [$2], [$3], [$4])[]dnl +[_AC_COMPUTE_INT([$2], [$1], [$3], [$4])[]dnl ])# FP_COMPUTE_INT @@ -19,7 +21,7 @@ AC_DEFUN([FP_COMPUTE_INT], AC_DEFUN([FP_CHECK_CONST], [AS_VAR_PUSHDEF([fp_Cache], [fp_cv_const_$1])[]dnl AC_CACHE_CHECK([value of $1], fp_Cache, -[FP_COMPUTE_INT([$1], fp_check_const_result, [AC_INCLUDES_DEFAULT([$2])], +[FP_COMPUTE_INT(fp_check_const_result, [$1], [AC_INCLUDES_DEFAULT([$2])], [fp_check_const_result=m4_default([$3], ['-1'])]) AS_VAR_SET(fp_Cache, [$fp_check_const_result])])[]dnl AC_DEFINE_UNQUOTED(AS_TR_CPP([CONST_$1]), AS_VAR_GET(fp_Cache), [The value of $1.])[]dnl @@ -110,8 +112,8 @@ AC_DEFUN([FPTOOLS_HTYPE_INCLUDES], dnl ** Map an arithmetic C type to a Haskell type. dnl Based on autconf's AC_CHECK_SIZEOF. -dnl FPTOOLS_CHECK_HTYPE(TYPE [, DEFAULT_VALUE ]) -AC_DEFUN([FPTOOLS_CHECK_HTYPE],[ +dnl FPTOOLS_CHECK_HTYPE_ELSE(TYPE, WHAT_TO_DO_IF_TYPE_DOES_NOT_EXIST) +AC_DEFUN([FPTOOLS_CHECK_HTYPE_ELSE],[ changequote(<<, >>) dnl The name to #define. define(<>, translit(htype_$1, [a-z *], [A-Z_P])) @@ -123,20 +125,20 @@ AC_DEFUN([FPTOOLS_CHECK_HTYPE],[ AC_MSG_CHECKING(Haskell type for $1) AC_CACHE_VAL(AC_CV_NAME,[ AC_CV_NAME_supported=yes - AC_COMPUTE_INT([HTYPE_IS_INTEGRAL], + FP_COMPUTE_INT([HTYPE_IS_INTEGRAL], [(($1)((int)(($1)1.4))) == (($1)1.4)], [FPTOOLS_HTYPE_INCLUDES],[AC_CV_NAME_supported=no]) if test "$AC_CV_NAME_supported" = "yes" then if test "$HTYPE_IS_INTEGRAL" -eq 0 then - AC_COMPUTE_INT([HTYPE_IS_FLOAT],[sizeof($1) == sizeof(float)], + FP_COMPUTE_INT([HTYPE_IS_FLOAT],[sizeof($1) == sizeof(float)], [FPTOOLS_HTYPE_INCLUDES], [AC_CV_NAME_supported=no]) - AC_COMPUTE_INT([HTYPE_IS_DOUBLE],[sizeof($1) == sizeof(double)], + FP_COMPUTE_INT([HTYPE_IS_DOUBLE],[sizeof($1) == sizeof(double)], [FPTOOLS_HTYPE_INCLUDES], [AC_CV_NAME_supported=no]) - AC_COMPUTE_INT([HTYPE_IS_LDOUBLE],[sizeof($1) == sizeof(long double)], + FP_COMPUTE_INT([HTYPE_IS_LDOUBLE],[sizeof($1) == sizeof(long double)], [FPTOOLS_HTYPE_INCLUDES], [AC_CV_NAME_supported=no]) if test "$HTYPE_IS_FLOAT" -eq 1 @@ -152,10 +154,10 @@ AC_DEFUN([FPTOOLS_CHECK_HTYPE],[ AC_CV_NAME_supported=no fi else - AC_COMPUTE_INT([HTYPE_IS_SIGNED],[(($1)(-1)) < (($1)0)], + FP_COMPUTE_INT([HTYPE_IS_SIGNED],[(($1)(-1)) < (($1)0)], [FPTOOLS_HTYPE_INCLUDES], [AC_CV_NAME_supported=no]) - AC_COMPUTE_INT([HTYPE_SIZE],[sizeof($1) * 8], + FP_COMPUTE_INT([HTYPE_SIZE],[sizeof($1) * 8], [FPTOOLS_HTYPE_INCLUDES], [AC_CV_NAME_supported=no]) if test "$HTYPE_IS_SIGNED" -eq 0 @@ -167,19 +169,31 @@ AC_DEFUN([FPTOOLS_CHECK_HTYPE],[ fi fi ]) + if test "$AC_CV_NAME_supported" = no + then + $2 + fi + + dnl Note: evaluating dollar-2 can change the value of + dnl $AC_CV_NAME_supported, so we might now get a different answer if test "$AC_CV_NAME_supported" = yes; then AC_MSG_RESULT($AC_CV_NAME) AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [Define to Haskell type for $1]) - else - AC_CV_NAME=NotReallyAType - AC_MSG_RESULT([not supported]) fi undefine([AC_TYPE_NAME])dnl undefine([AC_CV_NAME])dnl undefine([AC_CV_NAME_supported])dnl ]) +dnl FPTOOLS_CHECK_HTYPE(TYPE) +AC_DEFUN([FPTOOLS_CHECK_HTYPE],[ + FPTOOLS_CHECK_HTYPE_ELSE([$1],[ + AC_CV_NAME=NotReallyAType + AC_MSG_RESULT([not supported]) + ]) +]) + # FP_SEARCH_LIBS_PROTO(WHAT, PROTOTYPE, FUNCTION, SEARCH-LIBS, # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],