# HG changeset patch # User Volker Grabsch # Date 1182187278 -7200 # Node ID fff794bc539c41ff49ae80d4b5cfbc035a9306b1 # Parent ab480cd864576ce64aa33167eb36e264fa27a18e added giflib, added cross compiler, simplified PATH diff -r ab480cd86457 -r fff794bc539c build_mingw_cross_env.sh --- a/build_mingw_cross_env.sh Sat Jun 16 17:19:20 2007 +0200 +++ b/build_mingw_cross_env.sh Mon Jun 18 19:21:18 2007 +0200 @@ -54,6 +54,10 @@ PATH="$PREFIX/bin:$PATH" +VERSION_mingw_runtime=3.9 +VERSION_w32api=3.7 +VERSION_binutils=2.17.50-20060824-1 +VERSION_gcc=3.4.5-20060117-1 VERSION_pkg_config=0.21 VERSION_pthreads=2-8-0 VERSION_zlib=1.2.3 @@ -65,6 +69,7 @@ VERSION_libpng=1.2.18 VERSION_jpeg=6b VERSION_tiff=3.8.2 +VERSION_giflib=4.1.4 VERSION_freetype=2.3.4 VERSION_fontconfig=2.4.2 VERSION_gd=2.0.35RC4 @@ -123,6 +128,168 @@ #--- +# MinGW Runtime +# +# http://mingw.sourceforge.net/ +#--- + +case "$1" in + +--download) + cd "$DOWNLOAD" + tar tfz "mingw-runtime-$VERSION_mingw_runtime.tar.gz" &>/dev/null || + wget -c "http://downloads.sourceforge.net/mingw/mingw-runtime-$VERSION_mingw_runtime.tar.gz" + ;; + +--build) + install -d "$PREFIX/$TARGET" + cd "$PREFIX/$TARGET" + tar xfvz "$DOWNLOAD/mingw-runtime-$VERSION_mingw_runtime.tar.gz" + ;; + +esac + + +#--- +# MinGW Windows API +# +# http://mingw.sourceforge.net/ +#--- + +case "$1" in + +--download) + cd "$DOWNLOAD" + tar tfz "w32api-$VERSION_w32api.tar.gz" &>/dev/null || + wget -c "http://downloads.sourceforge.net/mingw/w32api-$VERSION_w32api.tar.gz" + ;; + +--build) + install -d "$PREFIX/$TARGET" + cd "$PREFIX/$TARGET" + tar xfvz "$DOWNLOAD/w32api-$VERSION_w32api.tar.gz" + ;; + +esac + + +#--- +# MinGW binutils +# +# http://mingw.sourceforge.net/ +#--- + +case "$1" in + +--download) + cd "$DOWNLOAD" + tar tfz "binutils-$VERSION_binutils-src.tar.gz" &>/dev/null || + wget -c "http://downloads.sourceforge.net/mingw/binutils-$VERSION_binutils-src.tar.gz" + ;; + +--build) + cd "$SOURCE" + tar xfvz "$DOWNLOAD/binutils-$VERSION_binutils-src.tar.gz" + cd "binutils-$VERSION_binutils-src" + ./configure \ + --target="$TARGET" \ + --prefix="$PREFIX" \ + --with-gcc \ + --with-gnu-ld \ + --with-gnu-as \ + --disable-nls \ + --disable-shared + make + make install + strip -sv \ + "$PREFIX/bin/$TARGET-addr2line" \ + "$PREFIX/bin/$TARGET-ar" \ + "$PREFIX/bin/$TARGET-as" \ + "$PREFIX/bin/$TARGET-c++filt" \ + "$PREFIX/bin/$TARGET-dlltool" \ + "$PREFIX/bin/$TARGET-dllwrap" \ + "$PREFIX/bin/$TARGET-gprof" \ + "$PREFIX/bin/$TARGET-ld" \ + "$PREFIX/bin/$TARGET-nm" \ + "$PREFIX/bin/$TARGET-objcopy" \ + "$PREFIX/bin/$TARGET-objdump" \ + "$PREFIX/bin/$TARGET-ranlib" \ + "$PREFIX/bin/$TARGET-readelf" \ + "$PREFIX/bin/$TARGET-size" \ + "$PREFIX/bin/$TARGET-strings" \ + "$PREFIX/bin/$TARGET-strip" \ + "$PREFIX/bin/$TARGET-windres" \ + "$PREFIX/$TARGET/bin/ar" \ + "$PREFIX/$TARGET/bin/as" \ + "$PREFIX/$TARGET/bin/dlltool" \ + "$PREFIX/$TARGET/bin/ld" \ + "$PREFIX/$TARGET/bin/nm" \ + "$PREFIX/$TARGET/bin/objdump" \ + "$PREFIX/$TARGET/bin/ranlib" \ + "$PREFIX/$TARGET/bin/strip" \ + "$PREFIX/lib/libiberty.a" + ;; + +esac + + +#--- +# MinGW GCC +# +# http://mingw.sourceforge.net/ +#--- + +case "$1" in + +--download) + cd "$DOWNLOAD" + tar tfz "gcc-core-$VERSION_gcc-src.tar.gz" &>/dev/null || + wget -c "http://downloads.sourceforge.net/mingw/gcc-core-$VERSION_gcc-src.tar.gz" + tar tfz "gcc-g++-$VERSION_gcc-src.tar.gz" &>/dev/null || + wget -c "http://downloads.sourceforge.net/mingw/gcc-g++-$VERSION_gcc-src.tar.gz" + ;; + +--build) + cd "$SOURCE" + tar xfvz "$DOWNLOAD/gcc-core-$VERSION_gcc-src.tar.gz" + tar xfvz "$DOWNLOAD/gcc-g++-$VERSION_gcc-src.tar.gz" + cd "gcc-$VERSION_gcc" + ./configure \ + --target="$TARGET" \ + --prefix="$PREFIX" \ + --enable-languages="c,c++" \ + --enable-version-specific-runtime-libs \ + --with-gcc \ + --with-gnu-ld \ + --with-gnu-as \ + --disable-nls \ + --disable-shared \ + --without-x \ + --enable-threads=win32 \ + --disable-win32-registry \ + --enable-sjlj-exceptions + make + make install + VERSION_gcc_short=`echo "$VERSION_gcc" | cut -d'-' -f1` + strip -sv \ + "$PREFIX/bin/$TARGET-c++" \ + "$PREFIX/bin/$TARGET-cpp" \ + "$PREFIX/bin/$TARGET-g++" \ + "$PREFIX/bin/$TARGET-gcc" \ + "$PREFIX/bin/$TARGET-gcc-3.4.5" \ + "$PREFIX/bin/$TARGET-gcov" \ + "$PREFIX/$TARGET/bin/c++" \ + "$PREFIX/$TARGET/bin/g++" \ + "$PREFIX/$TARGET/bin/gcc" \ + "$PREFIX/libexec/gcc/$TARGET/$VERSION_gcc_short/cc1" \ + "$PREFIX/libexec/gcc/$TARGET/$VERSION_gcc_short/cc1plus" \ + "$PREFIX/libexec/gcc/$TARGET/$VERSION_gcc_short/collect2" + ;; + +esac + + +#--- # pkg-config # # http://pkg-config.freedesktop.org/ @@ -140,8 +307,11 @@ cd "$SOURCE" tar xfvz "$DOWNLOAD/pkg-config-$VERSION_pkg_config.tar.gz" cd "pkg-config-$VERSION_pkg_config" - ./configure --prefix="$PREFIX" + ./configure --prefix="$PREFIX/$TARGET" make install + install -d "$PREFIX/bin" + rm -fv "$PREFIX/bin/$TARGET-pkg-config" + ln -s "../$TARGET/bin/pkg-config" "$PREFIX/bin/$TARGET-pkg-config" ;; esac @@ -167,10 +337,10 @@ cd "pthreads-w32-$VERSION_pthreads-release" sed '35i\#define PTW32_STATIC_LIB' -i pthread.h make CROSS="$TARGET-" GC-static - install -d "$PREFIX/lib" - install -m664 libpthreadGC2.a "$PREFIX/lib/libpthread.a" - install -d "$PREFIX/include" - install -m664 pthread.h sched.h semaphore.h "$PREFIX/include/" + install -d "$PREFIX/$TARGET/lib" + install -m664 libpthreadGC2.a "$PREFIX/$TARGET/lib/libpthread.a" + install -d "$PREFIX/$TARGET/include" + install -m664 pthread.h sched.h semaphore.h "$PREFIX/$TARGET/include/" ;; esac @@ -195,7 +365,7 @@ tar xfvj "$DOWNLOAD/zlib-$VERSION_zlib.tar.bz2" cd "zlib-$VERSION_zlib" CC="$TARGET-gcc" RANLIB="$TARGET-ranlib" ./configure \ - --prefix="$PREFIX" + --prefix="$PREFIX/$TARGET" make install ;; @@ -225,7 +395,7 @@ --build="$BUILD" --host="$TARGET" \ --disable-shared \ --without-debug \ - --prefix="$PREFIX" \ + --prefix="$PREFIX/$TARGET" \ --without-python make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -254,7 +424,7 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" + --prefix="$PREFIX/$TARGET" make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -285,7 +455,8 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" + --prefix="$PREFIX/$TARGET" \ + --with-gpg-error-prefix="$PREFIX/$TARGET" make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -313,7 +484,8 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ + --prefix="$PREFIX/$TARGET" \ + --with-libgcrypt-prefix="$PREFIX/$TARGET" \ --disable-nls \ --with-included-opencdk \ --with-included-libtasn1 \ @@ -347,10 +519,8 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ - --with-gnutls \ - CFLAGS="-I$PREFIX/include" \ - LDFLAGS="-L$PREFIX/lib" + --prefix="$PREFIX/$TARGET" \ + --with-gnutls make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -378,9 +548,7 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ - CFLAGS="-I$PREFIX/include" \ - LDFLAGS="-L$PREFIX/lib" + --prefix="$PREFIX/$TARGET" make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -408,7 +576,7 @@ ./configure \ CC="$TARGET-gcc" RANLIB="$TARGET-ranlib" \ --disable-shared \ - --prefix="$PREFIX" + --prefix="$PREFIX/$TARGET" make install-lib ;; @@ -436,9 +604,8 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ - CFLAGS="-I$PREFIX/include" \ - LDFLAGS="-L$PREFIX/lib" \ + --prefix="$PREFIX/$TARGET" \ + PTHREAD_LIBS="-lpthread -lws2_32" \ --without-x make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -447,6 +614,36 @@ #--- +# giflib +# +# http://sourceforge.net/projects/libungif +#--- + +case "$1" in + +--download) + cd "$DOWNLOAD" + tar tfj "giflib-$VERSION_giflib.tar.bz2" &>/dev/null || + wget -c "http://downloads.sourceforge.net/libungif/giflib-$VERSION_giflib.tar.bz2" + ;; + +--build) + cd "$SOURCE" + tar xfvj "$DOWNLOAD/giflib-$VERSION_giflib.tar.bz2" + cd "giflib-$VERSION_giflib" + sed 's,u_int32_t,unsigned int,' -i configure + ./configure \ + --build="$BUILD" --host="$TARGET" \ + --disable-shared \ + --prefix="$PREFIX/$TARGET" \ + --without-x + make -C lib install + ;; + +esac + + +#--- # freetype # # http://freetype.sourceforge.net/ @@ -467,7 +664,7 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" + --prefix="$PREFIX/$TARGET" make install ;; @@ -496,11 +693,13 @@ ./configure \ --with-arch="$BUILD" --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ + --prefix="$PREFIX/$TARGET" \ + --with-freetype-config="$PREFIX/$TARGET/bin/freetype-config" \ --enable-libxml2 \ - LIBXML2_CFLAGS="`xml2-config --cflags`" \ - LIBXML2_LIBS="`xml2-config --libs`" - make install bin_PROGRAMS= noinst_PROGRAMS= + LIBXML2_CFLAGS="`$PREFIX/$TARGET/bin/xml2-config --cflags`" \ + LIBXML2_LIBS="`$PREFIX/$TARGET/bin/xml2-config --libs`" + make -C src install + make -C fontconfig install ;; esac @@ -516,8 +715,8 @@ case "$1" in --download) - cd "$DOWNLOAD" - tar tfj "gd-$VERSION_gd.tar.bz2" &>/dev/null || +cd "$DOWNLOAD" +tar tfj "gd-$VERSION_gd.tar.bz2" &>/dev/null || wget -c "http://www.libgd.org/releases/gd-$VERSION_gd.tar.bz2" ;; @@ -532,10 +731,13 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ + --prefix="$PREFIX/$TARGET" \ + --with-freetype="$PREFIX/$TARGET" \ --without-x \ - CFLAGS="-DNONDLL -DXMD_H" \ - LIBS="`xml2-config --libs`" + LIBPNG12_CONFIG="$PREFIX/$TARGET/bin/libpng12-config" \ + LIBPNG_CONFIG="$PREFIX/$TARGET/bin/libpng-config" \ + CFLAGS="-DNONDLL -DXMD_H -L$PREFIX/$TARGET/lib" \ + LIBS="`$PREFIX/$TARGET/bin/xml2-config --libs`" make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -564,7 +766,7 @@ --build="$BUILD" --host="$TARGET" \ --disable-shared \ --disable-debug \ - --prefix="$PREFIX" + --prefix="$PREFIX/$TARGET" make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -597,7 +799,8 @@ --build="$BUILD" --host="$TARGET" \ --disable-shared \ --disable-debug \ - --prefix="$PREFIX" \ + --prefix="$PREFIX/$TARGET" \ + --with-sdl-prefix="$PREFIX/$TARGET" \ --disable-gtk-player \ --disable-opengl-player make install bin_PROGRAMS= noinst_PROGRAMS= @@ -628,7 +831,9 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" + --prefix="$PREFIX/$TARGET" \ + --with-sdl-prefix="$PREFIX/$TARGET" \ + --with-smpeg-prefix="$PREFIX/$TARGET" make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -653,10 +858,11 @@ cd "$SOURCE" tar xfvj "$DOWNLOAD/geos-$VERSION_geos.tar.bz2" cd "geos-$VERSION_geos" + sed 's,-lgeos,-lgeos -lstdc++,' -i tools/geos-config.in ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ + --prefix="$PREFIX/$TARGET" \ --disable-swig make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -686,7 +892,7 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" + --prefix="$PREFIX/$TARGET" make install bin_PROGRAMS= noinst_PROGRAMS= ;; @@ -716,11 +922,9 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ - CFLAGS="-I$PREFIX/include" \ - LDFLAGS="-L$PREFIX/lib" + --prefix="$PREFIX/$TARGET" make all install EXEEXT=.remove-me - rm -fv "$PREFIX"/bin/*.remove-me + rm -fv "$PREFIX/$TARGET"/bin/*.remove-me ;; esac @@ -747,16 +951,15 @@ ./configure \ --build="$BUILD" --host="$TARGET" \ --disable-shared \ - --prefix="$PREFIX" \ - EXTRA_INCLUDES="-I$PREFIX/include" \ - LDFLAGS="-L$PREFIX/lib" \ + --prefix="$PREFIX/$TARGET" \ LIBS="-ljpeg" \ - CC="$TARGET-g++" \ - CFLAGS="-O2 -fpermissive" \ - --with-png="$PREFIX" \ - --with-libtiff="$PREFIX" \ - --with-geotiff="$PREFIX" \ - --with-jpeg="$PREFIX" \ + --with-png="$PREFIX/$TARGET" \ + --with-libtiff="$PREFIX/$TARGET" \ + --with-geotiff="$PREFIX/$TARGET" \ + --with-jpeg="$PREFIX/$TARGET" \ + --with-gif="$PREFIX/$TARGET" \ + --with-curl="$PREFIX/$TARGET/bin/curl-config" \ + --with-geos="$PREFIX/$TARGET/bin/geos-config" \ --without-python \ --without-ngpython make lib-target @@ -780,7 +983,10 @@ --build) cd "$PREFIX" - tar cv bin include lib | gzip -9 >"$ROOT/mingw_cross_env.tar.gz" + tar cv \ + bin lib libexec \ + "$TARGET/bin" "$TARGET/include" "$TARGET/lib" \ + | gzip -9 >"$ROOT/mingw_cross_env.tar.gz" ;; esac