Last active
August 29, 2015 14:16
-
-
Save hangingman/57349586faa78843422e to your computer and use it in GitHub Desktop.
mingwクロスコンパイル環境構築スクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash +x | |
# | |
# ※先に、以下のバイナリを $ tar xvf *** -C /usr で展開する | |
# i686-w64-mingw32-gcc-4.8.0-linux64_rubenvb.tar.xz | |
# x86_64-w64-mingw32-gcc-4.8.0-linux64_rubenvb.tar.xz | |
# | |
MINGW32_CONF="--prefix=/usr/mingw32/i686-w64-mingw32 --build=x86_64-unknown-linux-gnu --host=i686-w64-mingw32 --target=i686-w64-mingw32" | |
MINGW64_CONF="--prefix=/usr/mingw64/x86_64-w64-mingw32 --build=x86_64-unknown-linux-gnu --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32" | |
MINGW32_SRC=/usr/local/src/mingw32 | |
MINGW64_SRC=/usr/local/src/mingw64 | |
WGET=wget | |
CP=cp | |
TAR=tar | |
# export PATH for cross compiler | |
export PATH=/usr/mingw32/bin:$PATH | |
export PATH=/usr/mingw64/bin:$PATH | |
mkdir -p /usr/local/src || exit 1 | |
rm -rf /usr/local/src/mingw32 || exit 1 | |
rm -rf /usr/local/src/mingw64 || exit 1 | |
mkdir -p /usr/local/src/mingw32 || exit 1 | |
mkdir -p /usr/local/src/mingw64 || exit 1 | |
# libxml2 | |
cd ${MINGW32_SRC} | |
${WGET} ftp://xmlsoft.org/libxml2/libxml2-2.9.0.tar.gz | |
${CP} libxml2-2.9.0.tar.gz ${MINGW64_SRC} | |
${TAR} xvf libxml2-2.9.0.tar.gz | |
cd libxml2-2.9.0 | |
./configure ${MINGW32_CONF} | |
make && make install || exit 1 | |
cd ${MINGW64_SRC} | |
${TAR} xvf libxml2-2.9.0.tar.gz | |
cd libxml2-2.9.0 | |
./configure ${MINGW64_CONF} | |
make && make install || exit 1 | |
# zlib | |
cd ${MINGW32_SRC} | |
${WGET} http://zlib.net/zlib-1.2.8.tar.gz | |
${CP} zlib-1.2.8.tar.gz ${MINGW64_SRC} | |
${TAR} xvf zlib-1.2.8.tar.gz | |
cd zlib-1.2.8 | |
make -f win32/Makefile.gcc PREFIX=i686-w64-mingw32- || exit 1 | |
make -f win32/Makefile.gcc install \ | |
BINARY_PATH=/usr/mingw32/i686-w64-mingw32/bin \ | |
INCLUDE_PATH=/usr/mingw32/i686-w64-mingw32/include \ | |
LIBRARY_PATH=/usr/mingw32/i686-w64-mingw32/lib SHARED_MODE=1 || exit 1 | |
cd ${MINGW64_SRC} | |
${TAR} xvf zlib-1.2.8.tar.gz | |
cd zlib-1.2.8 | |
make -f win32/Makefile.gcc PREFIX=x86_64-w64-mingw32- || exit 1 | |
make -f win32/Makefile.gcc install \ | |
BINARY_PATH=/usr/mingw64/x86_64-w64-mingw32/bin \ | |
INCLUDE_PATH=/usr/mingw64/x86_64-w64-mingw32/include \ | |
LIBRARY_PATH=/usr/mingw64/x86_64-w64-mingw32/lib SHARED_MODE=1 || exit 1 | |
# openssl | |
cd ${MINGW32_SRC} | |
${WGET} https://www.openssl.org/source/openssl-1.0.2.tar.gz | |
${CP} openssl-1.0.2.tar.gz ${MINGW64_SRC} | |
${TAR} xvf openssl-1.0.2.tar.gz | |
cd openssl-1.0.2 | |
export CROSS_COMPILE=i686-w64-mingw32- | |
./Configure -DHAVE_STRUCT_TIMESPEC \ | |
-L/usr/mingw32/i686-w64-mingw32/lib -lz -lws2_32 \ | |
--prefix=/usr/mingw32/i686-w64-mingw32 \ | |
--openssldir=/usr/mingw32/i686-w64-mingw32/ssl \ | |
zlib mingw shared | |
make && make install || exit 1 | |
cd ${MINGW64_SRC} | |
${TAR} xvf openssl-1.0.2.tar.gz | |
cd openssl-1.0.2 | |
export CROSS_COMPILE=x86_64-w64-mingw32- | |
./Configure -DHAVE_STRUCT_TIMESPEC \ | |
-L/usr/mingw64/x86_64-w64-mingw32/lib -lz -lws2_32 \ | |
--prefix=/usr/mingw64/x86_64-w64-mingw32 \ | |
--openssldir=/usr/mingw64/x86_64-w64-mingw32/ssl \ | |
zlib mingw64 shared no-asm | |
make && make install || exit 1 | |
# curl | |
cd ${MINGW32_SRC} | |
${WGET} http://curl.haxx.se/download/curl-7.41.0.tar.gz | |
${CP} curl-7.41.0.tar.gz ${MINGW64_SRC} | |
${TAR} xvf curl-7.41.0.tar.gz | |
cd curl-7.41.0 | |
export CC=i686-w64-mingw32-gcc | |
./configure ${MINGW32_CONF} --enable-shared --disable-debug | |
make && make install || exit 1 | |
cd ${MINGW64_SRC} | |
${TAR} xvf curl-7.41.0.tar.gz | |
cd curl-7.41.0 | |
export CC=x86_64-w64-mingw32-gcc | |
./configure ${MINGW64_CONF} --enable-shared --disable-debug | |
make && make install || exit 1 | |
# wxWidgets | |
cd /usr/local/src | |
git clone https://github.com/wxWidgets/wxWidgets.git | |
cd wxWidgets | |
git checkout WX_3_0_2 | |
cd ../ && mkdir -p ${MINGW32_SRC}/wxWidgets-3.0.2 && mkdir -p ${MINGW64_SRC}/wxWidgets-3.0.2 | |
cd ${MINGW32_SRC}/wxWidgets-3.0.2 | |
/usr/local/src/wxWidgets/configure --prefix=/usr/mingw32/i686-w64-mingw32 \ | |
--host=i686-w64-mingw32 --enable-unicode --disable-debug CXXFLAGS='-std=gnu++11' | |
make && make install || exit 1 | |
cd ${MINGW64_SRC}/wxWidgets-3.0.2 | |
/usr/local/src/wxWidgets/configure --prefix=/usr/mingw64/x86_64-w64-mingw32 \ | |
--host=x86_64-w64-mingw32 --enable-unicode --disable-debug CXXFLAGS='-std=gnu++11' | |
make && make install || exit 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment