diff options
Diffstat (limited to 'kos32-gcc/build.sh')
-rwxr-xr-x | kos32-gcc/build.sh | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/kos32-gcc/build.sh b/kos32-gcc/build.sh new file mode 100755 index 0000000..37fb92c --- /dev/null +++ b/kos32-gcc/build.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +set -x +COMPILER=x86_64-linux-kos32-4.8.5.7z +SDK=sdk-28-10-16.7z + +SVN_URL=svn://kolibrios.org +SDK_URL=http://ftp.kolibrios.org/users/Serge/new/Toolchain/$SDK +COMPILER_URL=http://ftp.kolibrios.org/users/Serge/new/Toolchain/$COMPILER + +INSTALL_PATH=/opt/netsurf/kos32-gcc +CROSS_PATH=$INSTALL_PATH/cross/autobuild/tools/ +ENV_PATH=$INSTALL_PATH/env +OBJ_PATH=$ENV_PATH/obj + +SVN_CHECKOUT=$ENV_PATH/kolibrios + +SHA512_SDK=e37226c1421104f9025c644277080a0adad1cb5db560fe04bbcc6c41797fe87e57d337da314bde4abc4decfbedf3087ffb16b1d71d2587e317933204255ead1a +SHA512_COMPILER=28555b2247848c5d85be6b18e10dc903b9a161179230b65d35f7f3bf40dff3b135972e84f6c25db23fee2a90c7a96b5a755dba9a2eaa9dbc4735e717436db1ce + +# clean +# rm -rf $INSTALL_PATH + +# set up directories +for dir in $INSTALL_PATH $CROSS_PATH $ENV_PATH $OBJ_PATH; do + mkdir -p $dir +done + +# download sdk and friends +svn checkout ${SVN_URL} ${SVN_CHECKOUT} +wget -v ${COMPILER_URL} --directory-prefix=${CROSS_PATH} +wget -v ${SDK_URL} --directory-prefix=${CROSS_PATH} + +# verify checksums +for file in COMPILER SDK; do + VARNAME=SHA512_${file} + [[ $(sha512sum $CROSS_PATH/${!file} | awk '{print $1}') != ${!VARNAME} ]] && exit 1 +done + +# set up toolchain +pushd $PWD + +cd $CROSS_PATH +7z x $COMPILER + +mv $SDK win32/ + +cd win32 +7z x $SDK + +popd + +# fix up environment +PATH=${PATH}:/opt/netsurf/kos32-gcc/cross/autobuild/tools/win32/bin +GCC="kos32-gcc -c -fno-ident -fomit-frame-pointer -U__WIN32__ -I${SVN_CHECKOUT}/contrib/sdk/sources/newlib/libc/include -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U__BSD_VISIBLE" +ASM=fasm + +# build stuff +$GCC ${SVN_CHECKOUT}/programs/fs/unzip60/kolibri/dirent.c -o ${OBJ_PATH}/dirent.o +$GCC ${SVN_CHECKOUT}/programs/develop/libraries/iconv/iconv.c -o ${OBJ_PATH}/iconv.o +$ASM ${SVN_CHECKOUT}/contrib/C_Layer/ASM/loadhttp.asm ${OBJ_PATH}/loadhttp.obj + + + |