Makefile 659 B

123456789101112131415161718192021222324252627282930313233343536
  1. TARGET?=
  2. BUILD=target/debug
  3. ifneq ($(TARGET),)
  4. BUILD=target/$(TARGET)/debug
  5. CARGOFLAGS+="--target=$(TARGET)"
  6. CC=$(TARGET)-gcc
  7. endif
  8. .PHONY: all clean fmt test
  9. all: $(BUILD)/libc.a $(BUILD)/libcrt0.a $(BUILD)/openlibm/libopenlibm.a
  10. clean:
  11. cargo clean
  12. make -C tests clean
  13. fmt:
  14. ./fmt.sh
  15. test: all
  16. make -C tests run
  17. $(BUILD)/libc.a:
  18. cargo build $(CARGOFLAGS)
  19. $(BUILD)/libcrt0.a:
  20. cargo build --manifest-path src/crt0/Cargo.toml $(CARGOFLAGS)
  21. $(BUILD)/openlibm: openlibm
  22. rm -rf $@ $@.partial
  23. cp -r $< $@.partial
  24. mv $@.partial $@
  25. $(BUILD)/openlibm/libopenlibm.a: $(BUILD)/openlibm
  26. CC=$(CC) CFLAGS=-fno-stack-protector make -C $< libopenlibm.a