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