You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

60 lines
1.6 KiB

OBJDIR := build
SRCDIR := src
TESTDIR := tests
BINDIR := bin
LIBDIR := ext/tangerine
LIB := $(LIBDIR)/build/libTangerine.a
CXX := g++
CXXFLAGS := -std=c++11 -g -ggdb3 -Wall -I$(LIBDIR)/include/
LDFLAGS := -lSDL2 -lGLEW -lGL -lassimp
COMMON_SOURCES := $(SRCDIR)/orbits.cpp
COMMON_OBJECTS := $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(COMMON_SOURCES))
TEST_SOURCES := $(TESTDIR)/orbit_test.cpp
TEST_OBJECTS := $(patsubst $(TESTDIR)/%.cpp, $(OBJDIR)/%.o, $(TEST_SOURCES))
TEST_MAIN_SOURCE := $(TESTDIR)/tests_main.cpp
TEST_MAIN_OBJ := $(OBJDIR)/tests_main.o
TEST_BIN := $(BINDIR)/test_orbit
SOURCES := $(SRCDIR)/main.cpp
OBJECTS := $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(SOURCES))
BIN := $(BINDIR)/orbital_shipping
all: mkdirs $(BIN) $(TEST_BIN)
.PHONY: all
-include $(OBJDIR)/*.d
mkdirs:
mkdir -p ./bin ./build
.PHONY: mkdirs
$(BIN): $(COMMON_OBJECTS) $(OBJECTS) $(LIB)
$(CXX) -o $(BIN) $(LDFLAGS) $(COMMON_OBJECTS) $(OBJECTS) $(LIB)
$(TEST_BIN): $(TEST_OBJECTS) $(TEST_MAIN_OBJ)
$(CXX) -o $(TEST_BIN) $(LDFLAGS) $(TEST_OBJECTS) $(TEST_MAIN_OBJ) $(LIB)
$(COMMON_OBJECTS): $(COMMON_SOURCES)
$(CXX) $(CXXFLAGS) -c -MMD $(SRCDIR)/orbits.cpp -o $@
$(OBJECTS): $(SOURCES)
$(CXX) $(CXXFLAGS) -c -MMD $(SOURCES) -o $(OBJECTS)
$(TEST_OBJECTS): $(TEST_SOURCES)
$(CXX) $(CXXFLAGS) -c -MMD $(TESTDIR)/orbit_test.cpp -o $(OBJDIR)/orbit_test.o
$(TEST_MAIN_OBJ): $(TEST_MAIN_SOURCE)
$(CXX) $(CXXFLAGS) -c -MMD $(TESTDIR)/tests_main.cpp -o $(OBJDIR)/tests_main.o
$(LIB):
$(MAKE) -C $(LIBDIR)
clean:
rm -rf $(OBJDIR)/* $(BIN) bin/test_orbit
$(MAKE) -C $(LIBDIR) clean
.PHONY: clean