#! /bin/sh case $1 in --help) echo Usage: echo "$0 \ (default i686-\*-mingw32)" echo " Expects to find build root in /usr/\/sys-root/mingw" ;; i686*mingw32|x86_64*mingw32) export TARGET_HOST=$1 ;; esac for target_host in ${TARGET_HOST} i686-w64-mingw32 i686-pc-mingw32 x86_64-w64-mingw32 x86_64-pc-mingw32 none ; do if test ${target_host} = none ; then echo Cross compiling environment not found in /usr exit 1 fi echo Checking for cross compiling environment in /usr/${target_host} if test -d /usr/${target_host}; then export TARGET_HOST=${target_host} break fi done case $TARGET_HOST in i686*) openssl_cross=mingw ;; x86_64*) openssl_cross=mingw64 ;; esac build_manager=no build_client=no build_libs=yes build_server=no export XCOMPILE_ROOT="/usr/${TARGET_HOST}/sys-root/mingw" guess=`../config.guess` export BUILD_HOST=`../config.sub ${guess}` export PATH="/usr/${TARGET_HOST}/bin:${XCOMPILE_ROOT}/bin:${PATH}" export CC=`which ${TARGET_HOST}-gcc` export CXX=`which ${TARGET_HOST}-g++` export AR=`which ${TARGET_HOST}-ar` export LD=`which ${TARGET_HOST}-ld` export RANLIB=`which ${TARGET_HOST}-ranlib` export WINDRES=`which ${TARGET_HOST}-windres` export CPPFLAGS="-D_WIN32_WINDOWS=0x0410 -DMINGW_WIN32 -I${XCOMPILE_ROOT}/include" export CFLAGS="${CPPFLAGS}" export CXXFLAGS="-gstabs -g3 -fpermissive" export LDFLAGS="-L/usr/${TARGET_HOST}/lib -L${XCOMPILE_ROOT}/lib" export CURL_CONFIG="${XCOMPILE_ROOT}/bin/curl-config" export WX_CONFIG_PATH="${XCOMPILE_ROOT}/bin/wx-config" pkgsearchpath="dummy" for dir in `find /usr/${TARGET_HOST} -name pkgconfig` ; do pkgsearchpath="${pkgsearchpath}:${dir}" done for dir in `find /usr/lib -name pkgconfig` ; do pkgsearchpath="${pkgsearchpath}:${dir}" done for dir in `find /usr/share -name pkgconfig` ; do pkgsearchpath="${pkgsearchpath}:${dir}" done export PKG_CONFIG_PATH=`echo ${pkgsearchpath} | sed 's/dummy://'` if ! ( test -e ../configure && find .. -name configure -mtime -1 ) ; then cd .. ./_autosetup cd xcompile fi if test $build_manager != no -o $build_libs != no ; then if ! test -f ${XCOMPILE_ROOT}/lib/libjpeg.a ; then jpegver=9a wget http://ijg.org/files/jpegsrc.v${jpegver}.tar.gz tar zxf jpegsrc.v${jpegver}.tar.gz /bin/rm jpegsrc.v${jpegver}.tar.gz cd jpeg-${jpegver} ./configure --prefix=${XCOMPILE_ROOT}/ --disable-shared --host=$TARGET_HOST --build=$BUILD_HOST make -j 4 all make install cd .. rm -rf jpeg-${jpegver} fi # if ! test -f ${XCOMPILE_ROOT}/lib/libbmp.a ; then # svn checkout svn://svn.code.sf.net/p/libbmp/svn/trunk libbmp # cd libbmp # sed -e 's/ gcc/'${TARGET_HOST}'-gcc/' -e 's/ g++/'${TARGET_HOST}'-g++/' -e 's/ar/'${TARGET_HOST}'-ar/' Makefile > Makefile.mingw # make -f Makefile.mingw libbmp.a bmp_go # cp bmp.h ${XCOMPILE_ROOT}/include # cp libbmp.a ${XCOMPILE_ROOT}/lib # cd .. # rm -rf libbmp # fi fi if test $build_client != no -o $build_manager != no -o $build_libs != no ; then if ! test -f ${XCOMPILE_ROOT}/lib/libssl.a ; then opensslver=1.0.1g wget http://www.openssl.org/source/openssl-${opensslver}.tar.gz tar zxf openssl-${opensslver}.tar.gz /bin/rm openssl-${opensslver}.tar.gz cd openssl-${opensslver} ./Configure --prefix=${XCOMPILE_ROOT}/ ${CFLAGS} ${LDFLAGS} no-shared zlib $openssl_cross make -j 4 all make install cd .. rm -rf openssl-${opensslver} fi fi if test $build_client != no -o $build_manager != no ; then if ! test -f ${XCOMPILE_ROOT}/lib/libcurl.a ; then curlver=7.36.0 wget http://curl.haxx.se/download/curl-${curlver}.tar.bz2 tar jxf curl-${curlver}.tar.bz2 /bin/rm curl-${curlver}.tar.bz2 cd curl-${curlver} ./configure --prefix=${XCOMPILE_ROOT} --enable-static --disable-shared --host=$TARGET_HOST --build=$BUILD_HOST --with-zlib=${XCOMPILE_ROOT} make -j 4 all make install cd .. rm -rf curl-${curlver} fi fi if test $build_manager != no ; then if ! test -f ${XCOMPILE_ROOT}/lib/libwxbase30u.a ; then z7=`which 7z` if test "x${z7}" = x ; then echo you must install 7z in the path in order to install wxwidgets exit 1 fi wxver=3.0.0 gccver=481 filename=wxMSW-${wxver}_gcc${gccver}TDM_Dev.7z mkdir wxdist cd wxdist wget http://sourceforge.net/projects/wxwindows/files/3.0.0/binaries/$filename/download mv download $filename 7z x $filename rm $filename rsync lib/gcc${gccver}TDM_dll/*.a ${XCOMPILE_ROOT}/lib rsync lib/gcc${gccver}TDM_dll/*.dll ${XCOMPILE_ROOT}/bin filename=wxWidgets-${wxver}_headers.7z wget http://sourceforge.net/projects/wxwindows/files/3.0.0/$filename/download mv download $filename 7z x $filename rm $filename rsync -va include/wx ${XCOMPILE_ROOT}/include rsync -va lib/gcc${gccver}TDM_dll/mswu/wx ${XCOMPILE_ROOT}/include cd .. rm -rf wxdist fi fi if test $build_manager != no -o $build_libs != no ; then if ! test -f ${XCOMPILE_ROOT}/include/GL/glut.h -a -f ${XCOMPILE_ROOT}/lib/libfreeglut_static.a ; then svn co http://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut freeglut cd freeglut mkdir build cd build /usr/bin/cmake -D GNU_HOST=${TARGET_HOST} \ -D CMAKE_TOOLCHAIN_FILE=mingw_cross_toolchain.cmake \ -D CMAKE_INSTALL_PREFIX=${XCOMPILE_ROOT}\ -D FREEGLUT_BUILD_STATIC_LIBS=ON \ -D FREEGLUT_BUILD_SHARED_LIBS=OFF \ -D FREEGLUT_BUILD_DEMOS=OFF \ .. make -j 4 all make install cd ../.. /bin/rm -rf freeglut fi fi enables="--enable-static --disable-shared" if test $build_client != no ; then enables="${enables} --enable-client" else enables="${enables} --disable-client" fi if test $build_server != no ; then enables="${enables} --enable-server" else enables="${enables} --disable-server" fi if test $build_libs != no ; then enables="${enables} --enable-libraries" else enables="${enables} --disable-libraries" fi if test $build_manager != no ; then enables="${enables} --enable-manager" else enables="${enables} --disable-manager" fi ../configure -C --host=$TARGET_HOST --build=$BUILD_HOST ${enables} --with-libcurl=${XCOMPILE_ROOT} --with-ssl=${XCOMPILE_ROOT} --with-winsock --prefix=${XCOMPILE_ROOT} make -j 4 all exit 0