mirror of
https://github.com/3proxy/3proxy.git
synced 2025-04-20 03:02:10 +08:00

Since INSTALL_CFG_DEST is a symlink we also need to make sure that the target always exists before installing anything to it.
Fixes f860ea9e54
Install chrooted configuration with make install on linux
145 lines
4.1 KiB
Makefile
145 lines
4.1 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 -fPIC -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 = $(CC)
|
|
DCFLAGS =
|
|
LDFLAGS = -fPIC -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
|
|
AFTERCLEAN = (find . -type f -name "*.o" -delete && find src/ -type f -name "Makefile.var" -delete && find bin/ -type f -executable -delete) || true
|
|
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
|
|
chroot_prefix = /usr/local
|
|
|
|
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 \
|
|
bin/tlspr
|
|
|
|
|
|
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
|
|
INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service
|
|
|
|
CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy
|
|
CHROOTREL = ../..$(chroot_prefix)/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)/etc/3proxy
|
|
INITDDIR = $(DESTDIR)/etc/init.d
|
|
RUNBASE = $(DESTDIR)/var/run
|
|
RUNDIR = $(RUNBASE)/3proxy
|
|
LOGBASE = $(DESTDIR)/var/log
|
|
LOGDIR = $(LOGBASE)/3proxy
|
|
INSTALL_CFG_DEST = $(ETCDIR)/conf
|
|
SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/
|
|
|
|
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: install-chroot-dir
|
|
if [ ! -d $(INSTALL_CFG_DEST) ]; then \
|
|
ln -s $(CHROOTREL)/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:
|
|
$(INSTALL_BIN) -d $(INITDDIR)
|
|
$(INSTALL_BIN) $(INSTALL_INITD_SCRIPT) $(INITDDIR)/3proxy
|
|
$(INSTALL_BIN) -d $(SYSTEMDDIR)
|
|
$(INSTALL_DATA) $(INSTALL_SYSTEMD_SCRIPT) $(SYSTEMDDIR)
|
|
|
|
install-run:
|
|
$(INSTALL_BIN) -d $(RUNDIR)
|
|
|
|
install-log:
|
|
$(INSTALL_BIN) -d $(LOGBASE)
|
|
@if [ ! -d $(LOGDIR) ]; then \
|
|
ln -s $(CHROOTREL)/logs $(LOGDIR);\
|
|
fi
|
|
|
|
install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init
|
|
@if [ "$(DESTDIR)" = "" ]; then \
|
|
sh scripts/debian/preinst; \
|
|
sh scripts/debian/postinst; \
|
|
fi
|