X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=config.psi_const.m4;fp=config.psi_const.m4;h=db08f62f5d474e0da83d24540cd2c6df32ab4055;hp=0000000000000000000000000000000000000000;hb=3137da963d298c73ce3bc858874fdfc87fa941b7;hpb=5d54598329a4d04dd0080bc1252d1de85a7befef diff --git a/config.psi_const.m4 b/config.psi_const.m4 new file mode 100644 index 0000000..db08f62 --- /dev/null +++ b/config.psi_const.m4 @@ -0,0 +1,40 @@ +PSI_CONSTS="" +# add_str_const(name, value) +add_str_const() { + PSI_CONSTS="{PSI_T_STRING, \"string\", \"psi\\\\$1\", $2, PSI_T_QUOTED_STRING}, $PSI_CONSTS" +} +# add_int_const(name, value) +add_int_const() { + PSI_CONSTS="{PSI_T_INT, \"int\", \"psi\\\\$1\", \"$2\", PSI_T_NUMBER}, $PSI_CONSTS" +} +dnl PSI_CONST(const name, type) +AC_DEFUN(PSI_CONST, [ + AC_CACHE_CHECK(value of $1, psi_cv_const_$1, [ + psi_const_val= + case $2 in + str*) + if test "$cross_compiling" = "yes" + then + AC_TRY_CPP(PSI_INCLUDES $1, psi_const_val=`eval "$ac_try|tail -n1"`, psi_const_val=) + else + PSI_COMPUTE_STR(psi_const_val, $1, PSI_INCLUDES) + fi + ;; + int) + AC_COMPUTE_INT(psi_const_val, $1, PSI_INCLUDES) + ;; + esac + psi_cv_const_$1=$psi_const_val + ]) + if test "$psi_cv_const_$1" + then + case $2 in + str*) + add_str_const "$1" "$psi_cv_const_$1" + ;; + int) + add_int_const "$1" "$psi_cv_const_$1" + ;; + esac + fi +])