@@ -11,6 +11,46 @@ AC_CONFIG_MACRO_DIR([m4])
1111ac_clean_files=a.out.dSYM
1212AM_MAINTAINER_MODE
1313
14+ #
15+ # Command line argument to specify build variant (default to release).
16+ # Impacts default value of CFLAGS et al. so must come before AC_PROG_CC
17+ #
18+ AC_ARG_WITH ( [ build-variant] ,
19+ [ AS_HELP_STRING ( [ --with-build-variant=release|debug|releaseassert|releasedebuginfo] , [ Specify build variant [ default=release] ] ) ] ,
20+ [ dispatch_build_variant=${withval}] ,
21+ [ dispatch_build_variant=release]
22+ )
23+ AS_CASE ( [ $dispatch_build_variant] ,
24+ [ debug] , [
25+ default_compiler_flags="-g -O0"
26+ dispatch_enable_asserts=true
27+ dispatch_enable_optimization=false
28+ ] ,
29+ [ release] , [
30+ default_compiler_flags="-O2"
31+ dispatch_enable_asserts=false
32+ dispatch_enable_optimization=true
33+ ] ,
34+ [ releaseassert] , [
35+ default_compiler_flags="-O2"
36+ dispatch_enable_asserts=true
37+ dispatch_enable_optimization=true
38+ ] ,
39+ [ releasedebuginfo] , [
40+ default_compiler_flags="-g -O2"
41+ dispatch_enable_asserts=false
42+ dispatch_enable_optimization=true
43+ ] ,
44+ [ AC_MSG_ERROR ( "invalid build-variant $dispatch_build_variant" ) ]
45+ )
46+ AM_CONDITIONAL(DISPATCH_ENABLE_ASSERTS, $dispatch_enable_asserts)
47+ AM_CONDITIONAL(DISPATCH_ENABLE_OPTIMIZATION, $dispatch_enable_optimization)
48+
49+ : ${CFLAGS=$default_compiler_flags}
50+ : ${CXXFLAGS=$default_compiler_flags}
51+ : ${OBJCFLAGS=$default_compiler_flags}
52+ : ${OBJCXXFLAGS=$default_compiler_flags}
53+
1454AC_PROG_CC ( [ clang gcc cc] )
1555AC_PROG_CXX ( [ clang++ g++ c++] )
1656AC_PROG_OBJC ( [ clang gcc cc] )
0 commit comments