Makefile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. NAME = WalrusRPG
  2. DEBUG = FALSE
  3. CFLAGS_COMMON = -Wall -W -marm -I include -I art
  4. ifeq ($(DEBUG),FALSE)
  5. CFLAGS_COMMON += -Ofast -flto
  6. else
  7. CFLAGS_COMMON += -O0 -g
  8. endif
  9. CC = nspire-gcc
  10. CFLAGS = $(CFLAGS_COMMON) -std=gnu11
  11. CPP = nspire-g++
  12. CPPFLAGS = $(CFLAGS_COMMON) -std=gnu++98
  13. LD = arm-none-eabi-ld.gold
  14. LDFLAGS =
  15. ZEHN = genzehn
  16. ZEHNFLAGS = --name "$(NAME)"
  17. INCDIR = include
  18. SRCDIR = src
  19. SOURCES_C = art/sprites.c $(wildcard $(SRCDIR)/*.c)
  20. SOURCES_CPP = $(wildcard $(SRCDIR)/*.cpp)
  21. OBJS = $(patsubst %.c,%.o,$(SOURCES_C)) $(patsubst %.cpp,%.o,$(SOURCES_CPP))
  22. DISTDIR = bin
  23. ELF = $(DISTDIR)/$(NAME).elf
  24. EXE = $(DISTDIR)/$(NAME).tns
  25. all: $(EXE)
  26. %.o: %.c
  27. @echo "CC: $@"
  28. @$(CC) $(CFLAGS) -I$(INCDIR) -c $< -o $@
  29. %.o: %.cpp
  30. @echo "CPP: $@"
  31. @$(CPP) $(CPPFLAGS) -I$(INCDIR) -c $< -o $@
  32. art/sprites.c:
  33. @$(MAKE) -C art/
  34. $(ELF): $(OBJS)
  35. @mkdir -p $(DISTDIR)
  36. @echo "CC: $@"
  37. @+$(LD) $^ -o $(ELF) $(LDFLAGS)
  38. $(EXE): $(ELF)
  39. @mkdir -p $(DISTDIR)
  40. @echo "ZEHN: $@"
  41. @$(ZEHN) --input $(ELF) --output $(EXE) $(ZEHNFLAGS)
  42. clean:
  43. rm -rf $(DISTDIR)
  44. rm -f $(OBJS)
  45. @$(MAKE) -C art/ clean
  46. run: all
  47. tilp -ns $(EXE) > /dev/null