Makefile 911 B

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