mirror of https://github.com/sysown/proxysql
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.
133 lines
4.6 KiB
133 lines
4.6 KiB
#!/bin/make -f
|
|
|
|
|
|
PROXYSQL_PATH := $(shell while [ ! -f ./src/proxysql_global.cpp ]; do cd ..; done; pwd)
|
|
|
|
include $(PROXYSQL_PATH)/include/makefiles_vars.mk
|
|
include $(PROXYSQL_PATH)/include/makefiles_paths.mk
|
|
|
|
|
|
UTILSIDIR := ./lib
|
|
UTILSLDIR := ./obj
|
|
|
|
|
|
INCLUDEDIRS := -I$(TAP_IDIR) \
|
|
-I$(RE2_IDIR) \
|
|
-I$(PROXYSQL_IDIR) \
|
|
-I$(JEMALLOC_IDIR) \
|
|
-I$(LIBCONFIG_IDIR) \
|
|
-I$(MARIADB_IDIR) \
|
|
-I$(LIBDAEMON_IDIR) \
|
|
-I$(MICROHTTPD_IDIR) \
|
|
-I$(LIBHTTPSERVER_IDIR) \
|
|
-I$(CURL_IDIR) -I$(EV_IDIR) \
|
|
-I$(PROMETHEUS_IDIR) \
|
|
-I$(DOTENV_DYN_IDIR) \
|
|
-I$(SQLITE3_IDIR) \
|
|
-I$(JSON_IDIR) \
|
|
-I$(POSTGRESQL_IDIR) \
|
|
-I$(LIBSCRAM_IDIR) \
|
|
-I$(LIBUSUAL_IDIR) \
|
|
-I$(SSL_IDIR) \
|
|
-I$(UTILSIDIR)
|
|
|
|
LDIRS := -L$(TAP_LDIR) \
|
|
-L$(RE2_LDIR) \
|
|
-L$(PROXYSQL_LDIR) \
|
|
-L$(JEMALLOC_LDIR) \
|
|
-L$(LIBCONFIG_LDIR) \
|
|
-L$(MARIADB_LDIR) \
|
|
-L$(LIBDAEMON_LDIR) \
|
|
-L$(MICROHTTPD_LDIR) \
|
|
-L$(LIBHTTPSERVER_LDIR) \
|
|
-L$(CURL_LDIR) -L$(EV_LDIR) \
|
|
-L$(PROMETHEUS_LDIR) \
|
|
-L$(DOTENV_DYN_LDIR) \
|
|
-L$(PCRE_LDIR) \
|
|
-L$(LIBINJECTION_LDIR) \
|
|
-L$(POSTGRESQL_LDIR) \
|
|
-L$(LIBSCRAM_LDIR) \
|
|
-L$(LIBUSUAL_LDIR) \
|
|
-L$(SSL_LDIR)
|
|
|
|
ifeq ($(UNAME_S),Linux)
|
|
LDIRS += -L$(COREDUMPER_LDIR)
|
|
endif
|
|
|
|
|
|
MYLIBS_DYNAMIC_PART := -Wl,--export-dynamic -Wl,-Bdynamic -lgnutls -lcpp_dotenv -lcurl -lssl -lcrypto -luuid
|
|
MYLIBS_STATIC_PART := -Wl,-Bstatic -lconfig -lproxysql -ldaemon -lconfig++ -lre2 -lpcrecpp -lpcre -lmariadbclient -lhttpserver -lmicrohttpd -linjection -lev -lprometheus-cpp-pull -lprometheus-cpp-core
|
|
MYLIBS_PG_PART := -Wl,-Bstatic -lpq -lpgcommon -lpgport
|
|
MYLIBS_LAST_PART := -Wl,-Bdynamic -lpthread -lm -lz -lzstd -lrt -ldl $(EXTRALINK)
|
|
MYLIBS := -Wl,-Bdynamic -ltap $(MYLIBS_DYNAMIC_PART) $(MYLIBS_STATIC_PART) $(MYLIBS_PG_PART) $(MYLIBS_LAST_PART)
|
|
|
|
MYLIBSJEMALLOC := -Wl,-Bstatic -ljemalloc
|
|
STATIC_LIBS := $(CITYHASH_LDIR)/libcityhash.a
|
|
|
|
ifeq ($(UNAME_S),Linux)
|
|
STATIC_LIBS += $(COREDUMPER_LDIR)/libcoredumper.a
|
|
endif
|
|
|
|
ifeq ($(PROXYSQL40),1)
|
|
STATIC_LIBS += $(SQLITE3_LDIR)/vec.o
|
|
endif
|
|
|
|
|
|
OBJ := $(PROXYSQL_LDIR)/obj/SpookyV2.oo
|
|
|
|
|
|
OPT := $(STDCPP) -O2 -ggdb -DDISABLE_WARNING_COUNT_LOGGING -Wl,--no-as-needed -Wl,-rpath,$(TAP_LDIR) -Wl,-rpath,$(POSTGRESQL_PATH)/interfaces/libpq -Wl,-rpath,$(RE2_LDIR) $(WGCOV) $(WASAN) -DGITVERSION=\"$(GIT_VERSION)\"
|
|
|
|
.PHONY: default
|
|
default: all
|
|
|
|
.PHONY: all
|
|
all: cluster_simulator
|
|
|
|
.PHONY: debug
|
|
debug: OPT := $(STDCPP) -O0 -DDEBUG -ggdb -DDISABLE_WARNING_COUNT_LOGGING -Wl,--no-as-needed -Wl,-rpath,$(TAP_LDIR) -Wl,-rpath,$(POSTGRESQL_PATH)/interfaces/libpq -Wl,-rpath,$(RE2_LDIR) $(WGCOV) $(WASAN) -DGITVERSION=\"$(GIT_VERSION)\"
|
|
debug: cluster_simulator
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f cluster_simulator
|
|
rm -rf $(UTILSLDIR)
|
|
|
|
|
|
$(UTILSLDIR):
|
|
mkdir -p $(UTILSLDIR)
|
|
|
|
$(UTILSLDIR)/common_utils.o: lib/common_utils.cpp lib/common_utils.h | $(UTILSLDIR)
|
|
$(CXX) -c lib/common_utils.cpp $(INCLUDEDIRS) $(OPT) -o $@
|
|
|
|
$(UTILSLDIR)/galera_utils.o: lib/galera_utils.cpp lib/galera_utils.h | $(UTILSLDIR)
|
|
$(CXX) -c lib/galera_utils.cpp $(INCLUDEDIRS) $(OPT) -o $@
|
|
|
|
$(UTILSLDIR)/readonly_utils.o: lib/readonly_utils.cpp lib/readonly_utils.h | $(UTILSLDIR)
|
|
$(CXX) -c lib/readonly_utils.cpp $(INCLUDEDIRS) $(OPT) -o $@
|
|
|
|
$(UTILSLDIR)/replicationlag_utils.o: lib/replicationlag_utils.cpp lib/replicationlag_utils.h | $(UTILSLDIR)
|
|
$(CXX) -c lib/replicationlag_utils.cpp $(INCLUDEDIRS) $(OPT) -o $@
|
|
|
|
$(UTILSLDIR)/grouprep_utils.o: lib/grouprep_utils.cpp lib/grouprep_utils.h | $(UTILSLDIR)
|
|
$(CXX) -c lib/grouprep_utils.cpp $(INCLUDEDIRS) $(OPT) -o $@
|
|
|
|
$(UTILSLDIR)/aurora_utils.o: lib/aurora_utils.cpp lib/aurora_utils.h | $(UTILSLDIR)
|
|
$(CXX) -c lib/aurora_utils.cpp $(INCLUDEDIRS) $(OPT) -o $@
|
|
|
|
UTILS_OBJS := $(UTILSLDIR)/common_utils.o \
|
|
$(UTILSLDIR)/galera_utils.o \
|
|
$(UTILSLDIR)/readonly_utils.o \
|
|
$(UTILSLDIR)/replicationlag_utils.o \
|
|
$(UTILSLDIR)/grouprep_utils.o \
|
|
$(UTILSLDIR)/aurora_utils.o
|
|
|
|
$(UTILSLDIR)/cluster_simulator_lib.a: $(UTILS_OBJS)
|
|
ar rcs $@ $(UTILS_OBJS)
|
|
|
|
$(TAP_LDIR)/libtap.so:
|
|
cd $(PROXYSQL_PATH)/test/tap && CC=$(CC) CXX=$(CXX) $(MAKE) tap
|
|
|
|
cluster_simulator: cluster_simulator.cpp $(UTILSLDIR)/cluster_simulator_lib.a $(TAP_LDIR)/libtap.so
|
|
$(CXX) -o $@ $(OBJ) cluster_simulator.cpp $(INCLUDEDIRS) $(LDIRS) $(OPT) $(MYLIBSJEMALLOC) $(MYLIBS) $(STATIC_LIBS) $(UTILSLDIR)/cluster_simulator_lib.a
|