mhd_check_add_cc_cflag.m4 (2587B)
1 # SPDX-License-Identifier: FSFAP 2 # 3 # SYNOPSIS 4 # 5 # MHD_CHECK_ADD_CC_CFLAG([FLAG-TO-TEST], [VARIABLE-TO-EXTEND], 6 # [ACTION-IF-SUPPORTED], [ACTION-IF-NOT-SUPPORTED]) 7 # 8 # DESCRIPTION 9 # 10 # This macro checks whether the specific compiler flag is supported. 11 # The check is performing by appending FLAG-TO-TEST to the value of 12 # VARIABLE-TO-EXTEND (CFLAGS if not specified), then prepending result to 13 # CFLAGS (unless VARIABLE-TO-EXTEND is CFLAGS), and then performing compile 14 # and link test. If test succeed without warnings, then the flag is added to 15 # VARIABLE-TO-EXTEND. Otherwise, if compile and link without test flag cannot 16 # be done without any warning, the flag is considered to be unsuppoted. 17 # 18 # Example usage: 19 # 20 # MHD_CHECK_ADD_CC_CFLAG([-Wshadow], [additional_CFLAGS]) 21 # 22 # 23 # LICENSE 24 # 25 # Copyright (c) 2022 Karlson2k (Evgeny Grin) <k2k@narod.ru> 26 # 27 # Copying and distribution of this file, with or without modification, are 28 # permitted in any medium without royalty provided the copyright notice 29 # and this notice are preserved. This file is offered as-is, without any 30 # warranty. 31 32 #serial 1 33 34 AC_DEFUN([MHD_CHECK_ADD_CC_CFLAG],[dnl 35 _MHD_CHECK_ADD_CC_XFLAG([$1],[$2],[$3],[$4],[[CFLAGS]])dnl 36 ]) 37 38 39 # SYNOPSIS 40 # 41 # _MHD_CHECK_ADD_CC_XFLAG([FLAG-TO-TEST], [VARIABLE-TO-EXTEND], 42 # [ACTION-IF-SUPPORTED], [ACTION-IF-NOT-SUPPORTED], 43 # [CFLAGS|LDFLAGS]) 44 # 45 AC_DEFUN([_MHD_CHECK_ADD_CC_XFLAG],[dnl 46 AC_PREREQ([2.64])dnl for AS_VAR_IF, m4_ifnblank, m4_default 47 AC_LANG_ASSERT([C])dnl 48 m4_ifblank([$1], [m4_fatal([First macro argument must not be empty])])dnl 49 m4_bmatch(_mhd_norm_expd([$1]), [\s],dnl 50 [m4_fatal([First macro argument must not contain whitespaces])])dnl 51 m4_bmatch(_mhd_norm_expd([$2]), [\s],dnl 52 [m4_fatal([Second macro argument must not contain whitespaces])])dnl 53 m4_bmatch([$1], [\$], [m4_fatal([$0: First macro argument must not contain '$'])])dnl 54 m4_bmatch([$2], [\$], [m4_fatal([$0: Second macro argument must not contain '$'])])dnl 55 m4_bmatch(_mhd_norm_expd([$5]), [^\(CFLAGS\|LDFLAGS\)$],[],dnl 56 [m4_fatal([$0: Fifth macro argument must be either 'CFLAGS' or 'LDFLAGS; ']_mhd_norm_expd([$5])[' is not supported])])dnl 57 m4_ifnblank([$2], 58 [_MHD_CHECK_CC_XFLAG([$1], [$2], 59 [MHD_APPEND_FLAG_TO_VAR(_mhd_norm_expd([$2]),_mhd_norm_expd([$1])) 60 $3],[$4],[$5])], 61 [_MHD_CHECK_CC_XFLAG([$1],_mhd_norm_expd([$5]), 62 [MHD_APPEND_FLAG_TO_VAR(_mhd_norm_expd([$5]),_mhd_norm_expd([$1])) 63 $3],[$4],[$5])] 64 ) 65 ])