diff --git a/.gitignore b/.gitignore index 57c6a0f..5eee540 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build local +xomb-local *.tar diff --git a/build.sh b/build.sh index 2a54475..47109b8 100755 --- a/build.sh +++ b/build.sh @@ -29,56 +29,7 @@ mkdir -p mpc-obj # --- Fetch and extract each package --- - -setphase "FETCH BINUTILS" -wget $WFLAGS http://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VER}.tar.bz2 -tar -xf binutils-${BINUTILS_VER}.tar.bz2 - -setphase "FETCH GCC" -wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-core-${GCC_VER}.tar.gz -tar -xf gcc-core-${GCC_VER}.tar.gz -wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-g++-${GCC_VER}.tar.gz -tar -xf gcc-g++-${GCC_VER}.tar.gz -wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-fortran-${GCC_VER}.tar.gz -tar -xf gcc-fortran-${GCC_VER}.tar.gz - -setphase "FETCH GMP" -wget $WFLAGS http://ftp.gnu.org/gnu/gmp/gmp-${GMP_VER}.tar.gz -tar -xf gmp-${GMP_VER}.tar.gz - -setphase "FETCH MPFR" -wget $WFLAGS http://ftp.gnu.org/gnu/mpfr/mpfr-${MPFR_VER}.tar.gz -tar -xf mpfr-${MPFR_VER}.tar.gz - -setphase "FETCH MPC" -wget $WFLAGS http://www.multiprecision.org/mpc/download/mpc-${MPC_VER}.tar.gz -tar -xf mpc-${MPC_VER}.tar.gz - -setphase "FETCH NEWLIB" -wget $WFLAGS ftp://sources.redhat.com/pub/newlib/newlib-${NEWLIB_VER}.tar.gz -tar -xf newlib-${NEWLIB_VER}.tar.gz - - -# --- Patch and push new code into each package --- - -# Fix patches with osname -#PERLCMD="s/{{OSNAME}}/${OSNAME}/g" -#perl -pi -e $PERLCMD *.patch -#perl -pi -e $PERLCMD gcc-files/gcc/config/os.h - -setphase "PATCH BINUTILS" -patch -p0 -d binutils-${BINUTILS_VER} < ../binutils.patch || exit -cp ../binutils-files/ld/emulparams/os_x86_64.sh binutils-${BINUTILS_VER}/ld/emulparams/${OSNAME}_x86_64.sh - -setphase "PATCH GCC" -patch -p0 -d gcc-${GCC_VER} < ../gcc.patch || exit -cp ../gcc-files/gcc/config/os.h gcc-${GCC_VER}/gcc/config/${OSNAME}.h - -setphase "PATCH NEWLIB" -patch -p0 -d newlib-${NEWLIB_VER} < ../newlib.patch || exit -mkdir -p newlib-${NEWLIB_VER}/newlib/libc/sys/${OSNAME} -cp -r ../newlib-files/* newlib-${NEWLIB_VER}/newlib/libc/sys/${OSNAME}/. -cp ../newlib-files/vanilla-syscalls.c newlib-${NEWLIB_VER}/newlib/libc/sys/${OSNAME}/syscalls.c +source ../scripts/fetchandpatch.sh # --- Compile all packages --- diff --git a/devtools.sh b/devtools.sh new file mode 100755 index 0000000..b290e90 --- /dev/null +++ b/devtools.sh @@ -0,0 +1,62 @@ + +source scripts/functions.sh + +# --- Variables --- + +source scripts/nativevars.sh + + +# --- Directory creation --- + +mkdir -p build +mkdir -p $PREFIX +cd build + +setphase "MAKE OBJECT DIRECTORIES" +mkdir -p ncurses-obj +mkdir -p slang-obj +mkdir -p nano-obj + +NANO_VER=2.3.1 +SLANG_VER=2.2.4 +NCURSES_VER=5.9 + +setphase "FETCH NANO" +wget $WFLAGS http://www.nano-editor.org/dist/v2.3/nano-2.3.1.tar.gz +tar -xf nano-2.3.1.tar.gz + +setphase FETCH SLANG +wget $WFLAGS ftp://space.mit.edu/pub/davis/slang/v2.2/slang-$SLANG_VER.tar.gz +tar -xf slang-$SLANG_VER.tar.gz + +setphase FETCH NCURSES +wget $WFLAGS http://ftp.gnu.org/pub/gnu/ncurses/ncurses-$NCURSES_VER.tar.gz +tar -xf ncurses-$NCURSES_VER.tar.gz + + +doPatch nano +doPatch slang +doPatch ncurses + + +setphase "COMPILE NCURSES" +cd ncurses-obj +../ncurses-$NCURSES_VER/configure $CROSSCONFIG --disable-shared ||exit +make || exit +make install || exit +cd .. + +#setphase "COMPILE SLANG" +#cd slang-$SLANG_VER +#./configure $CROSSCONFIG --disable-shared ||exit +#make || exit +#make install || exit +#cd .. + +setphase "COMPILE NANO" +cd nano-obj +../nano-$NANO_VER/configure $CROSSCONFIG --disable-shared ||exit +#--with-slang +make || exit +make install || exit +cd .. diff --git a/native-build.sh b/native-build.sh index 677c786..9c0d587 100755 --- a/native-build.sh +++ b/native-build.sh @@ -3,73 +3,7 @@ source scripts/functions.sh # --- Variables --- -source scripts/config.sh - -PREFIX=`pwd`/${OSNAME}-local - -CROSSCONFIG="--prefix=${PREFIX} --host=${TARGET} --bindir=${PREFIX}/binaries --sysconfdir=${PREFIX}/config --libdir=${PREFIX}/lib --includedir=${PREFIX}/include" - -if [ $CLEAN -eq 1 ]; then - rm -rf $PREFIX build/*/ -fi - -XOMBPATH=`pwd`/../xomb -CROSSPATH=`pwd`/local - -if [ ! -d $XOMBPATH ]; then - XOMBPATH=`pwd`/../xomb -fi - -if [ ! -f $XOMBPATH/app/build/elf.ld ]; then - echo "cannot find xomb $XOMBPATH" - exit -fi - - -#export LIBS="-l:drt0.a -l:syscall.a -l:mindrt.a" -export SHAREDLDFLAGS="-T$XOMBPATH/app/build/elf.ld" -# -L$XOMBPATH/user/c/lib -L$XOMBPATH/runtimes/mindrt" -export LDFLAGS="-static $SHAREDLDFLAGS -L$CROSSPATH/$TARGET" - -export CPPFLAGS="-I$CROSSPATH/$TARGET/include/c++ -I$CROSSPATH/$TARGET/include/c++/$GCC_VER" - -export CFLAGS="-static -O2 $CPPFLAGS" -export CXXFLAGS="$CFLAGS" -# -lsupc++ -lstdc++ -L$CROSSPATH/$TARGET"\ - - -export CC=$TARGET-gcc -export CXX=$TARGET-g++ - -export AR=$TARGET-ar -export AS=$TARGET-as -#DLLTOOL -export LD=$TARGET-ld -#LIPO -export NM=$TARGET-nm -export RANLIB=$TARGET-ranlib -export STRIP=$TARGET-strip -#WINDRES -#WINDMC -export OBJCOPY=$TARGET-objcopy -export OBJDUMP=$TARGET-objdump - - -export CC_FOR_TARGET=$TARGET-gcc -export CXX_FOR_TARGET=$TARGET-g++ - -export AR_FOR_TARGET=$TARGET-ar -export AS_FOR_TARGET=$TARGET-as -#DLLTOOL -export LD_FOR_TARGET=$TARGET-ld -#LIPO -export NM_FOR_TARGET=$TARGET-nm -export RANLIB_FOR_TARGET=$TARGET-ranlib -export STRIP_FOR_TARGET=$TARGET-strip -#WINDRES -#WINDMC -export OBJCOPY_FOR_TARGET=$TARGET-objcopy -export OBJDUMP_FOR_TARGET=$TARGET-objdump +source scripts/nativevars.sh # --- Directory creation --- @@ -90,8 +24,10 @@ mkdir -p ppl-obj mkdir -p cloog-obj fi +# --- Fetch and extract each package --- source ../scripts/fetchandpatch.sh + # --- Compile all packages --- # relevant thread for building static bin utils (and dealing with ppl :) diff --git a/patches/bash.patch b/patches/bash.patch new file mode 100644 index 0000000..655d121 --- /dev/null +++ b/patches/bash.patch @@ -0,0 +1,11 @@ +diff -rupN ../bash-pristine/support/config.sub ./support/config.sub +--- ../bash-pristine/support/config.sub 2011-10-01 17:40:20.889050108 -0400 ++++ ./support/config.sub 2011-10-01 17:41:05.095714117 -0400 +@@ -1247,6 +1247,7 @@ case $os in + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ ++ | -xomb* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ diff --git a/binutils.2.19.patch b/patches/binutils.2.19.patch similarity index 100% rename from binutils.2.19.patch rename to patches/binutils.2.19.patch diff --git a/binutils.2.2X.patch b/patches/binutils.2.2X.patch similarity index 100% rename from binutils.2.2X.patch rename to patches/binutils.2.2X.patch diff --git a/binutils.patch b/patches/binutils.patch similarity index 100% rename from binutils.patch rename to patches/binutils.patch diff --git a/cloog.patch b/patches/cloog.patch similarity index 100% rename from cloog.patch rename to patches/cloog.patch diff --git a/gcc.patch b/patches/gcc.patch similarity index 100% rename from gcc.patch rename to patches/gcc.patch diff --git a/gmp.patch b/patches/gmp.patch similarity index 100% rename from gmp.patch rename to patches/gmp.patch diff --git a/llvm.patch b/patches/llvm.patch similarity index 100% rename from llvm.patch rename to patches/llvm.patch diff --git a/mpc.patch b/patches/mpc.patch similarity index 100% rename from mpc.patch rename to patches/mpc.patch diff --git a/mpfr.patch b/patches/mpfr.patch similarity index 100% rename from mpfr.patch rename to patches/mpfr.patch diff --git a/patches/nano.patch b/patches/nano.patch new file mode 100644 index 0000000..39c9e38 --- /dev/null +++ b/patches/nano.patch @@ -0,0 +1,11 @@ +diff -rupN ../../nano-2.3.1/config.sub ./config.sub +--- ../../nano-2.3.1/config.sub 2011-10-04 16:11:16.241753413 -0400 ++++ ./config.sub 2011-10-04 16:12:16.275083131 -0400 +@@ -1284,6 +1284,7 @@ case $os in + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ ++ | -xomb* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ diff --git a/patches/ncurses.patch b/patches/ncurses.patch new file mode 100644 index 0000000..60aafec --- /dev/null +++ b/patches/ncurses.patch @@ -0,0 +1,11 @@ +diff -rupN ../../ncurses-5.9/config.sub ./config.sub +--- ../../ncurses-5.9/config.sub 2011-10-04 16:33:36.655006083 -0400 ++++ ./config.sub 2011-10-04 16:35:33.041665748 -0400 +@@ -1306,6 +1306,7 @@ case $os in + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ ++ | -xomb* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ diff --git a/newlib.patch b/patches/newlib.patch similarity index 100% rename from newlib.patch rename to patches/newlib.patch diff --git a/ppl.patch b/patches/ppl.patch similarity index 100% rename from ppl.patch rename to patches/ppl.patch diff --git a/patches/slang.patch b/patches/slang.patch new file mode 100644 index 0000000..5feb61a --- /dev/null +++ b/patches/slang.patch @@ -0,0 +1,11 @@ +diff -rupN ../../slang-2.2.4/autoconf/config.sub ./autoconf/config.sub +--- ../../slang-2.2.4/autoconf/config.sub 2011-10-04 16:21:38.511715949 -0400 ++++ ./autoconf/config.sub 2011-10-04 16:22:31.498379427 -0400 +@@ -1290,6 +1290,7 @@ case $os in + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ ++ | -xomb* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ diff --git a/scripts/fetchandpatch.sh b/scripts/fetchandpatch.sh index be96c94..8e16f5f 100644 --- a/scripts/fetchandpatch.sh +++ b/scripts/fetchandpatch.sh @@ -48,33 +48,23 @@ fi # diff -rupN -setphase "PATCH BINUTILS" -patch -p0 -d binutils-${BINUTILS_VER} < ../binutils.patch || exit +doPatch binutils cp ../binutils-files/ld/emulparams/os_x86_64.sh binutils-${BINUTILS_VER}/ld/emulparams/${OSNAME}_x86_64.sh setphase "PATCH GMP" -patch -p1 -d gmp-${GMP_VER} < ../gmp.patch || exit - -setphase "PATCH MPFR" -patch -p0 -d mpfr-${MPFR_VER} < ../mpfr.patch || exit - -setphase "PATCH MPC" -patch -p0 -d mpc-${MPC_VER} < ../mpc.patch || exit +patch -p1 -d gmp-${GMP_VER} < ../patches/gmp.patch || exit +doPatch mpfr +doPatch mpc if [ $EXTRAS -eq 1 ]; then -setphase "PATCH PPL" -patch -p0 -d ppl-${PPL_VER} < ../ppl.patch || exit - -setphase "PATCH CLOOG" -patch -p0 -d cloog-${CLOOG_VER} < ../cloog.patch || exit +doPatch ppl +doPatch cloog fi -setphase "PATCH GCC" -patch -p0 -d gcc-${GCC_VER} < ../gcc.patch || exit +doPatch gcc cp ../gcc-files/gcc/config/os.h gcc-${GCC_VER}/gcc/config/${OSNAME}.h -setphase "PATCH NEWLIB" -patch -p0 -d newlib-${NEWLIB_VER} < ../newlib.patch || exit +doPatch newlib mkdir -p newlib-${NEWLIB_VER}/newlib/libc/sys/${OSNAME} cp -r ../newlib-files/* newlib-${NEWLIB_VER}/newlib/libc/sys/${OSNAME}/. cp ../newlib-files/vanilla-syscalls.c newlib-${NEWLIB_VER}/newlib/libc/sys/${OSNAME}/syscalls.c diff --git a/scripts/functions.sh b/scripts/functions.sh index 47eeb3a..e5ba088 100644 --- a/scripts/functions.sh +++ b/scripts/functions.sh @@ -9,6 +9,7 @@ function setphase { } # --- Argument processing --- +#prcessArgs { NOTEST=1 EXTRAS=1 CLEAN=0 @@ -19,5 +20,20 @@ for arg in $@; do --extras) EXTRA=1;; esac done +#} + +# --- patching --- + +function toUpper { + UPPER=`echo $1 | tr '[:lower:]' '[:upper:]'` +} +function doPatch { + toUpper $1 + setphase "PATCH $UPPER" + + local VERSION=${UPPER}_VER + eval VER=\${$VERSION} + patch -p0 -d $1-$VER < ../patches/$1.patch || exit +} diff --git a/scripts/nativevars.sh b/scripts/nativevars.sh new file mode 100644 index 0000000..218aa18 --- /dev/null +++ b/scripts/nativevars.sh @@ -0,0 +1,67 @@ +source scripts/config.sh + +PREFIX=`pwd`/${OSNAME}-local + +CROSSCONFIG="--prefix=${PREFIX} --host=${TARGET} --bindir=${PREFIX}/binaries --sysconfdir=${PREFIX}/config --libdir=${PREFIX}/lib --includedir=${PREFIX}/include" + +if [ $CLEAN -eq 1 ]; then + rm -rf $PREFIX build/*/ +fi + +XOMBPATH=`pwd`/../xomb +CROSSPATH=`pwd`/local + +if [ ! -d $XOMBPATH ]; then + XOMBPATH=`pwd`/../xomb +fi + +if [ ! -f $XOMBPATH/app/build/elf.ld ]; then + echo "cannot find xomb $XOMBPATH" + exit +fi + + +#export LIBS="-l:drt0.a -l:syscall.a -l:mindrt.a" +export SHAREDLDFLAGS="-T$XOMBPATH/app/build/elf.ld" +# -L$XOMBPATH/user/c/lib -L$XOMBPATH/runtimes/mindrt" +export LDFLAGS="-static $SHAREDLDFLAGS -L$CROSSPATH/$TARGET" + +export CPPFLAGS="-I$CROSSPATH/$TARGET/include/c++ -I$CROSSPATH/$TARGET/include/c++/$GCC_VER" + +export CFLAGS="-static -O2 $CPPFLAGS" +export CXXFLAGS="$CFLAGS" +# -lsupc++ -lstdc++ -L$CROSSPATH/$TARGET"\ + + +export CC=$TARGET-gcc +export CXX=$TARGET-g++ + +export AR=$TARGET-ar +export AS=$TARGET-as +#DLLTOOL +export LD=$TARGET-ld +#LIPO +export NM=$TARGET-nm +export RANLIB=$TARGET-ranlib +export STRIP=$TARGET-strip +#WINDRES +#WINDMC +export OBJCOPY=$TARGET-objcopy +export OBJDUMP=$TARGET-objdump + + +export CC_FOR_TARGET=$TARGET-gcc +export CXX_FOR_TARGET=$TARGET-g++ + +export AR_FOR_TARGET=$TARGET-ar +export AS_FOR_TARGET=$TARGET-as +#DLLTOOL +export LD_FOR_TARGET=$TARGET-ld +#LIPO +export NM_FOR_TARGET=$TARGET-nm +export RANLIB_FOR_TARGET=$TARGET-ranlib +export STRIP_FOR_TARGET=$TARGET-strip +#WINDRES +#WINDMC +export OBJCOPY_FOR_TARGET=$TARGET-objcopy +export OBJDUMP_FOR_TARGET=$TARGET-objdump