4 ## Provide the --enable-warnings configure argument, set to 'minimum'
7 AC_DEFUN([AC_ARG_WARNINGS],
9 AC_ARG_ENABLE([warnings],
10 [ --enable-warnings=[[none|minimum|maximum|hardcore]]
11 Control compiler pickyness. [[default=maximum]]],
12 [gtkmm_enable_warnings="$enableval"],
13 gtkmm_enable_warnings="maximum")
15 AC_MSG_CHECKING([for compiler warning flags to use])
17 gtkmm_warning_flags=''
19 case "$gtkmm_enable_warnings" in
20 none|no) gtkmm_warning_flags='';;
21 minimum|yes) gtkmm_warning_flags='-Wall -Wno-unused-parameter';;
22 maximum) gtkmm_warning_flags='-W -Wall -Wno-unused-parameter';;
23 hardcore) gtkmm_warning_flags='-W -Wall -Werror -Wno-unused-parameter';;
28 if test "x$gtkmm_warning_flags" != "x"
30 echo 'int foo() { return 0; }' > conftest.cc
32 for flag in $gtkmm_warning_flags
34 # Test whether the compiler accepts the flag. GCC doesn't bail
35 # out when given an unsupported flag but prints a warning, so
36 # check the compiler output instead.
37 gtkmm_cxx_out="`$CXX $flag -c conftest.cc 2>&1`"
38 rm -f conftest.$OBJEXT
39 test "x${gtkmm_cxx_out}" = "x" && \
40 gtkmm_use_flags="${gtkmm_use_flags:+$gtkmm_use_flags }$flag"
47 if test "x$gtkmm_use_flags" != "x"
49 for flag in $gtkmm_use_flags
52 *" $flag "*) ;; # don't add flags twice
53 *) CXXFLAGS="${CXXFLAGS:+$CXXFLAGS }$flag";;
57 gtkmm_use_flags='none'
60 AC_MSG_RESULT([$gtkmm_use_flags])
66 AC_DEFUN([AC_ARG_DEBUG],
68 AC_MSG_CHECKING([for debug flags])
70 AC_ARG_ENABLE(debug,[ --enable-debug Build in debugging mode],[
79 debug_flags="-D_DEBUG -g"
82 debug_flags="-DNDEBUG -g"
85 debug_flags="-DNDEBUG -Wno-deprecated"
90 CXXFLAGS="`echo $CXXFLAGS | sed s:-g::` $debug_flags"
91 CFLAGS="`echo $CFLAGS | sed s:-g::` $debug_flags"
93 AC_MSG_RESULT([$debug_flags])
99 ## Optimisation level 2 in g++ 4.1 or g++ 4.2 breaks composition loading in the vector parsing function in loadcanvas.cpp (1509627)
100 AC_DEFUN([AC_ARG_OPTIMIZATION],
102 AC_MSG_CHECKING([for optimization flags])
104 AC_ARG_ENABLE(optimization,[ --enable-optimization=[[0,1,2,3,4]] Select optimization level (default=1)],[
105 optimization=$enableval
109 optimization_flags=''
110 case "$optimization" in
111 0|no) optimization_flags="-O0";;
112 1) optimization_flags="-O1";;
113 2|yes) optimization_flags="-O2";;
114 pass1) optimization_flags="-O2 -fprofile-arcs";;
115 pass2) optimization_flags="-O2 -fbranch-probabilities";;
116 3) optimization_flags="-O3";;
117 *) optimization_flags="-O4";;
119 CXXFLAGS="`echo $CXXFLAGS | sed 's:-O.::g'` $optimization_flags"
120 CFLAGS="`echo $CFLAGS | sed 's:-O.::g'` $optimization_flags"
121 AC_MSG_RESULT([$optimization_flags])
124 AC_DEFUN([AC_ARG_PROFILE_ARCS],
126 AC_MSG_CHECKING([for arc profiling])
128 AC_ARG_ENABLE(profile-arcs,[ --enable-profile-arcs Enable arc profiling],[
129 profile_arcs=$enableval
134 if test $profile_arcs = "yes" ; then {
135 CXXFLAGS="$CXXFLAGS -fprofile-arcs";
136 CFLAGS="$CFLAGS -fprofile-arcs";
139 AC_MSG_RESULT([$profile_arcs])
142 AC_DEFUN([AC_ARG_BRANCH_PROBABILITIES],
144 AC_MSG_CHECKING([for branch-probabilities])
146 AC_ARG_ENABLE(branch-probabilities,[ --enable-branch-probabilities Enable branch-probabilities],[
147 branch_probabilities=$enableval
149 branch_probabilities=no
152 if test $branch_probabilities = "yes" ; then {
153 CXXFLAGS="$CXXFLAGS -fbranch-probabilities";
154 CFLAGS="$CFLAGS -fbranch-probabilities";
157 AC_MSG_RESULT([$branch_probabilities])
160 AC_DEFUN([AC_ARG_PROFILING],
162 AC_MSG_CHECKING([for profiling])
164 AC_ARG_ENABLE(profiling,[ --enable-profiling Enable profiling using gprof],[
170 if test $profiling = "yes" ; then {
171 CFLAGS="$CFLAGS -pg";
172 CXXFLAGS="$CXXFLAGS -pg";
173 LDFLAGS="$LDFLAGS -pg";
177 AC_MSG_RESULT([$profiling])
180 AC_DEFUN([AC_ARG_TIMELIMIT],
182 AC_ARG_ENABLE(timelimit,[ --enable-timelimit=[[days]] Set number of usable days(default=forever)],[
183 death_time=$((`date +%s`+$enableval*60*60*24))
184 AC_DEFINE_UNQUOTED(DEATH_TIME,$death_time, [ Describes the time at which the library will stop working ] )
191 AC_DEFUN([AC_ARG_LICENSE_KEY],
193 AC_ARG_ENABLE(license_key,[ --enable-license-key Turn on license key requirement],[
194 AC_DEFINE(LICENSE_KEY_REQUIRED,, [ Enables license key checks ] )
201 AC_DEFUN([AC_ARG_TIMELIMIT],
203 AC_ARG_ENABLE(timelimit,[ --enable-timelimit=[[days]] Set number of usable days(default=forever)],[
204 death_time=$((`date +%s`+$enableval*60*60*24))
205 AC_DEFINE_UNQUOTED(DEATH_TIME,$death_time, [ Describes the time at which the library will stop working ] )
212 MINGW_FLAGS="-mno-cygwin"
215 AC_DEFUN([AC_WIN32_QUIRKS],
220 AC_MSG_CHECKING([the flavor of the compiler])
221 if ( $CC --version | grep -q mingw ) ; then {
222 AC_MSG_RESULT([compiler is mingw special])
224 s/dir=\"\$absdir\"/dir=\`cygpath -d -m \"\$absdir\"\`/;
225 s/absdir=\`cd \"\$dir\" && pwd\`/absdir=\`cygpath -d -m \"\$dir\"\`/;
226 s/# We need an absolute path/dir=\`cygpath -d -m \"\$dir\"\` # We need an absolute path/;
227 s- /usr/lib- C:/mingw/lib-g;
228 s-\"/lib -\"C:/mingw/lib -g;
231 sys_lib_dlsearch_path_spec="C:/mingw/lib"
232 ac_default_prefix=`cygpath -d -m "$ac_default_prefix"`;
234 AC_MSG_RESULT([compiler is cygwin stock, adding -mno-cygwin])
235 CPP="$CPP $MINGW_FLAGS"
236 CC="$CC $MINGW_FLAGS"
237 CXX="$CXX $MINGW_FLAGS -L/usr/$host/lib -I/usr/include/c++/3.3.3/$host"
238 CXXCPP="$CXXCPP $MINGW_FLAGS"
244 CXXFLAGS="$CXXFLAGS -LC:/GTK/lib"
245 CFLAGS="$CFLAGS -LC:/GTK/lib"
246 LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--subsystem=console -Wl,--enable-runtime-pseudo-reloc"
247 dnl LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--subsystem=console -Wl,--enable-runtime-pseudo-reloc"
250 LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols"
251 dnl LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--subsystem=console"
252 CXXFLAGS="$CXXFLAGS -I/target/include"
253 CFLAGS="$CFLAGS -I/target/include"
256 echo Adding mac-specific optimization flags. . .
257 CXXFLAGS="$CXXFLAGS $G5OPTFLAGS"
264 AC_DEFUN([AC_LIBTOOL_PATCH],
267 if [[ "$LIBTOOL_PATCH_SED""x" != "x" ]] ; then {
268 printf "Patching libtool... "
269 cat libtool | sed "$LIBTOOL_PATCH_SED" > libtool2
273 AC_MSG_RESULT([patched])