Makefile 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. override CPPFLAGS += --std=c++1z
  2. override CPPFLAGS += -MMD -MP
  3. override CPPFLAGS += -I../source -I../include
  4. override CPPFLAGS += $(shell cat ../.cxxflags 2> /dev/null | xargs)
  5. override LDFLAGS += -L../out/ -L../lib/
  6. override LDFLAGS += $(shell cat .ldflags 2> /dev/null | xargs)
  7. override LDARCH += $(shell cat .ldarch 2> /dev/null | xargs)
  8. ifeq ($(strip $(LDARCH)),)
  9. override LDLIBS += -lsimple_sdlcore
  10. else
  11. override LDLIBS += $(LDARCH)
  12. endif
  13. override LDLIBS += -lsimple_graphical -lSDL2
  14. ifdef ENABLE_OPENGL_EXAMPLES
  15. override CPPFLAGS += -DENABLE_OPENGL_EXAMPLES
  16. override LDLIBS += -lGL -lGLEW
  17. endif
  18. TEMPDIR := temp
  19. DISTDIR := out
  20. SOURCES := $(shell echo *.cpp)
  21. TARGETS := $(SOURCES:%.cpp=$(DISTDIR)/%)
  22. OBJECTS := $(SOURCES:%.cpp=$(TEMPDIR)/%.o)
  23. DEPENDS := $(OBJECTS:.o=.d)
  24. build: $(TARGETS)
  25. $(DISTDIR)/%: $(TEMPDIR)/%.o ../out/libsimple_graphical.a $(LDARCH) | $(DISTDIR)
  26. $(CXX) $(LDFLAGS) $< $(LDLIBS) -o $@
  27. $(TEMPDIR)/%.o: %.cpp | $(TEMPDIR)
  28. $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
  29. $(TEMPDIR):
  30. @mkdir $@
  31. $(DISTDIR):
  32. @mkdir $@
  33. clean:
  34. @rm $(DEPENDS) 2> /dev/null || true
  35. @rm $(OBJECTS) 2> /dev/null || true
  36. @rmdir $(TEMPDIR) 2> /dev/null || true
  37. @echo Temporaries cleaned!
  38. distclean: clean
  39. @rm $(TARGETS) 2> /dev/null || true
  40. @rmdir $(DISTDIR) 2> /dev/null || true
  41. @echo All clean!
  42. -include $(DEPENDS)
  43. .PRECIOUS : $(OBJECTS)
  44. .PHONY : clean distclean