Merge branch 'relibc'
This commit is contained in:
commit
e1b7b0e8cb
16 changed files with 156 additions and 63 deletions
|
@ -1,4 +1,4 @@
|
|||
build/filesystem.bin: filesystem.toml build/bootloader build/kernel
|
||||
build/filesystem.bin: filesystem.toml build/bootloader build/kernel prefix
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
rm -rf $@ $@.partial build/filesystem/
|
||||
dd if=/dev/zero of=$@.partial bs=1048576 count=256
|
||||
|
@ -8,7 +8,10 @@ build/filesystem.bin: filesystem.toml build/bootloader build/kernel
|
|||
cargo run --manifest-path redoxfs/Cargo.toml --release --bin redoxfs -- $@.partial build/filesystem/
|
||||
sleep 2
|
||||
pgrep redoxfs
|
||||
cp filesystem.toml build/bootloader build/kernel build/filesystem/
|
||||
cp $< build/filesystem/filesystem.toml
|
||||
cp build/bootloader build/filesystem/bootloader
|
||||
cp build/kernel build/filesystem/kernel
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
cargo run --manifest-path installer/Cargo.toml --release -- $(INSTALLER_FLAGS) -c $< build/filesystem/
|
||||
sync
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
build/initfs.tag: initfs.toml
|
||||
build/initfs.tag: initfs.toml prefix
|
||||
cd kernel && xargo clean
|
||||
rm -rf build/initfs
|
||||
mkdir -p build/initfs
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
cargo run --manifest-path installer/Cargo.toml -- $(INSTALLER_FLAGS) -c $< build/initfs/
|
||||
touch $@
|
||||
|
||||
build/initfs_live.tag: initfs_live.toml
|
||||
build/initfs_live.tag: initfs_live.toml prefix
|
||||
cd kernel && xargo clean
|
||||
rm -rf build/initfs_live
|
||||
mkdir -p build/initfs_live
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
cargo run --manifest-path installer/Cargo.toml -- $(INSTALLER_FLAGS) -c $< build/initfs_live/
|
||||
touch $@
|
||||
|
|
|
@ -16,6 +16,8 @@ build/kernel: kernel/linkers/$(ARCH).ld build/libkernel.a
|
|||
|
||||
build/kernel_live: kernel/linkers/$(ARCH).ld build/libkernel_live.a build/live.o
|
||||
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel_live.a build/live.o
|
||||
objcopy --only-keep-debug $@ $@.sym
|
||||
objcopy --strip-debug $@
|
||||
|
||||
build/live.o: build/filesystem.bin
|
||||
#TODO: More general use of $(ARCH)
|
||||
|
|
75
mk/prefix.mk
Normal file
75
mk/prefix.mk
Normal file
|
@ -0,0 +1,75 @@
|
|||
PREFIX=$(ROOT)/prefix
|
||||
|
||||
PREFIX_BINUTILS_PATH=$(PREFIX)/binutils-install/bin
|
||||
PREFIX_FREESTANDING_PATH=$(PREFIX_BINUTILS_PATH):$(PREFIX)/gcc-freestanding-install/bin
|
||||
PREFIX_PATH=$(PREFIX_BINUTILS_PATH):$(PREFIX)/gcc-install/bin
|
||||
|
||||
prefix: $(PREFIX)/gcc-install
|
||||
touch "$@"
|
||||
|
||||
$(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" "$@"
|
||||
touch "$@"
|
||||
|
||||
$(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" "$@"
|
||||
touch "$@"
|
||||
|
||||
$(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc
|
||||
rm -rf "$<-freestanding-build" "$@"
|
||||
mkdir -p "$<-freestanding-build" "$@"
|
||||
cd "$<-freestanding-build" && \
|
||||
export PATH="$(PREFIX_BINUTILS_PATH):$$PATH" && \
|
||||
"$</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
|
||||
rm -rf "$@"
|
||||
cd relibc && \
|
||||
export PATH="$(PREFIX_FREESTANDING_PATH):$$PATH" && \
|
||||
rustup target add "$(TARGET)" && \
|
||||
make all && \
|
||||
make DESTDIR="$@/usr" install
|
||||
touch "$@"
|
||||
|
||||
$(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-install
|
||||
rm -rf "$<-build" "$@"
|
||||
mkdir -p "$<-build" "$@"
|
||||
cd "$<-build" && \
|
||||
export PATH="$(PREFIX_FREESTANDING_PATH):$$PATH" && \
|
||||
"$</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 "$@"
|
Loading…
Add table
Add a link
Reference in a new issue