7 LIB_INSTALL="/usr/local/lib/x86_64-linux-gnu/"
8 MAKE_STATUS_FILE="./000_make_status_config_build.log"
11 BUILD_TYPE="Relwithdebinfo"
20 echo "Make status." > ${MAKE_STATUS_FILE}
21 echo "Started at `date --rfc-2822`:" >> ${MAKE_STATUS_FILE}
23 if [ -e ./buildvars.dat ] ; then
26 echo "WARN: Config file does not exist." >> ${MAKE_STATUS_FILE}
27 echo "WARN: Read configs from templete." >> ${MAKE_STATUS_FILE}
28 . ./buildvars.dat.tmpl
31 #Check if LD_LIBRARY_PATH includes in LIB_INSTALL
35 nr_list=`/bin/ls /etc/ld.so.conf.d/*.conf`
36 __DIR=`echo ${LIB_INSTALL} | sed 's/\/$//'`
38 for __FILE in ${nr_list} ; do \
39 if [ -z `echo ${__FILE} | grep "zz_"` ] ; then
40 _t=`grep -e ${__DIR} ${__FILE}`
41 if grep -e ${__DIR} ${__FILE} > /dev/null ; then
47 if [ ${__res} -eq 0 ] ; then
48 if [ -z `printenv LD_LIBRARY_PATH | grep ${LIB_INSTALL}` ] ; then
49 echo 'WARN: NO ${LIB_INSTALL} exists $LD_LIBRARY_PATH' >> ${MAKE_STATUS_FILE}
56 if [ ${__res} -eq 0 ] ; then
57 echo "FALLBACK ${LIB_INSTALL} to /usr/local/lib ." >> ${MAKE_STATUS_FILE}
58 LIB_INSTALL="/usr/local/lib"
61 case ${BUILD_TOOLCHAIN} in
62 "LLVM" | "llvm" | "CLANG" | "clang" )
63 #TOOLCHAIN_SCRIPT="../../cmake/toolchain_win32_cross_linux_llvm.cmake"
64 . ./params/buildvars_linux_params_llvm.dat
67 "GCC" | "gcc" | "GNU" )
68 #TOOLCHAIN_SCRIPT="../../cmake/toolchain_mingw_cross_linux.cmake"
69 . ./params/buildvars_linux_params_gcc.dat
73 #TOOLCHAIN_SCRIPT="../../cmake/toolchain_mingw_cross_linux.cmake"
74 . ./params/buildvars_linux_params_gcc.dat
79 case ${STRIP_SYMBOLS} in
80 "Yes" | "yes" | "YES" )
81 MAKEFLAGS_BASE2="-s ${MAKEFLAGS_BASE2}"
82 MAKEFLAGS_LINK_BASE="-s ${MAKEFLAGS_LINK_BASE2}"
83 MAKEFLAGS_DLL_LINK_BASE="-s ${MAKEFLAGS_DLL_LINK_BASE}"
84 MAKEFLAGS_DLL_BASE="-s ${MAKEFLAGS_DLL_BASE}"
86 "No" | "no" | "NO" | * )
87 MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2}"
88 MAKEFLAGS_LINK_BASE="${MAKEFLAGS_LINK_BASE2}"
89 MAKEFLAGS_DLL_LINK_BASE="${MAKEFLAGS_DLL_LINK_BASE}"
90 MAKEFLAGS_DLL_BASE="${MAKEFLAGS_DLL_BASE}"
96 MAKEFLAGS_CXX="${MAKEFLAGS_BASE2}"
97 MAKEFLAGS_CC="${MAKEFLAGS_BASE2}"
98 MAKEFLAGS_LIB_CXX="${MAKEFLAGS_DLL_BASE}"
99 MAKEFLAGS_LIB_CC="${MAKEFLAGS_DLL_BASE}"
104 if [ -n "${FFMPEG_DIR}" ]; then \
105 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DLIBAV_ROOT_DIR=${FFMPEG_DIR}"
107 if [ -n "${QT5_DIR}" ]; then \
108 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DQT5_ROOT_PATH=${QT5_DIR}"
111 #################################
114 function build_dll() {
118 echo ${CMAKE_FLAGS1} ${CMAKE_FLAGS2}
119 ${CMAKE} -DCMAKE_C_COMPILER:STRING=${CCMAKE_CC} \
120 -DCMAKE_CXX_COMPILER:STRING=${CCMAKE_CXX} \
121 -DCOTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES=1 \
122 -DCOTIRE_ADD_CLEAN=0 \
123 "-DLIBCSP_INSTALL_DIR:STRING=${LIB_INSTALL}" \
125 "${CMAKE_FLAGS2}=${MAKEFLAGS_LIB_CXX}" \
126 "${CMAKE_FLAGS3}=${MAKEFLAGS_LIB_CC}" \
128 ${CMAKE_APPENDFLAG} \
131 ${CMAKE} -DCMAKE_C_COMPILER:STRING=${CCMAKE_CC} \
132 -DCMAKE_CXX_COMPILER:STRING=${CCMAKE_CXX} \
133 -DCOTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES=1 \
134 -DCOTIRE_ADD_CLEAN=0 \
135 "-DLIBCSP_INSTALL_DIR:STRING=${LIB_INSTALL}" \
137 "${CMAKE_FLAGS2}=${MAKEFLAGS_LIB_CXX}" \
138 "${CMAKE_FLAGS3}=${MAKEFLAGS_LIB_CC}" \
140 ${CMAKE_APPENDFLAG} \
144 ${AFFINITY_MAKE} ${MAKEFLAGS_GENERAL} 2>&1 | tee -a ./make.log
145 _STATUS=${PIPESTATUS[0]}
146 echo -e "$1 at `date --rfc-2822`:" "${_STATUS}" >> ../../${MAKE_STATUS_FILE}
148 0 ) sudo make install 2>&1 | tee -a ./make.log ;;
150 echo -e "Abort at `date --rfc-2822`." >> ../../${MAKE_STATUS_FILE}
159 case ${BUILD_TYPE} in
160 "Debug" | "DEBUG" | "debug" )
161 CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=debug"
162 CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_DEBUG:STRING"
163 CMAKE_FLAGS3="-DCMAKE_C_FLAGS_DEBUG:STRING"
165 "Release" | "RELEASE" | "release" )
166 CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=Release"
167 CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_RELEASE:STRING"
168 CMAKE_FLAGS3="-DCMAKE_C_FLAGS_RELEASE:STRING"
170 "Relwithdebinfo" | "RELWITHDEBINFO" | "relwithdebinfo" )
171 CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=Relwithdebinfo"
172 CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING"
173 CMAKE_FLAGS3="-DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING"
176 echo "Specify BUILD_TYPE in buildvars.dat to Debug, Release, Relwithdebinfo."
182 case ${USE_COMMON_DEVICE_LIB} in
183 "Yes" | "yes" | "YES" )
184 CMAKE_FLAGS4="-DUSE_DEVICES_SHARED_LIB=ON"
185 build_dll libCSPcommon_vm
192 case ${USE_COMMON_DEVICE_LIB} in
193 "Yes" | "yes" | "YES" )
194 build_dll libCSPfmgen
198 build_dll libCSPemu_utils
200 "No" | "no" | "NO" | * )
207 typeset -i SUCCESS_COUNT
210 typeset -i FAIL_COUNT
213 for SRCDATA in $@ ; do\
215 mkdir -p ${SRCDATA}/build
218 echo ${CMAKE_FLAGS1} ${CMAKE_FLAGS2}
219 ${CMAKE} -D CMAKE_C_COMPILER:STRING=${CCMAKE_CC} \
220 -D CMAKE_CXX_COMPILER:STRING=${CCMAKE_CXX} \
221 -DCOTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES=1 \
222 -DCOTIRE_ADD_CLEAN=0 \
224 "${CMAKE_FLAGS2}=${MAKEFLAGS_CXX}" \
225 "${CMAKE_FLAGS3}=${MAKEFLAGS_CC}" \
227 ${CMAKE_APPENDFLAG} \
228 "-DCMAKE_EXE_LINKER_FLAGS:STRING=${MAKEFLAGS_LINK_BASE}" \
230 ${CMAKE} -D CMAKE_C_COMPILER:STRING=${CCMAKE_CC} \
231 -D CMAKE_CXX_COMPILER:STRING=${CCMAKE_CXX} \
233 "${CMAKE_FLAGS2}=${MAKEFLAGS_CXX}" \
234 "${CMAKE_FLAGS3}=${MAKEFLAGS_CC}" \
236 ${CMAKE_APPENDFLAG} \
237 "-DCMAKE_EXE_LINKER_FLAGS:STRING=${MAKEFLAGS_LINK_BASE}" \
243 ${AFFINITY_MAKE} ${MAKEFLAGS_GENERAL} 2>&1 | tee -a ./make.log
244 _STATUS=${PIPESTATUS[0]}
245 echo -e "${SRCDATA} at `date --rfc-2822`:" "${_STATUS}" >> ../../${MAKE_STATUS_FILE}
249 SUCCESSS_COUNT=$((++SUCCESS_COUNT))
250 sudo make install 2>&1 | tee -a ./make.log
253 FAIL_COUNT=$((++FAIL_COUNT))
254 echo -e "Abort at `date --rfc-2822`." >> ../../${MAKE_STATUS_FILE}
262 echo -e "VM BUILD:Successed ${SUCCESS_COUNT} / Failed ${FAIL_COUNT}" >> ./${MAKE_STATUS_FILE}
263 echo -e "End at `date --rfc-2822`." >> ./${MAKE_STATUS_FILE}