1dnl Copyright (C) 2009 Sun Microsystems 2dnl This file is free software; Sun Microsystems 3dnl gives unlimited permission to copy and/or distribute it, 4dnl with or without modifications, as long as this notice is preserved. 5 6AC_DEFUN([PANDORA_OPTIMIZE],[ 7 dnl Build optimized or debug version ? 8 dnl First check for gcc and g++ 9 AS_IF([test "$GCC" = "yes" -a "$INTELCC" = "no"],[ 10 11 dnl The following is required for portable results of floating point 12 dnl calculations on PowerPC. The same must also be done for IA-64, but 13 dnl this options is missing in the IA-64 gcc backend. 14 case "$target_cpu" in 15 *ppc* | *powerpc*) 16 AM_CFLAGS="-mno-fused-madd ${AM_CFLAGS}" 17 AM_CXXFLAGS="-mno-fused-madd ${AM_CXXFLAGS}" 18 ;; 19 esac 20 21 dnl Once we can use a modern autoconf, we can replace the std=gnu99 here 22 dnl with using AC_CC_STD_C99 above 23 CC="${CC} -std=gnu99" 24 25 AM_CPPFLAGS="-ggdb3 ${AM_CPPFLAGS}" 26 27 DEBUG_CFLAGS="-O0" 28 DEBUG_CXXFLAGS="-O0" 29 30 OPTIMIZE_CFLAGS="-O3" 31 OPTIMIZE_CXXFLAGS="-O3" 32 ]) 33 AS_IF([test "$INTELCC" = "yes"],[ 34 dnl Once we can use a modern autoconf, we can replace the std=gnu99 here 35 dnl with using AC_CC_STD_C99 above 36 CC="${CC} -std=c99" 37 38 AM_CPPFLAGS="-g ${AM_CPPFLAGS}" 39 40 DEBUG_CFLAGS="-O0" 41 DEBUG_CXXFLAGS="-O0" 42 43 OPTIMIZE_CFLAGS="-xHOST -O3 -no-prec-div -static" 44 OPTIMIZE_CXXFLAGS="${OPTIMIZE_CFLAGS}" 45 46 ]) 47 AS_IF([test "$SUNCC" = "yes"],[ 48 dnl Once we can use a modern autoconf, we can replace the -xc99=all here 49 dnl with using AC_CC_STD_C99 above 50 CC="${CC} -xc99=all" 51 CXX="${CXX} -xlang=c99" 52 53 AM_CFLAGS="-g -mt -xstrconst -Xa ${AM_CFLAGS}" 54 AM_CXXFLAGS="-mt -compat=5 -library=stlport4 -library=Crun -template=no%extdef ${AM_CXXFLAGS}" 55 56 DEBUG_CXXFLAGS="-g" 57 58 dnl TODO: Make a test for -xO4 usability here 59 OPTIMIZE_FLAGS="-xO3 -xlibmil -xdepend -xbuiltin" 60 OPTIMIZE_CFLAGS="${OPTIMIZE_FLAGS}" 61 OPTIMIZE_CXXFLAGS="-g0 ${OPTIMIZE_FLAGS}" 62 63 ]) 64 65 AC_ARG_WITH([debug], 66 [AS_HELP_STRING([--with-debug], 67 [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])], 68 [with_debug=$withval], 69 [with_debug=no]) 70 AS_IF([test "$with_debug" = "yes"],[ 71 # Debugging. No optimization. 72 AM_CFLAGS="${AM_CFLAGS} ${DEBUG_CFLAGS} -DDEBUG" 73 AM_CXXFLAGS="${AM_CXXFLAGS} ${DEBUG_CXXFLAGS} -DDEBUG" 74 ],[ 75 # Optimized version. No debug 76 AM_CFLAGS="${AM_CFLAGS} ${OPTIMIZE_CFLAGS}" 77 AM_CXXFLAGS="${AM_CXXFLAGS} ${OPTIMIZE_CXXFLAGS}" 78 ]) 79]) 80