diff --git a/cook.sh b/cook.sh index 7de389fb2196e26bcd6c18d9fd614363162b9f31..713296153074440adfb75ef7de84fc931b048b14 100755 --- a/cook.sh +++ b/cook.sh @@ -62,7 +62,12 @@ function op { then if [ ! -d source ] then - git clone --recursive "$GIT" source + if [ -n "$BRANCH" ] + then + git clone --recursive "$GIT" -b "$BRANCH" source + else + git clone --recursive "$GIT" source + fi fi pushd source > /dev/null diff --git a/recipes/gcc/recipe.sh b/recipes/gcc/recipe.sh new file mode 100644 index 0000000000000000000000000000000000000000..7554b5cd9a0b74d03023af628d527a9a334c6bf5 --- /dev/null +++ b/recipes/gcc/recipe.sh @@ -0,0 +1,60 @@ +GIT=https://github.com/redox-os/gcc.git +BRANCH=redox + +HOST=x86_64-elf-redox +export AR="${HOST}-ar" +export AS="${HOST}-as" +export CC="${HOST}-gcc" +export CXX="${HOST}-g++" +export LD="${HOST}-ld" +export NM="${HOST}-nm" +export OBJCOPY="${HOST}-objcopy" +export OBJDUMP="${HOST}-objdump" +export RANLIB="${HOST}-ranlib" +export READELF="${HOST}-readelf" +export STRIP="${HOST}-strip" + +function recipe_version { + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + return 1 +} + +function recipe_update { + echo "skipping update" + return 1 +} + +function recipe_build { + ./contrib/download_prerequisites + cp config.sub gmp/config.sub + cp config.sub isl/config.sub + cp config.sub mpfr/config.sub + cp -f config.sub mpc/config.sub + pushd libstdc++-v3 + autoconf2.64 + popd + + mkdir build + cd build + ../configure --host=${HOST} --target=${HOST} --prefix=/ --enable-static --disable-shared --disable-dlopen --disable-nls --enable-languages=c --without-headers + make all-gcc all-target-libgcc + return 1 +} + +function recipe_test { + echo "skipping test" + return 1 +} + +function recipe_clean { + cd build + make clean + return 1 +} + +function recipe_stage { + dest="$(realpath $1)" + cd build + make DESTDIR="$dest" install-gcc install-target-libgcc + return 1 +} diff --git a/recipes/gnu-binutils/recipe.sh b/recipes/gnu-binutils/recipe.sh new file mode 100644 index 0000000000000000000000000000000000000000..51040bb82e92d48ede750fe7df1be3bd38409213 --- /dev/null +++ b/recipes/gnu-binutils/recipe.sh @@ -0,0 +1,50 @@ +GIT=https://github.com/redox-os/binutils-gdb.git + +HOST=x86_64-elf-redox +export AR="${HOST}-ar" +export AS="${HOST}-as" +export CC="${HOST}-gcc" +export CXX="${HOST}-g++" +export LD="${HOST}-ld" +export NM="${HOST}-nm" +export OBJCOPY="${HOST}-objcopy" +export OBJDUMP="${HOST}-objdump" +export RANLIB="${HOST}-ranlib" +export READELF="${HOST}-readelf" +export STRIP="${HOST}-strip" + +function recipe_version { + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + return 1 +} + +function recipe_update { + echo "skipping update" + return 1 +} + +function recipe_build { + mkdir build + cd build + ../configure --host=${HOST} --target=${HOST} --prefix=/ --with-sysroot=/usr/x86_64-elf-redox --disable-gdb --disable-nls --disable-werror + make + return 1 +} + +function recipe_test { + echo "skipping test" + return 1 +} + +function recipe_clean { + cd build + make clean + return 1 +} + +function recipe_stage { + dest="$(realpath $1)" + cd build + make DESTDIR="$dest" install + return 1 +} diff --git a/recipes/newlib/recipe.sh b/recipes/newlib/recipe.sh new file mode 100644 index 0000000000000000000000000000000000000000..b2aef6c526afd56cfc5ce8e508f8e1131f84b8e2 --- /dev/null +++ b/recipes/newlib/recipe.sh @@ -0,0 +1,59 @@ +GIT=https://github.com/redox-os/newlib.git +BRANCH=redox + +CC= + +HOST=x86_64-elf-redox + +function recipe_version { + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + return 1 +} + +function recipe_update { + echo "skipping update" + return 1 +} + +function recipe_build { + pushd newlib/libc/sys + aclocal-1.11 -I ../.. + autoconf + automake-1.11 --cygnus Makefile + popd + + pushd newlib/libc/sys/redox + aclocal-1.11 -I ../../.. + autoconf + automake-1.11 --cygnus Makefile + popd + + mkdir build + cd build + + ../configure --target="${HOST}" --prefix=/ + make + + return 1 +} + +function recipe_test { + echo "skipping test" + return 1 +} + +function recipe_clean { + cd build + make clean + return 1 +} + +function recipe_stage { + dest="$(realpath $1)" + cd build + make DESTDIR="$dest" install + cd "$dest" + mv x86_64-elf-redox/* ./ + rmdir x86_64-elf-redox + return 1 +}