Makefile 933 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. NAME = Pokespire
  2. DEBUG = FALSE
  3. CC = nspire-gcc
  4. CFLAGS = -Wall -W -marm
  5. LD = nspire-ld
  6. LDFLAGS =
  7. ifeq ($(DEBUG),FALSE)
  8. CFLAGS += -Ofast -flto
  9. LDFLAGS += -flto
  10. else
  11. CFLAGS += -O0 -g
  12. LDFLAGS += --debug
  13. endif
  14. ZEHN = genzehn
  15. ZEHNFLAGS = --name "$(NAME)"
  16. SOURCES = $(wildcard src/*.c) art/sprites.c
  17. HEADERS = $(patsubst %.c,%.h,$(SOURCES))
  18. OBJS = $(patsubst %.c,%.o,$(SOURCES))
  19. DISTDIR = bin
  20. ELF = $(DISTDIR)/$(NAME).elf
  21. EXE = $(DISTDIR)/$(NAME).tns
  22. all: $(EXE)
  23. %.o: %.c headers
  24. @echo "CC: $@"
  25. @$(CC) $(CFLAGS) -c $< -o $@
  26. headers: $(SOURCES)
  27. makeheaders $(SOURCES)
  28. art/sprites.c:
  29. @$(MAKE) -C art/
  30. $(ELF): $(OBJS)
  31. @mkdir -p $(DISTDIR)
  32. @echo "LD: $@"
  33. @+$(LD) $^ -o $(ELF) $(LDFLAGS)
  34. $(EXE): $(ELF)
  35. @mkdir -p $(DISTDIR)
  36. @echo "ZEHN: $@"
  37. @$(ZEHN) --input $(ELF) --output $(EXE) $(ZEHNFLAGS)
  38. clean:
  39. rm -rf $(DISTDIR)
  40. rm -f $(OBJS)
  41. rm -f $(HEADERS)
  42. @$(MAKE) -C art/ clean
  43. run: all
  44. tilp -ns $(EXE) > /dev/null