SHELL = /bin/sh CXX = g++ CXXFLAGS = -std=c++11 -g -ggdb3 -Wall \ -Iinclude \ -I/usr/include/SDL2 \ -Iext/stb_libs EXAMPLEDIR = examples OBJDIR = build SRCDIR = src LIBNAME = libTangerine.a RENDER_SOURCES = $(wildcard $(SRCDIR)/*.cpp) RENDER_OBJECTS = $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(RENDER_SOURCES)) ASSIMP_DIR=ext/assimp ifeq ($(USE_INTERNAL_ASSIMP), y) $(info using internal assimp) CXXFLAGS += -I$(ASSIMP_DIR)/include endif all: mkdirs $(LIBNAME) examples .PHONY: all -include $(OBJDIR)/*.d # NOTE: target to automatically build a current release of assimp. Fixes # issue on Fedora where the default assimp version doesn't support glTF2 build_assimp: if [ ! -d $(ASSIMP_DIR) ]; then \ git clone -n "https://github.com/assimp/assimp" $(ASSIMP_DIR); \ cd $(ASSIMP_DIR); \ git checkout -q v5.0.1; \ fi cmake -S $(ASSIMP_DIR) -B $(ASSIMP_DIR) $(MAKE) -C $(ASSIMP_DIR) .PHONY: build_assimp mkdirs: @mkdir -p $(OBJDIR) .PHONY: mkdirs $(LIBNAME): $(RENDER_OBJECTS) ar -crs $(OBJDIR)/$(LIBNAME) $(RENDER_OBJECTS) $(RENDER_OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.cpp $(CXX) $(CXXFLAGS) -c -MMD $< -o $@ examples: $(LIBNAME) ASSIMP_DIR=$(ASSIMP_DIR) $(MAKE) -C $(EXAMPLEDIR) .PHONY: examples clean: rm -rf $(OBJDIR)/* $(MAKE) clean -C $(EXAMPLEDIR) .PHONY: clean