Merge pull request #4167 from stangri/vpnbypass
[feed/packages.git] / net / haproxy / Makefile
1 #
2 # Copyright (C) 2010-2016 OpenWrt.org
3 # Copyright (C) 2009-2016 Thomas Heil <heil@terminal-consulting.de>
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=haproxy
12 PKG_VERSION:=1.7.3
13 PKG_RELEASE:=07
14
15 PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
16 PKG_SOURCE_URL:=http://haproxy.1wt.eu/download/1.7/src/
17 PKG_MD5SUM:=e529c240c08e4004c6e9dcf3fd6b3ab
18
19 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
20 PKG_LICENSE:=GPL-2.0
21 MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
22
23 include $(INCLUDE_DIR)/package.mk
24
25 define Package/haproxy/Default
26 SUBMENU:=Web Servers/Proxies
27 SECTION:=net
28 CATEGORY:=Network
29 TITLE:=The Reliable, High Performance TCP/HTTP Load Balancer
30 URL:=http://haproxy.1wt.eu/
31 endef
32
33 define Download/lua533
34 FILE:=lua-5.3.3.tar.gz
35 URL:=http://www.lua.org/ftp/
36 MD5SUM:=703f75caa4fdf4a911c1a72e67a27498
37 endef
38
39 define Build/Prepare
40 $(call Build/Prepare/Default)
41 tar -zxvf $(DL_DIR)/lua-5.3.3.tar.gz -C $(PKG_BUILD_DIR)
42 ln -s $(PKG_BUILD_DIR)/lua-5.3.3 $(PKG_BUILD_DIR)/lua
43 endef
44
45 define Package/haproxy/Default/conffiles
46 /etc/haproxy.cfg
47 endef
48
49 define Package/haproxy/Default/description
50 Open source Reliable, High Performance TCP/HTTP Load Balancer.
51 endef
52
53 define Package/haproxy
54 DEPENDS+= +libpcre +libltdl +zlib +libpthread +libopenssl +libncursesw +libreadline +@OPENSSL_WITH_DEPRECATED +@OPENSSL_WITH_EC +@OPENSSL_WITH_EC2M +@OPENSSL_WITH_DTLS +@OPENSSL_WITH_COMPRESSION +@OPENSSL_WITH_NPN +@OPENSSL_WITH_PSK +@OPENSSL_WITH_SRP +@OPENSSL_ENGINE_DIGEST +@OPENSSL_ENGINE_CRYPTO
55
56 TITLE+= (with SSL support)
57 VARIANT:=ssl
58 $(call Package/haproxy/Default)
59 endef
60
61 define Package/haproxy/conffiles
62 $(call Package/haproxy/Default/conffiles)
63 endef
64
65 define Package/haproxy/description
66 $(call Package/haproxy/Default/description)
67 This package is built with SSL and LUA support.
68 endef
69
70 define Package/haproxy/config
71 select CONFIG_OPENSSL_WITH_DEPRECATED
72 $(call Package/haproxy/Default/config)
73 endef
74
75 define Package/haproxy-nossl
76 TITLE+= (without SSL support)
77 VARIANT:=nossl
78 DEPENDS+= +libpcre +libltdl +zlib +libpthread
79 TITLE+= (without SSL support)
80 $(call Package/haproxy/Default)
81 endef
82
83 define Package/haproxy-nossl/conffiles
84 $(call Package/haproxy/Default/conffiles)
85 endef
86
87 define Package/haproxy-nossl/description
88 $(call Package/haproxy/Default/description)
89 This package is built without SSL support.
90 endef
91
92 ifeq ($(CONFIG_avr32),y)
93 LINUX_TARGET:=linux26
94 else
95 LINUX_TARGET:=linux2628
96 endif
97
98 ifeq ($(BUILD_VARIANT),ssl)
99 ADDON+=USE_OPENSSL=1
100 ADDON+=USE_LUA=1
101 ADDON+=LUA_LIB_NAME="lua533"
102 ADDON+=LUA_INC="$(STAGING_DIR)/lua-5.3.3/include"
103 ADDON+=LUA_LIB="$(STAGING_DIR)/lua-5.3.3/lib"
104 ADDON+=ADDLIB="-lcrypto -lm "
105 else
106 ADDON+=ADDLIB="-lm"
107 endif
108
109
110 define Build/Compile
111 $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR)/lua \
112 INSTALL_TOP="$(STAGING_DIR)/lua-5.3.3/" \
113 CC="$(TARGET_CC)" \
114 LDFLAGS="$(TARGET_LDFLAGS) -lncurses -lreadline" \
115 LD="$(TARGET_LD)" \
116 linux install
117
118 mv $(STAGING_DIR)/lua-5.3.3/lib/liblua.a $(STAGING_DIR)/lua-5.3.3/lib/liblua533.a
119
120 $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR) \
121 DESTDIR="$(PKG_INSTALL_DIR)" \
122 CC="$(TARGET_CC)" \
123 PCREDIR="$(STAGING_DIR)/usr/include" \
124 SMALL_OPTS="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530 " \
125 USE_LINUX_TPROXY=1 USE_LINUX_SPLICE=1 USE_REGPARM=1 \
126 USE_ZLIB=yes USE_PCRE=1 USE_PCRE_JIT=1\
127 VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
128 $(ADDON)
129 CFLAGS="$(TARGET_CFLAGS) -fno-align-jumps -fno-align-functions -fno-align-labels -fno-align-loops -pipe -fomit-frame-pointer -fhonour-copts" \
130 LD="$(TARGET_LD)" \
131 LDFLAGS="$(TARGET_LDFLAGS) -lcurses -lreadline" \
132 GNOREGIT=1
133
134 $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) \
135 DESTDIR="$(PKG_INSTALL_DIR)" \
136 LD="$(TARGET_CC)" \
137 LDFLAGS="$(TARGET_LDFLAGS)" \
138 $(MAKE_FLAGS) \
139 install
140
141 $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/contrib/halog \
142 DESTDIR="$(PKG_INSTALL_DIR)" \
143 $(MAKE_FLAGS) \
144 ADDLIB="-lcrypto" \
145 VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
146 halog
147 endef
148
149 define Package/haproxy/install
150 $(INSTALL_DIR) $(1)/usr/sbin
151 $(INSTALL_BIN) $(PKG_BUILD_DIR)/haproxy $(1)/usr/sbin/
152 $(INSTALL_DIR) $(1)/etc
153 $(INSTALL_CONF) ./files/haproxy.cfg $(1)/etc/
154 $(INSTALL_DIR) $(1)/etc/init.d
155 $(INSTALL_BIN) ./files/haproxy.init $(1)/etc/init.d/haproxy
156 $(INSTALL_DIR) $(1)/etc/hotplug.d/net
157 $(INSTALL_BIN) ./files/haproxy.hotplug $(1)/etc/hotplug.d/net/90-haproxy
158 endef
159
160 Package/haproxy-nossl/install = $(Package/haproxy/install)
161
162
163 define Package/halog
164 MENU:=1
165 $(call Package/haproxy)
166 TITLE+= halog
167 DEPENDS:=haproxy
168 endef
169
170 define Package/halog/description
171 HAProxy Log Analyzer
172 endef
173
174 define Package/halog/install
175 $(INSTALL_DIR) $(1)/usr/bin
176 $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/halog/halog $(1)/usr/bin/
177 endef
178
179 $(eval $(call Download,lua533))
180 $(eval $(call BuildPackage,haproxy))
181 $(eval $(call BuildPackage,halog))
182 $(eval $(call BuildPackage,haproxy-nossl))
183