diff --git a/.gitignore b/.gitignore index 378eac2..e3ccede 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -build +/build/ +/prefix/ diff --git a/Makefile b/Makefile index 8d7b5d8..3ab87db 100644 --- a/Makefile +++ b/Makefile @@ -40,10 +40,8 @@ fetch: "$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../initfs.toml)" \ "$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../filesystem.toml)" -# Emulation recipes -include mk/qemu.mk -include mk/bochs.mk -include mk/virtualbox.mk +# Cross compiler recipes +include mk/cross.mk # Kernel recipes include mk/kernel.mk @@ -55,6 +53,11 @@ include mk/filesystem.mk # Disk images include mk/disk.mk +# Emulation recipes +include mk/qemu.mk +include mk/bochs.mk +include mk/virtualbox.mk + # CI image target ci-img: FORCE make INSTALLER_FLAGS= build/harddrive.bin.gz build/harddrive-efi.bin.gz build/livedisk.iso build/livedisk-efi.iso diff --git a/mk/cross.mk b/mk/cross.mk new file mode 100644 index 0000000..80c0811 --- /dev/null +++ b/mk/cross.mk @@ -0,0 +1,69 @@ +PREFIX=$(ROOT)/prefix + +binutils: $(PREFIX)/binutils-install + +gcc-freestanding: $(PREFIX)/gcc-freestanding-install + +relibc: $(PREFIX)/relibc-install + +gcc: $(PREFIX)/gcc-install + +$(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" && \ + "$