Makefile 990 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. DEBUG = FALSE
  2. GCC = nspire-gcc
  3. GCCFLAGS = -Wall -W -marm
  4. ifeq ($(DEBUG),FALSE)
  5. GCCFLAGS += -Os
  6. else
  7. GCCFLAGS += -O0 -g
  8. LDFLAGS += --debug
  9. endif
  10. AS = nspire-as
  11. GXX = nspire-g++
  12. LD = nspire-ld-bflt
  13. LDFLAGS =
  14. CPPOBJS = $(patsubst %.cpp,%.o,$(wildcard *.cpp))
  15. OBJS = $(patsubst %.c,%.o,$(wildcard *.c)) $(patsubst %.S,%.o,$(wildcard *.S)) $(CPPOBJS) n2DLib/n2DLib.o art/sprites.o
  16. ifneq ($(strip $(CPPOBJS)),)
  17. LDFLAGS += --cpp
  18. endif
  19. SOURCES = $(wildcard *.c) $(wildcard *.S) $(wildcard *.cpp) art/sprites.c
  20. EXE = pokespire.tns
  21. DISTDIR = bin
  22. vpath %.tns $(DISTDIR)
  23. all: $(EXE)
  24. %.o: %.c headers
  25. $(GCC) $(GCCFLAGS) -c $< -o $@
  26. %.o: %.cpp headers
  27. $(GXX) $(GCCFLAGS) -c $< -o $@
  28. %.o: %.S headers
  29. $(AS) -c $< -o $@
  30. headers: sprites
  31. makeheaders $(SOURCES)
  32. sprites:
  33. $(MAKE) -C art/
  34. $(EXE): $(OBJS)
  35. mkdir -p $(DISTDIR)
  36. $(LD) $^ -o $(DISTDIR)/$@ $(LDFLAGS)
  37. ifeq ($(DEBUG),FALSE)
  38. @rm -f $(DISTDIR)/*.gdb
  39. endif
  40. clean:
  41. rm -f *.h *.o *.elf $(DISTDIR)/*.gdb $(DISTDIR)/$(EXE) $(OBJS)