diff --git a/tools/cross/mingw/cross.sh b/tools/cross/mingw/cross.sh deleted file mode 100755 index 4a071142b..000000000 --- a/tools/cross/mingw/cross.sh +++ /dev/null @@ -1,245 +0,0 @@ -#!/bin/sh - -# This is my script for building a complete cross-compiler toolchain. -# It is based partly on Ray Kelm's script, which in turn was built on -# Mo Dejong's script for doing the same, but with some added fixes. -# The intent with this script is to build a cross-compiled version -# of the current MinGW environment. -# -# Updated by Sam Lantinga - -# what flavor are we building? - -TARGET=i386-mingw32msvc - -# where does it go? - -PREFIX=/usr/local/cross-tools - -# you probably don't need to change anything from here down - -TOPDIR=`pwd` -SRCDIR="$TOPDIR/source" - -# These are the files from the MinGW 1.1 release - -MINGW_URL=http://unc.dl.sourceforge.net/sourceforge/mingw -GCC=gcc-3.2.3-20030504-1 -GCC_ARCHIVE=$GCC-src.tar.gz -GCC_PATCH="" -BINUTILS=binutils-2.13.90-20030111-1 -BINUTILS_PATCH=binutils-2.13.90-20030111-1-flex.diff -BINUTILS_ARCHIVE=$BINUTILS-src.tar.gz -MINGW=mingw-runtime-3.2 -MINGW_ARCHIVE=$MINGW.tar.gz -W32API=w32api-2.4 -W32API_ARCHIVE=$W32API.tar.gz - -# These are the files from the SDL website - -TANIWHA_URL=http://quakeforge.net/~taniwha -SDL_URL=http://www.libsdl.org/extras/win32/common -OPENGL_ARCHIVE=opengl-devel.tar.gz -DIRECTX_ARCHIVE=directx-devel.tar.gz - -# need install directory first on the path so gcc can find binutils - -PATH="$PREFIX/bin:$PATH" - -# -# download a file from a given url, only if it is not present -# - -download_file() -{ - cd "$SRCDIR" - if test ! -f $1 ; then - echo "Downloading $1" - wget "$2/$1" - if test ! -f $1 ; then - echo "Could not download $1" - exit 1 - fi - else - echo "Found $1 in the srcdir $SRCDIR" - fi - cd "$TOPDIR" -} - -download_files() -{ - mkdir -p "$SRCDIR" - - # Make sure wget is installed - if test "x`which wget`" = "x" ; then - echo "You need to install wget." - exit 1 - fi - download_file "$GCC_ARCHIVE" "$MINGW_URL" - download_file "$BINUTILS_ARCHIVE" "$MINGW_URL" - download_file "$BINUTILS_PATCH" "$TANIWHA_URL" - download_file "$MINGW_ARCHIVE" "$MINGW_URL" - download_file "$W32API_ARCHIVE" "$MINGW_URL" - download_file "$OPENGL_ARCHIVE" "$SDL_URL" - download_file "$DIRECTX_ARCHIVE" "$SDL_URL" -} - -install_libs() -{ - echo "Installing cross libs and includes" - mkdir -p "$PREFIX/$TARGET" - cd "$PREFIX/$TARGET" - gzip -dc "$SRCDIR/$MINGW_ARCHIVE" | tar xf - - gzip -dc "$SRCDIR/$W32API_ARCHIVE" | tar xf - - gzip -dc "$SRCDIR/$OPENGL_ARCHIVE" | tar xf - - gzip -dc "$SRCDIR/$DIRECTX_ARCHIVE" | tar xf - - cd "$TOPDIR" -} - -extract_binutils() -{ - cd "$SRCDIR" - rm -rf "$BINUTILS" - echo "Extracting binutils" - gzip -dc "$SRCDIR/$BINUTILS_ARCHIVE" | tar xf - - patch -p0 < binutils-2.13.90-20030111-1-flex.diff - mv binutils-2.13.90-20030111-1-src binutils-2.13.90-20030111-1 - cd "$TOPDIR" -} - -configure_binutils() -{ - cd "$TOPDIR" - rm -rf "binutils-$TARGET" - mkdir "binutils-$TARGET" - cd "binutils-$TARGET" - echo "Configuring binutils" - "$SRCDIR/$BINUTILS/configure" --prefix="$PREFIX" --target=$TARGET &> configure.log - cd "$TOPDIR" -} - -build_binutils() -{ - cd "$TOPDIR/binutils-$TARGET" - echo "Building binutils" - make &> make.log - if test $? -ne 0; then - echo "make failed - log available: binutils-$TARGET/make.log" - exit 1 - fi - cd "$TOPDIR" -} - -install_binutils() -{ - cd "$TOPDIR/binutils-$TARGET" - echo "Installing binutils" - make install &> make-install.log - if test $? -ne 0; then - echo "install failed - log available: binutils-$TARGET/make-install.log" - exit 1 - fi - cd "$TOPDIR" -} - -extract_gcc() -{ - cd "$SRCDIR" - rm -rf "$GCC" - echo "Extracting gcc" - gzip -dc "$SRCDIR/$GCC_ARCHIVE" | tar xf - - cd "$TOPDIR" -} - -patch_gcc() -{ - if [ "$GCC_PATCH" != "" ]; then - echo "Patching gcc" - cd "$SRCDIR/$GCC" - patch -p1 < "$SRCDIR/$GCC_PATCH" - cd "$TOPDIR" - fi -} - -configure_gcc() -{ - cd "$TOPDIR" - rm -rf "gcc-$TARGET" - mkdir "gcc-$TARGET" - cd "gcc-$TARGET" - echo "Configuring gcc" - "$SRCDIR/$GCC/configure" -v \ - --prefix="$PREFIX" --target=$TARGET \ - --with-headers="$PREFIX/$TARGET/include" \ - --with-gnu-as --with-gnu-ld \ - --without-newlib --disable-multilib &> configure.log - cd "$TOPDIR" -} - -build_gcc() -{ - cd "$TOPDIR/gcc-$TARGET" - echo "Building gcc" - make LANGUAGES="c c++" &> make.log - if test $? -ne 0; then - echo "make failed - log available: gcc-$TARGET/make.log" - exit 1 - fi - cd "$TOPDIR" -} - -install_gcc() -{ - cd "$TOPDIR/gcc-$TARGET" - echo "Installing gcc" - make LANGUAGES="c c++" install &> make-install.log - if test $? -ne 0; then - echo "install failed - log available: gcc-$TARGET/make-install.log" - exit 1 - fi - cd "$TOPDIR" -} - -final_tweaks() -{ - echo "Finalizing installation" - - # remove gcc build headers - rm -rf "$PREFIX/$TARGET/sys-include" - - # make cc and c++ symlinks to gcc and g++ - if [ ! -f "$PREFIX/$TARGET/bin/g++" ]; then - ln "$PREFIX/bin/$TARGET-g++" "$PREFIX/$TARGET/bin/g++" - fi - if [ ! -f "$PREFIX/$TARGET/bin/cc" ]; then - ln -s "gcc" "$PREFIX/$TARGET/bin/cc" - fi - if [ ! -f "$PREFIX/$TARGET/bin/c++" ]; then - ln -s "g++" "$PREFIX/$TARGET/bin/c++" - fi - - # strip all the binaries - ls "$PREFIX"/bin/* "$PREFIX/$TARGET"/bin/* | egrep -v '.dll$' | - while read file; do - strip "$file" - done - - echo "Installation complete!" -} - -download_files - -install_libs - -extract_binutils -configure_binutils -build_binutils -install_binutils - -extract_gcc -patch_gcc -configure_gcc -build_gcc -install_gcc - -final_tweaks