Makefile 935 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. NAME = WalrusRPG
  2. DEBUG = FALSE
  3. CC = nspire-g++
  4. CFLAGS = -Wall -W -marm -std=gnu++98 -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. INCDIR = include
  13. SRCDIR = src
  14. SOURCES_C = art/sprites.c $(wildcard SRCDIR/*.c)
  15. SOURCES_CPP = $(wildcard SRCDIR/*.cpp)
  16. OBJS = $(patsubst %.c,%.o,$(SOURCES_C)) $(patsubst %.cpp,%.o,$(SOURCES_CPP))
  17. DISTDIR = bin
  18. ELF = $(DISTDIR)/$(NAME).elf
  19. EXE = $(DISTDIR)/$(NAME).tns
  20. all: $(EXE)
  21. %.o: %.c %.cpp
  22. @echo "CC: $@"
  23. @$(CC) $(CFLAGS) -I$(INCDIR) -c $< -o $@
  24. art/sprites.c:
  25. @$(MAKE) -C art/
  26. $(ELF): $(OBJS)
  27. @mkdir -p $(DISTDIR)
  28. @echo "CC: $@"
  29. @+$(CC) $^ -o $(ELF) $(CFLAGS)
  30. $(EXE): $(ELF)
  31. @mkdir -p $(DISTDIR)
  32. @echo "ZEHN: $@"
  33. @$(ZEHN) --input $(ELF) --output $(EXE) $(ZEHNFLAGS)
  34. clean:
  35. echo $(OBJS)
  36. rm -rf $(DISTDIR)
  37. rm -f $(OBJS)
  38. @$(MAKE) -C art/ clean
  39. run: all
  40. tilp -ns $(EXE) > /dev/null