SHELL := /bin/sh CXX := g++ # NOTE: have to set -O or -O1 here to get warnings for uninitialized variables CXXFLAGS := -std=c++11 -g -ggdb3 -Wall -O -Wall -Wuninitialized \ -Iinclude \ -I/usr/include/SDL2 \ -Iext/stb_libs \ -Iext/tinygltf EXAMPLEDIR := examples OBJDIR := build SRCDIR := src LIBNAME := libTangerine.a # NOTE: optional library settings CXXFLAGS += -DTANGERINE_GL_DEBUG_QUIET SOURCES := $(wildcard $(SRCDIR)/*.cpp) OBJECTS := $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(SOURCES)) NDBG_SOURCES := $(wildcard $(SRCDIR)/*.cc) NDBG_OBJS := $(patsubst $(SRCDIR)/%.cc, $(OBJDIR)/%.o, $(NDBG_SOURCES)) all: mkdirs $(LIBNAME) $(MAKE) examples .PHONY: all -include $(OBJDIR)/*.d mkdirs: @mkdir -p $(OBJDIR) .PHONY: mkdirs $(LIBNAME): $(OBJECTS) $(NDBG_OBJS) ar -crsuU $(OBJDIR)/$(LIBNAME) $(OBJECTS) $(NDBG_OBJS) $(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.cpp $(CXX) $(CXXFLAGS) -c -MMD $< -o $@ # FIXME: re-using CXXFLAGS here defats the purpose of separating out NDBG_OJBS # see shader_testing Makefile $(NDBG_OBJS): $(OBJDIR)/%.o : $(SRCDIR)/%.cc $(CXX) $(CXXFLAGS) -c $< -o $@ strip -d $@ examples: $(MAKE) -C $(EXAMPLEDIR) .PHONY: examples clean: rm -rf $(OBJDIR)/* $(MAKE) clean -C $(EXAMPLEDIR) .PHONY: clean