mirror of https://github.com/sysown/proxysql
Adding support for FreeBSD #354
parent
7c5a33dc8e
commit
2a74cc3c46
@ -0,0 +1,112 @@
|
||||
O0=-O0
|
||||
O2=-O2
|
||||
O1=-O1
|
||||
O3=-O3 -mtune=native
|
||||
#OPTZ=$(O2)
|
||||
EXTRALINK=#-pg
|
||||
ALL_DEBUG=-ggdb -DDEBUG
|
||||
NO_DEBUG=
|
||||
DEBUG=${ALL_DEBUG}
|
||||
#export DEBUG
|
||||
#export OPTZ
|
||||
#export EXTRALINK
|
||||
MAKEFILE?=Makefile.BSD
|
||||
CC?= gcc
|
||||
CXX?= g++
|
||||
|
||||
all:
|
||||
OPTZ="${O2}" ${MAKE} default
|
||||
|
||||
.PHONY: default
|
||||
default:
|
||||
${MAKE} deps
|
||||
${MAKE} lib
|
||||
${MAKE} src
|
||||
|
||||
.PHONY: debug
|
||||
debug:
|
||||
OPTZ="${O0}" DEBUG="${ALL_DEBUG}" ${MAKE} default
|
||||
|
||||
.PHONY: deps
|
||||
deps:
|
||||
cd deps && CC=${CC} CXX=${CXX} ${MAKE}
|
||||
|
||||
.PHONY: lib
|
||||
lib:
|
||||
cd lib && CC=${CC} CXX=${CXX} ${MAKE}
|
||||
|
||||
.PHONY: src
|
||||
src:
|
||||
cd src && CC=${CC} CXX=${CXX} ${MAKE} -f Makefile.BSD
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
cd lib && ${MAKE} clean
|
||||
cd src && ${MAKE} clean
|
||||
|
||||
packages: centos7 ubuntu12 ubuntu14
|
||||
.PHONY: packages
|
||||
|
||||
centos7: binaries/proxysql-1.0.1-1.x86_64.rpm
|
||||
.PHONY: centos
|
||||
|
||||
ubuntu12: binaries/proxysql_1.0.1-ubuntu12_amd64.deb
|
||||
.PHONY: ubuntu12
|
||||
|
||||
ubuntu14: binaries/proxysql_1.0.1-ubuntu14_amd64.deb
|
||||
.PHONY: ubuntu14
|
||||
|
||||
binaries/proxysql-1.0.1-1.x86_64.rpm:
|
||||
# Create CentOS 7 rpm file by creating docker image, running a container and extracting the RPM from the temp container
|
||||
docker build -t centos7_proxysql --no-cache=true ./docker/images/proxysql/centos7-build
|
||||
docker run -i --name=centos7_build centos7_proxysql bash &
|
||||
sleep 5
|
||||
docker cp centos7_build:/root/rpmbuild/RPMS/x86_64/proxysql-1.0.1-1.x86_64.rpm ./binaries
|
||||
# docker kill centos7_build
|
||||
docker rm centos7_build
|
||||
|
||||
binaries/proxysql_1.0.1-ubuntu12_amd64.deb:
|
||||
docker build -t ubuntu12_proxysql --no-cache=true ./docker/images/proxysql/ubuntu-12.04-build
|
||||
docker run -i --name=ubuntu12_build ubuntu12_proxysql bash &
|
||||
sleep 5
|
||||
docker cp ubuntu12_build:/opt/proxysql/proxysql_1.0.1_amd64.deb ./binaries/proxysql_1.0.1-ubuntu12_amd64.deb
|
||||
# docker kill ubuntu12_build
|
||||
docker rm ubuntu12_build
|
||||
|
||||
binaries/proxysql_1.0.1-ubuntu14_amd64.deb:
|
||||
docker stop ubuntu14_build || true
|
||||
docker rm ubuntu14_build || true
|
||||
docker create --name ubuntu14_build renecannao/proxysql:build-ubuntu14 bash -c "while : ; do sleep 10 ; done"
|
||||
docker start ubuntu14_build
|
||||
docker exec ubuntu14_build bash -c "cd /opt; git clone https://github.com/sysown/proxysql.git proxysql"
|
||||
docker exec ubuntu14_build bash -c "cd /opt/proxysql; ${MAKE} clean && ${MAKE} -j"
|
||||
docker cp docker/images/proxysql/ubuntu-14.04-build/proxysql.ctl ubuntu14_build:/opt/proxysql/
|
||||
docker exec ubuntu14_build bash -c "cd /opt/proxysql; cp src/proxysql . ; equivs-build proxysql.ctl"
|
||||
docker cp ubuntu14_build:/opt/proxysql/proxysql_1.0.1_amd64.deb ./binaries/proxysql_1.0.1-ubuntu14_amd64.deb
|
||||
docker stop ubuntu14_build
|
||||
docker rm ubuntu14_build
|
||||
|
||||
|
||||
.PHONY: cleanall
|
||||
cleanall:
|
||||
cd deps && ${MAKE} cleanall
|
||||
cd lib && ${MAKE} clean
|
||||
cd src && ${MAKE} clean
|
||||
rm binaries/*deb || true
|
||||
rm binaries/*rpm || true
|
||||
|
||||
install: src/proxysql
|
||||
install -m 0755 src/proxysql /usr/local/bin
|
||||
install -m 0600 etc/proxysql.cnf /etc
|
||||
install -m 0755 etc/init.d/proxysql /etc/init.d
|
||||
if [ ! -d /var/run/proxysql ]; then mkdir /var/run/proxysql ; fi
|
||||
update-rc.d proxysql defaults
|
||||
.PHONY: install
|
||||
|
||||
uninstall:
|
||||
rm /etc/init.d/proxysql
|
||||
rm /etc/proxysql.cnf
|
||||
rm /usr/local/bin/proxysql
|
||||
rmdir /var/run/proxysql 2>/dev/null || true
|
||||
update-rc.d proxysql remove
|
||||
.PHONY: uninstall
|
||||
@ -0,0 +1,72 @@
|
||||
|
||||
|
||||
|
||||
|
||||
DEPS_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-1.4.9
|
||||
LIBCONFIG_IDIR=-I$(LIBCONFIG_PATH)/lib
|
||||
|
||||
INJECTION_PATH=$(DEPS_PATH)/libinjection
|
||||
INJECTION_IDIR=$(INJECTION_PATH)
|
||||
|
||||
LIBEVENT_PATH=$(DEPS_PATH)/libevent/libevent
|
||||
LIBEVENT_IDIR=$(LIBEVENT_PATH)/include
|
||||
|
||||
|
||||
RE2_PATH=$(DEPS_PATH)/re2/re2
|
||||
RE2_IDIR=$(RE2_PATH)
|
||||
|
||||
IDIR=../include
|
||||
|
||||
IDIRS=-I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(RE2_IDIR) -I$(LIBEVENT_IDIR)
|
||||
|
||||
LDIRS=-L$(JEMALLOC_PATH)/lib -L$(RE2_PATH)/obj -L$(INJECTION_PATH)
|
||||
|
||||
LIBS=-rdynamic -Wl,-Bstatic -ljemalloc_pic -lre2 -Wl,-Bdynamic -ldl -lpthread -lz -lrt -lc -lc++ -lstdc++ $(EXTRALINK)
|
||||
|
||||
ODIR= obj
|
||||
|
||||
CC=gcc
|
||||
CPP=g++
|
||||
#CC=clang
|
||||
|
||||
CFLAGS=$(IDIRS) $(OPTZ) $(DEBUG) -Wall #-lcrypto
|
||||
CPPFLAGS=-std=c++11 -D_GLIBCXX_USE_C99 $(CFLAGS) $(LDIRS) $(LIBS)
|
||||
|
||||
default: libproxysql.a
|
||||
.PHONY: default
|
||||
|
||||
_OBJ = sqlite3.o c_tokenizer.o
|
||||
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
|
||||
_OBJ_CPP = ProxySQL_GloVars.oo network.oo debug.oo configfile.oo Query_Cache.oo SpookyV2.oo MySQL_Authentication.oo gen_utils.oo simple_kv.oo sqlite3db.oo global_variables.oo proxysql_mem.oo mysql_connection.oo MySQL_HostGroups_Manager.oo mysql_data_stream.oo MySQL_Thread.oo MySQL_Session.oo MySQL_Protocol.oo mysql_backend.oo Query_Processor.oo ProxySQL_Admin.oo MySQL_Monitor.oo
|
||||
OBJ_CPP = $(patsubst %,$(ODIR)/%,$(_OBJ_CPP))
|
||||
|
||||
%.ko: %.cpp
|
||||
$(CPP) -fPIC -c -o $@ $< $(CPPFLAGS)
|
||||
|
||||
$(ODIR)/%.o: %.c
|
||||
$(CC) -fPIC -c -o $@ $< $(CFLAGS)
|
||||
|
||||
$(ODIR)/%.oo: %.cpp
|
||||
$(CPP) -fPIC -c -o $@ $< $(CPPFLAGS)
|
||||
|
||||
libproxysql.a: $(ODIR) $(OBJ) $(OBJ_CPP) $(INJECTION_PATH)/libinjection.a $(RE2_PATH)/obj/libre2.a $(LIBEVENT_PATH)/.libs/libevent.a
|
||||
ar rcs $@ $(OBJ) $(OBJ_CPP) $(INJECTION_PATH)/libinjection.a $(RE2_PATH)/obj/libre2.a $(LIBEVENT_PATH)/.libs/libevent.a
|
||||
|
||||
$(ODIR):
|
||||
mkdir $(ODIR)
|
||||
|
||||
#all: $(EXECUTABLE)
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.pid $(ODIR)/*.oo $(ODIR)/*.o *.ko *.so *~ core libproxysql.a
|
||||
|
||||
@ -0,0 +1,90 @@
|
||||
|
||||
|
||||
|
||||
|
||||
DEPS_PATH=../deps
|
||||
|
||||
MARIADB_PATH=$(DEPS_PATH)/mariadb-client-library/mariadb_client
|
||||
MARIADB_IDIR=$(MARIADB_PATH)/include
|
||||
MARIADB_LDIR=$(MARIADB_PATH)/libmariadb
|
||||
|
||||
|
||||
DAEMONPATH=$(DEPS_PATH)/libdaemon/libdaemon
|
||||
DAEMONPATH_IDIR=$(DAEMONPATH)
|
||||
DAEMONPATH_LDIR=$(DAEMONPATH)/libdaemon/.libs
|
||||
|
||||
#LIBEVENT_PATH=$(DEPS_PATH)/libevent/libevent
|
||||
#LIBEVENT_IDIR=$(LIBEVENT_PATH)/include
|
||||
#LIBEVENT_LDIR=$(LIBEVENT_PATH)/.libs
|
||||
|
||||
JEMALLOC_PATH=$(DEPS_PATH)/jemalloc/jemalloc
|
||||
JEMALLOC_IDIR=$(JEMALLOC_PATH)/include/jemalloc
|
||||
JEMALLOC_LDIR=$(JEMALLOC_PATH)/lib
|
||||
|
||||
#GLIB_PATH=$(DEPS_PATH)/glib/glib
|
||||
#GLIB_IDIRS=-I$(GLIB_PATH) -I$(GLIB_PATH)/glib
|
||||
#GLIB_LDIRS=-L$(GLIB_PATH)/glib/.libs -L$(GLIB_PATH)/gthread/.libs
|
||||
#GLIB_LIB=-pthread -lgthread-2.0 -lglib-2.0
|
||||
#GLIB_LDIRS=-L$(GLIB_PATH)/glib/.libs -L$(GLIB_PATH)/gthread/.libs -L$(GLIB_PATH)/gmodule/.libs
|
||||
#GLIB_LIB=-pthread -lgmodule-2.0 -lgthread-2.0 -lglib-2.0
|
||||
|
||||
LIBCONFIG_PATH=$(DEPS_PATH)/libconfig/libconfig-1.4.9
|
||||
LIBCONFIG_IDIR=-I$(LIBCONFIG_PATH)/lib
|
||||
LIBCONFIG_LDIR=-L$(LIBCONFIG_PATH)/lib/.libs
|
||||
|
||||
INJECTION_PATH=$(DEPS_PATH)/libinjection
|
||||
INJECTION_IDIR=$(INJECTION_PATH)
|
||||
|
||||
LIBEVENT_PATH=$(DEPS_PATH)/libevent/libevent
|
||||
LIBEVENT_IDIR=$(LIBEVENT_PATH)/include
|
||||
LIBEVENT_LDIR=$(LIBEVENT_PATH)/.libs
|
||||
|
||||
RE2_PATH=$(DEPS_PATH)/re2/re2
|
||||
RE2_IDIR=$(RE2_PATH)
|
||||
|
||||
IDIR=../include
|
||||
LDIR=../lib
|
||||
#IDIRS=-I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) -I$(LIBEVENT_IDIR) $(GLIB_IDIRS) $(LIBCONFIG_IDIR)
|
||||
#LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) -L$(MARIADB_LDIR) -L$(LIBEVENT_LDIR) $(GLIB_LDIRS) $(LIBCONFIG_LDIR)
|
||||
IDIRS=-I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(DAEMONPATH_IDIR)
|
||||
LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(INJECTION_PATH) -L$(LIBEVENT_LDIR) -L$(MARIADB_LDIR) -L$(DAEMONPATH_LDIR)
|
||||
#LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) -L$(MARIADB_LDIR) $(GLIB_LDIRS) $(LIBCONFIG_LDIR)
|
||||
|
||||
|
||||
CFLAGS=-std=c++11 -D_GLIBCXX_USE_C99 $(IDIRS) $(OPTZ) $(DEBUG)
|
||||
LIBS=-rdynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -linjection -levent -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lc -lc++ -lcrypto -lstdc++ -lssl -liconv -lexecinfo $(EXTRALINK)
|
||||
#LIBS=-rdynamic -Wl,-Bstatic -lproxysql -ljemalloc -levent $(GLIB_LIB) -Wl,-Bdynamic -ldl -lpthread -lm -lz -lrt
|
||||
|
||||
LIBPROXYSQLAR=$(LDIR)/libproxysql.a
|
||||
|
||||
ODIR= obj
|
||||
|
||||
#CC=gcc
|
||||
CC=g++
|
||||
#CC=clang
|
||||
|
||||
|
||||
EXECUTABLE=proxysql
|
||||
|
||||
_OBJ = main.o proxysql_global.o
|
||||
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
|
||||
|
||||
$(ODIR)/%.o: %.cpp
|
||||
$(CC) -c -o $@ $< $(CFLAGS) -Wall
|
||||
|
||||
|
||||
|
||||
proxysql: $(ODIR) $(OBJ) $(LIBPROXYSQLAR)
|
||||
$(CC) -o $@ $(OBJ) $(LIBPROXYSQLAR) $(CFLAGS) $(LDIRS) $(LIBS)
|
||||
|
||||
$(ODIR):
|
||||
mkdir $(ODIR)
|
||||
|
||||
$(LIBPROXYSQLAR):
|
||||
cd $(LDIR) && ${MAKE}
|
||||
|
||||
default: $(EXECUTABLE)
|
||||
|
||||
clean:
|
||||
rm -f *.pid $(ODIR)/*.o *~ core $(EXECUTABLE)
|
||||
|
||||
Loading…
Reference in new issue