CCMAKE_CC=gcc
CCMAKE_CXX=g++
+if [ -v CC_SUFFIX ] ; then
+ CCMAKE_CC=${CCMAKE_CC}-${CC_SUFFIX}
+ CCMAKE_CXX=${CCMAKE_CXX}-${CC_SUFFIX}
+ if [ ${CC_SUFFIX} -le 5 ] ; then
+ MAKEFLAGS_BASE="-std=gnu++11 ${MAKEFLAGS_BASE}"
+ fi
+fi
+if [ -v CC_PREFIX ] ; then
+ CCMAKE_CC=${CC_PREFIX}-${CCMAKE_CC}
+ CCMAKE_CXX=${CC_PREFIX}-${CCMAKE_CXX}
+fi
+if [ -v CC_PATH ] ; then
+ CCMAKE_CC=${CC_PATH}/${CCMAKE_CC}
+ CCMAKE_CXX=${CC_PATH}/${CCMAKE_CXX}
+fi
+
case ${USE_RADICAL_OPTIMIZE} in
"Yes" | "yes" | "YES" )
- MAKEFLAGS_BASE3= "
+ MAKEFLAGS_BASE3=" \
-O3 \
- -fvect-cost-model=dynamic -ftree-vectorize \
- -ftree-loop-distribute-patterns \
- -ftree-loop-optimize -ftree-loop-if-convert-stores \
- -fbranch-probabilities -fbranch-target-load-optimize \
- -fselective-scheduling -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops \
- -funroll-loops \
- -fgraphite-identity \
- -floop-nest-optimize \
-msse -msse2 \
+ -Wall \
${MAKEFLAGS_BASE} \
"
-
+ ;;
"No" | "no" | "NO" | * )
- MAKEFLAGS_BASE3="-g -ggdb \
+ MAKEFLAGS_BASE3=" \
-O2 \
+ -mtune=generic \
+ -ftree-vectorize \
-funroll-loops \
- -floop-nest-optimize \
-msse -msse2 \
+ -Wall \
${MAKEFLAGS_BASE} \
"
;;
esac
+case ${USE_SANITIZER} in
+ "Yes" | "yes" | "YES" )
+ MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
+ -fsanitize=address \
+ -fsanitize=undefined \
+ -fsanitize=vptr \
+ "
+ ;;
+ "No" | "no" | "NO" | * )
+ ;;
+esac
+
+case ${USE_STACK_PROTECTION} in
+ "Yes" | "yes" | "YES" )
+ MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
+ -fstack-protector \
+ "
+ ;;
+ "All" | "all" | "ALL" )
+ MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
+ -fstack-protector-all \
+ "
+ ;;
+ "Strong" | "strong" | "STRONG" )
+ MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
+ -fstack-protector-strong \
+ "
+ ;;
+ "No" | "no" | "NO" )
+ MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
+ -fno-stack-protector \
+ "
+ ;;
+ "Default" | "default" | "DEFAULT" | * )
+ ;;
+esac
+
+# -fstack-clash-protection \
+# -ftree-vectorize \
+# -ftree-loop-vectorize \
+# -ftree-loop-distribute-patterns \
+# -ftree-loop-optimize \
+# -ftree-loop-if-convert-stores \
+# -ftree-loop-distribution \
+# -ftree-loop-ivcanon \
+# -fvect-cost-model=unlimited \
+# -fsimd-cost-model=unlimited \
+# -fivopts \
+# -fbranch-probabilities \
+# -fbranch-target-load-optimize \
+# -fbranch-target-load-optimize2 \
+# -fbtr-bb-exclusive \
+# -fselective-scheduling \
+# -fsel-sched-pipelining \
+# -fsel-sched-pipelining-outer-loops \
+# -funroll-loops \
+# -fvariable-expansion-in-unroller \
+# -fprefetch-loop-arrays \
+# -fgraphite-identity \
+# -floop-nest-optimize \
+
+case ${USE_WHOLE_PROGRAM_OPTIMIZE} in
+ "Yes" | "yes" | "YES" )
+ LTO_FLAGS="-fwhole-program"
+ ;;
+ * )
+ LTO_FLAGS=""
+ ;;
+esac
+
+case ${COMPRESS_SYMBOLS} in
+ "Yes" | "yes" | "YES" )
+ COMPRESS_CFLAGS="-gz=zlib"
+ ;;
+ "No" | "no" | "NO" | * )
+ COMPRESS_CFLAGS=""
+ ;;
+esac
+
case ${CSP_DEBUG} in
"Yes" | "yes" | "YES" )
- MAKEFLAGS_BASE2="-g -ggdb ${MAKEFLAGS_BASE3} -DNDEBUG"
+ MAKEFLAGS_DLL_LINK_BASE="-ggdb ${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3} -DNDEBUG"
+ MAKEFLAGS_BASE2="-ggdb ${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3} -DNDEBUG"
;;
"No" | "no" | "NO" | * )
- MAKEFLAGS_BASE2="-g -ggdb ${MAKEFLAGS_BASE3}"
- ;;
+ MAKEFLAGS_DLL_LINK_BASE="${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3}"
+ MAKEFLAGS_BASE2="${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3}"
+ ;;
esac
case ${USE_LTO} in
"Yes" | "yes" | "YES" )
- MAKEFLAGS_LINK_BASE2="-flto=6 -fwhole-program ${MAKEFLAGS_BASE2}"
- MAKEFLAGS_BASE2="-flto -ffat-lto-objects ${MAKEFLAGS_BASE2}"
+ MAKEFLAGS_LINK_BASE2="-flto=${LTO_THREADS} -flto-compression-level=9 ${LTO_FLAGS} ${MAKEFLAGS_BASE2}"
+ MAKEFLAGS_BASE2="-flto -flto-compression-level=9 -ffat-lto-objects ${MAKEFLAGS_BASE2}"
;;
"No" | "no" | "NO" | * )
MAKEFLAGS_LINK_BASE2="${MAKEFLAGS_BASE2}"
;;
esac
+case ${USE_OPENMP} in
+ "Yes" | "yes" | "YES" )
+ CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=YES"
+ ;;
+ "No" | "no" | "NO" | * )
+ CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=NO"
+ ;;
+esac
+
CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} \
-DCMAKE_AR:STRING=gcc-ar \
-DCMAKE_NM:STRING=gcc-nm \