Optimized: C++ Compilation, ~10x speedup
This commit is contained in:
@@ -1,11 +1,16 @@
|
||||
OS_SUPPORT =
|
||||
MonetDB_LIB =
|
||||
MonetDB_INC =
|
||||
Threading =
|
||||
CXXFLAGS = --std=c++1z
|
||||
OPTFLAGS = -O3 -flto -march=native
|
||||
OPTFLAGS = -O3
|
||||
LINKFLAGS = -flto
|
||||
SHAREDFLAGS = -shared -fPIC
|
||||
LIBTOOL = $(shell $(CXX) --version | grep -q 'clang' && echo "libtool -static -o"|| echo "ar rcs")
|
||||
USELIB_FLAG = $(shell $(CXX) --version | grep -q 'clang' && echo "-Wl,-force_load"|| echo "-Wl,--whole-archive")
|
||||
LIBAQ_SRC = server/server.cpp server/monetdb_conn.cpp server/io.cpp
|
||||
ifeq ($(PCH), 1)
|
||||
PCHFLAGS = -include server/aggregations.h
|
||||
PCHFLAGS = -include server/pch.hpp
|
||||
else
|
||||
PCHFLAGS =
|
||||
endif
|
||||
@@ -13,43 +18,61 @@ endif
|
||||
ifeq ($(OS),Windows_NT)
|
||||
NULL_DEVICE = NUL
|
||||
OS_SUPPORT += server/winhelper.cpp
|
||||
MonetDB_LIB += -Imonetdb/msvc msc-plugin/monetdbe.dll
|
||||
MonetDB_LIB += msc-plugin/monetdbe.dll
|
||||
MonetDB_INC += -Imonetdb/msvc
|
||||
else
|
||||
UNAME_S = $(shell uname -s)
|
||||
UNAME_M = $(shell uname -m)
|
||||
NULL_DEVICE = /dev/null
|
||||
MonetDB_LIB =
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
MonetDB_LIB += -L`brew --prefix monetdb`/lib
|
||||
MonetDB_LIB += -L$(shell brew --prefix monetdb)/lib
|
||||
MonetDB_INC += -I$(shell brew --prefix monetdb)/include/monetdb
|
||||
ifneq ($(UNAME_M),arm64)
|
||||
OPTFLAGS += -march=native
|
||||
endif
|
||||
else
|
||||
OPTFLAGS += -march=native
|
||||
MonetDB_INC += -I/usr/local/include/monetdb -I/usr/include/monetdb
|
||||
endif
|
||||
MonetDB_LIB += -I/usr/local/include/monetdb -I/usr/include/monetdb -lmonetdbe
|
||||
MonetDB_LIB += -lmonetdbe
|
||||
endif
|
||||
|
||||
ifeq ($(THREADING),1)
|
||||
Threading += server/threading.cpp -DTHREADING
|
||||
LIBAQ_SRC += server/threading.cpp
|
||||
Threading += -DTHREADING
|
||||
endif
|
||||
pch:
|
||||
$(CXX) -x c++-header server/aggregations.h -o server/aggregations.h.pch
|
||||
|
||||
info:
|
||||
$(info $(OS_SUPPORT))
|
||||
$(info $(OS))
|
||||
$(info $(Threading))
|
||||
$(info "test")
|
||||
$(info $(LIBTOOL))
|
||||
$(info $(MonetDB_INC))
|
||||
$(info $(CXX))
|
||||
pch:
|
||||
$(CXX) -x c++-header server/pch.hpp $(MonetDB_INC) $(OPTFLAGS) $(CXXFLAGS) $(Threading)
|
||||
libaquery.a:
|
||||
$(CXX) -c server/server.cpp server/io.cpp server/table.cpp $(OS_SUPPORT) $(Threading) $(OPTFLAGS) $(CXXFLAGS) -o server.bin
|
||||
$(CXX) -c $(PCHFLAGS) $(LIBAQ_SRC) $(MonetDB_INC) $(MonetDB_LIB) $(OS_SUPPORT) $(Threading) $(OPTFLAGS) $(LINKFLAGS) $(CXXFLAGS) &&\
|
||||
$(LIBTOOL) libaquery.a *.o &&\
|
||||
ranlib libaquery.a
|
||||
|
||||
server.bin:
|
||||
$(CXX) server/server.cpp server/io.cpp server/table.cpp $(OS_SUPPORT) $(Threading) $(OPTFLAGS) $(CXXFLAGS) -o server.bin
|
||||
$(CXX) $(LIBAQ_SRC) $(LINKFLAGS) $(OS_SUPPORT) $(Threading) $(MonetDB_INC) $(MonetDB_LIB) $(OPTFLAGS) $(CXXFLAGS) -o server.bin
|
||||
launcher:
|
||||
$(CXX) -D__AQ_BUILD_LAUNCHER__ $(LIBAQ_SRC) $(LINKFLAGS) $(OS_SUPPORT) $(Threading) $(MonetDB_INC) $(MonetDB_LIB) $(OPTFLAGS) $(CXXFLAGS) -o aq
|
||||
server.so:
|
||||
# $(CXX) server/server.cpp server/monetdb_conn.cpp -fPIC -shared $(OS_SUPPORT) monetdb/msvc/monetdbe.dll --std=c++1z -O3 -march=native -o server.so -I./monetdb/msvc
|
||||
$(CXX) $(SHAREDFLAGS) server/server.cpp server/io.cpp server/table.cpp $(OS_SUPPORT) server/monetdb_conn.cpp $(Threading) $(MonetDB_LIB) $(OPTFLAGS) $(CXXFLAGS) -o server.so
|
||||
$(CXX) $(SHAREDFLAGS) $(PCHFLAGS) $(LIBAQ_SRC) $(OS_SUPPORT) $(Threading) $(MonetDB_INC) $(MonetDB_LIB) $(OPTFLAGS) $(LINKFLAGS) $(CXXFLAGS) -o server.so
|
||||
server_uselib:
|
||||
$(CXX) $(SHAREDFLAGS) $(USELIB_FLAG),libaquery.a $(MonetDB_LIB) $(OPTFLAGS) $(LINKFLAGS) $(CXXFLAGS) -o server.so
|
||||
|
||||
snippet:
|
||||
$(CXX) $(SHAREDFLAGS) $(PCHFLAGS) out.cpp server/server.cpp server/monetdb_conn.cpp server/table.cpp server/io.cpp $(MonetDB_LIB) $(OPTFLAGS) $(CXXFLAGS) -o dll.so
|
||||
$(CXX) $(SHAREDFLAGS) $(PCHFLAGS) out.cpp $(LIBAQ_SRC) $(MonetDB_INC) $(MonetDB_LIB) $(Threading) $(OPTFLAGS) $(LINKFLAGS) $(CXXFLAGS) -o dll.so
|
||||
snippet_uselib:
|
||||
$(CXX) $(SHAREDFLAGS) $(PCHFLAGS) out.cpp libaquery.a $(MonetDB_INC) $(Threading) $(MonetDB_LIB) $(OPTFLAGS) $(LINKFLAGS) $(CXXFLAGS) -o dll.so
|
||||
|
||||
docker:
|
||||
docker build -t aquery .
|
||||
|
||||
|
||||
Reference in New Issue
Block a user