diff --git a/Makefile b/Makefile index d145e2019daf3a54de10d5d4cefec32c41fc789c..ab51c74061c69231c8135fae0a2756c16a0b7632 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,36 @@ +TARGET?= + +BUILD=target/debug +ifneq ($(TARGET),) + BUILD=target/$(TARGET)/debug + CARGOFLAGS+="--target=$(TARGET)" + CC=$(TARGET)-gcc +endif + .PHONY: all clean fmt test -all: openlibm/libopenlibm.a target/debug/libc.a target/debug/libcrt0.a - cargo build +all: $(BUILD)/libc.a $(BUILD)/libcrt0.a $(BUILD)/openlibm/libopenlibm.a clean: cargo clean - make -C openlibm clean make -C tests clean fmt: ./fmt.sh -test: openlibm/libopenlibm.a +test: all make -C tests run -target/debug/libc.a: - cargo build +$(BUILD)/libc.a: + cargo build $(CARGOFLAGS) + +$(BUILD)/libcrt0.a: + cargo build --manifest-path src/crt0/Cargo.toml $(CARGOFLAGS) -target/debug/libcrt0.a: - cargo build --manifest-path src/crt0/Cargo.toml +$(BUILD)/openlibm: openlibm + rm -rf $@ $@.partial + cp -r $< $@.partial + mv $@.partial $@ -openlibm/libopenlibm.a: - CFLAGS=-fno-stack-protector make -C openlibm libopenlibm.a +$(BUILD)/openlibm/libopenlibm.a: $(BUILD)/openlibm + CC=$(CC) CFLAGS=-fno-stack-protector make -C $< libopenlibm.a