mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-23 02:25:40 +08:00
166 lines
4.7 KiB
Makefile
166 lines
4.7 KiB
Makefile
#
|
|
# 3 proxy Makefile for GCC/Linux/Cygwin
|
|
#
|
|
# You can try to remove -DWITH_STD_MALLOC to CFLAGS to use optimized malloc
|
|
# libraries
|
|
#
|
|
# remove -DNOODBC from CFLAGS and add -lodbc to LIBS to compile with ODBC
|
|
# library support. Add -DSAFESQL for poorely written ODBC library / drivers.
|
|
|
|
BUILDDIR = ../bin/
|
|
CC = gcc
|
|
|
|
CFLAGS = -g -O2 -fno-strict-aliasing -c -pthread -DWITHSPLICE -D_GNU_SOURCE -DGETHOSTBYNAME_R -D_THREAD_SAFE -D_REENTRANT -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL -DWITH_NETFILTER
|
|
COUT = -o
|
|
LN = gcc
|
|
DCFLAGS = -fpic
|
|
LDFLAGS = -O2 -fno-strict-aliasing -pthread
|
|
DLFLAGS = -shared
|
|
DLSUFFICS = .ld.so
|
|
# -lpthreads may be reuqired on some platforms instead of -pthreads
|
|
LIBSPREFIX = -l
|
|
LIBSSUFFIX =
|
|
LNOUT = -o
|
|
EXESUFFICS =
|
|
OBJSUFFICS = .o
|
|
DEFINEOPTION = -D
|
|
COMPFILES = *~
|
|
REMOVECOMMAND = rm -f
|
|
TYPECOMMAND = cat
|
|
COMPATLIBS =
|
|
MAKEFILE = Makefile.Linux
|
|
# PamAuth requires libpam, you may require pam-devel package to be installed
|
|
# SSLPlugin requires -lcrypto -lssl
|
|
#LIBS = -lcrypto -lssl -ldl
|
|
LIBS = -ldl
|
|
#PLUGINS = SSLPlugin StringsPlugin TrafficPlugin PCREPlugin TransparentPlugin PamAuth
|
|
PLUGINS = StringsPlugin TrafficPlugin PCREPlugin TransparentPlugin
|
|
|
|
include Makefile.inc
|
|
|
|
allplugins:
|
|
@list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done
|
|
|
|
DESTDIR =
|
|
prefix =
|
|
exec_prefix = $(prefix)
|
|
man_prefix = /usr/share
|
|
|
|
INSTALL = /usr/bin/install
|
|
INSTALL_BIN = $(INSTALL) -m 755
|
|
INSTALL_DATA = $(INSTALL) -m 644
|
|
INSTALL_OBJS = bin/3proxy \
|
|
bin/ftppr \
|
|
bin/mycrypt \
|
|
bin/pop3p \
|
|
bin/proxy \
|
|
bin/socks \
|
|
bin/tcppm \
|
|
bin/udppm
|
|
|
|
|
|
INSTALL_CFG = scripts/3proxy.cfg.chroot
|
|
INSTALL_CFG_OBJS = scripts/3proxy.cfg \
|
|
scripts/add3proxyuser.sh
|
|
|
|
INSTALL_CFG_OBJS2 = counters bandlimiters
|
|
|
|
INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh
|
|
|
|
CHROOTDIR = $(DESTDIR)/usr/local/3proxy
|
|
MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1
|
|
MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3
|
|
MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8
|
|
BINDIR = $(DESTDIR)$(exec_prefix)/bin
|
|
ETCDIR = $(DESTDIR)$(prefix)/etc/3proxy
|
|
INITDDIR = $(DESTDIR)$(prefix)/etc/init.d
|
|
RUNBASE = $(DESTDIR)$(prefix)/var/run
|
|
RUNDIR = $(RUNBASE)/3proxy
|
|
LOGBASE = $(DESTDIR)$(prefix)/var/log
|
|
LOGDIR = $(LOGBASE)/3proxy
|
|
INSTALL_CFG_DEST = $(ETCDIR)/conf
|
|
|
|
install-bin:
|
|
$(INSTALL_BIN) -d $(BINDIR)
|
|
$(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR)
|
|
$(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec
|
|
chmod -R a-w $(CHROOTDIR)/libexec
|
|
|
|
install-etc-dir:
|
|
$(INSTALL_BIN) -d $(ETCDIR)
|
|
|
|
install-chroot-dir:
|
|
$(INSTALL_BIN) -d $(CHROOTDIR)
|
|
$(INSTALL_BIN) -d $(CHROOTDIR)/conf
|
|
$(INSTALL_BIN) -d $(CHROOTDIR)/logs
|
|
$(INSTALL_BIN) -d $(CHROOTDIR)/count
|
|
$(INSTALL_BIN) -d $(CHROOTDIR)/libexec
|
|
chmod -R o-rwx $(CHROOTDIR)
|
|
|
|
install-etc-default-config:
|
|
if [ ! -d $(INSTALL_CFG_DEST) ]; then \
|
|
ln -s $(CHROOTDIR)/conf $(INSTALL_CFG_DEST); \
|
|
$(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \
|
|
$(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \
|
|
fi
|
|
|
|
install-etc: install-etc-dir install-etc-default-config
|
|
for file in $(INSTALL_CFG_OBJS2); \
|
|
do \
|
|
touch $(INSTALL_CFG_DEST)/$$file; chmod 0600 $(INSTALL_CFG_DEST)/$$file; \
|
|
done;
|
|
|
|
install-man:
|
|
$(INSTALL_BIN) -d $(MANDIR3)
|
|
$(INSTALL_BIN) -d $(MANDIR8)
|
|
$(INSTALL_DATA) man/*.3 $(MANDIR3)
|
|
$(INSTALL_DATA) man/*.8 $(MANDIR8)
|
|
|
|
install-init:
|
|
if [ -d $(INITDIR) ]; then \
|
|
$(INSTALL_BIN) $(INSTALL_INITD_SCRIPT) $(INITDDIR)/3proxy; \
|
|
fi
|
|
if [ -f /usr/sbin/update-rc.d ]; then \
|
|
/usr/sbin/update-rc.d 3proxy defaults; \
|
|
/usr/sbin/update-rc.d 3proxy enable; \
|
|
fi
|
|
|
|
install-run:
|
|
$(INSTALL_BIN) -d $(RUNDIR)
|
|
|
|
install-log:
|
|
@if [ -d $(LOGBASE) ] && [ ! -d $(LOGDIR) ]; then \
|
|
ln -s $(CHROOTDIR)/logs $(LOGDIR);\
|
|
fi
|
|
|
|
install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init
|
|
@getent passwd proxy || useradd -UMr -s /bin/false -c 3proxy proxy
|
|
@if [ ! -f $(INSTALL_CFG_DEST)/passwd ]; then \
|
|
touch $(INSTALL_CFG_DEST)/passwd;\
|
|
stty -echo ;\
|
|
echo "" ;\
|
|
read -p "Proxy admin password: " password && $(INSTALL_CFG_DEST)/add3proxyuser.sh admin $password ;\
|
|
stty echo ;\
|
|
fi
|
|
@chown -R proxy:proxy $(CHROOTDIR)
|
|
@chmod 550 $(CHROOTDIR)/
|
|
@chmod 550 $(CHROOTDIR)/conf/
|
|
@chmod 440 $(CHROOTDIR)/conf/*
|
|
@echo ""
|
|
@echo 3proxy installed.
|
|
@echo use
|
|
@echo " "service 3proxy start
|
|
@echo to start proxy
|
|
@echo " "service 3proxy stop
|
|
@echo to stop proxy
|
|
@echo " "$(INSTALL_CFG_DEST)/add3proxyuser.sh
|
|
@echo to add users
|
|
@echo ""
|
|
@echo Default config uses Google\'s DNS.
|
|
@echo It\'s recommended to use provider supplied DNS or install local recursor, e.g. pdns-recursor.
|
|
@echo Configure preferred DNS in $(INSTALL_CFG_DEST)/3proxy.cfg.
|
|
@if [ -f /usr/sbin/service ]; then \
|
|
/usr/sbin/service 3proxy stop ;\
|
|
/usr/sbin/service 3proxy start ;\
|
|
fi
|