Makefile 935 B

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