diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 71 |
1 files changed, 49 insertions, 22 deletions
diff --git a/configure.ac b/configure.ac index e224cd88..0787464b 100644 --- a/configure.ac +++ b/configure.ac @@ -281,6 +281,7 @@ MHD_FIND_ADD_CC_CFLAG([CFLAGS_ac], [-fno-strict-aliasing], [-qnoansialias]) # '-qlonglong' is XLC option for C89, not used with C99 or later MHD_CHECK_ADD_CC_CFLAG([-qlonglong], [CFLAGS_ac]) +# Set basic optimisation flags AS_VAR_IF([enable_build_type],["neutral"],[], [ # Any non-neutral build types AC_CACHE_CHECK([whether workarounds for clang or clang-based compiler are required], @@ -298,14 +299,6 @@ choke me now ) ] ) - MHD_CHECK_ADD_CC_CFLAGS([-Wall -fdelete-null-pointer-checks -Wnull-dereference], [CFLAGS_ac]) - MHD_CHECK_ADD_CC_CFLAGS([-Wdeclaration-after-statement -Wimplicit -Wnested-externs], [CFLAGS_ac]) - MHD_CHECK_ADD_CC_CFLAGS([-Wredundant-decls -Wtrampolines -Wunsafe-loop-optimizations], [CFLAGS_ac]) - MHD_CHECK_ADD_CC_CFLAGS([-Wpoison-system-directories], [CFLAGS_ac]) - CFLAGS="${CFLAGS_ac} ${user_CFLAGS}" - LDFLAGS="${user_LDFLAGS}" - MHD_CHECK_ADD_CC_LDFLAG([-Wl,--warn-common], [LDFLAGS_ac]) - LDFLAGS="${LDFLAGS_ac} ${user_LDFLAGS}" ] ) AS_CASE([${enable_build_type}],[debug|debugger], @@ -321,6 +314,53 @@ AS_CASE([${enable_build_type}],[debug|debugger], ], [MHD_CHECK_ADD_CC_CFLAG([-O0], [CFLAGS_ac])] ) + CFLAGS="${CFLAGS_ac} ${user_CFLAGS}" + ] +) +AS_CASE([${enable_build_type}],[release|release-*], + [ # All release types + AS_VAR_IF([enable_build_type],["release-compact"], + [ + CPPFLAGS="${CPPFLAGS_ac} ${user_CPPFLAGS}" + AC_CHECK_DECL([MHD_FAVOR_SMALL_CODE],[], + [AC_CHECK_DECL([MHD_FAVOR_FAST_CODE],[], + [MHD_APPEND_FLAG_TO_VAR([CPPFLAGS_ac],[-DMHD_FAVOR_SMALL_CODE=1])], + [/* no includes */])],[/* no includes */]) + CPPFLAGS="${CPPFLAGS_ac} ${user_CPPFLAGS}" + CFLAGS="${user_CFLAGS}" + MHD_FIND_ADD_CC_CFLAG([CFLAGS_ac], [-Oz], [-Os], [-O]) + CFLAGS="${CFLAGS_ac} ${user_CFLAGS}" + ], + [ # All non-compact release types + CPPFLAGS="${CPPFLAGS_ac} ${user_CPPFLAGS}" + AC_CHECK_DECL([MHD_FAVOR_SMALL_CODE],[], + [AC_CHECK_DECL([MHD_FAVOR_FAST_CODE],[], + [MHD_APPEND_FLAG_TO_VAR([CPPFLAGS_ac],[-DMHD_FAVOR_FAST_CODE=1])], + [/* no includes */])],[/* no includes */]) + CPPFLAGS="${CPPFLAGS_ac} ${user_CPPFLAGS}" + CFLAGS="${user_CFLAGS}" + MHD_FIND_ADD_CC_CFLAG([CFLAGS_ac], [-O2], [-O]) + CFLAGS="${CFLAGS_ac} ${user_CFLAGS}" + ] + ) + ] +) + +AS_VAR_IF([enable_build_type],["neutral"],[], + [ # Any non-neutral build types + MHD_CHECK_ADD_CC_CFLAGS([-Wall -Wnull-dereference], [CFLAGS_ac]) + MHD_CHECK_ADD_CC_CFLAGS([-Wdeclaration-after-statement -Wimplicit -Wnested-externs], [CFLAGS_ac]) + MHD_CHECK_ADD_CC_CFLAGS([-Wredundant-decls -Wtrampolines -Wunsafe-loop-optimizations], [CFLAGS_ac]) + MHD_CHECK_ADD_CC_CFLAGS([-Wpoison-system-directories], [CFLAGS_ac]) + CFLAGS="${CFLAGS_ac} ${user_CFLAGS}" + LDFLAGS="${user_LDFLAGS}" + MHD_CHECK_ADD_CC_LDFLAG([-Wl,--warn-common], [LDFLAGS_ac]) + LDFLAGS="${LDFLAGS_ac} ${user_LDFLAGS}" + ] +) +AS_CASE([${enable_build_type}],[debug|debugger], + [ # Debug build or build for walking with debugger + CFLAGS="${user_CFLAGS}" MHD_FIND_ADD_CC_CFLAG([CFLAGS_ac], [-ggdb3], [-g3], [-ggdb], [-g]) MHD_CHECK_ADD_CC_CFLAGS([-Wextra -Wdouble-promotion], [CFLAGS_ac]) MHD_FIND_ADD_CC_CFLAG_IFELSE( @@ -407,21 +447,8 @@ AS_CASE([${enable_build_type}],[release|release-*], [ # All release types CFLAGS="${user_CFLAGS}" AS_VAR_IF([enable_build_type],["release-compact"], - [ - AC_CHECK_DECL([MHD_FAVOR_SMALL_CODE],[], - [AC_CHECK_DECL([MHD_FAVOR_FAST_CODE],[], - [MHD_APPEND_FLAG_TO_VAR([CPPFLAGS_ac],[-DMHD_FAVOR_SMALL_CODE=1])], - [/* no includes */])],[/* no includes */]) - CPPFLAGS="${CPPFLAGS_ac} ${user_CPPFLAGS}" - MHD_FIND_ADD_CC_CFLAG([CFLAGS_ac], [-Oz], [-Os], [-O]) - ], + [], [ # All non-compact release types - AC_CHECK_DECL([MHD_FAVOR_SMALL_CODE],[], - [AC_CHECK_DECL([MHD_FAVOR_FAST_CODE],[], - [MHD_APPEND_FLAG_TO_VAR([CPPFLAGS_ac],[-DMHD_FAVOR_FAST_CODE=1])], - [/* no includes */])],[/* no includes */]) - CPPFLAGS="${CPPFLAGS_ac} ${user_CPPFLAGS}" - MHD_FIND_ADD_CC_CFLAG([CFLAGS_ac], [-O2], [-O]) MHD_CHECK_ADD_CC_CFLAGS([-fsched-pressure -fira-loop-pressure -fmerge-all-constants], [CFLAGS_ac]) # These flags may improve size, recheck with LTO and linker garbage collection MHD_CHECK_ADD_CC_CFLAGS([-ftree-partial-pre -fgcse-after-reload -fipa-pta], [CFLAGS_ac]) MHD_CHECK_ADD_CC_CFLAGS([-fisolate-erroneous-paths-attribute -ffinite-loops -floop-nest-optimize], [CFLAGS_ac]) |