5 BUILD_TYPE="Relwithdebinfo"
7 export WINEDEBUG="-all"
10 MAKEFLAGS_GENERAL="-j4"
11 MAKE_STATUS_FILE="./000_make_status_config_build_cross_win32.log"
13 export WCLANG_FORCE_CXX_EXCEPTIONS=1
17 if [ -e ./buildvars_mingw_cross_win32.dat ] ; then
18 . ./buildvars_mingw_cross_win32.dat
20 case ${BUILD_TOOLCHAIN} in
21 "LLVM" | "llvm" | "CLANG" | "clang" )
22 TOOLCHAIN_SCRIPT="../../cmake/toolchain_win32_cross_linux_llvm.cmake"
23 . ./params/buildvars_mingw_params_llvm.dat
26 "GCC" | "gcc" | "GNU" )
27 TOOLCHAIN_SCRIPT="../../cmake/toolchain_mingw_cross_linux.cmake"
28 . ./params/buildvars_mingw_params_gcc.dat
32 TOOLCHAIN_SCRIPT="../../cmake/toolchain_mingw_cross_linux.cmake"
33 . ./params/buildvars_mingw_params_gcc.dat
38 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DLIBAV_ROOT_DIR=${FFMPEG_DIR}"
41 "Yes" | "yes" | "YES" )
42 MAKEFLAGS_BASE2="-flto ${MAKEFLAGS_BASE2}"
43 MAKEFLAGS_LINK_BASE="-flto ${MAKEFLAGS_BASE2}"
45 "No" | "no" | "NO" | * )
46 MAKEFLAGS_BASE2="-flto ${MAKEFLAGS_BASE2}"
47 MAKEFLAGS_LINK_BASE="-flto ${MAKEFLAGS_BASE2}"
51 case ${STRIP_SYMBOLS} in
52 "Yes" | "yes" | "YES" )
53 MAKEFLAGS_BASE2="-s ${MAKEFLAGS_BASE2}"
54 MAKEFLAGS_LINK_BASE="-s ${MAKEFLAGS_LINK_BASE}"
56 "No" | "no" | "NO" | * )
57 MAKEFLAGS_BASE2="-g -ggdb ${MAKEFLAGS_BASE2}"
58 MAKEFLAGS_LINK_BASE="-g -ggdb ${MAKEFLAGS_LINK_BASE}"
61 ###########################
64 MAKEFLAGS_CXX="${MAKEFLAGS_BASE2} "
65 MAKEFLAGS_CC="${MAKEFLAGS_BASE2}"
66 MAKEFLAGS_LIB_CXX="${ADDITIONAL_MAKEFLAGS_LINK_LIB} ${MAKEFLAGS_BASE2}"
67 MAKEFLAGS_LIB_CC="${ADDITIONAL_MAKEFLAGS_LINK_LIB} ${MAKEFLAGS_BASE2}"
69 CMAKE_LINKFLAG="${ADDITIONAL_MAKEFLAGS_LINK_EXE} ${MAKEFLAGS_LINK_BASE}"
70 CMAKE_DLL_LINKFLAG="${ADDITIONAL_MAKEFLAGS_LINK_DLL} ${MAKEFLAGS_LINK_BASE}"
72 # To use MOC, please enable wine as interpreter of EXEs , below:
73 # $ sudo update-binfmts --install Win32_Wine /usr/bin/wine --extension exe .
74 # Compatible with GCC-4.9 (-fabi-version=8)
75 MAKEFLAGS_CXX="${MAKEFLAGS_CXX} -DWINVER=0x501"
76 MAKEFLAGS_CC="${MAKEFLAGS_CC} -DWINVER=0x501"
78 MAKEFLAGS_LIB_CXX="${MAKEFLAGS_LIB_CXX} -DWINVER=0x501"
79 MAKEFLAGS_LIB_CC="${MAKEFLAGS_LIB_CC} -DWINVER=0x501"
81 function build_dll() {
82 mkdir -p $1/build-win32
84 echo ${CMAKE_FLAGS1} ${CMAKE_FLAGS2}
85 ${CMAKE} -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_SCRIPT} \
87 "${CMAKE_FLAGS2}=${MAKEFLAGS_LIB_CXX}" \
88 "${CMAKE_FLAGS3}=${MAKEFLAGS_LIB_CC}" \
92 "-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_LINKFLAG}" \
93 "-DCMAKE_CROSSCOMPILING=true"\
96 ${CMAKE} ${CMAKE_FLAGS1} \
97 "${CMAKE_FLAGS2}=${MAKEFLAGS_LIB_CXX}" \
98 "${CMAKE_FLAGS3}=${MAKEFLAGS_LIB_CC}" \
101 ${CMAKE_APPENDFLAG} \
102 "-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_LINKFLAG}" \
107 make ${MAKEFLAGS_GENERAL} 2>&1 | tee -a ./make.log
108 _STATUS=${PIPESTATUS[0]}
109 echo -e "$1 at `date --rfc-2822`:" "${_STATUS}" >> ../../${MAKE_STATUS_FILE}
114 echo -e "Abort at `date --rfc-2822`." >> ../../${MAKE_STATUS_FILE}
121 case ${BUILD_TYPE} in
122 "Debug" | "DEBUG" | "debug" )
123 CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=debug"
124 CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_DEBUG:STRING"
125 CMAKE_FLAGS3="-DCMAKE_C_FLAGS_DEBUG:STRING"
127 "Release" | "RELEASE" | "release" )
128 CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=Release"
129 CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_RELEASE:STRING"
130 CMAKE_FLAGS3="-DCMAKE_C_FLAGS_RELEASE:STRING"
132 "Relwithdebinfo" | "RELWITHDEBINFO" | "relwithdebinfo" )
133 CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=Relwithdebinfo"
134 CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING"
135 CMAKE_FLAGS3="-DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING"
138 echo "Specify BUILD_TYPE in buildvars.dat to Debug, Release, Relwithdebinfo."
144 case ${USE_COMMON_DEVICE_LIB} in
145 "Yes" | "yes" | "YES" )
146 CMAKE_FLAGS4="-DUSE_DEVICES_SHARED_LIB=ON"
153 echo "Make status." > ${MAKE_STATUS_FILE}
154 echo "Started at `date --rfc-2822`:" >> ${MAKE_STATUS_FILE}
155 build_dll libCSPemu_utils
157 cp ./libCSPemu_utils/build-win32/qt/emuutils/*.h ./bin-win32/
158 cp ./libCSPemu_utils/build-win32/qt/emuutils/*.dll ./bin-win32/
159 cp ./libCSPemu_utils/build-win32/qt/emuutils/*.a ./bin-win32/
161 build_dll libCSPfmgen
162 cp ./libCSPfmgen/build-win32/vm/fmgen/*.h ./bin-win32/
163 cp ./libCSPfmgen/build-win32/vm/fmgen/*.dll ./bin-win32/
164 cp ./libCSPfmgen/build-win32/vm/fmgen/*.a ./bin-win32/
166 case ${USE_COMMON_DEVICE_LIB} in
167 "Yes" | "yes" | "YES" )
168 build_dll libCSPcommon_vm
169 # cp ./libCSPcommon_vm/build-win32/vm/common_vm/*.h ./bin-win32/
170 # cp ./libCSPcommon_vm/build-win32/vm/common_vm/*.dll ./bin-win32/
171 cp ./libCSPcommon_vm/build-win32/vm/common_vm/*.a ./bin-win32/
178 #cp ./libCSPavio/build-win32/qt/avio/*.h ./bin-win32/
179 #cp ./libCSPavio/build-win32/qt/avio/*.dll ./bin-win32/
180 cp ./libCSPavio/build-win32/qt/avio/*.a ./bin-win32/
183 #cp ./libCSPosd/build-win32/qt/osd/*.h ./bin-win32/
184 #cp ./libCSPosd/build-win32/qt/osd/*.dll ./bin-win32/
185 cp ./libCSPosd/build-win32/qt/osd/*.a ./bin-win32/
188 cp ./libCSPgui/build-win32/qt/gui/*.h ./bin-win32/
189 cp ./libCSPgui/build-win32/qt/gui/*.dll ./bin-win32/
190 cp ./libCSPgui/build-win32/qt/gui/*.a ./bin-win32/
192 for SRCDATA in $@ ; do\
194 mkdir -p ${SRCDATA}/build-win32
195 cd ${SRCDATA}/build-win32
197 echo ${CMAKE_FLAGS1} ${CMAKE_FLAGS2}
198 ${CMAKE} -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_SCRIPT} \
200 "${CMAKE_FLAGS2}=${MAKEFLAGS_CXX}" \
201 "${CMAKE_FLAGS3}=${MAKEFLAGS_CC}" \
204 "-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_LINKFLAG}" \
205 ${CMAKE_APPENDFLAG} \
208 ${CMAKE} ${CMAKE_FLAGS1} \
209 "${CMAKE_FLAGS2}=${MAKEFLAGS_CXX}" \
210 "${CMAKE_FLAGS3}=${MAKEFLAGS_CC}" \
213 "-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_LINKFLAG}" \
214 ${CMAKE_APPENDFLAG} \
219 make ${MAKEFLAGS_GENERAL} 2>&1 | tee -a ./make.log
220 _STATUS=${PIPESTATUS[0]}
221 echo -e "${SRCDATA} at `date --rfc-2822`:" "${_STATUS}" >> ../../${MAKE_STATUS_FILE}
223 0 ) cp ./qt/common/*.exe ../../bin-win32/ ;;
225 echo -e "Abort at `date --rfc-2822`." >> ../../${MAKE_STATUS_FILE}
234 echo -e "End at `date --rfc-2822`." >> ../../${MAKE_STATUS_FILE}
236 for ii in libCSPavio libCSPgui libCSPosd libCSPemu_utils; do