| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- #
- # 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 -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
- RUNDIR = $(DESTDIR)$(prefix)/var/run/3proxy
- LOGDIR = $(DESTDIR)$(prefix)/var/log/3proxy
- INSTALL_CFG_DEST = $(ETCDIR)/conf
- install-bin:
- $(INSTALL_BIN) -d $(BINDIR)
- $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR)
- 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
- 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 [ -f $(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 $(LOGDIR) ]; then \
- ln -s $(CHROOTDIR)/logs $(LOGDIR);\
- fi
- install: install-bin install-chroot-dir 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 660 $(CHROOTDIR)/conf/*
- @echo ""
- @echo 3proxy installed.
- @echo use
- @echo " "$(INSTALL_CFG_DEST)/add3proxyuser.sh
- @echo to add users
- @echo ""
- @echo Default config uses Google DNS.
- @echo It's recommended to ues provider's 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
|