OSDN Git Service

[BUILD] Separate threads definition for LTO.
[csp-qt/common_source_project-fm7.git] / source / build-cmake / params / buildvars_linux_params_gcc.dat
1 ################
2 #
3 # This is build-parameters fo GCC/Linux.
4 # Neither for GCC/MinGW and LLVM.
5 #
6 CCMAKE_CC=gcc
7 CCMAKE_CXX=g++
8
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}"
14    fi
15 fi
16 if [ -v CC_PREFIX ] ; then
17    CCMAKE_CC=${CC_PREFIX}-${CCMAKE_CC}
18    CCMAKE_CXX=${CC_PREFIX}-${CCMAKE_CXX}
19 fi
20 if [ -v CC_PATH ] ; then
21    CCMAKE_CC=${CC_PATH}/${CCMAKE_CC}
22    CCMAKE_CXX=${CC_PATH}/${CCMAKE_CXX}
23 fi
24
25 case ${USE_RADICAL_OPTIMIZE} in
26    "Yes" | "yes" | "YES" )
27       MAKEFLAGS_BASE3=" \
28                -O3 \
29                -msse -msse2 \
30                -Wall \
31                ${MAKEFLAGS_BASE} \
32                "
33                ;;
34    "No" | "no" | "NO" | * )
35       MAKEFLAGS_BASE3=" \
36                -O2 \
37                -mtune=generic \
38                -ftree-vectorize \
39                -funroll-loops \
40                -msse -msse2 \
41                -Wall \
42                ${MAKEFLAGS_BASE} \
43                "
44                ;;
45 esac
46
47 case ${USE_SANITIZER} in
48    "Yes" | "yes" | "YES" )
49       MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
50                -fsanitize=address \
51                -fsanitize=undefined \
52                -fsanitize=vptr \
53                    "
54                    ;;
55    "No" | "no" | "NO" | * )
56                    ;;
57 esac    
58
59 case ${USE_STACK_PROTECTION} in
60    "Yes" | "yes" | "YES" )
61       MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
62                -fstack-protector \
63                    "
64                    ;;
65    "All" | "all" | "ALL" )
66       MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
67                -fstack-protector-all \
68                    "
69                    ;;
70    "Strong" | "strong" | "STRONG" )
71       MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
72                -fstack-protector-strong \
73                    "
74                    ;;
75    "No" | "no" | "NO" )
76       MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
77                -fno-stack-protector \
78                    "
79                    ;;
80    "Default" | "default" | "DEFAULT" | * )
81            ;;
82 esac    
83
84 #              -fstack-clash-protection \
85 #              -ftree-vectorize \
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 \
94 #              -fivopts \
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 \
102 #              -funroll-loops \
103 #              -fvariable-expansion-in-unroller \
104 #              -fprefetch-loop-arrays \
105 #              -fgraphite-identity \
106 #              -floop-nest-optimize \
107
108 case ${USE_WHOLE_PROGRAM_OPTIMIZE} in
109    "Yes" | "yes" | "YES" )
110       LTO_FLAGS="-fwhole-program"
111       ;;
112    * )
113       LTO_FLAGS=""
114       ;;
115 esac
116
117 case ${COMPRESS_SYMBOLS} in
118    "Yes" | "yes" | "YES" )
119    COMPRESS_CFLAGS="-gz=zlib"
120    ;;
121    "No" | "no" | "NO" | * )
122    COMPRESS_CFLAGS=""
123    ;;
124 esac
125
126 case ${CSP_DEBUG} in
127    "Yes" | "yes" | "YES" )
128       MAKEFLAGS_DLL_LINK_BASE="-ggdb ${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3} -DNDEBUG"
129       MAKEFLAGS_BASE2="-ggdb  ${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3} -DNDEBUG"
130       ;;
131    "No" | "no" | "NO" | * )
132       MAKEFLAGS_DLL_LINK_BASE="${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3}"
133       MAKEFLAGS_BASE2="${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3}"
134       ;;
135 esac
136
137 case ${USE_LTO} in
138    "Yes" | "yes" | "YES" )
139        MAKEFLAGS_LINK_BASE2="-flto=${LTO_THREADS} -flto-compression-level=9 ${LTO_FLAGS} ${MAKEFLAGS_BASE2}"
140        MAKEFLAGS_BASE2="-flto -flto-compression-level=9 -ffat-lto-objects ${MAKEFLAGS_BASE2}"
141        ;;
142    "No" | "no" | "NO" | * )
143        MAKEFLAGS_LINK_BASE2="${MAKEFLAGS_BASE2}"
144        MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2}"
145        ;;
146 esac
147
148 case ${USE_OPENMP} in
149    "Yes" | "yes" | "YES" )
150      CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=YES"
151    ;;
152    "No" | "no" | "NO" | * )
153      CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=NO"
154    ;;
155 esac
156
157 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} \
158                   -DCMAKE_AR:STRING=gcc-ar \
159                   -DCMAKE_NM:STRING=gcc-nm \
160                   -DCMAKE_RANLIB:STRING=gcc-ranlib \
161                   "