Makefile.src 707 B

12345678910111213141516171819202122232425262728293031323334353637
  1. CROSS_COMPILE=
  2. CC=$(CROSS_COMPILE)gcc
  3. LD=$(CROSS_COMPILE)ld
  4. OBJCOPY=$(CROSS_COMPILE)objcopy
  5. XXD=xxd
  6. CFLAGS=-nostdinc -nostdlib -static -g -m32 -W -Wall -Wextra -Werror -mstack-protector-guard=global
  7. OBJS=hello-world.out interrupt-test.out stack-test.out init.out
  8. SYMS=init.sym
  9. all: $(OBJS) $(SYMS)
  10. mkdir -p build
  11. mv $(OBJS) build
  12. mv $(SYMS) build
  13. %.o: %.c
  14. $(CC) $(CFLAGS) -c -o $@ $<
  15. %.o: %.s
  16. $(CC) $(CFLAGS) -c -o $@ $<
  17. %.out1: %.o script.ld
  18. $(LD) -nostdlib -e main -Ttext 0x40000000 -T script.ld $< -o $@
  19. %.out: %.out1
  20. $(OBJCOPY) --strip-debug $< $@
  21. %.sym: %.out1
  22. $(OBJCOPY) --only-keep-debug $< $@
  23. .PHONY: clean
  24. clean:
  25. -rm -rf build
  26. -rm $(OBJS)
  27. -rm $(SYMS)
  28. -rm compile_commands.json