mirror of https://github.com/sysown/proxysql
parent
b0f85dd1c0
commit
d020f577b2
@ -0,0 +1,125 @@
|
||||
#!/bin/make -f
|
||||
|
||||
|
||||
SYS_LOC_IDIR := /usr/local/include
|
||||
|
||||
PROXYSQL_PATH ?= $(shell while [ ! -f ./src/proxysql_global.cpp ]; do cd ..; done; pwd)
|
||||
PROXYSQL_IDIR := $(PROXYSQL_PATH)/include
|
||||
PROXYSQL_LDIR := $(PROXYSQL_PATH)/lib
|
||||
|
||||
DEPS_PATH := $(PROXYSQL_PATH)/deps
|
||||
|
||||
|
||||
include $(PROXYSQL_PATH)/common_mk/openssl_flags.mk
|
||||
|
||||
|
||||
MARIADB_PATH := $(DEPS_PATH)/mariadb-client-library/mariadb_client
|
||||
MARIADB_IDIR := $(MARIADB_PATH)/include
|
||||
MARIADB_LDIR := $(MARIADB_PATH)/libmariadb
|
||||
|
||||
LIBDAEMON_PATH := $(DEPS_PATH)/libdaemon/libdaemon
|
||||
LIBDAEMON_IDIR := $(LIBDAEMON_PATH)
|
||||
LIBDAEMON_LDIR := $(LIBDAEMON_PATH)/libdaemon/.libs
|
||||
|
||||
JEMALLOC_PATH := $(DEPS_PATH)/jemalloc/jemalloc
|
||||
JEMALLOC_IDIR := $(JEMALLOC_PATH)/include/jemalloc
|
||||
JEMALLOC_LDIR := $(JEMALLOC_PATH)/lib
|
||||
|
||||
LIBCONFIG_PATH := $(DEPS_PATH)/libconfig/libconfig
|
||||
LIBCONFIG_IDIR := $(LIBCONFIG_PATH)/lib
|
||||
LIBCONFIG_LDIR := $(LIBCONFIG_PATH)/out
|
||||
|
||||
PROMETHEUS_PATH := $(DEPS_PATH)/prometheus-cpp/prometheus-cpp
|
||||
PROMETHEUS_IDIR := $(PROMETHEUS_PATH)/pull/include -I$(PROMETHEUS_PATH)/core/include
|
||||
PROMETHEUS_LDIR := $(PROMETHEUS_PATH)/lib
|
||||
|
||||
JSON_PATH := $(DEPS_PATH)/json
|
||||
JSON_IDIR := $(JSON_PATH)
|
||||
|
||||
RE2_PATH := $(DEPS_PATH)/re2/re2
|
||||
RE2_IDIR := $(RE2_PATH)
|
||||
RE2_LDIR := $(RE2_PATH)/obj
|
||||
|
||||
PCRE_PATH := $(DEPS_PATH)/pcre/pcre
|
||||
PCRE_IDIR := $(PCRE_PATH)
|
||||
PCRE_LDIR := $(PCRE_PATH)/.libs
|
||||
|
||||
SQLITE3_PATH := $(DEPS_PATH)/sqlite3/sqlite3
|
||||
SQLITE3_IDIR := $(SQLITE3_PATH)
|
||||
SQLITE3_LDIR := $(SQLITE3_PATH)
|
||||
|
||||
CITYHASH_PATH := $(DEPS_PATH)/cityhash/cityhash
|
||||
CITYHASH_LDIR := $(CITYHASH_PATH)/src/.libs
|
||||
|
||||
LZ4_PATH := $(DEPS_PATH)/lz4/lz4
|
||||
LZ4_LDIR := $(LZ4_PATH)/lib
|
||||
|
||||
CLICKHOUSE_CPP_PATH := $(DEPS_PATH)/clickhouse-cpp/clickhouse-cpp
|
||||
CLICKHOUSE_CPP_IDIR := $(CLICKHOUSE_CPP_PATH) -I$(CLICKHOUSE_CPP_PATH)/contrib/absl
|
||||
CLICKHOUSE_CPP_LDIR := $(CLICKHOUSE_CPP_PATH)/clickhouse
|
||||
|
||||
LIBINJECTION_PATH := $(DEPS_PATH)/libinjection/libinjection
|
||||
LIBINJECTION_IDIR := $(LIBINJECTION_PATH)/src
|
||||
LIBINJECTION_LDIR := $(LIBINJECTION_PATH)/src
|
||||
|
||||
LIBHTTPSERVER_PATH := $(DEPS_PATH)/libhttpserver/libhttpserver
|
||||
LIBHTTPSERVER_IDIR := $(LIBHTTPSERVER_PATH)/src
|
||||
LIBHTTPSERVER_LDIR := $(LIBHTTPSERVER_PATH)/build/src/.libs
|
||||
|
||||
MICROHTTPD_PATH := $(DEPS_PATH)/libmicrohttpd/libmicrohttpd
|
||||
MICROHTTPD_IDIR := $(MICROHTTPD_PATH) -I$(MICROHTTPD_PATH)/src/include
|
||||
MICROHTTPD_LDIR := $(MICROHTTPD_PATH)/src/microhttpd/.libs
|
||||
|
||||
COREDUMPER_PATH := $(DEPS_PATH)/coredumper/coredumper
|
||||
COREDUMPER_IDIR := $(COREDUMPER_PATH)/include
|
||||
COREDUMPER_LDIR := $(COREDUMPER_PATH)/src
|
||||
|
||||
CURL_PATH := $(DEPS_PATH)/curl/curl
|
||||
CURL_IDIR := $(CURL_PATH)/include
|
||||
CURL_LDIR := $(CURL_PATH)/lib/.libs
|
||||
|
||||
EV_PATH := $(DEPS_PATH)/libev/libev
|
||||
EV_IDIR := $(EV_PATH)
|
||||
EV_LDIR := $(EV_PATH)/.libs
|
||||
|
||||
POSTGRESQL_PATH := $(DEPS_PATH)/postgresql/postgresql/src
|
||||
POSTGRESQL_IDIR := $(POSTGRESQL_PATH)/include -I$(POSTGRESQL_PATH)/interfaces/libpq
|
||||
POSTGRESQL_LDIR := $(POSTGRESQL_PATH)/interfaces/libpq -L$(POSTGRESQL_PATH)/common -L$(POSTGRESQL_PATH)/port
|
||||
|
||||
LIBUSUAL_PATH := $(DEPS_PATH)/libusual/libusual
|
||||
LIBUSUAL_IDIR := $(LIBUSUAL_PATH)
|
||||
LIBUSUAL_LDIR := $(LIBUSUAL_PATH)/.libs
|
||||
|
||||
LIBSCRAM_PATH := $(DEPS_PATH)/libscram
|
||||
LIBSCRAM_IDIR := $(LIBSCRAM_PATH)/include
|
||||
LIBSCRAM_LDIR := $(LIBSCRAM_PATH)/lib
|
||||
|
||||
|
||||
TAP_PATH := $(PROXYSQL_PATH)/test/tap/tap
|
||||
TAP_IDIR := $(TAP_PATH)
|
||||
TAP_LDIR := $(TAP_PATH)
|
||||
|
||||
DOTENV_PATH := $(TAP_PATH)/cpp-dotenv/static/cpp-dotenv
|
||||
DOTENV_IDIR := $(DOTENV_PATH)/include
|
||||
DOTENV_LDIR := $(DOTENV_PATH)
|
||||
|
||||
DOTENV_DYN_PATH := $(TAP_LDIR)/cpp-dotenv/dynamic/cpp-dotenv
|
||||
DOTENV_DYN_IDIR := $(DOTENV_DYN_PATH)/include
|
||||
DOTENV_DYN_LDIR := $(TAP_LDIR)
|
||||
|
||||
|
||||
TEST_DEPS_PATH := $(PROXYSQL_PATH)/test/deps
|
||||
|
||||
TEST_MARIADB_PATH := $(TEST_DEPS_PATH)/mariadb-connector-c/mariadb-connector-c
|
||||
TEST_MARIADB_IDIR := $(TEST_MARIADB_PATH)/include
|
||||
TEST_MARIADB_LDIR := $(TEST_MARIADB_PATH)/libmariadb
|
||||
|
||||
TEST_MYSQL_PATH := $(TEST_DEPS_PATH)/mysql-connector-c/mysql-connector-c
|
||||
TEST_MYSQL_IDIR := $(TEST_MYSQL_PATH)/include
|
||||
TEST_MYSQL_EDIR := $(TEST_MYSQL_PATH)/libbinlogevents/export/
|
||||
TEST_MYSQL_LDIR := $(TEST_MYSQL_PATH)/libmysql
|
||||
|
||||
TEST_MYSQL8_PATH := $(TEST_DEPS_PATH)/mysql-connector-c-8.4.0/mysql-connector-c
|
||||
TEST_MYSQL8_IDIR := $(TEST_MYSQL8_PATH)/include
|
||||
TEST_MYSQL8_EDIR := $(TEST_MYSQL8_PATH)/libbinlogevents/export/
|
||||
TEST_MYSQL8_LDIR := $(TEST_MYSQL8_PATH)/libmysql
|
||||
@ -0,0 +1,56 @@
|
||||
#!/bin/make -f
|
||||
|
||||
|
||||
GIT_VERSION ?= $(shell git describe --long --abbrev=7)
|
||||
ifndef GIT_VERSION
|
||||
$(error GIT_VERSION is not set)
|
||||
endif
|
||||
|
||||
UNAME_S := $(shell uname -s)
|
||||
UNAME_M := $(shell uname -m)
|
||||
|
||||
DISTRO := $(shell grep '^ID=' /etc/os-release | cut -d= -f2 | tr -d '"')
|
||||
|
||||
CENTOSVER := Unknown
|
||||
ifneq (,$(wildcard /etc/system-release))
|
||||
CENTOSVER := $(shell rpm --eval %rhel)
|
||||
endif
|
||||
|
||||
IS_ARM := $(if $(findstring aarch64, $(UNAME_M)),true,false)
|
||||
IS_CENTOS := $(if $(findstring Unknown, $(CENTOSVER)),false,true)
|
||||
|
||||
|
||||
### detect compiler support for c++11/17
|
||||
CPLUSPLUS := $(shell ${CC} -std=c++17 -dM -E -x c++ /dev/null 2>/dev/null | grep -F __cplusplus | egrep -o '[0-9]{6}L')
|
||||
ifneq ($(CPLUSPLUS),201703L)
|
||||
CPLUSPLUS := $(shell ${CC} -std=c++11 -dM -E -x c++ /dev/null 2>/dev/null| grep -F __cplusplus | egrep -o '[0-9]{6}L')
|
||||
ifneq ($(CPLUSPLUS),201103L)
|
||||
$(error Compiler must support at least c++11)
|
||||
endif
|
||||
endif
|
||||
STDCPP := -std=c++$(shell echo $(CPLUSPLUS) | cut -c3-4) -DCXX$(shell echo $(CPLUSPLUS) | cut -c3-4)
|
||||
|
||||
|
||||
WGCOV :=
|
||||
ifeq ($(WITHGCOV),1)
|
||||
WGCOV := -DWITHGCOV -lgcov --coverage
|
||||
endif
|
||||
|
||||
WASAN :=
|
||||
ifeq ($(WITHASAN),1)
|
||||
WASAN := -fsanitize=address
|
||||
# Force the disable of JEMALLOC, since ASAN isn't compatible.
|
||||
export NOJEMALLOC=1
|
||||
# workaroud ASAN limitation ASLR > 28bits
|
||||
# https://github.com/google/sanitizers/issues/1716
|
||||
# sudo sysctl vm.mmap_rnd_bits=28
|
||||
$(warning ASAN needs ASLR =< 28bits, make sure 'sysctl vm.mmap_rnd_bits=28' is set.)
|
||||
endif
|
||||
ifeq ($(TEST_WITHASAN),1)
|
||||
WASAN += -DTEST_WITHASAN
|
||||
endif
|
||||
|
||||
NOJEM :=
|
||||
ifeq ($(NOJEMALLOC),1)
|
||||
NOJEM := -DNOJEM
|
||||
endif
|
||||
@ -1,88 +0,0 @@
|
||||
PROXYSQL_PATH=../../../..
|
||||
PROXYSQL_IDIR=$(PROXYSQL_PATH)/include
|
||||
|
||||
DEPS_PATH=$(PROXYSQL_PATH)/deps
|
||||
|
||||
MARIADB_PATH=$(DEPS_PATH)/mariadb-client-library/mariadb_client
|
||||
MARIADB_IDIR=$(MARIADB_PATH)/include
|
||||
MARIADB_LDIR=$(MARIADB_PATH)/libmariadb
|
||||
|
||||
JEMALLOC_PATH=$(DEPS_PATH)/jemalloc/jemalloc
|
||||
JEMALLOC_IDIR=$(JEMALLOC_PATH)/include/jemalloc
|
||||
|
||||
JSON_IDIR=$(DEPS_PATH)/json
|
||||
|
||||
RE2_PATH=$(DEPS_PATH)/re2/re2
|
||||
RE2_IDIR=$(RE2_PATH)
|
||||
|
||||
SQLITE3_DIR=$(DEPS_PATH)/sqlite3/sqlite3
|
||||
|
||||
LIBHTTPSERVER_DIR=$(DEPS_PATH)/libhttpserver/libhttpserver
|
||||
LIBHTTPSERVER_IDIR=$(LIBHTTPSERVER_DIR)/src
|
||||
LIBHTTPSERVER_LDIR=$(LIBHTTPSERVER_DIR)/build/src/.libs/
|
||||
|
||||
LIBCONFIG_PATH=$(DEPS_PATH)/libconfig/libconfig
|
||||
LIBCONFIG_IDIR=$(LIBCONFIG_PATH)/lib
|
||||
LIBCONFIG_LDIR=-L$(LIBCONFIG_PATH)/lib/.libs
|
||||
|
||||
CURL_DIR=$(DEPS_PATH)/curl/curl
|
||||
CURL_IDIR=$(CURL_DIR)/include
|
||||
CURL_LDIR=$(CURL_DIR)/lib/.libs
|
||||
|
||||
DAEMONPATH=$(DEPS_PATH)/libdaemon/libdaemon
|
||||
DAEMONPATH_IDIR=$(DAEMONPATH)
|
||||
DAEMONPATH_LDIR=$(DAEMONPATH)/libdaemon/.libs
|
||||
|
||||
PCRE_PATH=$(DEPS_PATH)/pcre/pcre
|
||||
PCRE_LDIR=$(PCRE_PATH)/.libs
|
||||
|
||||
MICROHTTPD_DIR=$(DEPS_PATH)/libmicrohttpd/libmicrohttpd/src
|
||||
MICROHTTPD_IDIR=$(MICROHTTPD_DIR)/include
|
||||
MICROHTTPD_LDIR=$(MICROHTTPD_DIR)/microhttpd/.libs
|
||||
|
||||
LIBINJECTION_DIR=$(DEPS_PATH)/libinjection/libinjection
|
||||
LIBINJECTION_IDIR=$(LIBINJECTION_DIR)/src
|
||||
LIBINJECTION_LDIR=$(LIBINJECTION_DIR)/src
|
||||
|
||||
include ../../../common_mk/openssl_flags.mk
|
||||
|
||||
EV_DIR=$(DEPS_PATH)/libev/libev/
|
||||
EV_IDIR=$(EV_DIR)
|
||||
EV_LDIR=$(EV_DIR)/.libs
|
||||
|
||||
PROMETHEUS_PATH=$(DEPS_PATH)/prometheus-cpp/prometheus-cpp
|
||||
PROMETHEUS_IDIR=$(PROMETHEUS_PATH)/pull/include -I$(PROMETHEUS_PATH)/core/include
|
||||
PROMETHEUS_LDIR=$(PROMETHEUS_PATH)/lib
|
||||
|
||||
JEMALLOC_PATH=$(DEPS_PATH)/jemalloc/jemalloc
|
||||
JEMALLOC_IDIR=$(JEMALLOC_PATH)/include/jemalloc
|
||||
JEMALLOC_LDIR=$(JEMALLOC_PATH)/lib
|
||||
|
||||
IDIR=$(PROXYSQL_PATH)/include
|
||||
LDIR=$(PROXYSQL_PATH)/lib
|
||||
TAP_LIBDIR=$(PROXYSQL_PATH)/test/tap/tap
|
||||
|
||||
TAP_DEPS_IDIR=$(CURL_LDIR)
|
||||
TAP_DEPS_LIBS=$(CURL_LDIR)
|
||||
|
||||
ODIR=$(PROXYSQL_PATH)/obj
|
||||
|
||||
EXECUTABLE=proxysql
|
||||
|
||||
OBJ=$(PROXYSQL_PATH)/proxysql_global.o $(PROXYSQL_PATH)/src/obj/main.o
|
||||
|
||||
PROXYLDIR=$(PROXYSQL_PATH)/lib
|
||||
LIBPROXYSQLAR=$(PROXYSQL_PATH)/lib/libproxysql.a
|
||||
|
||||
INCLUDEDIRS=-I../tap -I$(RE2_PATH) -I$(IDIR) -I$(JEMALLOC_IDIR) -I$(SQLITE3_DIR) -I$(LIBHTTPSERVER_IDIR)\
|
||||
-I$(CURL_IDIR) -I$(DAEMONPATH_IDIR) -I$(MARIADB_IDIR) -I$(SSL_IDIR) -I$(JSON_IDIR)\
|
||||
-I$(LIBCONFIG_IDIR) -I$(PROMETHEUS_IDIR)
|
||||
LDIRS=-L$(TAP_LIBDIR) -L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(MARIADB_LDIR)\
|
||||
-L$(DAEMONPATH_LDIR) -L$(PCRE_LDIR) -L$(MICROHTTPD_LDIR) -L$(LIBHTTPSERVER_LDIR) -L$(LIBINJECTION_LDIR)\
|
||||
-L$(CURL_LDIR) -L$(EV_LDIR) -L$(SSL_LDIR) -L$(PROMETHEUS_LDIR)
|
||||
|
||||
MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lmariadbclient -lcurl -lssl -lcrypto -Wl,-Bdynamic -lgnutls -lpthread -lm -lz -lrt
|
||||
STATIC_LIBS= $(SSL_LDIR)/libssl.a $(SSL_LDIR)/libcrypto.a
|
||||
|
||||
# Root directory for the deps used for testing purposes
|
||||
TEST_DEPS=$(JENKINS_SCRIPTS_PATH)/test-scripts/deps
|
||||
Loading…
Reference in new issue