mirror of
https://github.com/curl/curl.git
synced 2024-11-27 05:50:21 +08:00
Initial attempt to support configure's --(dis|en)able-optimize
option to specify dis(activation) of compiler optimizations. If option is specified, it will be honored independant of the --(dis|en)able-debug option.
This commit is contained in:
parent
445e4a9792
commit
d930280af5
@ -9,6 +9,7 @@ AM_CONFIG_HEADER([config.h])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
CARES_CHECK_OPTION_DEBUG
|
||||
CARES_CHECK_OPTION_OPTIMIZE
|
||||
CARES_CHECK_OPTION_WARNINGS
|
||||
|
||||
dnl SED is mandatory for configure process and libtool.
|
||||
@ -67,7 +68,7 @@ AC_CANONICAL_HOST
|
||||
dnl Get system canonical name
|
||||
AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
|
||||
|
||||
AC_PROG_CC
|
||||
CARES_CHECK_PROG_CC
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_INSTALL
|
||||
|
||||
@ -142,9 +143,10 @@ dnl platform/compiler/architecture specific checks/flags
|
||||
dnl **********************************************************************
|
||||
|
||||
CARES_CHECK_COMPILER
|
||||
CARES_PROCESS_CC_BASIC_OPTS
|
||||
CARES_PROCESS_CC_DEBUG_OPTS
|
||||
CARES_PROCESS_CC_WARNING_OPTS
|
||||
CARES_SET_COMPILER_BASIC_OPTS
|
||||
CARES_SET_COMPILER_DEBUG_OPTS
|
||||
CARES_SET_COMPILER_OPTIMIZE_OPTS
|
||||
CARES_SET_COMPILER_WARNING_OPTS
|
||||
|
||||
case $host in
|
||||
#
|
||||
@ -882,5 +884,15 @@ fi
|
||||
CARES_PRIVATE_LIBS="$LIBS"
|
||||
AC_SUBST(CARES_PRIVATE_LIBS)
|
||||
|
||||
dnl squeeze whitespace out of some variables
|
||||
|
||||
CFLAGS=`eval echo $CFLAGS`
|
||||
CPPFLAGS=`eval echo $CPPFLAGS`
|
||||
DEFS=`eval echo $DEFS`
|
||||
LDFLAGS=`eval echo $LDFLAGS`
|
||||
LIBS=`eval echo $LIBS`
|
||||
|
||||
CARES_PRIVATE_LIBS=`eval echo $CARES_PRIVATE_LIBS`
|
||||
|
||||
AC_CONFIG_FILES([Makefile libcares.pc])
|
||||
AC_OUTPUT
|
||||
|
@ -16,7 +16,7 @@
|
||||
#***************************************************************************
|
||||
|
||||
# File version for 'aclocal' use. Keep it a single number.
|
||||
# serial 2
|
||||
# serial 3
|
||||
|
||||
|
||||
dnl CARES_CHECK_COMPILER
|
||||
@ -28,11 +28,33 @@ AC_DEFUN([CARES_CHECK_COMPILER], [
|
||||
compiler_id="unknown"
|
||||
compiler_num="0"
|
||||
#
|
||||
flags_dbg_all="unknown"
|
||||
flags_dbg_yes="unknown"
|
||||
flags_dbg_off="unknown"
|
||||
flags_opt_all="unknown"
|
||||
flags_opt_yes="unknown"
|
||||
flags_opt_off="unknown"
|
||||
#
|
||||
CARES_CHECK_COMPILER_DEC
|
||||
CARES_CHECK_COMPILER_IBM
|
||||
CARES_CHECK_COMPILER_INTEL
|
||||
CARES_CHECK_COMPILER_GNU
|
||||
#
|
||||
if test "$compiler_id" = "unknown"; then
|
||||
cat <<_EOF 1>&2
|
||||
***
|
||||
*** Warning: This configure script does not have information about the
|
||||
*** compiler you are using, relative to the flags required to enable or
|
||||
*** disable generation of debug info, optimization options or warnings.
|
||||
***
|
||||
*** Whatever settings are present in CFLAGS will be used for this run.
|
||||
***
|
||||
*** If you wish to help the c-ares project to better support your compiler
|
||||
*** you can report this and the required info on the c-ares development
|
||||
*** mailing list: http://cool.haxx.se/mailman/listinfo/c-ares/
|
||||
***
|
||||
_EOF
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
@ -48,6 +70,12 @@ AC_DEFUN([CARES_CHECK_COMPILER_DEC], [
|
||||
test "$curl_cv_have_def___DECC_VER" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
compiler_id="DECC"
|
||||
flags_dbg_all="-g -g0 -g1 -g2 -g3"
|
||||
flags_dbg_yes="-g2"
|
||||
flags_dbg_off="-g0"
|
||||
flags_opt_all="-O -O0 -O1 -O2 -O3 -O4"
|
||||
flags_opt_yes="-O1"
|
||||
flags_opt_off="-O0"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
@ -71,6 +99,19 @@ AC_DEFUN([CARES_CHECK_COMPILER_GNU], [
|
||||
gccvhi=`echo $gccver | cut -d . -f1`
|
||||
gccvlo=`echo $gccver | cut -d . -f2`
|
||||
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
|
||||
flags_dbg_all="-g -g0 -g1 -g2 -g3"
|
||||
flags_dbg_all="$flags_dbg_all -ggdb"
|
||||
flags_dbg_all="$flags_dbg_all -gstabs"
|
||||
flags_dbg_all="$flags_dbg_all -gstabs+"
|
||||
flags_dbg_all="$flags_dbg_all -gcoff"
|
||||
flags_dbg_all="$flags_dbg_all -gxcoff"
|
||||
flags_dbg_all="$flags_dbg_all -gdwarf-2"
|
||||
flags_dbg_all="$flags_dbg_all -gvms"
|
||||
flags_dbg_yes="-g"
|
||||
flags_dbg_off="-g0"
|
||||
flags_opt_all="-O -O0 -O1 -O2 -O3 -Os"
|
||||
flags_opt_yes="-O2"
|
||||
flags_opt_off="-O0"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
@ -87,6 +128,19 @@ AC_DEFUN([CARES_CHECK_COMPILER_IBM], [
|
||||
if test "$curl_cv_have_def___IBMC__" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
compiler_id="IBMC"
|
||||
flags_dbg_all="-g -g0 -g1 -g2 -g3"
|
||||
flags_dbg_yes="-g"
|
||||
flags_dbg_off=""
|
||||
flags_opt_all="-O -O0 -O1 -O2 -O3 -O4 -O5"
|
||||
flags_opt_all="$flags_opt_all -qnooptimize"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=0"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=1"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=2"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=3"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=4"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=5"
|
||||
flags_opt_yes="-O2"
|
||||
flags_opt_off="-qnooptimize"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
@ -106,8 +160,27 @@ AC_DEFUN([CARES_CHECK_COMPILER_INTEL], [
|
||||
CURL_CHECK_DEF([__unix__], [], [silent])
|
||||
if test "$curl_cv_have_def___unix__" = "yes"; then
|
||||
compiler_id="ICC_unix"
|
||||
flags_dbg_all="-g -g0"
|
||||
flags_dbg_yes="-g -fp"
|
||||
flags_dbg_off="-g0"
|
||||
flags_opt_all="-O -O0 -O1 -O2 -O3 -Os"
|
||||
flags_opt_yes="-O2"
|
||||
flags_opt_off="-O0"
|
||||
else
|
||||
compiler_id="ICC_windows"
|
||||
flags_dbg_all="/ZI /Zi /zI /zi /ZD /Zd /zD /zd /Z7 /z7"
|
||||
flags_dbg_all="$flags_dbg_all /debug"
|
||||
flags_dbg_all="$flags_dbg_all /debug:none"
|
||||
flags_dbg_all="$flags_dbg_all /debug:minimal"
|
||||
flags_dbg_all="$flags_dbg_all /debug:partial"
|
||||
flags_dbg_all="$flags_dbg_all /debug:full"
|
||||
flags_dbg_all="$flags_dbg_all /debug:semantic_stepping"
|
||||
flags_dbg_all="$flags_dbg_all /debug:extended"
|
||||
flags_dbg_yes="/Zi /Oy-"
|
||||
flags_dbg_off=""
|
||||
flags_opt_all="/O /O0 /O1 /O2 /O3 /Os"
|
||||
flags_opt_yes="/O2"
|
||||
flags_opt_off=""
|
||||
fi
|
||||
compiler_num="$curl_cv_def___INTEL_COMPILER"
|
||||
else
|
||||
@ -116,12 +189,13 @@ AC_DEFUN([CARES_CHECK_COMPILER_INTEL], [
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_PROCESS_CC_BASIC_OPTS
|
||||
dnl CARES_SET_COMPILER_BASIC_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Sets compiler options/flags which are independant
|
||||
dnl of configure's debug or warnings options.
|
||||
dnl Sets compiler specific options/flags which do not
|
||||
dnl depend on configure's debug, optimize or warnings
|
||||
dnl options.
|
||||
|
||||
AC_DEFUN([CARES_PROCESS_CC_BASIC_OPTS], [
|
||||
AC_DEFUN([CARES_SET_COMPILER_BASIC_OPTS], [
|
||||
AC_REQUIRE([CARES_CHECK_COMPILER])dnl
|
||||
#
|
||||
if test "$compiler_id" = "DECC"; then
|
||||
@ -174,44 +248,134 @@ AC_DEFUN([CARES_PROCESS_CC_BASIC_OPTS], [
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_PROCESS_CC_DEBUG_OPTS
|
||||
dnl CARES_SET_COMPILER_DEBUG_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Sets compiler options/flags which depend on
|
||||
dnl configure's debug given option.
|
||||
dnl Sets compiler specific options/flags which depend
|
||||
dnl on configure's debug option.
|
||||
|
||||
AC_DEFUN([CARES_PROCESS_CC_DEBUG_OPTS], [
|
||||
AC_DEFUN([CARES_SET_COMPILER_DEBUG_OPTS], [
|
||||
AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl
|
||||
AC_REQUIRE([CARES_CHECK_COMPILER])dnl
|
||||
#
|
||||
if test "$want_debug" = "yes"; then
|
||||
CFLAGS="$CFLAGS -g"
|
||||
if test "$compiler_id" != "unknown"; then
|
||||
#
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
#
|
||||
honor_debug_option="yes"
|
||||
CARES_VAR_STRIP([CFLAGS],[${flags_dbg_all}])
|
||||
CARES_VAR_STRIP([CPPFLAGS],[${flags_dbg_all}])
|
||||
if test "$want_debug" = "yes"; then
|
||||
CFLAGS="$CFLAGS $flags_dbg_yes"
|
||||
AC_MSG_CHECKING([if compiler accepts debug enabling flags $flags_dbg_yes])
|
||||
fi
|
||||
if test "$want_debug" = "no"; then
|
||||
CFLAGS="$CFLAGS $flags_dbg_off"
|
||||
AC_MSG_CHECKING([if compiler accepts debug disabling flags $flags_dbg_off])
|
||||
fi
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
]],[[
|
||||
int i = 1;
|
||||
return i;
|
||||
]])
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
honor_debug_option="no"
|
||||
])
|
||||
#
|
||||
if test "$honor_debug_option" = "no"; then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
fi
|
||||
#
|
||||
fi
|
||||
#
|
||||
if test "$want_debug" = "no"; then
|
||||
dnl strip off optimizer flags
|
||||
NEWFLAGS=""
|
||||
for flag in $CFLAGS; do
|
||||
case "$flag" in
|
||||
-O*)
|
||||
dnl echo "cut off $flag"
|
||||
;;
|
||||
*)
|
||||
NEWFLAGS="$NEWFLAGS $flag"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
CFLAGS=$NEWFLAGS
|
||||
fi
|
||||
#
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_PROCESS_CC_WARNING_OPTS
|
||||
dnl CARES_SET_COMPILER_OPTIMIZE_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Sets compiler specific options/flags which depend
|
||||
dnl on configure's optimize option.
|
||||
|
||||
AC_DEFUN([CARES_SET_COMPILER_OPTIMIZE_OPTS], [
|
||||
AC_REQUIRE([CARES_CHECK_OPTION_OPTIMIZE])dnl
|
||||
AC_REQUIRE([CARES_CHECK_COMPILER])dnl
|
||||
#
|
||||
if test "$compiler_id" != "unknown"; then
|
||||
#
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
#
|
||||
dnl If optimization request setting has not been explicitly specified,
|
||||
dnl it has been derived from the debug setting and initially assumed.
|
||||
dnl This initially assumed optimizer setting will finally be ignored
|
||||
dnl if CFLAGS or CPPFLAGS already hold optimizer flags. This implies
|
||||
dnl that an initially assumed optimizer setting might not be honored.
|
||||
#
|
||||
honor_optimize_option="yes"
|
||||
if test "$want_optimize" = "assume_no" ||
|
||||
test "$want_optimize" = "assume_yes"; then
|
||||
AC_MSG_CHECKING([if compiler optimizer assumed setting might be used])
|
||||
CARES_VAR_MATCH_IFELSE([CFLAGS],[${flags_opt_all}],[
|
||||
honor_optimize_option="no"
|
||||
])
|
||||
CARES_VAR_MATCH_IFELSE([CPPFLAGS],[${flags_opt_all}],[
|
||||
honor_optimize_option="no"
|
||||
])
|
||||
AC_MSG_RESULT([$honor_optimize_option])
|
||||
if test "$honor_optimize_option" = "yes"; then
|
||||
if test "$want_optimize" = "assume_yes"; then
|
||||
want_optimize="yes"
|
||||
fi
|
||||
if test "$want_optimize" = "assume_no"; then
|
||||
want_optimize="no"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
#
|
||||
if test "$honor_optimize_option" = "yes"; then
|
||||
CARES_VAR_STRIP([CFLAGS],[${flags_opt_all}])
|
||||
CARES_VAR_STRIP([CPPFLAGS],[${flags_opt_all}])
|
||||
if test "$want_optimize" = "yes"; then
|
||||
CFLAGS="$CFLAGS $flags_opt_yes"
|
||||
AC_MSG_CHECKING([if compiler accepts optimizer enabling flags $flags_opt_yes])
|
||||
fi
|
||||
if test "$want_optimize" = "no"; then
|
||||
CFLAGS="$CFLAGS $flags_opt_off"
|
||||
AC_MSG_CHECKING([if compiler accepts optimizer disabling flags $flags_opt_off])
|
||||
fi
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
]],[[
|
||||
int i = 1;
|
||||
return i;
|
||||
]])
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
honor_optimize_option="no"
|
||||
])
|
||||
fi
|
||||
#
|
||||
if test "$honor_optimize_option" = "no"; then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
fi
|
||||
#
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_SET_COMPILER_WARNING_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Sets compiler options/flags which depend on
|
||||
dnl configure's warnings given option.
|
||||
|
||||
AC_DEFUN([CARES_PROCESS_CC_WARNING_OPTS], [
|
||||
AC_DEFUN([CARES_SET_COMPILER_WARNING_OPTS], [
|
||||
AC_REQUIRE([CARES_CHECK_OPTION_WARNINGS])dnl
|
||||
AC_REQUIRE([CARES_CHECK_COMPILER])dnl
|
||||
#
|
||||
@ -236,7 +400,7 @@ AC_DEFUN([CARES_PROCESS_CC_WARNING_OPTS], [
|
||||
if test "$compiler_id" = "GNUC"; then
|
||||
#
|
||||
# FIXME: Some of these warnings should be changed into errors
|
||||
# and moved to CARES-PROCESS-CC-BASIC-OPTS
|
||||
# and moved to CARES-SET-COMPILER-BASIC-OPTS
|
||||
#
|
||||
if test "$want_warnings" = "yes"; then
|
||||
dnl this is a set of options we believe *ALL* gcc versions support:
|
||||
@ -295,6 +459,7 @@ dnl CARES_PROCESS_DEBUG_BUILD_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Settings which depend on configure's debug given
|
||||
dnl option, and further configure the build process.
|
||||
dnl Don't use this macro for compiler dependant stuff.
|
||||
|
||||
AC_DEFUN([CARES_PROCESS_DEBUG_BUILD_OPTS], [
|
||||
AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl
|
||||
@ -311,9 +476,86 @@ AC_DEFUN([CARES_PROCESS_DEBUG_BUILD_OPTS], [
|
||||
dnl libcurl stuff so this BUILDING_LIBCURL is not THAT much uglier
|
||||
AC_DEFINE(BUILDING_LIBCURL, 1, [when building as static part of libcurl])
|
||||
|
||||
CPPFLAGS="$CPPFLAGS -DCURLDEBUG -I$srcdir/../include"
|
||||
CPPFLAGS="$CPPFLAGS -DCURLDEBUG"
|
||||
|
||||
dnl CHECKME: Do we still need so specify this include path here?
|
||||
CPPFLAGS="$CPPFLAGS -I$srcdir/../include"
|
||||
|
||||
fi
|
||||
#
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_CHECK_PROG_CC
|
||||
dnl -------------------------------------------------
|
||||
dnl Check for compiler program, preventing CFLAGS and
|
||||
dnl CPPFLAGS from being unexpectedly changed.
|
||||
|
||||
AC_DEFUN([CARES_CHECK_PROG_CC], [
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
AC_PROG_CC
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_VAR_MATCH (VARNAME, VALUE)
|
||||
dnl -------------------------------------------------
|
||||
dnl Verifies if shell variable VARNAME contains VALUE.
|
||||
dnl Contents of variable VARNAME and VALUE are handled
|
||||
dnl as whitespace separated lists of words. If at least
|
||||
dnl one word of VALUE is present in VARNAME the match
|
||||
dnl is considered positive, otherwise false.
|
||||
|
||||
AC_DEFUN([CARES_VAR_MATCH], [
|
||||
ac_var_match_word="no"
|
||||
for word1 in "${[$1]}"; do
|
||||
for word2 in "[$2]"; do
|
||||
if test "$word1" = "$word2"; then
|
||||
ac_var_match_word="yes"
|
||||
fi
|
||||
done
|
||||
done
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_VAR_MATCH_IFELSE (VARNAME, VALUE,
|
||||
dnl [ACTION-IF-MATCH], [ACTION-IF-NOT-MATCH])
|
||||
dnl -------------------------------------------------
|
||||
dnl This performs a CURL_VAR_MATCH check and executes
|
||||
dnl first branch if the match is positive, otherwise
|
||||
dnl the second branch is executed.
|
||||
|
||||
AC_DEFUN([CARES_VAR_MATCH_IFELSE], [
|
||||
CARES_VAR_MATCH([$1],[$2])
|
||||
if test "$ac_var_match_word" = "yes"; then
|
||||
ifelse($3,,:,[$3])
|
||||
ifelse($4,,,[else
|
||||
[$4]])
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_VAR_STRIP (VARNAME, VALUE)
|
||||
dnl -------------------------------------------------
|
||||
dnl Contents of variable VARNAME and VALUE are handled
|
||||
dnl as whitespace separated lists of words. Each word
|
||||
dnl from VALUE is removed from VARNAME when present.
|
||||
|
||||
AC_DEFUN([CARES_VAR_STRIP], [
|
||||
ac_var_stripped=""
|
||||
for word1 in "${[$1]}"; do
|
||||
ac_var_strip_word="no"
|
||||
for word2 in "[$2]"; do
|
||||
if test "$word1" = "$word2"; then
|
||||
ac_var_strip_word="yes"
|
||||
fi
|
||||
done
|
||||
if test "$ac_var_strip_word" = "no"; then
|
||||
ac_var_stripped="$ac_var_stripped $word1"
|
||||
fi
|
||||
done
|
||||
dnl squeeze whitespace out of result
|
||||
[$1]=`eval echo $[$1]`
|
||||
])
|
||||
|
@ -16,7 +16,7 @@
|
||||
#***************************************************************************
|
||||
|
||||
# File version for 'aclocal' use. Keep it a single number.
|
||||
# serial 1
|
||||
# serial 2
|
||||
|
||||
|
||||
dnl CARES_CHECK_OPTION_DEBUG
|
||||
@ -27,13 +27,13 @@ dnl variable want_debug value as appropriate.
|
||||
|
||||
AC_DEFUN([CARES_CHECK_OPTION_DEBUG], [
|
||||
AC_BEFORE([$0],[CARES_CHECK_OPTION_WARNINGS])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_CC])dnl
|
||||
AC_BEFORE([$0],[CARES_CHECK_PROG_CC])dnl
|
||||
AC_MSG_CHECKING([whether to enable debug build options])
|
||||
OPT_DEBUG_BUILD="default"
|
||||
AC_ARG_ENABLE(debug,
|
||||
AC_HELP_STRING([--enable-debug],[Enable debug build options])
|
||||
AC_HELP_STRING([--disable-debug],[Disable debug build options]),
|
||||
OPT_DEBUG_BUILD=$enableval)
|
||||
AC_HELP_STRING([--enable-debug],[Enable debug build options])
|
||||
AC_HELP_STRING([--disable-debug],[Disable debug build options]),
|
||||
OPT_DEBUG_BUILD=$enableval)
|
||||
case "$OPT_DEBUG_BUILD" in
|
||||
no)
|
||||
dnl --disable-debug option used
|
||||
@ -52,21 +52,77 @@ AC_DEFUN([CARES_CHECK_OPTION_DEBUG], [
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_CHECK_OPTION_OPTIMIZE
|
||||
dnl -------------------------------------------------
|
||||
dnl Verify if configure has been invoked with option
|
||||
dnl --enable-optimize or --disable-optimize, and set
|
||||
dnl shell variable want_optimize value as appropriate.
|
||||
|
||||
AC_DEFUN([CARES_CHECK_OPTION_OPTIMIZE], [
|
||||
AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl
|
||||
AC_BEFORE([$0],[CARES_CHECK_PROG_CC])dnl
|
||||
AC_MSG_CHECKING([whether to enable compiler optimizer])
|
||||
OPT_COMPILER_OPTIMIZE="default"
|
||||
AC_ARG_ENABLE(optimize,
|
||||
AC_HELP_STRING([--enable-optimize(=OPT)],[Enable compiler optimizations (default=-O2)])
|
||||
AC_HELP_STRING([--disable-optimize],[Disable compiler optimizations]),
|
||||
OPT_COMPILER_OPTIMIZE=$enableval)
|
||||
case "$OPT_COMPILER_OPTIMIZE" in
|
||||
no)
|
||||
dnl --disable-optimize option used. We will handle this as
|
||||
dnl a request to disable compiler optimizations if possible.
|
||||
dnl If the compiler is known CFLAGS and CPPFLAGS will be
|
||||
dnl overridden, otherwise this can not be honored.
|
||||
want_optimize="no"
|
||||
AC_MSG_RESULT([no])
|
||||
;;
|
||||
default)
|
||||
dnl configure's optimize option not specified. Initially we will
|
||||
dnl handle this as a a request contrary to configure's setting
|
||||
dnl for --enable-debug. IOW, initially, for debug-enabled builds
|
||||
dnl this will be handled as a request to disable optimizations if
|
||||
dnl possible, and for debug-disabled builds this will be handled
|
||||
dnl initially as a request to enable optimizations if possible.
|
||||
dnl Finally, if the compiler is known and CFLAGS and CPPFLAGS do
|
||||
dnl not have any optimizer flag the request will be honored, in
|
||||
dnl any other case the request can not be honored.
|
||||
dnl IOW, existing optimizer flags defined in CFLAGS or CPPFLAGS
|
||||
dnl will always take precedence over any initial assumption.
|
||||
if test "$want_debug" = "yes"; then
|
||||
want_optimize="assume_no"
|
||||
AC_MSG_RESULT([not specified (assuming no)])
|
||||
else
|
||||
want_optimize="assume_yes"
|
||||
AC_MSG_RESULT([not specified (assuming yes)])
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
dnl --enable-optimize option used. We will handle this as
|
||||
dnl a request to enable compiler optimizations if possible.
|
||||
dnl If the compiler is known CFLAGS and CPPFLAGS will be
|
||||
dnl overridden, otherwise this can not be honored.
|
||||
want_optimize="yes"
|
||||
AC_MSG_RESULT([yes])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_CHECK_OPTION_WARNINGS
|
||||
dnl -------------------------------------------------
|
||||
dnl Verify if configure has been invoked with option
|
||||
dnl --enable-warnings or --disable-warnings, and set
|
||||
DNL shell variable want_warnings as appropriate.
|
||||
dnl shell variable want_warnings as appropriate.
|
||||
|
||||
AC_DEFUN([CARES_CHECK_OPTION_WARNINGS], [
|
||||
AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_CC])dnl
|
||||
AC_BEFORE([$0],[CARES_CHECK_PROG_CC])dnl
|
||||
AC_MSG_CHECKING([whether to enable strict compiler warnings])
|
||||
OPT_COMPILER_WARNINGS="default"
|
||||
AC_ARG_ENABLE(warnings,
|
||||
AC_HELP_STRING([--enable-warnings],[Enable strict compiler warnings])
|
||||
AC_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]),
|
||||
OPT_COMPILER_WARNINGS=$enableval)
|
||||
AC_HELP_STRING([--enable-warnings],[Enable strict compiler warnings])
|
||||
AC_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]),
|
||||
OPT_COMPILER_WARNINGS=$enableval)
|
||||
case "$OPT_COMPILER_WARNINGS" in
|
||||
no)
|
||||
dnl --disable-warnings option used
|
||||
|
22
configure.ac
22
configure.ac
@ -37,6 +37,7 @@ AM_CONFIG_HEADER(lib/config.h src/config.h include/curl/curlbuild.h)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
CURL_CHECK_OPTION_DEBUG
|
||||
CURL_CHECK_OPTION_OPTIMIZE
|
||||
CURL_CHECK_OPTION_WARNINGS
|
||||
|
||||
dnl SED is mandatory for configure process and libtool.
|
||||
@ -133,7 +134,7 @@ dnl Get system canonical name
|
||||
AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_PROG_CC
|
||||
CURL_CHECK_PROG_CC
|
||||
|
||||
dnl Our curl_off_t internal and external configure settings
|
||||
CURL_CONFIGURE_CURL_OFF_T
|
||||
@ -251,9 +252,10 @@ dnl platform/compiler/architecture specific checks/flags
|
||||
dnl **********************************************************************
|
||||
|
||||
CURL_CHECK_COMPILER
|
||||
CURL_PROCESS_CC_BASIC_OPTS
|
||||
CURL_PROCESS_CC_DEBUG_OPTS
|
||||
CURL_PROCESS_CC_WARNING_OPTS
|
||||
CURL_SET_COMPILER_BASIC_OPTS
|
||||
CURL_SET_COMPILER_DEBUG_OPTS
|
||||
CURL_SET_COMPILER_OPTIMIZE_OPTS
|
||||
CURL_SET_COMPILER_WARNING_OPTS
|
||||
|
||||
case $host in
|
||||
#
|
||||
@ -2529,6 +2531,18 @@ fi
|
||||
|
||||
AC_SUBST(SUPPORT_PROTOCOLS)
|
||||
|
||||
dnl squeeze whitespace out of some variables
|
||||
|
||||
CFLAGS=`eval echo $CFLAGS`
|
||||
CPPFLAGS=`eval echo $CPPFLAGS`
|
||||
DEFS=`eval echo $DEFS`
|
||||
LDFLAGS=`eval echo $LDFLAGS`
|
||||
LIBS=`eval echo $LIBS`
|
||||
|
||||
CURL_LIBS=`eval echo $CURL_LIBS`
|
||||
LIBCURL_LIBS=`eval echo $LIBCURL_LIBS`
|
||||
TEST_SERVER_LIBS=`eval echo $TEST_SERVER_LIBS`
|
||||
|
||||
AC_CONFIG_FILES([Makefile \
|
||||
docs/Makefile \
|
||||
docs/examples/Makefile \
|
||||
|
@ -22,7 +22,7 @@
|
||||
#***************************************************************************
|
||||
|
||||
# File version for 'aclocal' use. Keep it a single number.
|
||||
# serial 1
|
||||
# serial 2
|
||||
|
||||
|
||||
dnl CURL_CHECK_COMPILER
|
||||
@ -34,11 +34,33 @@ AC_DEFUN([CURL_CHECK_COMPILER], [
|
||||
compiler_id="unknown"
|
||||
compiler_num="0"
|
||||
#
|
||||
flags_dbg_all="unknown"
|
||||
flags_dbg_yes="unknown"
|
||||
flags_dbg_off="unknown"
|
||||
flags_opt_all="unknown"
|
||||
flags_opt_yes="unknown"
|
||||
flags_opt_off="unknown"
|
||||
#
|
||||
CURL_CHECK_COMPILER_DEC
|
||||
CURL_CHECK_COMPILER_IBM
|
||||
CURL_CHECK_COMPILER_INTEL
|
||||
CURL_CHECK_COMPILER_GNU
|
||||
#
|
||||
if test "$compiler_id" = "unknown"; then
|
||||
cat <<_EOF 1>&2
|
||||
***
|
||||
*** Warning: This configure script does not have information about the
|
||||
*** compiler you are using, relative to the flags required to enable or
|
||||
*** disable generation of debug info, optimization options or warnings.
|
||||
***
|
||||
*** Whatever settings are present in CFLAGS will be used for this run.
|
||||
***
|
||||
*** If you wish to help the cURL project to better support your compiler
|
||||
*** you can report this and the required info on the libcurl development
|
||||
*** mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
|
||||
***
|
||||
_EOF
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
@ -54,6 +76,12 @@ AC_DEFUN([CURL_CHECK_COMPILER_DEC], [
|
||||
test "$curl_cv_have_def___DECC_VER" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
compiler_id="DECC"
|
||||
flags_dbg_all="-g -g0 -g1 -g2 -g3"
|
||||
flags_dbg_yes="-g2"
|
||||
flags_dbg_off="-g0"
|
||||
flags_opt_all="-O -O0 -O1 -O2 -O3 -O4"
|
||||
flags_opt_yes="-O1"
|
||||
flags_opt_off="-O0"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
@ -77,6 +105,19 @@ AC_DEFUN([CURL_CHECK_COMPILER_GNU], [
|
||||
gccvhi=`echo $gccver | cut -d . -f1`
|
||||
gccvlo=`echo $gccver | cut -d . -f2`
|
||||
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
|
||||
flags_dbg_all="-g -g0 -g1 -g2 -g3"
|
||||
flags_dbg_all="$flags_dbg_all -ggdb"
|
||||
flags_dbg_all="$flags_dbg_all -gstabs"
|
||||
flags_dbg_all="$flags_dbg_all -gstabs+"
|
||||
flags_dbg_all="$flags_dbg_all -gcoff"
|
||||
flags_dbg_all="$flags_dbg_all -gxcoff"
|
||||
flags_dbg_all="$flags_dbg_all -gdwarf-2"
|
||||
flags_dbg_all="$flags_dbg_all -gvms"
|
||||
flags_dbg_yes="-g"
|
||||
flags_dbg_off="-g0"
|
||||
flags_opt_all="-O -O0 -O1 -O2 -O3 -Os"
|
||||
flags_opt_yes="-O2"
|
||||
flags_opt_off="-O0"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
@ -93,6 +134,19 @@ AC_DEFUN([CURL_CHECK_COMPILER_IBM], [
|
||||
if test "$curl_cv_have_def___IBMC__" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
compiler_id="IBMC"
|
||||
flags_dbg_all="-g -g0 -g1 -g2 -g3"
|
||||
flags_dbg_yes="-g"
|
||||
flags_dbg_off=""
|
||||
flags_opt_all="-O -O0 -O1 -O2 -O3 -O4 -O5"
|
||||
flags_opt_all="$flags_opt_all -qnooptimize"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=0"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=1"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=2"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=3"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=4"
|
||||
flags_opt_all="$flags_opt_all -qoptimize=5"
|
||||
flags_opt_yes="-O2"
|
||||
flags_opt_off="-qnooptimize"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
@ -112,8 +166,27 @@ AC_DEFUN([CURL_CHECK_COMPILER_INTEL], [
|
||||
CURL_CHECK_DEF([__unix__], [], [silent])
|
||||
if test "$curl_cv_have_def___unix__" = "yes"; then
|
||||
compiler_id="ICC_unix"
|
||||
flags_dbg_all="-g -g0"
|
||||
flags_dbg_yes="-g -fp"
|
||||
flags_dbg_off="-g0"
|
||||
flags_opt_all="-O -O0 -O1 -O2 -O3 -Os"
|
||||
flags_opt_yes="-O2"
|
||||
flags_opt_off="-O0"
|
||||
else
|
||||
compiler_id="ICC_windows"
|
||||
flags_dbg_all="/ZI /Zi /zI /zi /ZD /Zd /zD /zd /Z7 /z7"
|
||||
flags_dbg_all="$flags_dbg_all /debug"
|
||||
flags_dbg_all="$flags_dbg_all /debug:none"
|
||||
flags_dbg_all="$flags_dbg_all /debug:minimal"
|
||||
flags_dbg_all="$flags_dbg_all /debug:partial"
|
||||
flags_dbg_all="$flags_dbg_all /debug:full"
|
||||
flags_dbg_all="$flags_dbg_all /debug:semantic_stepping"
|
||||
flags_dbg_all="$flags_dbg_all /debug:extended"
|
||||
flags_dbg_yes="/Zi /Oy-"
|
||||
flags_dbg_off=""
|
||||
flags_opt_all="/O /O0 /O1 /O2 /O3 /Os"
|
||||
flags_opt_yes="/O2"
|
||||
flags_opt_off=""
|
||||
fi
|
||||
compiler_num="$curl_cv_def___INTEL_COMPILER"
|
||||
else
|
||||
@ -122,12 +195,13 @@ AC_DEFUN([CURL_CHECK_COMPILER_INTEL], [
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_PROCESS_CC_BASIC_OPTS
|
||||
dnl CURL_SET_COMPILER_BASIC_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Sets compiler options/flags which are independant
|
||||
dnl of configure's debug or warnings options.
|
||||
dnl Sets compiler specific options/flags which do not
|
||||
dnl depend on configure's debug, optimize or warnings
|
||||
dnl options.
|
||||
|
||||
AC_DEFUN([CURL_PROCESS_CC_BASIC_OPTS], [
|
||||
AC_DEFUN([CURL_SET_COMPILER_BASIC_OPTS], [
|
||||
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
|
||||
#
|
||||
if test "$compiler_id" = "DECC"; then
|
||||
@ -180,44 +254,134 @@ AC_DEFUN([CURL_PROCESS_CC_BASIC_OPTS], [
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_PROCESS_CC_DEBUG_OPTS
|
||||
dnl CURL_SET_COMPILER_DEBUG_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Sets compiler options/flags which depend on
|
||||
dnl configure's debug given option.
|
||||
dnl Sets compiler specific options/flags which depend
|
||||
dnl on configure's debug option.
|
||||
|
||||
AC_DEFUN([CURL_PROCESS_CC_DEBUG_OPTS], [
|
||||
AC_DEFUN([CURL_SET_COMPILER_DEBUG_OPTS], [
|
||||
AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl
|
||||
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
|
||||
#
|
||||
if test "$want_debug" = "yes"; then
|
||||
CFLAGS="$CFLAGS -g"
|
||||
if test "$compiler_id" != "unknown"; then
|
||||
#
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
#
|
||||
honor_debug_option="yes"
|
||||
CURL_VAR_STRIP([CFLAGS],[${flags_dbg_all}])
|
||||
CURL_VAR_STRIP([CPPFLAGS],[${flags_dbg_all}])
|
||||
if test "$want_debug" = "yes"; then
|
||||
CFLAGS="$CFLAGS $flags_dbg_yes"
|
||||
AC_MSG_CHECKING([if compiler accepts debug enabling flags $flags_dbg_yes])
|
||||
fi
|
||||
if test "$want_debug" = "no"; then
|
||||
CFLAGS="$CFLAGS $flags_dbg_off"
|
||||
AC_MSG_CHECKING([if compiler accepts debug disabling flags $flags_dbg_off])
|
||||
fi
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
]],[[
|
||||
int i = 1;
|
||||
return i;
|
||||
]])
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
honor_debug_option="no"
|
||||
])
|
||||
#
|
||||
if test "$honor_debug_option" = "no"; then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
fi
|
||||
#
|
||||
fi
|
||||
#
|
||||
if test "$want_debug" = "no"; then
|
||||
dnl strip off optimizer flags
|
||||
NEWFLAGS=""
|
||||
for flag in $CFLAGS; do
|
||||
case "$flag" in
|
||||
-O*)
|
||||
dnl echo "cut off $flag"
|
||||
;;
|
||||
*)
|
||||
NEWFLAGS="$NEWFLAGS $flag"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
CFLAGS=$NEWFLAGS
|
||||
fi
|
||||
#
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_PROCESS_CC_WARNING_OPTS
|
||||
dnl CURL_SET_COMPILER_OPTIMIZE_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Sets compiler specific options/flags which depend
|
||||
dnl on configure's optimize option.
|
||||
|
||||
AC_DEFUN([CURL_SET_COMPILER_OPTIMIZE_OPTS], [
|
||||
AC_REQUIRE([CURL_CHECK_OPTION_OPTIMIZE])dnl
|
||||
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
|
||||
#
|
||||
if test "$compiler_id" != "unknown"; then
|
||||
#
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
#
|
||||
dnl If optimization request setting has not been explicitly specified,
|
||||
dnl it has been derived from the debug setting and initially assumed.
|
||||
dnl This initially assumed optimizer setting will finally be ignored
|
||||
dnl if CFLAGS or CPPFLAGS already hold optimizer flags. This implies
|
||||
dnl that an initially assumed optimizer setting might not be honored.
|
||||
#
|
||||
honor_optimize_option="yes"
|
||||
if test "$want_optimize" = "assume_no" ||
|
||||
test "$want_optimize" = "assume_yes"; then
|
||||
AC_MSG_CHECKING([if compiler optimizer assumed setting might be used])
|
||||
CURL_VAR_MATCH_IFELSE([CFLAGS],[${flags_opt_all}],[
|
||||
honor_optimize_option="no"
|
||||
])
|
||||
CURL_VAR_MATCH_IFELSE([CPPFLAGS],[${flags_opt_all}],[
|
||||
honor_optimize_option="no"
|
||||
])
|
||||
AC_MSG_RESULT([$honor_optimize_option])
|
||||
if test "$honor_optimize_option" = "yes"; then
|
||||
if test "$want_optimize" = "assume_yes"; then
|
||||
want_optimize="yes"
|
||||
fi
|
||||
if test "$want_optimize" = "assume_no"; then
|
||||
want_optimize="no"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
#
|
||||
if test "$honor_optimize_option" = "yes"; then
|
||||
CURL_VAR_STRIP([CFLAGS],[${flags_opt_all}])
|
||||
CURL_VAR_STRIP([CPPFLAGS],[${flags_opt_all}])
|
||||
if test "$want_optimize" = "yes"; then
|
||||
CFLAGS="$CFLAGS $flags_opt_yes"
|
||||
AC_MSG_CHECKING([if compiler accepts optimizer enabling flags $flags_opt_yes])
|
||||
fi
|
||||
if test "$want_optimize" = "no"; then
|
||||
CFLAGS="$CFLAGS $flags_opt_off"
|
||||
AC_MSG_CHECKING([if compiler accepts optimizer disabling flags $flags_opt_off])
|
||||
fi
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
]],[[
|
||||
int i = 1;
|
||||
return i;
|
||||
]])
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
honor_optimize_option="no"
|
||||
])
|
||||
fi
|
||||
#
|
||||
if test "$honor_optimize_option" = "no"; then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
fi
|
||||
#
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_SET_COMPILER_WARNING_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Sets compiler options/flags which depend on
|
||||
dnl configure's warnings given option.
|
||||
|
||||
AC_DEFUN([CURL_PROCESS_CC_WARNING_OPTS], [
|
||||
AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
|
||||
AC_REQUIRE([CURL_CHECK_OPTION_WARNINGS])dnl
|
||||
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
|
||||
#
|
||||
@ -242,7 +406,7 @@ AC_DEFUN([CURL_PROCESS_CC_WARNING_OPTS], [
|
||||
if test "$compiler_id" = "GNUC"; then
|
||||
#
|
||||
# FIXME: Some of these warnings should be changed into errors
|
||||
# and moved to CURL-PROCESS-CC-BASIC-OPTS
|
||||
# and moved to CURL-SET-COMPILER-BASIC-OPTS
|
||||
#
|
||||
if test "$want_warnings" = "yes"; then
|
||||
dnl this is a set of options we believe *ALL* gcc versions support:
|
||||
@ -301,6 +465,7 @@ dnl CURL_PROCESS_DEBUG_BUILD_OPTS
|
||||
dnl -------------------------------------------------
|
||||
dnl Settings which depend on configure's debug given
|
||||
dnl option, and further configure the build process.
|
||||
dnl Don't use this macro for compiler dependant stuff.
|
||||
|
||||
AC_DEFUN([CURL_PROCESS_DEBUG_BUILD_OPTS], [
|
||||
AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl
|
||||
@ -313,4 +478,76 @@ AC_DEFUN([CURL_PROCESS_DEBUG_BUILD_OPTS], [
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_CHECK_PROG_CC
|
||||
dnl -------------------------------------------------
|
||||
dnl Check for compiler program, preventing CFLAGS and
|
||||
dnl CPPFLAGS from being unexpectedly changed.
|
||||
|
||||
AC_DEFUN([CURL_CHECK_PROG_CC], [
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
AC_PROG_CC
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_VAR_MATCH (VARNAME, VALUE)
|
||||
dnl -------------------------------------------------
|
||||
dnl Verifies if shell variable VARNAME contains VALUE.
|
||||
dnl Contents of variable VARNAME and VALUE are handled
|
||||
dnl as whitespace separated lists of words. If at least
|
||||
dnl one word of VALUE is present in VARNAME the match
|
||||
dnl is considered positive, otherwise false.
|
||||
|
||||
AC_DEFUN([CURL_VAR_MATCH], [
|
||||
ac_var_match_word="no"
|
||||
for word1 in "${[$1]}"; do
|
||||
for word2 in "[$2]"; do
|
||||
if test "$word1" = "$word2"; then
|
||||
ac_var_match_word="yes"
|
||||
fi
|
||||
done
|
||||
done
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_VAR_MATCH_IFELSE (VARNAME, VALUE,
|
||||
dnl [ACTION-IF-MATCH], [ACTION-IF-NOT-MATCH])
|
||||
dnl -------------------------------------------------
|
||||
dnl This performs a CURL_VAR_MATCH check and executes
|
||||
dnl first branch if the match is positive, otherwise
|
||||
dnl the second branch is executed.
|
||||
|
||||
AC_DEFUN([CURL_VAR_MATCH_IFELSE], [
|
||||
CURL_VAR_MATCH([$1],[$2])
|
||||
if test "$ac_var_match_word" = "yes"; then
|
||||
ifelse($3,,:,[$3])
|
||||
ifelse($4,,,[else
|
||||
[$4]])
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_VAR_STRIP (VARNAME, VALUE)
|
||||
dnl -------------------------------------------------
|
||||
dnl Contents of variable VARNAME and VALUE are handled
|
||||
dnl as whitespace separated lists of words. Each word
|
||||
dnl from VALUE is removed from VARNAME when present.
|
||||
|
||||
AC_DEFUN([CURL_VAR_STRIP], [
|
||||
ac_var_stripped=""
|
||||
for word1 in "${[$1]}"; do
|
||||
ac_var_strip_word="no"
|
||||
for word2 in "[$2]"; do
|
||||
if test "$word1" = "$word2"; then
|
||||
ac_var_strip_word="yes"
|
||||
fi
|
||||
done
|
||||
if test "$ac_var_strip_word" = "no"; then
|
||||
ac_var_stripped="$ac_var_stripped $word1"
|
||||
fi
|
||||
done
|
||||
dnl squeeze whitespace out of result
|
||||
[$1]=`eval echo $[$1]`
|
||||
])
|
||||
|
@ -22,7 +22,7 @@
|
||||
#***************************************************************************
|
||||
|
||||
# File version for 'aclocal' use. Keep it a single number.
|
||||
# serial 2
|
||||
# serial 3
|
||||
|
||||
|
||||
dnl CURL_CHECK_OPTION_DEBUG
|
||||
@ -33,13 +33,13 @@ dnl variable want_debug value as appropriate.
|
||||
|
||||
AC_DEFUN([CURL_CHECK_OPTION_DEBUG], [
|
||||
AC_BEFORE([$0],[CURL_CHECK_OPTION_WARNINGS])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_CC])dnl
|
||||
AC_BEFORE([$0],[CURL_CHECK_PROG_CC])dnl
|
||||
AC_MSG_CHECKING([whether to enable debug build options])
|
||||
OPT_DEBUG_BUILD="default"
|
||||
AC_ARG_ENABLE(debug,
|
||||
AC_HELP_STRING([--enable-debug],[Enable debug build options])
|
||||
AC_HELP_STRING([--disable-debug],[Disable debug build options]),
|
||||
OPT_DEBUG_BUILD=$enableval)
|
||||
AC_HELP_STRING([--enable-debug],[Enable debug build options])
|
||||
AC_HELP_STRING([--disable-debug],[Disable debug build options]),
|
||||
OPT_DEBUG_BUILD=$enableval)
|
||||
case "$OPT_DEBUG_BUILD" in
|
||||
no)
|
||||
dnl --disable-debug option used
|
||||
@ -58,21 +58,77 @@ AC_DEFUN([CURL_CHECK_OPTION_DEBUG], [
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_CHECK_OPTION_OPTIMIZE
|
||||
dnl -------------------------------------------------
|
||||
dnl Verify if configure has been invoked with option
|
||||
dnl --enable-optimize or --disable-optimize, and set
|
||||
dnl shell variable want_optimize value as appropriate.
|
||||
|
||||
AC_DEFUN([CURL_CHECK_OPTION_OPTIMIZE], [
|
||||
AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl
|
||||
AC_BEFORE([$0],[CURL_CHECK_PROG_CC])dnl
|
||||
AC_MSG_CHECKING([whether to enable compiler optimizer])
|
||||
OPT_COMPILER_OPTIMIZE="default"
|
||||
AC_ARG_ENABLE(optimize,
|
||||
AC_HELP_STRING([--enable-optimize],[Enable compiler optimizations])
|
||||
AC_HELP_STRING([--disable-optimize],[Disable compiler optimizations]),
|
||||
OPT_COMPILER_OPTIMIZE=$enableval)
|
||||
case "$OPT_COMPILER_OPTIMIZE" in
|
||||
no)
|
||||
dnl --disable-optimize option used. We will handle this as
|
||||
dnl a request to disable compiler optimizations if possible.
|
||||
dnl If the compiler is known CFLAGS and CPPFLAGS will be
|
||||
dnl overridden, otherwise this can not be honored.
|
||||
want_optimize="no"
|
||||
AC_MSG_RESULT([no])
|
||||
;;
|
||||
default)
|
||||
dnl configure's optimize option not specified. Initially we will
|
||||
dnl handle this as a a request contrary to configure's setting
|
||||
dnl for --enable-debug. IOW, initially, for debug-enabled builds
|
||||
dnl this will be handled as a request to disable optimizations if
|
||||
dnl possible, and for debug-disabled builds this will be handled
|
||||
dnl initially as a request to enable optimizations if possible.
|
||||
dnl Finally, if the compiler is known and CFLAGS and CPPFLAGS do
|
||||
dnl not have any optimizer flag the request will be honored, in
|
||||
dnl any other case the request can not be honored.
|
||||
dnl IOW, existing optimizer flags defined in CFLAGS or CPPFLAGS
|
||||
dnl will always take precedence over any initial assumption.
|
||||
if test "$want_debug" = "yes"; then
|
||||
want_optimize="assume_no"
|
||||
AC_MSG_RESULT([not specified (assuming no)])
|
||||
else
|
||||
want_optimize="assume_yes"
|
||||
AC_MSG_RESULT([not specified (assuming yes)])
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
dnl --enable-optimize option used. We will handle this as
|
||||
dnl a request to enable compiler optimizations if possible.
|
||||
dnl If the compiler is known CFLAGS and CPPFLAGS will be
|
||||
dnl overridden, otherwise this can not be honored.
|
||||
want_optimize="yes"
|
||||
AC_MSG_RESULT([yes])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_CHECK_OPTION_WARNINGS
|
||||
dnl -------------------------------------------------
|
||||
dnl Verify if configure has been invoked with option
|
||||
dnl --enable-warnings or --disable-warnings, and set
|
||||
DNL shell variable want_warnings as appropriate.
|
||||
dnl shell variable want_warnings as appropriate.
|
||||
|
||||
AC_DEFUN([CURL_CHECK_OPTION_WARNINGS], [
|
||||
AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_CC])dnl
|
||||
AC_BEFORE([$0],[CURL_CHECK_PROG_CC])dnl
|
||||
AC_MSG_CHECKING([whether to enable strict compiler warnings])
|
||||
OPT_COMPILER_WARNINGS="default"
|
||||
AC_ARG_ENABLE(warnings,
|
||||
AC_HELP_STRING([--enable-warnings],[Enable strict compiler warnings])
|
||||
AC_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]),
|
||||
OPT_COMPILER_WARNINGS=$enableval)
|
||||
AC_HELP_STRING([--enable-warnings],[Enable strict compiler warnings])
|
||||
AC_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]),
|
||||
OPT_COMPILER_WARNINGS=$enableval)
|
||||
case "$OPT_COMPILER_WARNINGS" in
|
||||
no)
|
||||
dnl --disable-warnings option used
|
||||
|
Loading…
Reference in New Issue
Block a user