3 # This is build-parameters fo GCC/Linux.
4 # Neither for GCC/MinGW and LLVM.
9 if [ -v CC_SUFFIX ] ; then
10 CCMAKE_CC=${CCMAKE_CC}-${CC_SUFFIX}
11 CCMAKE_CXX=${CCMAKE_CXX}-${CC_SUFFIX}
12 if [ ${CC_SUFFIX} -le 5 ] ; then
13 MAKEFLAGS_BASE="-std=gnu++11 ${MAKEFLAGS_BASE}"
16 if [ -v CC_PREFIX ] ; then
17 CCMAKE_CC=${CC_PREFIX}-${CCMAKE_CC}
18 CCMAKE_CXX=${CC_PREFIX}-${CCMAKE_CXX}
20 if [ -v CC_PATH ] ; then
21 CCMAKE_CC=${CC_PATH}/${CCMAKE_CC}
22 CCMAKE_CXX=${CC_PATH}/${CCMAKE_CXX}
25 case ${USE_RADICAL_OPTIMIZE} in
26 "Yes" | "yes" | "YES" )
34 "No" | "no" | "NO" | * )
47 case ${USE_SANITIZER} in
48 "Yes" | "yes" | "YES" )
49 MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
51 -fsanitize=undefined \
55 "No" | "no" | "NO" | * )
59 case ${USE_STACK_PROTECTION} in
60 "Yes" | "yes" | "YES" )
61 MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
65 "All" | "all" | "ALL" )
66 MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
67 -fstack-protector-all \
70 "Strong" | "strong" | "STRONG" )
71 MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
72 -fstack-protector-strong \
76 MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
77 -fno-stack-protector \
80 "Default" | "default" | "DEFAULT" | * )
84 # -fstack-clash-protection \
86 # -ftree-loop-vectorize \
87 # -ftree-loop-distribute-patterns \
88 # -ftree-loop-optimize \
89 # -ftree-loop-if-convert-stores \
90 # -ftree-loop-distribution \
91 # -ftree-loop-ivcanon \
92 # -fvect-cost-model=unlimited \
93 # -fsimd-cost-model=unlimited \
95 # -fbranch-probabilities \
96 # -fbranch-target-load-optimize \
97 # -fbranch-target-load-optimize2 \
98 # -fbtr-bb-exclusive \
99 # -fselective-scheduling \
100 # -fsel-sched-pipelining \
101 # -fsel-sched-pipelining-outer-loops \
103 # -fvariable-expansion-in-unroller \
104 # -fprefetch-loop-arrays \
105 # -fgraphite-identity \
106 # -floop-nest-optimize \
108 case ${USE_WHOLE_PROGRAM_OPTIMIZE} in
109 "Yes" | "yes" | "YES" )
110 LTO_FLAGS="-fwhole-program"
117 case ${COMPRESS_SYMBOLS} in
118 "Yes" | "yes" | "YES" )
119 COMPRESS_CFLAGS="-gz=zlib"
121 "No" | "no" | "NO" | * )
126 #ToDo: Its ugly hack.
127 if [ -z ${EXTRA_DLL_DIR} ] ; then
128 EXTRA_DLL_DIR="/usr/local/lib/x86_64-linux-gnu"
132 case ${USE_SHRINK_DEBUG_SYMBOL} in
133 "Yes" | "yes" | "YES" )
134 EXTRA_LINKER_FLAGS="-L${EXTRA_DLL_DIR} -fuse-ld=gold -Wl,--gdb-index -Wl,--compress-debug-sections,zlib ${EXTRA_LINKER_FLAGS}"
135 EXTRA_LINKER_DLL_FLAGS="-L${EXTRA_DLL_DIR} -fuse-ld=gold -Wl,--gdb-index -Wl,--compress-debug-sections,zlib ${EXTRA_LINKER_DLL_FLAGS}"
136 MAKEFLAGS_BASE3="-gsplit-dwarf ${MAKEFLAGS_BASE3}"
141 "Yes" | "yes" | "YES" )
142 MAKEFLAGS_DLL_LINK_BASE="${EXTRA_LINKER_DLL_FLAGS} ${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3} -DNDEBUG"
143 MAKEFLAGS_BASE2="-ggdb ${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3} -DNDEBUG"
145 "No" | "no" | "NO" | * )
146 MAKEFLAGS_DLL_LINK_BASE="${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3}"
147 MAKEFLAGS_BASE2="${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3}"
151 if [ -n "${LTO_THREADS}" ] ; then
152 LTO_FLAGS="-flto=${LTO_THREADS} -flto-compression-level=9 ${LTO_FLAGS}"
153 LTO_FLAGS2="-flto -ffat-lto-objects"
160 "Yes" | "yes" | "YES" )
161 MAKEFLAGS_LINK_BASE2="${EXTRA_LINKER_FLAGS} ${LTO_FLAGS} ${MAKEFLAGS_BASE2}"
162 MAKEFLAGS_BASE2="${LTO_FLAGS2} ${MAKEFLAGS_BASE2}"
164 "No" | "no" | "NO" | * )
165 MAKEFLAGS_LINK_BASE2="${MAKEFLAGS_BASE2}"
166 MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2}"
170 case ${USE_OPENMP} in
171 "Yes" | "yes" | "YES" )
172 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=YES"
174 "No" | "no" | "NO" | * )
175 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=NO"
179 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} \
180 -DCMAKE_AR:STRING=gcc-ar \
181 -DCMAKE_NM:STRING=gcc-nm \
182 -DCMAKE_RANLIB:STRING=gcc-ranlib \