Makefile 863 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. NAME = Pokespire
  2. DEBUG = FALSE
  3. GCC = nspire-gcc
  4. GCCFLAGS = -Wall -W -marm
  5. ifeq ($(DEBUG),FALSE)
  6. GCCFLAGS += -Ofast -flto
  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. SOURCES = $(wildcard src/*.c) art/sprites.c
  16. HEADERS = $(patsubst %.c,%.h,$(SOURCES))
  17. OBJS = $(patsubst %.c,%.o,$(SOURCES))
  18. DISTDIR = bin
  19. all: exe
  20. %.o: %.c headers
  21. @$(GCC) $(GCCFLAGS) -c $< -o $@
  22. headers: sprites
  23. makeheaders $(SOURCES)
  24. sprites:
  25. @$(MAKE) -C art/
  26. exe: $(OBJS)
  27. @mkdir -p $(DISTDIR)
  28. $(LD) $^ -o $(DISTDIR)/$(NAME).elf $(LDFLAGS)
  29. $(ZEHN) --input $(DISTDIR)/$(NAME).elf --output $(DISTDIR)/$(NAME).tns $(ZEHNFLAGS)
  30. ifeq ($(DEBUG),FALSE)
  31. @rm -f $(DISTDIR)/*.gdb
  32. endif
  33. clean:
  34. rm -rf $(DISTDIR) $(OBJS) $(HEADERS)
  35. @$(MAKE) -C art/ clean
  36. run: all
  37. tilp -ns $(DISTDIR)/$(NAME).tns > /dev/null