OSDN Git Service

[Build][Linux] buildvars.dat: Add "USE_SHRINK_DEBUG_SYMBOL" flag to save disk space.
[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 #ToDo: Its ugly hack.
127 if [ -z ${EXTRA_DLL_DIR} ] ; then
128    EXTRA_DLL_DIR="/usr/local/lib/x86_64-linux-gnu"
129 fi
130     
131
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}"
137        ;;
138 esac
139
140 case ${CSP_DEBUG} in
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"
144       ;;
145    "No" | "no" | "NO" | * )
146       MAKEFLAGS_DLL_LINK_BASE="${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3}"
147       MAKEFLAGS_BASE2="${COMPRESS_CFLAGS} ${MAKEFLAGS_BASE3}"
148       ;;
149 esac
150
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"
154 else
155    LTO_FLAGS=""
156    LTO_FLAGS2=""
157 fi
158
159 case ${USE_LTO} in
160    "Yes" | "yes" | "YES" )
161        MAKEFLAGS_LINK_BASE2="${EXTRA_LINKER_FLAGS} ${LTO_FLAGS} ${MAKEFLAGS_BASE2}"
162        MAKEFLAGS_BASE2="${LTO_FLAGS2} ${MAKEFLAGS_BASE2}"
163        ;;
164    "No" | "no" | "NO" | * )
165        MAKEFLAGS_LINK_BASE2="${MAKEFLAGS_BASE2}"
166        MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2}"
167        ;;
168 esac
169
170 case ${USE_OPENMP} in
171    "Yes" | "yes" | "YES" )
172      CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=YES"
173    ;;
174    "No" | "no" | "NO" | * )
175      CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=NO"
176    ;;
177 esac
178
179 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} \
180                   -DCMAKE_AR:STRING=gcc-ar \
181                   -DCMAKE_NM:STRING=gcc-nm \
182                   -DCMAKE_RANLIB:STRING=gcc-ranlib \
183                   "