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)) # NOTE: target to automatically build a current release of assimp. Fixes # issue on Fedora where the default assimp version doesn't support glTF2 ASSIMP_DIR=ext/assimp ifeq ($(USE_INTERNAL_ASSIMP), y) CXXFLAGS += -I$(ASSIMP_DIR)/include -I$(ASSIMP_DIR)/build/include ASSIMP_LIB := $(ASSIMP_DIR)/build/code/libassimp.a BUILD_ASSIMP_TARGET := build_assimp CLEAN_ASSIMP_TARGET := $(MAKE) -C $(ASSIMP_DIR)/build clean endif all: mkdirs $(BUILD_ASSIMP_TARGET) $(LIBNAME) examples .PHONY: all -include $(OBJDIR)/*.d 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)/build \ -DBUILD_SHARED_LIBS=OFF \ -DASSIMP_BUILD_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF \ -DASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT=OFF \ -DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=OFF \ -DASSIMP_BUILD_GLTF_IMPORTER=ON ./ $(MAKE) -C $(ASSIMP_DIR)/build .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) $(BUILD_ASSIMP_TARGET) ASSIMP_DIR=$(ASSIMP_DIR) $(MAKE) -C $(EXAMPLEDIR) .PHONY: examples clean: rm -rf $(OBJDIR)/* $(MAKE) clean -C $(EXAMPLEDIR) $(CLEAN_ASSIMP_TARGET) .PHONY: clean