reduce duplication in makefiles, use include for common stuff

pull/5158/head
Miro Stauder 6 months ago
parent b0f85dd1c0
commit d020f577b2

66
deps/Makefile vendored

@ -1,23 +1,9 @@
#!/bin/make -f
PROXYSQL_PATH := $(shell while [ ! -f ./src/proxysql_global.cpp ]; do cd ..; done; pwd)
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
include $(PROXYSQL_PATH)/include/makefiles_vars.mk
IS_ARM := $(if $(findstring aarch64, $(UNAME_M)),true,false)
IS_CENTOS := $(if $(findstring Unknown, $(CENTOSVER)),false,true)
# to compile libmariadb_client with support for valgrind enabled, run:
# export USEVALGRIND=1
@ -34,21 +20,30 @@ ifeq ($(and $(IS_ARM),$(IS_CENTOS)),true)
endif
### 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)
targets := check_openssl_version \
libconfig \
libdaemon \
jemalloc \
mariadb_client \
re2 \
sqlite3 \
pcre \
lz4 \
cityhash \
microhttpd \
curl \
ev \
libhttpserver \
libinjection \
prometheus-cpp \
postgresql \
libusual \
libscram
targets := check_openssl_version libconfig libdaemon jemalloc mariadb_client re2 sqlite3 pcre lz4 cityhash microhttpd curl ev libhttpserver libinjection prometheus-cpp postgresql libusual libscram
ifeq ($(UNAME_S),Linux)
targets += coredumper
endif
ifeq ($(PROXYSQLCLICKHOUSE),1)
targets += clickhouse-cpp
endif
@ -60,6 +55,10 @@ default: $(targets)
### deps targets
include $(PROXYSQL_PATH)/common_mk/openssl_flags.mk
include $(PROXYSQL_PATH)/common_mk/openssl_version_check.mk
libinjection/libinjection/src/libinjection.a:
cd libinjection && rm -rf libinjection-*/ || true
cd libinjection && tar -zxf libinjection-3.10.0.tar.gz
@ -76,8 +75,6 @@ endif
libinjection: libinjection/libinjection/src/libinjection.a
include ../common_mk/openssl_flags.mk
include ../common_mk/openssl_version_check.mk
libhttpserver/libhttpserver/build/src/.libs/libhttpserver.a: libmicrohttpd/libmicrohttpd/src/microhttpd/.libs/libmicrohttpd.a re2/re2/obj/libre2.a
cd libhttpserver && rm -rf libhttpserver-*/ || true
@ -111,11 +108,12 @@ ev: libev/libev/.libs/libev.a
coredumper/coredumper/src/libcoredumper.a:
cd coredumper && rm -rf coredumper-*/ || true
cd coredumper && tar -zxf coredumper-*.tar.gz
cd coredumper/coredumper && patch -p1 < ../includes.patch
cd coredumper/coredumper && cmake . -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug
cd coredumper/coredumper && CC=${CC} CXX=${CXX} ${MAKE}
coredumper: coredumper/coredumper/src/libcoredumper.a
curl/curl/lib/.libs/libcurl.a:
cd curl && rm -rf curl-*/ || true
cd curl && tar -zxf curl-*.tar.gz
@ -300,20 +298,21 @@ pcre/pcre/.libs/libpcre.a:
pcre: pcre/pcre/.libs/libpcre.a
postgresql/postgresql/src/interfaces/libpq/libpq.a:
cd postgresql && rm -rf postgresql-*/ || true
cd postgresql && tar -zxf postgresql-*.tar.gz
cd postgresql/postgresql && patch -p0 < ../get_result_from_pgconn.patch
cd postgresql/postgresql && patch -p0 < ../handle_row_data.patch
cd postgresql/postgresql && patch -p0 < ../fmt_err_msg.patch
cd postgresql/postgresql && patch -p0 < ../bind_fmt_text.patch
#cd postgresql/postgresql && LD_LIBRARY_PATH="$(SSL_LDIR)" ./configure --with-ssl=openssl --with-includes="$(SSL_IDIR)" --with-libraries="$(SSL_LDIR)" --without-readline --enable-debug CFLAGS="-ggdb -O0 -fno-omit-frame-pointer" CPPFLAGS="-g -O0"
#cd postgresql/postgresql && LD_LIBRARY_PATH="$(shell pwd)/libssl/openssl" ./configure --with-ssl=openssl --with-includes="$(shell pwd)/libssl/openssl/include/" --with-libraries="$(shell pwd)/libssl/openssl/" --without-readline --enable-debug CFLAGS="-ggdb -O0 -fno-omit-frame-pointer" CPPFLAGS="-g -O0"
cd postgresql/postgresql && LD_LIBRARY_PATH="$(SSL_LDIR)" ./configure --with-ssl=openssl --with-includes="$(SSL_IDIR)" --with-libraries="$(SSL_LDIR)" --without-readline
cd postgresql/postgresql/src/interfaces/libpq && CC=${CC} CXX=${CXX} ${MAKE} MAKELEVEL=0
#cd postgresql/postgresql && CC=${CC} CXX=${CXX} ${MAKE} -f src/interfaces/libpq/Makefile all
postgresql: postgresql/postgresql/src/interfaces/libpq/libpq.a
libusual/libusual/.libs/libusual.a:
cd libusual && rm -rf libusual-*/ || true
cd libusual && tar -zxf libusual-*.tar.gz
@ -323,12 +322,14 @@ libusual/libusual/.libs/libusual.a:
libusual: libusual/libusual/.libs/libusual.a
libscram/lib/libscram.a:postgresql/postgresql/src/interfaces/libpq/libpq.a
cd libscram && rm -rf lib/* || true
cd libscram && CC=${CC} CXX=${CXX} ${MAKE} LIBOPENSSL_DIR="$(SSL_IDIR)" POSTGRESQL_DIR="$(shell pwd)/postgresql/postgresql/"
libscram: libscram/lib/libscram.a
### clean targets
cleanpart:
@ -362,5 +363,6 @@ cleanall:
cd postgresql && rm -rf postgres-*/ || true
cd libusual && rm -rf libusual-*/ || true
cd libscram && rm -rf lib/* obj/* || true
cd json && rm -rf json-*/ || true
.PHONY: cleanall

@ -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,143 +1,52 @@
#!/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)
PROXYSQL_PATH := ..
PROXYSQL_IDIR := $(PROXYSQL_PATH)/include
PROXYSQL_LDIR := $(PROXYSQL_PATH)/lib
DEPS_PATH := $(PROXYSQL_PATH)/deps
MARIADB_PATH := $(DEPS_PATH)/mariadb-client-library/mariadb_client
MARIADB_IDIR := $(MARIADB_PATH)/include
JEMALLOC_PATH := $(DEPS_PATH)/jemalloc/jemalloc
JEMALLOC_IDIR := $(JEMALLOC_PATH)/include/jemalloc
LIBCONFIG_PATH := $(DEPS_PATH)/libconfig/libconfig
LIBCONFIG_IDIR := -I$(LIBCONFIG_PATH)/lib
#INJECTION_PATH := $(DEPS_PATH)/libinjection
#INJECTION_IDIR := $(INJECTION_PATH)
RE2_PATH := $(DEPS_PATH)/re2/re2
RE2_IDIR := $(RE2_PATH)
PCRE_PATH := $(DEPS_PATH)/pcre/pcre
SQLITE3_DIR := $(DEPS_PATH)/sqlite3/sqlite3
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_DIR := $(DEPS_PATH)/libinjection/libinjection
LIBINJECTION_IDIR := -I$(LIBINJECTION_DIR)/src
LIBHTTPSERVER_DIR := $(DEPS_PATH)/libhttpserver/libhttpserver
LIBHTTPSERVER_IDIR := -I$(LIBHTTPSERVER_DIR)/src
MICROHTTPD_DIR := $(DEPS_PATH)/libmicrohttpd/libmicrohttpd
MICROHTTPD_IDIR := -I$(MICROHTTPD_DIR) -I$(MICROHTTPD_DIR)/src/include
COREDUMPER_DIR := $(DEPS_PATH)/coredumper/coredumper
COREDUMPER_IDIR := $(COREDUMPER_DIR)/include
CURL_DIR := $(DEPS_PATH)/curl/curl
CURL_IDIR := $(CURL_DIR)/include
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
IDIRS := -I$(PROXYSQL_IDIR) \
-I$(JEMALLOC_IDIR) \
-I$(MARIADB_IDIR) \
-I$(LIBCONFIG_IDIR) \
-I$(LIBDAEMON_IDIR) \
-I$(RE2_IDIR) \
-I$(PCRE_IDIR) \
-I$(CLICKHOUSE_CPP_IDIR) \
-I$(MICROHTTPD_IDIR) \
-I$(LIBHTTPSERVER_IDIR) \
-I$(LIBINJECTION_IDIR) \
-I$(CURL_IDIR) \
-I$(EV_IDIR) \
-I$(PROMETHEUS_IDIR) \
-I$(LIBUSUAL_IDIR) \
-I$(LIBSCRAM_IDIR) \
-I$(SQLITE3_IDIR) \
-I$(POSTGRESQL_IDIR) \
-I$(JSON_IDIR) \
-I$(SSL_IDIR) \
include ../common_mk/openssl_flags.mk
EV_DIR := $(DEPS_PATH)/libev/libev/
EV_IDIR := $(EV_DIR)
PROMETHEUS_PATH := $(DEPS_PATH)/prometheus-cpp/prometheus-cpp
PROMETHEUS_IDIR := $(PROMETHEUS_PATH)/pull/include -I$(PROMETHEUS_PATH)/core/include
PROMETHEUS_LDIR := $(PROMETHEUS_PATH)/lib
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/
POSTGRES_PATH=$(DEPS_PATH)/postgresql/postgresql/src/
POSTGRES_IFACE=$(POSTGRES_PATH)/interfaces/libpq/ -I$(POSTGRES_PATH)/include
POSTGRES_LDIR=$(POSTGRES_IFACES)/libpq/
IDIR := ../include
IDIRS := -I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(RE2_IDIR) -I$(SQLITE3_DIR) -I$(PCRE_PATH) -I/usr/local/include -I$(CLICKHOUSE_CPP_IDIR) $(MICROHTTPD_IDIR) $(LIBHTTPSERVER_IDIR) $(LIBINJECTION_IDIR) -I$(CURL_IDIR) -I$(EV_DIR) -I$(PROMETHEUS_IDIR) -I$(LIBUSUAL_IDIR) -I$(LIBSCRAM_IDIR) -I$(POSTGRES_IFACE) -I$(SSL_IDIR)
ifeq ($(UNAME_S),Linux)
IDIRS += -I$(COREDUMPER_IDIR)
endif
LDIRS := -L$(JEMALLOC_PATH)/lib -L$(RE2_PATH)/obj -L$(INJECTION_PATH) -L$(PROMETHEUS_LDIR)
LDIRS := -L$(JEMALLOC_LDIR) \
-L$(RE2_LDIR) \
-L$(LIBINJECTION_LDIR) \
-L$(PROMETHEUS_LDIR)
#LIBS := -rdynamic -Wl,-Bstatic -ljemalloc_pic -lre2 -Wl,-Bdynamic -ldl -lpthread -lm -lz -lrt $(EXTRALINK)
#LIBS := -Wl,--export-dynamic -Wl,-Bstatic -ljemalloc_pic -lre2 -Wl,-Bdynamic -ldl -lpthread -lm -lz -lrt $(EXTRALINK)
ODIR := obj
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
NOJEM :=
ifeq ($(NOJEMALLOC),1)
NOJEM := -DNOJEM
endif
WGCOV :=
ifeq ($(WITHGCOV),1)
WGCOV := -DWITHGCOV --coverage -lgcov
endif
### 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)
PSQLCH :=
ifeq ($(PROXYSQLCLICKHOUSE),1)
PSQLCH := -DPROXYSQLCLICKHOUSE
endif
# 'libhttpserver': Add 'ENABLE_EPOLL' by default for all platforms except
# for 'Darwin'. This is required when compiling 'libhttpserver' for avoiding
# internal use of 'SELECT' in favor of 'EPOLL'. See #3591.
@ -146,6 +55,7 @@ ifeq ($(UNAME_S),Darwin)
ENABLE_EPOLL :=
endif
MYCFLAGS := $(IDIRS) $(OPTZ) $(DEBUG) -Wall -DGITVERSION=\"$(GIT_VERSION)\" $(NOJEM) $(WGCOV) $(WASAN)
MYCXXFLAGS := $(STDCPP) $(MYCFLAGS) $(PSQLCH) $(ENABLE_EPOLL)
@ -178,8 +88,8 @@ HEADERS := ../include/*.h ../include/*.hpp
$(ODIR)/%.oo: %.cpp $(HEADERS)
$(CXX) -fPIC -c -o $@ $< $(MYCXXFLAGS) $(CXXFLAGS)
libproxysql.a: $(ODIR) $(OBJ) $(OBJ_CXX) $(SQLITE3_DIR)/sqlite3.o
ar rcs $@ $(OBJ) $(OBJ_CXX) $(SQLITE3_DIR)/sqlite3.o
libproxysql.a: $(ODIR) $(OBJ) $(OBJ_CXX) $(SQLITE3_LDIR)/sqlite3.o
ar rcs $@ $(OBJ) $(OBJ_CXX) $(SQLITE3_LDIR)/sqlite3.o
$(ODIR):
mkdir $(ODIR)

@ -1,115 +1,50 @@
#!/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)
PROXYSQL_PATH := ..
PROXYSQL_IDIR := $(PROXYSQL_PATH)/include
PROXYSQL_LDIR := $(PROXYSQL_PATH)/lib
DEPS_PATH := $(PROXYSQL_PATH)/deps
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
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_CDIR := $(CLICKHOUSE_CPP_PATH)/contrib
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/src
MICROHTTPD_IDIR := $(MICROHTTPD_PATH)/include
MICROHTTPD_LDIR := $(MICROHTTPD_PATH)/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
include ../common_mk/openssl_flags.mk
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/
IDIRS := -I$(PROXYSQL_IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) -I$(LIBCONFIG_IDIR) -I$(LIBDAEMON_IDIR) -I$(RE2_IDIR) -L$(PCRE_IDIR) -I$(MICROHTTPD_IDIR) -I$(LIBHTTPSERVER_IDIR) -I$(LIBINJECTION_IDIR) -I$(CURL_IDIR) -I$(EV_IDIR) -I$(PROMETHEUS_IDIR) -I$(POSTGRESQL_IDIR) -I$(LIBSCRAM_IDIR) -I$(SQLITE3_IDIR) -I$(CLICKHOUSE_CPP_IDIR) -I$(CLICKHOUSE_CPP_CDIR) -I$(SSL_IDIR) -I$(0)
LDIRS := -L$(PROXYSQL_LDIR) -L$(JEMALLOC_LDIR) -L$(MARIADB_LDIR) -L$(LIBCONFIG_LDIR) -L$(LIBDAEMON_LDIR) -L$(RE2_LDIR) -L$(PCRE_LDIR) -L$(MICROHTTPD_LDIR) -L$(LIBHTTPSERVER_LDIR) -L$(LIBINJECTION_LDIR) -L$(CURL_LDIR) -L$(EV_LDIR) -L$(PROMETHEUS_LDIR) -L$(POSTGRESQL_LDIR) -L$(LIBUSUAL_LDIR) -L$(LIBSCRAM_LDIR) -L$(SSL_LDIR)
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
IDIRS := -I$(PROXYSQL_IDIR) \
-I$(JEMALLOC_IDIR) \
-I$(MARIADB_IDIR) \
-I$(LIBCONFIG_IDIR) \
-I$(LIBDAEMON_IDIR) \
-I$(RE2_IDIR) \
-I$(PCRE_IDIR) \
-I$(CLICKHOUSE_CPP_IDIR) \
-I$(MICROHTTPD_IDIR) \
-I$(LIBHTTPSERVER_IDIR) \
-I$(LIBINJECTION_IDIR) \
-I$(CURL_IDIR) \
-I$(EV_IDIR) \
-I$(PROMETHEUS_IDIR) \
-I$(LIBUSUAL_IDIR) \
-I$(LIBSCRAM_IDIR) \
-I$(SQLITE3_IDIR) \
-I$(POSTGRESQL_IDIR) \
-I$(JSON_IDIR) \
-I$(SSL_IDIR) \
LDIRS := -L$(PROXYSQL_LDIR) \
-L$(JEMALLOC_LDIR) \
-L$(MARIADB_LDIR) \
-L$(LIBCONFIG_LDIR) \
-L$(LIBDAEMON_LDIR) \
-L$(RE2_LDIR) \
-L$(PCRE_LDIR) \
-L$(MICROHTTPD_LDIR) \
-L$(LIBHTTPSERVER_LDIR) \
-L$(LIBINJECTION_LDIR) \
-L$(CURL_LDIR) \
-L$(EV_LDIR) \
-L$(PROMETHEUS_LDIR) \
-L$(POSTGRESQL_LDIR) \
-L$(LIBUSUAL_LDIR) \
-L$(LIBSCRAM_LDIR) \
-L$(SSL_LDIR)
ifeq ($(UNAME_S),Linux)
LDIRS += -L$(COREDUMPER_LDIR)
@ -120,17 +55,6 @@ ifeq ($(UNAME_S),Darwin)
endif
### 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)
### handle clang issue https://bugs.llvm.org/show_bug.cgi?id=16404
CLANGFIX :=
ifeq ($(CXX),clang++)
@ -146,31 +70,7 @@ ifeq ($(PROXYSQLCLICKHOUSE),1)
PSQLCH := -DPROXYSQLCLICKHOUSE
endif
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
NOJEMALLOC := $(shell echo $(NOJEMALLOC))
ifeq ($(NOJEMALLOC),1)
NOJEM=-DNOJEM
else
NOJEM=
endif
MYCXXFLAGS := $(STDCPP)
ifeq ($(CXX),clang++)
@ -179,7 +79,26 @@ endif
MYCXXFLAGS += $(IDIRS) $(OPTZ) $(DEBUG) $(PSQLCH) -DGITVERSION=\"$(GIT_VERSION)\" $(NOJEM) $(WGCOV) $(WASAN)
STATICMYLIBS := -Wl,-Bstatic -lconfig -lproxysql -ldaemon -lconfig++ -lre2 -lpcrecpp -lpcre -lmariadbclient -lhttpserver -lmicrohttpd -linjection -lcurl -lev -lscram -lusual -lpq -lpgcommon -lpgport
STATICMYLIBS := -Wl,-Bstatic \
-lconfig \
-lproxysql \
-ldaemon \
-lconfig++ \
-lre2 \
-lpcrecpp \
-lpcre \
-lmariadbclient \
-lhttpserver \
-lmicrohttpd \
-linjection \
-lcurl \
-lev \
-lscram \
-lusual \
-lpq \
-lpgcommon \
-lpgport
ifneq ($(NOJEMALLOC),1)
STATICMYLIBS += -ljemalloc
endif

@ -2,71 +2,27 @@
PROXYSQL_PATH := $(shell while [ ! -f ./src/proxysql_global.cpp ]; do cd ..; done; pwd)
PROXYSQL_IDIR := $(PROXYSQL_PATH)/include
DEPS_PATH := $(PROXYSQL_PATH)/deps
MARIADB_PATH := $(DEPS_PATH)/mariadb-client-library/mariadb_client
MARIADB_IDIR := $(MARIADB_PATH)/include
JEMALLOC_PATH := $(DEPS_PATH)/jemalloc/jemalloc
JEMALLOC_IDIR := $(JEMALLOC_PATH)/include/jemalloc
LIBCONFIG_PATH := $(DEPS_PATH)/libconfig/libconfig
LIBCONFIG_IDIR := $(LIBCONFIG_PATH)/lib
#INJECTION_PATH := $(DEPS_PATH)/libinjection
#INJECTION_IDIR := $(INJECTION_PATH)
RE2_PATH := $(DEPS_PATH)/re2/re2
RE2_IDIR := $(RE2_PATH)
PCRE_PATH := $(DEPS_PATH)/pcre/pcre
PCRE_IDIR := $(PCRE_PATH)
SQLITE3_PATH := $(DEPS_PATH)/sqlite3/sqlite3
SQLITE3_IDIR := $(SQLITE3_PATH)
CLICKHOUSE_CPP_PATH := $(DEPS_PATH)/clickhouse-cpp/clickhouse-cpp
CLICKHOUSE_CPP_IDIR := $(CLICKHOUSE_CPP_PATH)
LIBINJECTION_PATH := $(DEPS_PATH)/libinjection/libinjection
LIBINJECTION_IDIR := -I$(LIBINJECTION_PATH)/src
LIBHTTPSERVER_PATH := $(DEPS_PATH)/libhttpserver/libhttpserver
LIBHTTPSERVER_IDIR := -I$(LIBHTTPSERVER_PATH)/src
MICROHTTPD_PATH := $(DEPS_PATH)/libmicrohttpd/libmicrohttpd
MICROHTTPD_IDIR := $(MICROHTTPD_PATH)/src/include
CURL_PATH := $(DEPS_PATH)/curl/curl
CURL_IDIR := -I$(CURL_PATH)/include
include ../common_mk/openssl_flags.mk
EV_PATH := $(DEPS_PATH)/libev/libev/
EV_IDIR := $(EV_PATH)
LOCAL_IDIR := /usr/local/include
IDIRS := -I$(PROXYSQL_IDIR)
IDIRS += -I$(JEMALLOC_IDIR)
IDIRS += -I$(MARIADB_IDIR)
IDIRS += -I$(LIBCONFIG_IDIR)
IDIRS += -I$(RE2_IDIR)
IDIRS += -I$(SQLITE3_IDIR)
IDIRS += -I$(PCRE_IDIR)
IDIRS += -I$(LOCAL_IDIR)
IDIRS += -I$(CLICKHOUSE_CPP_DIR)
IDIRS += -I$(MICROHTTPD_PATH)
IDIRS += -I$(MICROHTTPD_IDIR)
IDIRS += -I$(LIBHTTPSERVER_IDIR)
IDIRS += -I$(LIBINJECTION_IDIR)
IDIRS += -I$(CURL_IDIR)
IDIRS += -I$(EV_DIR)
IDIRS += -I$(SSL_IDIR)
include $(PROXYSQL_PATH)/include/makefiles_vars.mk
include $(PROXYSQL_PATH)/include/makefiles_paths.mk
IDIRS := -I$(PROXYSQL_IDIR) \
-I$(JEMALLOC_IDIR) \
-I$(MARIADB_IDIR) \
-I$(LIBCONFIG_IDIR) \
-I$(RE2_IDIR) \
-I$(SQLITE3_IDIR) \
-I$(PCRE_IDIR) \
-I$(SYS_LOC_IDIR) \
-I$(CLICKHOUSE_CPP_IDIR) \
-I$(MICROHTTPD_IDIR) \
-I$(LIBHTTPSERVER_IDIR) \
-I$(LIBINJECTION_IDIR) \
-I$(CURL_IDIR) \
-I$(EV_IDIR) \
-I$(JSON_IDIR) \
-I$(SSL_IDIR)
sqlite_history_convert: sqlite_history_convert.cpp

@ -1,77 +1,22 @@
#!/bin/make -f
GIT_VERSION ?= $(shell git describe --long --abbrev=7)
ifndef GIT_VERSION
$(error GIT_VERSION is not set)
endif
PROXYSQL_PATH := ../../..
PROXYSQL_IDIR := $(PROXYSQL_PATH)/include
PROXYSQL_LDIR := $(PROXYSQL_PATH)/lib
DEPS_PATH := $(PROXYSQL_PATH)/deps
JSON_PATH := $(DEPS_PATH)/json
JSON_IDIR := $(JSON_PATH)
MARIADB_PATH := $(DEPS_PATH)/mariadb-client-library/mariadb_client
MARIADB_IDIR := $(MARIADB_PATH)/include
MARIADB_LDIR := $(MARIADB_PATH)/libmariadb
TEST_DEPS_PATH := $(PROXYSQL_PATH)/test/deps
PROXYSQL_PATH := $(shell while [ ! -f ./src/proxysql_global.cpp ]; do cd ..; done; pwd)
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
include $(PROXYSQL_PATH)/include/makefiles_vars.mk
include $(PROXYSQL_PATH)/include/makefiles_paths.mk
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
CURL_PATH := $(DEPS_PATH)/curl/curl
CURL_IDIR := $(CURL_PATH)/include
CURL_LDIR := $(CURL_PATH)/lib/.libs
IDIRS := -I$(PROXYSQL_IDIR) \
-I$(JSON_IDIR) \
-I${CURL_IDIR} \
-I${SQLITE3_IDIR} \
-I$(DOTENV_IDIR) \
-I$(RE2_IDIR)
SQLITE3_PATH := $(DEPS_PATH)/sqlite3/sqlite3
SQLITE3_IDIR := $(SQLITE3_PATH)
SQLITE3_LDIR := $(SQLITE3_PATH)
DOTENV_PATH := ./cpp-dotenv/static/cpp-dotenv
DOTENV_IDIR := $(DOTENV_PATH)/include
DOTENV_LDIR := $(DOTENV_PATH)
RE2_PATH := $(DEPS_PATH)/re2/re2
RE2_IDIR := $(RE2_PATH)
RE2_LDIR := $(RE2_PATH)/obj
LIBPROXYSQLAR := $(PROXYSQL_LDIR)/libproxysql.a
IDIRS := -I$(PROXYSQL_IDIR) -I$(JSON_IDIR) -I${CURL_IDIR} -I${SQLITE3_IDIR} -I$(DOTENV_IDIR) -I$(RE2_IDIR)
### 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)
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
OPT := $(STDCPP) -O2 -ggdb -Wl,--no-as-needed $(WASAN)

@ -1,120 +1,54 @@
#!/bin/make -f
GIT_VERSION ?= $(shell git describe --long --abbrev=7)
ifndef GIT_VERSION
$(error GIT_VERSION is not set)
endif
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
MARIADB_PATH := $(DEPS_PATH)/mariadb-client-library/mariadb_client
MARIADB_IDIR := $(MARIADB_PATH)/include
MARIADB_LDIR := $(MARIADB_PATH)/libmariadb
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
JEMALLOC_PATH := $(DEPS_PATH)/jemalloc/jemalloc
JEMALLOC_IDIR := $(JEMALLOC_PATH)/include/jemalloc
JEMALLOC_LDIR := $(JEMALLOC_PATH)/lib
JSON_IDIR := $(DEPS_PATH)/json
RE2_PATH := $(DEPS_PATH)/re2/re2
RE2_IDIR := $(RE2_PATH)
RE2_LDIR := $(RE2_PATH)/obj
SQLITE3_PATH := $(DEPS_PATH)/sqlite3/sqlite3
SQLITE3_IDIR := $(SQLITE3_PATH)
SQLITE3_LDIR := $(SQLITE3_PATH)
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 := $(LIBCONFIG_PATH)/out
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
CITYHASH_DIR := $(DEPS_PATH)/cityhash/cityhash/
CITYHASH_IDIR := $(CITYHASH_DIR)
CITYHASH_LDIR := $(CITYHASH_DIR)/src/.libs
COREDUMPER_DIR := $(DEPS_PATH)/coredumper/coredumper
COREDUMPER_IDIR := $(COREDUMPER_DIR)/include
COREDUMPER_LDIR := $(COREDUMPER_DIR)/src
TAP_PATH := ../tap
TAP_IDIR := ../tap
TAP_LDIR := ../tap
include $(PROXYSQL_PATH)/include/makefiles_vars.mk
include $(PROXYSQL_PATH)/include/makefiles_paths.mk
IDIRS := -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)
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)
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
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/
ifeq ($(UNAME_S),Linux)
LDIRS += -L$(COREDUMPER_LDIR)
endif
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
LIBPROXYSQLAR := $(PROXYSQL_LDIR)/libproxysql.a
@ -124,24 +58,8 @@ EXECUTABLE := proxysql
OBJ := $(PROXYSQL_PATH)/src/obj/proxysql_global.o $(PROXYSQL_PATH)/src/obj/main.o $(PROXYSQL_PATH)/src/obj/proxy_tls.o
IDIRS := -I$(TAP_IDIR) -I$(RE2_IDIR) -I$(PROXYSQL_IDIR) -I$(JEMALLOC_IDIR) -I$(LIBCONFIG_IDIR) -I$(MARIADB_IDIR)\
-I$(DAEMONPATH_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)
LDIRS := -L$(TAP_LDIR) -L$(RE2_LDIR) -L$(PROXYSQL_LDIR) -L$(JEMALLOC_LDIR) -L$(LIBCONFIG_LDIR) -L$(MARIADB_LDIR)\
-L$(DAEMONPATH_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)
#SOURCES := ../tap/utils.cpp
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
LDIRS += -L$(COREDUMPER_LDIR)
endif
MYLIBS_DYNAMIC_PART := -Wl,--export-dynamic -Wl,-Bdynamic -lgnutls -ltap -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
@ -159,31 +77,6 @@ ifeq ($(UNAME_S),Linux)
STATIC_LIBS += $(LIBCOREDUMPERAR)
endif
### 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 --coverage -lgcov
endif
WASAN :=
ifeq ($(WITHASAN),1)
WASAN := -fsanitize=address -DTEST_WITHASAN
# 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
OPT := $(STDCPP) -O2 -ggdb -Wl,--no-as-needed -Wl,-rpath,$(TAP_LDIR) $(WGCOV) $(WASAN) -DGITVERSION=\"$(GIT_VERSION)\"

@ -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

@ -1,126 +1,44 @@
#!/bin/make -f
GIT_VERSION ?= $(shell git describe --long --abbrev=7)
ifndef GIT_VERSION
$(error GIT_VERSION is not set)
endif
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
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
JEMALLOC_LDIR := $(JEMALLOC_PATH)/lib
JSON_IDIR := $(DEPS_PATH)/json
RE2_PATH := $(DEPS_PATH)/re2/re2
RE2_IDIR := $(RE2_PATH)
RE2_LDIR := $(RE2_PATH)/obj
SQLITE3_PATH := $(DEPS_PATH)/sqlite3/sqlite3
SQLITE3_IDIR := $(SQLITE3_PATH)
SQLITE3_LDIR := $(SQLITE3_PATH)
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 := $(LIBCONFIG_PATH)/lib/.libs
CURL_DIR := $(DEPS_PATH)/curl/curl
CURL_IDIR := $(CURL_DIR)/include
CURL_LDIR := $(CURL_DIR)/lib/.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
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
CITYHASH_DIR := $(DEPS_PATH)/cityhash/cityhash/
CITYHASH_IDIR := $(CITYHASH_DIR)
CITYHASH_LDIR := $(CITYHASH_DIR)/src/.libs
COREDUMPER_DIR := $(DEPS_PATH)/coredumper/coredumper
COREDUMPER_IDIR := $(COREDUMPER_DIR)/include
COREDUMPER_LDIR := $(COREDUMPER_DIR)/src
TAP_PATH := $(PROXYSQL_PATH)/test/tap/tap
TAP_IDIR := $(TAP_PATH)
TAP_LDIR := $(TAP_PATH)
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
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
### 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 --coverage -lgcov
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
include $(PROXYSQL_PATH)/include/makefiles_vars.mk
include $(PROXYSQL_PATH)/include/makefiles_paths.mk
IDIRS := -I$(TAP_IDIR) \
-I$(RE2_IDIR) \
-I$(PROXYSQL_IDIR) \
-I$(JEMALLOC_IDIR) \
-I$(LIBCONFIG_IDIR) \
-I$(MICROHTTPD_IDIR) \
-I$(LIBHTTPSERVER_IDIR) \
-I$(CURL_IDIR) \
-I$(EV_IDIR) \
-I$(PROMETHEUS_IDIR) \
-I$(SQLITE3_IDIR) \
-I$(JSON_IDIR) \
-I$(POSTGRESQL_IDIR) \
-I$(SSL_IDIR)
LDIRS := -L$(TAP_LDIR) \
-L$(RE2_LDIR) \
-L$(PROXYSQL_LDIR) \
-L$(JEMALLOC_LDIR) \
-L$(LIBCONFIG_LDIR) \
-L$(MICROHTTPD_LDIR) \
-L$(LIBHTTPSERVER_LDIR) \
-L$(CURL_LDIR) \
-L$(EV_LDIR) \
-L$(PROMETHEUS_LDIR) \
-L$(SQLITE3_LDIR) \
-L$(PCRE_LDIR) \
-L$(POSTGRESQL_LDIR) \
-L$(SSL_LDIR)
OPT := $(STDCPP) -O2 -ggdb -Wl,--no-as-needed -Wl,-rpath,"../../tap" $(WGCOV) $(WASAN)
IDIRS := -I$(TAP_IDIR) -I$(RE2_IDIR) -I$(PROXYSQL_IDIR) -I$(JEMALLOC_IDIR) -I$(LIBCONFIG_IDIR)\
-I$(MICROHTTPD_IDIR) -I$(LIBHTTPSERVER_IDIR) -I$(CURL_IDIR) -I$(EV_IDIR) -I$(PROMETHEUS_IDIR)\
-I$(SQLITE3_IDIR) -I$(JSON_IDIR) -I$(POSTGRESQL_IDIR) -I$(SSL_IDIR)
LDIRS := -L$(TAP_LDIR) -L$(RE2_LDIR) -L$(PROXYSQL_LDIR) -L$(JEMALLOC_LDIR) -L$(LIBCONFIG_LDIR)\
-L$(MICROHTTPD_LDIR) -L$(LIBHTTPSERVER_LDIR) -L$(CURL_LDIR) -L$(EV_LDIR) -L$(PROMETHEUS_LDIR)\
-L$(SQLITE3_LDIR) -L$(PCRE_LDIR) -L$(POSTGRESQL_LDIR) -L$(SSL_LDIR)
### main targets

@ -1,11 +1,22 @@
IDIR := -I../deps/json/
#!/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
IDIRS := -I$(JSON_IDIR)
eventslog_reader_sample: eventslog_reader_sample.cpp
$(CXX) -ggdb -o eventslog_reader_sample eventslog_reader_sample.cpp
# Build target for eventlog_reader_to_json
eventlog_reader_to_json: eventlog_reader_to_json.cpp
$(CXX) -std=c++17 -ggdb -o $@ $< $(IDIR)
$(CXX) -std=c++17 -ggdb -o $@ $< $(IDIRS)
.PHONY: clean
clean:

Loading…
Cancel
Save