|
|
@@ -33,38 +33,53 @@
|
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
|
# warranty.
|
|
|
|
|
|
-#serial 1
|
|
|
+#serial 2
|
|
|
|
|
|
AC_DEFUN([MHD_FIND_ADD_CC_CFLAG],[dnl
|
|
|
-_MHD_FIND_ADD_CC_XFLAG([[CFLAGS]],$@)])
|
|
|
+_MHD_FIND_ADD_CC_XFLAG([[CFLAGS]],[],[],$@)])
|
|
|
|
|
|
|
|
|
# SYNOPSIS
|
|
|
#
|
|
|
# _MHD_FIND_ADD_CC_XFLAG([CFLAGS|LDFLAGS],
|
|
|
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
|
|
|
# [VARIABLE-TO-EXTEND],
|
|
|
# [FLAG1-TO-TEST], [FLAG2-TO-TEST], ...)
|
|
|
#
|
|
|
AC_DEFUN([_MHD_FIND_ADD_CC_XFLAG],[dnl
|
|
|
AC_PREREQ([2.64])dnl for m4_ifnblank
|
|
|
AC_LANG_ASSERT([C])dnl
|
|
|
- m4_if(m4_eval([$# >= 3]), [0], [m4_fatal([$0: Macro must have at least three parameters])])dnl
|
|
|
- m4_ifblank([$3],[m4_fatal([$0: Third macro argument must not be empty])])dnl
|
|
|
+ m4_if(m4_eval([$# >= 5]), [0], [m4_fatal([$0: Macro must have at least five parameters])])dnl
|
|
|
+ m4_ifblank([$5],[m4_fatal([$0: Fifth macro argument must not be empty])])dnl
|
|
|
+ m4_ifnblank([$2$3],[m4_newline([m4_n([AS_UNSET([mhd_cc_found_flag])])])])dnl
|
|
|
m4_bmatch(_mhd_norm_expd([$1]), [^\(CFLAGS\|LDFLAGS\)$],[],dnl
|
|
|
- [m4_fatal([$0: First macro argument must be either 'CFLAGS' or 'LDFLAGS; ']_mhd_norm_expd([$5])[' is not supported])])dnl
|
|
|
- m4_ifnblank([$2],[_MHD_FIND_ADD_CC_XFLAG_BODY($@)],dnl
|
|
|
- [_MHD_FIND_ADD_CC_XFLAG_BODY([$1],[$1],m4_shift2($@))])dnl
|
|
|
+ [m4_fatal([$0: First macro argument must be either 'CFLAGS' or 'LDFLAGS; ']_mhd_norm_expd([$1])[' is not supported])])dnl
|
|
|
+ m4_ifnblank([$4],[_MHD_FIND_ADD_CC_XFLAG_BODY(m4_ifnblank([$2$3],[mhd_cc_found_flag]),[$1],[$4],m4_shiftn([4],$@))],dnl
|
|
|
+ [_MHD_FIND_ADD_CC_XFLAG_BODY(m4_ifnblank([$2$3],[mhd_cc_found_flag]),[$1],[$1],m4_shiftn([4],$@))])dnl
|
|
|
+ m4_ifnblank([$2$3],[
|
|
|
+ AS_IF([test -n "${mhd_cc_found_flag}"],[$2],[$3])
|
|
|
+ AS_UNSET([mhd_cc_found_flag])
|
|
|
+ ])dnl
|
|
|
+ ])dnl
|
|
|
])
|
|
|
|
|
|
|
|
|
+# SYNOPSIS
|
|
|
+#
|
|
|
+# _MHD_FIND_ADD_CC_XFLAG_BODY([VAR-TO-SET],
|
|
|
+# [CFLAGS|LDFLAGS],
|
|
|
+# [VARIABLE-TO-EXTEND],
|
|
|
+# [FLAG1-TO-TEST], [FLAG2-TO-TEST], ...)
|
|
|
+#
|
|
|
m4_define([_MHD_FIND_ADD_CC_XFLAG_BODY],[dnl
|
|
|
m4_version_prereq([2.64])dnl for m4_ifnblank
|
|
|
m4_if([$#],[0],[m4_fatal([$0: no parameters])])dnl
|
|
|
-m4_bmatch(_mhd_norm_expd([$1]),[^\(CFLAGS\|LDFLAGS\)$],[],dnl
|
|
|
-[m4_fatal([$0: First macro argument must be either 'CFLAGS' or 'LDFLAGS; ']_mhd_norm_expd([$5])[' is not supported])])dnl
|
|
|
+m4_bmatch(_mhd_norm_expd([$2]),[^\(CFLAGS\|LDFLAGS\)$],[],dnl
|
|
|
+[m4_fatal([$0: Second macro argument must be either 'CFLAGS' or 'LDFLAGS; ']_mhd_norm_expd([$2])[' is not supported])])dnl
|
|
|
m4_if([$#],[1],[m4_fatal([$0: not enough parameters])])dnl
|
|
|
m4_if([$#],[2],[m4_fatal([$0: not enough parameters])])dnl
|
|
|
-m4_if([$#],[3],[m4_ifnblank([$3],[_MHD_CHECK_ADD_CC_XFLAG([$3],[$2],[],[],[$1])])],
|
|
|
-[m4_ifnblank([$3],[_MHD_CHECK_ADD_CC_XFLAG([$3],[$2],[],[$0([$1],[$2],m4_shift3($@))],[$1])],
|
|
|
-[$0([$1],[$2],m4_shift3($@))])])dnl
|
|
|
+m4_if([$#],[3],[m4_fatal([$0: not enough parameters])])dnl
|
|
|
+m4_if([$#],[4],[m4_ifnblank([$4],[_MHD_CHECK_ADD_CC_XFLAG([$4],[$3],m4_ifnblank([$1],[$1="_mhd_norm_expd([$4])"]),[],[$2])])],
|
|
|
+[m4_ifnblank([$4],[_MHD_CHECK_ADD_CC_XFLAG([$4],[$3],m4_ifnblank([$1],[$1="_mhd_norm_expd([$4])"]),[$0([$1],[$2],[$3],m4_shiftn([4],$@))],[$2])],
|
|
|
+[$0([$1],[$2],[$3],m4_shiftn([4],$@))])])dnl
|
|
|
])
|