mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-13 00:24:12 +00:00
tools to help with cross copiling QF under mingw in linux
This commit is contained in:
parent
b89fde285d
commit
659eb45e96
3 changed files with 217 additions and 0 deletions
9
tools/cross/cross-configure.sh
Executable file
9
tools/cross/cross-configure.sh
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PATH=/usr/local/cross-tools/bin:/usr/local/cross-tools/i386-mingw32msvc/bin:$PATH \
|
||||||
|
./configure \
|
||||||
|
--host=i386-mingw32msvc \
|
||||||
|
--target=i386-mingw32msvc \
|
||||||
|
--build=i386-linux \
|
||||||
|
$*
|
||||||
|
|
5
tools/cross/cross-make.sh
Executable file
5
tools/cross/cross-make.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PATH=/usr/local/cross-tools/bin:/usr/local/cross-tools/i386-mingw32msvc/bin:$PATH \
|
||||||
|
make $*
|
||||||
|
|
203
tools/cross/cross.sh
Executable file
203
tools/cross/cross.sh
Executable file
|
@ -0,0 +1,203 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This is my script for building a complete cross-compiler
|
||||||
|
# toolchain. It is based partly on Mo Dejong's script for doing
|
||||||
|
# the same, but with some added fixes.
|
||||||
|
#
|
||||||
|
# Written by Ray Kelm <rhk@newimage.com>
|
||||||
|
|
||||||
|
# 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 files are available from Mumit Khan's archive
|
||||||
|
|
||||||
|
BINUTILS=binutils-19990818
|
||||||
|
BINUTILS_TAR=$BINUTILS-1-src.tar.gz
|
||||||
|
GCC=gcc-2.95.2
|
||||||
|
GCC_TAR=$GCC-1-src.tar.gz
|
||||||
|
MSVCRT_ZIP=bin-msvcrt-2000-03-27.zip
|
||||||
|
MUMIT_URL=ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/snapshots/gcc-2.95.2-1
|
||||||
|
MUMIT_URL2=ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/runtime
|
||||||
|
|
||||||
|
# this is from my archive
|
||||||
|
|
||||||
|
GCC_PATCH=gcc-2.95.2-libio-patch
|
||||||
|
RHK_URL=http://www.libsdl.org/Xmingw32/crossgcc
|
||||||
|
OPENGL_TAR=opengl.tar.gz
|
||||||
|
DIRECTX_TAR=directx.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 $BINUTILS_TAR $MUMIT_URL
|
||||||
|
download_file $GCC_TAR $MUMIT_URL
|
||||||
|
download_file $MSVCRT_ZIP $MUMIT_URL2
|
||||||
|
download_file $GCC_PATCH $RHK_URL
|
||||||
|
download_file $OPENGL_TAR $RHK_URL
|
||||||
|
download_file $DIRECTX_TAR $RHK_URL
|
||||||
|
}
|
||||||
|
|
||||||
|
install_libs()
|
||||||
|
{
|
||||||
|
echo "Installing binary cross libs and includes"
|
||||||
|
mkdir -p $PREFIX/$TARGET
|
||||||
|
cd $PREFIX
|
||||||
|
unzip -q -o $SRCDIR/$MSVCRT_ZIP
|
||||||
|
cd $PREFIX/$TARGET
|
||||||
|
gzip -dc $SRCDIR/opengl.tar.gz | tar xf -
|
||||||
|
gzip -dc $SRCDIR/directx.tar.gz | tar xf -
|
||||||
|
cd $TOPDIR
|
||||||
|
}
|
||||||
|
|
||||||
|
extract_binutils()
|
||||||
|
{
|
||||||
|
cd $SRCDIR
|
||||||
|
rm -rf $BINUTILS
|
||||||
|
echo "Extracting binutils"
|
||||||
|
gzip -dc $SRCDIR/$BINUTILS_TAR | tar xf -
|
||||||
|
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"
|
||||||
|
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"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cd $TOPDIR
|
||||||
|
}
|
||||||
|
|
||||||
|
extract_gcc()
|
||||||
|
{
|
||||||
|
cd $SRCDIR
|
||||||
|
rm -rf $GCC
|
||||||
|
echo "Extracting gcc"
|
||||||
|
gzip -dc $SRCDIR/$GCC_TAR | tar xf -
|
||||||
|
cd $TOPDIR
|
||||||
|
}
|
||||||
|
|
||||||
|
patch_gcc()
|
||||||
|
{
|
||||||
|
echo "Patching gcc"
|
||||||
|
cd $SRCDIR/$GCC
|
||||||
|
patch -p1 < $SRCDIR/$GCC_PATCH
|
||||||
|
cd $TOPDIR
|
||||||
|
}
|
||||||
|
|
||||||
|
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-gnu-as --with-gnu-ld --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"
|
||||||
|
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"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cd $TOPDIR
|
||||||
|
}
|
||||||
|
|
||||||
|
download_files
|
||||||
|
|
||||||
|
install_libs
|
||||||
|
|
||||||
|
extract_binutils
|
||||||
|
configure_binutils
|
||||||
|
build_binutils
|
||||||
|
install_binutils
|
||||||
|
|
||||||
|
extract_gcc
|
||||||
|
patch_gcc
|
||||||
|
configure_gcc
|
||||||
|
build_gcc
|
||||||
|
install_gcc
|
||||||
|
|
Loading…
Reference in a new issue