redox/mk/cross.mk

73 lines
2.5 KiB
Makefile
Raw Normal View History

2018-08-17 04:30:54 +02:00
PREFIX=$(ROOT)/prefix
2018-08-17 23:32:43 +02:00
PREFIX_FREESTANDING_PATH=$(PREFIX)/binutils-install/bin:$(PREFIX)/gcc-freestanding-install/bin
PREFIX_PATH=$(PREFIX)/binutils-install/bin:$(PREFIX)/gcc-install/bin
2018-08-17 04:30:54 +02:00
2018-08-17 23:32:43 +02:00
prefix: $(PREFIX)/gcc-install
touch "$@"
2018-08-17 04:30:54 +02:00
$(PREFIX)/binutils.tar.bz2:
mkdir -p "$(@D)"
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/binutils-gdb/-/archive/master/binutils-gdb-master.tar.bz2"
mv $@.partial $@
$(PREFIX)/binutils: $(PREFIX)/binutils.tar.bz2
mkdir -p "$@.partial"
tar --extract --file "$<" --directory "$@.partial" --strip-components=1
mv "$@.partial" "$@"
$(PREFIX)/binutils-install: $(PREFIX)/binutils
rm -rf "$<-build" "$@"
mkdir -p "$<-build" "$@"
cd "$<-build" && \
"$</configure" --target="$(TARGET)" --disable-werror --prefix="$@" && \
make all -j `nproc` && \
make install -j `nproc`
touch "$@"
$(PREFIX)/gcc.tar.bz2:
mkdir -p "$(@D)"
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/gcc/-/archive/redox/gcc-redox.tar.bz2"
mv $@.partial $@
$(PREFIX)/gcc: $(PREFIX)/gcc.tar.bz2
mkdir -p "$@.partial"
tar --extract --file "$<" --directory "$@.partial" --strip-components=1
cd "$@.partial" && ./contrib/download_prerequisites
mv "$@.partial" "$@"
$(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc
rm -rf "$<-freestanding-build" "$@"
mkdir -p "$<-freestanding-build" "$@"
cd "$<-freestanding-build" && \
"$</configure" --target="$(TARGET)" --prefix="$@" --disable-nls --enable-languages=c,c++ --without-headers && \
make all-gcc -j `nproc` && \
make all-target-libgcc -j `nproc` && \
make install-gcc -j `nproc` && \
make install-target-libgcc -j `nproc`
touch "$@"
$(PREFIX)/relibc-install: $(PREFIX)/binutils-install $(PREFIX)/gcc-freestanding-install
2018-08-17 23:21:55 +02:00
rm -rf "$(PREFIX)/relibc-build"
cp -r relibc "$(PREFIX)/relibc-build"
cd $(PREFIX)/relibc-build && \
2018-08-17 23:32:43 +02:00
export PATH="$(PREFIX_FREESTANDING_PATH):$$PATH" && \
2018-08-17 23:21:55 +02:00
rustup target add "$(TARGET)" && \
make clean && \
make all && \
2018-08-17 23:32:43 +02:00
make DESTDIR="$@/usr" install
2018-08-17 04:30:54 +02:00
touch "$@"
$(PREFIX)/gcc-install: $(PREFIX)/gcc $(PREFIX)/relibc-install
rm -rf "$<-build" "$@"
mkdir -p "$<-build" "$@"
cd "$<-build" && \
"$</configure" --target="$(TARGET)" --disable-werror --prefix="$@" --with-sysroot="$(PREFIX)/relibc-install" --disable-nls --enable-languages=c,c++ && \
make all-gcc -j `nproc` && \
make all-target-libgcc -j `nproc` && \
make install-gcc -j `nproc` && \
make install-target-libgcc -j `nproc` && \
make all-target-libstdc++-v3 -j `nproc` && \
make install-target-libstdc++-v3 -j `nproc`
touch "$@"