Makefile 590 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. TARGET = lfs
  2. CC = gcc
  3. AR = ar
  4. SIZE = size
  5. SRC += $(wildcard *.c emubd/*.c)
  6. OBJ := $(SRC:.c=.o)
  7. DEP := $(SRC:.c=.d)
  8. ASM := $(SRC:.c=.s)
  9. ifdef DEBUG
  10. CFLAGS += -O0 -g3
  11. else
  12. CFLAGS += -O2
  13. endif
  14. ifdef WORD
  15. CFLAGS += -m$(WORD)
  16. endif
  17. CFLAGS += -I.
  18. CFLAGS += -std=c99 -Wall -pedantic
  19. all: $(TARGET)
  20. asm: $(ASM)
  21. size: $(OBJ)
  22. $(SIZE) -t $^
  23. -include $(DEP)
  24. $(TARGET): $(OBJ)
  25. $(CC) $(CFLAGS) $^ $(LFLAGS) -o $@
  26. %.a: $(OBJ)
  27. $(AR) rcs $@ $^
  28. %.o: %.c
  29. $(CC) -c -MMD $(CFLAGS) $< -o $@
  30. %.s: %.c
  31. $(CC) -S $(CFLAGS) $< -o $@
  32. clean:
  33. rm -f $(TARGET)
  34. rm -f $(OBJ)
  35. rm -f $(DEP)
  36. rm -f $(ASM)