CXXFLAGS=-std=c++17 -O0 -g -no-pie -pipe -MMD -Wall -Wextra RELEASE_CXXFLAGS=-std=c++17 -O3 -pipe -MMD -Wall -Wextra LDFLAGS=-lsqlite3 -lpthread -lcrypto -lstdc++fs INCLUDEFLAGS=-I submodules/sqlitemoderncpp/hdr -I submodules/cpp-httplib -I submodules/qssb.h CXX=g++ SOURCES=$(wildcard *.cpp) SOURCES+=$(wildcard gateway/*.cpp) SOURCES+=$(wildcard handlers/*.cpp) SOURCES+=$(wildcard database/*.cpp) SOURCES+=$(wildcard cache/*.cpp) SOURCES+=$(wildcard sandbox/*.cpp) HEADERS=$(wildcard *.h) HEADERS+=$(wildcard gateway/*.h) HEADERS+=$(wildcard handlers/*.h) HEADERS+=$(wildcard database/*.h) HEADERS+=$(wildcard cache/*.h) HEADERS+=$(wildcard sandbox/*.h) OBJECTS=$(patsubst %.cpp, %.o, $(SOURCES)) WIKIOBJECTS=$(filter-out test.o, $(OBJECTS)) TESTOBJECTS=$(filter-out qswiki.o, $(OBJECTS)) DEPENDS = ${WIKIOBJECTS:.o=.d} -include ${DEPENDS} # Points to the root of Google Test, relative to where this file is. # Remember to tweak this if you move this file. GTEST_DIR = /home/data/SOURCES/gtest/googletest GTESTS_TESTDIR = ./tests/ GTEST_CXXFLAGS=-std=c++17 -isystem $(GTEST_DIR)/include -I$(GTEST_DIR) -g -O0 -pipe -Wall -Wextra GTEST_LDFLAGS=-lsqlite3 -g -O0 -lpthread -lcrypto -lstdc++fs GTEST_OBJECTS=$(filter-out qswiki.o, $(WIKIOBJECTS)) .DEFAULT_GOAL := qswiki release: CXXFLAGS=$(RELEASE_CXXFLAGS) profile: CXXFLAGS=$(RELEASE_CXXFLAGS) -pg profile: LDFLAGS+= -pg release: qswiki profile: qswiki qswiki: $(WIKIOBJECTS) $(CXX) $(WIKIOBJECTS) ${LDFLAGS} ${INCLUDEFLAGS} -o qswiki test: $(TESTOBJECTS) $(CXX) $(TESTOBJECTS) ${LDFLAGS} -o test gtest: $(GTESTS_TESTDIR)/*.cpp $(GTEST_OBJECTS) $(CXX) -o gtest $(GTESTS_TESTDIR)/*.cpp $(GTEST_OBJECTS) $(GTEST_CXXFLAGS) $(GTEST_DIR)/src/gtest_main.cc $(GTEST_DIR)/src/gtest-all.cc $(GTEST_LDFLAGS) %.o:%.cpp $(CXX) ${CXXFLAGS} ${INCLUDEFLAGS} -c -o $@ $< version.o:version.cpp $(CXX) ${CXXFLAGS} ${INCLUDEFLAGS} -DGITCOMMIT=\"$(shell git rev-parse --short HEAD)\" -c -o $@ $< clean: rm -f $(OBJECTS) $(DEPENDS)