Makefile 785 B

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