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.
proxysql/test/deps/cluster_simulator/Makefile

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