Makefile 821 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. OBJS = $(patsubst %.c,%.o,$(SOURCES))
  18. DISTDIR = bin
  19. ELF = $(DISTDIR)/$(NAME).elf
  20. EXE = $(DISTDIR)/$(NAME).tns
  21. all: $(EXE)
  22. %.o: %.c
  23. @echo "CC: $@"
  24. @$(CC) $(CFLAGS) -c $< -o $@
  25. art/sprites.c:
  26. @$(MAKE) -C art/
  27. $(ELF): $(OBJS)
  28. @mkdir -p $(DISTDIR)
  29. @echo "LD: $@"
  30. @+$(LD) $^ -o $(ELF) $(LDFLAGS)
  31. $(EXE): $(ELF)
  32. @mkdir -p $(DISTDIR)
  33. @echo "ZEHN: $@"
  34. @$(ZEHN) --input $(ELF) --output $(EXE) $(ZEHNFLAGS)
  35. clean:
  36. rm -rf $(DISTDIR)
  37. rm -f $(OBJS)
  38. @$(MAKE) -C art/ clean
  39. run: all
  40. tilp -ns $(EXE) > /dev/null