Refactor the FPTOOLS_CHECK_HTYPE macro
authorIan Lynagh <igloo@earth.li>
Sun, 12 Jun 2011 11:54:48 +0000 (12:54 +0100)
committerAdam Megacz <megacz@cs.berkeley.edu>
Mon, 20 Jun 2011 02:04:27 +0000 (19:04 -0700)
We can now specify what happens if the type doesn't exist

aclocal.m4

index d444fcf..a8f5412 100644 (file)
@@ -112,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)
-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(<<AC_TYPE_NAME>>, translit(htype_$1, [a-z *], [A-Z_P]))
@@ -174,14 +174,21 @@ AC_DEFUN([FPTOOLS_CHECK_HTYPE],[
         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])
+        $2
     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],