diff options
Diffstat (limited to 'contrib/amd/m4/macros/expand_cpp_int.m4')
-rw-r--r-- | contrib/amd/m4/macros/expand_cpp_int.m4 | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/contrib/amd/m4/macros/expand_cpp_int.m4 b/contrib/amd/m4/macros/expand_cpp_int.m4 new file mode 100644 index 0000000..7dff0ab --- /dev/null +++ b/contrib/amd/m4/macros/expand_cpp_int.m4 @@ -0,0 +1,42 @@ +dnl ###################################################################### +dnl Expand the value of a CPP macro into a printable integer number. +dnl Takes: header, macro, [action-if-found, [action-if-not-found]] +dnl It runs the header through CPP looking for a match between the macro +dnl and a string pattern, and if sucessful, it prints the string value out. +AC_DEFUN(AMU_EXPAND_CPP_INT, +[ +# we are looking for a regexp of an integer (must not start with 0 --- those +# are octals). +AC_EGREP_CPP( +[[1-9]][[0-9]]*, +[$1] +$2, +value="notfound" +AC_TRY_RUN( +[ +[$1] +main(argc) +int argc; +{ +#ifdef $2 +if (argc > 1) + printf("%d", $2); +exit(0); +#else +# error no such option $2 +#endif +exit(1); +}], value=`./conftest dummy 2>>config.log`, value="notfound", value="notfound") +, +value="notfound" +) +if test "$value" = notfound +then + : + $4 +else + : + $3 +fi +]) +dnl ====================================================================== |