2017-05-12 05:19:31 +02:00
|
|
|
build/libkernel.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* build/initfs.tag
|
2017-07-13 22:00:55 +02:00
|
|
|
# Temporary fix for https://github.com/redox-os/redox/issues/963 allowing to build on macOS
|
|
|
|
ifeq ($(UNAME),Darwin)
|
2017-10-01 22:25:07 +02:00
|
|
|
cd kernel && CC=$(ARCH)-elf-gcc AR=$(ARCH)-elf-ar CFLAGS=-ffreestanding xargo INITFS_FOLDER=$(ROOT)/build/initfs rustc --lib --target $(KTARGET) --release -- -C soft-float --emit link=../$@
|
2017-07-13 22:00:55 +02:00
|
|
|
else
|
2017-10-01 22:25:07 +02:00
|
|
|
cd kernel && INITFS_FOLDER=$(ROOT)/build/initfs xargo rustc --lib --target $(KTARGET) --release -- -C soft-float --emit link=../$@
|
2017-07-13 22:00:55 +02:00
|
|
|
endif
|
2017-01-05 22:07:20 +01:00
|
|
|
|
2017-10-01 22:25:07 +02:00
|
|
|
build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* build/initfs_live.tag
|
|
|
|
cd kernel && INITFS_FOLDER=$(ROOT)/build/initfs_live xargo rustc --lib --features live --target $(KTARGET) --release -- -C soft-float --emit link=../$@
|
2017-01-05 22:07:20 +01:00
|
|
|
|
2017-09-20 04:36:44 +02:00
|
|
|
build/kernel: kernel/linkers/$(ARCH).ld build/libkernel.a
|
|
|
|
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel.a
|
2017-01-05 22:07:20 +01:00
|
|
|
|
2017-09-20 04:36:44 +02:00
|
|
|
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
|
|
|
|
|
|
|
|
build/live.o: build/filesystem.bin
|
|
|
|
#TODO: More general use of $(ARCH)
|
|
|
|
objcopy -I binary -O elf64-x86-64 -B i386:x86-64 $< $@ \
|
|
|
|
--redefine-sym _binary_build_filesystem_bin_start=__live_start \
|
|
|
|
--redefine-sym _binary_build_filesystem_bin_end=__live_end \
|
|
|
|
--redefine-sym _binary_build_filesystem_bin_size=__live_size
|