Makefile.Linux 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #$Id: Makefile.Linux,v 1.24 2014-04-07 20:34:57 vlad Exp $
  2. #
  3. # 3 proxy Makefile for GCC/Linux/Cygwin
  4. #
  5. # You can try to remove -DWITH_STD_MALLOC to CFLAGS to use optimized malloc
  6. # libraries
  7. #
  8. # remove -DNOODBC from CFLAGS and add -lodbc to LDFLAGS to compile with ODBC
  9. # library support. Add -DSAFESQL for poorely written ODBC library / drivers.
  10. BUILDDIR =
  11. CC = gcc
  12. CFLAGS = -Wall -g -O2 -c -pthread -DGETHOSTBYNAME_R -D_THREAD_SAFE -D_REENTRANT -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL
  13. COUT = -o
  14. LN = gcc
  15. DCFLAGS = -fpic
  16. LDFLAGS = -Wall -O2 -pthread
  17. DLFLAGS = -shared
  18. DLSUFFICS = .ld.so
  19. # -lpthreads may be reuqired on some platforms instead of -pthreads
  20. #LIBS = -lcrypto -lssl -ldl
  21. # libcrypto and libssl are required for SSLPlugin
  22. LIBS = -ldl
  23. LNOUT = -o
  24. EXESUFFICS =
  25. OBJSUFFICS = .o
  26. DEFINEOPTION = -D
  27. COMPFILES = *~
  28. REMOVECOMMAND = rm -f
  29. TYPECOMMAND = cat
  30. COMPATLIBS =
  31. MAKEFILE = Makefile.Linux
  32. #PLUGINS = SSLPlugin StringsPlugin TrafficPlugin PCREPlugin TransparentPlugin
  33. # SSLPlugin is not built by default because of external dependencies
  34. PLUGINS = StringsPlugin TrafficPlugin PCREPlugin TransparentPlugin
  35. include Makefile.inc
  36. allplugins:
  37. @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done
  38. DESTDIR =
  39. prefix = /usr/local
  40. exec_prefix = $(prefix)
  41. man_prefix = $(prefix)/share
  42. INSTALL = /usr/bin/install
  43. INSTALL_BIN = $(INSTALL) -m 755
  44. INSTALL_DATA = $(INSTALL) -m 644
  45. INSTALL_OBJS = src/3proxy \
  46. src/countersutil \
  47. src/dighosts \
  48. src/ftppr \
  49. src/mycrypt \
  50. src/pop3p \
  51. src/proxy \
  52. src/socks \
  53. src/tcppm \
  54. src/udppm
  55. INSTALL_CFG_OBJS = scripts/3proxy.cfg \
  56. scripts/add3proxyuser.sh
  57. INSTALL_CFG_DEST = config
  58. INSTALL_CFG_OBJS2 = passwd counters bandlimiters
  59. MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1
  60. MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3
  61. MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8
  62. BINDIR = $(DESTDIR)$(exec_prefix)/bin
  63. ETCDIR = $(DESTDIR)$(prefix)/etc/3proxy
  64. install-bin:
  65. $(INSTALL_BIN) -d $(BINDIR)
  66. $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR)
  67. install-etc-dir:
  68. $(INSTALL_BIN) -d $(ETCDIR)
  69. install-etc-default-config:
  70. if [ -f $(ETCDIR)/$(INSTALL_CFG_DEST) ]; then \
  71. : ; \
  72. else \
  73. $(INSTALL_DATA) $(INSTALL_CFG_OBJS) $(ETCDIR)/$(INSTALL_CFG_DEST) \
  74. fi
  75. install-etc: install-etc-dir
  76. for file in $(INSTALL_CFG_OBJS2); \
  77. do \
  78. touch $(ETCDIR)/$$file; chmod 0600 $(ETCDIR)/$$file; \
  79. done;
  80. install-man:
  81. $(INSTALL_BIN) -d $(MANDIR3)
  82. $(INSTALL_BIN) -d $(MANDIR8)
  83. $(INSTALL_DATA) man/*.3 $(MANDIR3)
  84. $(INSTALL_DATA) man/*.8 $(MANDIR8)
  85. install: install-bin install-etc install-man