File: crosscompile.sh

package info (click to toggle)
spring 103.0%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 43,720 kB
  • ctags: 63,685
  • sloc: cpp: 368,283; ansic: 33,988; python: 12,417; java: 12,203; awk: 5,879; sh: 1,846; xml: 655; perl: 405; php: 211; objc: 194; makefile: 77; sed: 2
file content (78 lines) | stat: -rwxr-xr-x 2,234 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh

set -e

export PREFIX=$(pwd)/mingwlibs
export MINGWHOST=i686-w64-mingw32
export MINGW32CXX=${MINGWHOST}-g++
export MINGW32CC=${MINGWHOST}-gcc
export MINGW32CPP=${MINGWHOST}-cpp
export MINGW32RC=${MINGWHOST}-windres
export MINGW32AR=${MINGWHOST}-ar
export MINGW32RANLIB=${MINGWHOST}-ranlib
export MINGW32RC=${MINGWHOST}-windres
export DOWNLOAD="wget -c"
export PARALLEL="8"
export ZLIBVER=1.2.7

echo "Using ${PREFIX} for mingwlibs"
if [ ! -s "$(pwd)/src/Downloader/IDownloader.h" ]; then
	echo "Please run this script from the root directory with scripts/crosscompile.sh."
	exit
fi

mkdir -p ${PREFIX}/include
mkdir -p ${PREFIX}/lib

if [ ! -s ${PREFIX}/lib/libz.a ]; then
	if [ ! -s zlib-${ZLIBVER}.tar.gz ]; then
		${DOWNLOAD} "http://prdownloads.sourceforge.net/libpng/zlib-${ZLIBVER}.tar.gz?download" -O zlib-${ZLIBVER}.tar.gz
	fi
	tar xifz zlib-${ZLIBVER}.tar.gz
	cd zlib-${ZLIBVER}
	export CC=${MINGW32CC}
	export CPP=${MINGW32CPP}
	export LDSHARED=${MINGW32CC}
	export AR="${MINGW32AR}"
	export RANLIB=${MINGW32RANLIB}
	./configure --prefix=${PREFIX}
	make install -j ${PARALLEL}
	#${CC} -shared -o zlib1.dll -Wl,--out-implib=libz.dll.a [!em]*.o
	#mkdir -p ../mingwlibs/dll
	#cp zlib1.dll ../mingwlibs/dll
	cp zlib.h ../mingwlibs/include
	cp zconf.h ../mingwlibs/include
	cd ..
fi

if [ ! -s ${PREFIX}/lib/libcurl.a ]; then
	export CC=${MINGW32CC}
	export CXX=${MINGW32CXX}
	wget -c http://curl.haxx.se/download/curl-7.24.0.tar.bz2
	tar xifj curl-7.24.0.tar.bz2
	cd curl-7.24.0
	./configure --host=${MINGWHOST} --prefix=${PREFIX} \
		--disable-ftp --disable-dict --disable-imap --disable-pop3 \
		--disable-smtp --disable-telnet --disable-tftp --disable-ldap \
		--disable-rtsp --disable-manual --disable-shared
	make install -j ${PARALLEL}
	cd ..
fi

rm -f CMakeCache.txt

if [ ! -s win32.cmake ]  ||  [ win32.cmake -ot $0 ]; then
echo Wrote win32.cmake
(
echo "SET(CMAKE_SYSTEM_NAME Windows)"
echo "SET(CMAKE_C_COMPILER $MINGW32CC)"
echo "SET(CMAKE_CXX_COMPILER $MINGW32CXX)"
echo "SET(CMAKE_FIND_ROOT_PATH /usr/$MINGWHOST)"
echo "SET(MINGWLIBS ./mingwlibs)"
echo "SET(CMAKE_RC_COMPILER $MINGW32RC)"
) >win32.cmake
fi

cmake . -DCMAKE_TOOLCHAIN_FILE=win32.cmake -DCMAKE_INSTALL_PREFIX=dist -G Ninja
ninja install