Merge pull request #5807 from gladiac1337/feature-haproxy-v1.8.5
[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.8.9
13 PKG_RELEASE:=00
14
15 PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
16 PKG_SOURCE_URL:=https://www.haproxy.org/download/1.8/src/
17 PKG_HASH:=436b77927cd85bcd4c2cb3cbf7fb539a5362d9686fdcfa34f37550ca1f5db102
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 ifneq ($(PKG_RELEASE),00)
24 BUILD_VERSION:=-patch$(PKG_RELEASE)
25 endif
26
27 include $(INCLUDE_DIR)/package.mk
28
29 define Package/haproxy/Default
30 SUBMENU:=Web Servers/Proxies
31 SECTION:=net
32 CATEGORY:=Network
33 TITLE:=The Reliable, High Performance TCP/HTTP Load Balancer
34 URL:=https://www.haproxy.org/
35 endef
36
37 define Download/lua534
38 FILE:=lua-5.3.4.tar.gz
39 URL:=https://www.lua.org/ftp/
40 HASH:=f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c
41 endef
42
43 define Build/Prepare
44 $(call Build/Prepare/Default)
45 ifeq ($(ENABLE_LUA),y)
46 tar -zxvf $(DL_DIR)/lua-5.3.4.tar.gz -C $(PKG_BUILD_DIR)
47 ln -s $(PKG_BUILD_DIR)/lua-5.3.4 $(PKG_BUILD_DIR)/lua
48 endif
49 endef
50
51 define Package/haproxy/Default/conffiles
52 /etc/haproxy.cfg
53 endef
54
55 define Package/haproxy/Default/description
56 Open source Reliable, High Performance TCP/HTTP Load Balancer.
57 endef
58
59 define Package/haproxy
60 DEPENDS+= +libpcre +libltdl +zlib +libpthread +libopenssl +libncursesw +libreadline +libatomic +@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
61
62 TITLE+= (with SSL support)
63 VARIANT:=ssl
64 $(call Package/haproxy/Default)
65 endef
66
67 define Package/haproxy/conffiles
68 $(call Package/haproxy/Default/conffiles)
69 endef
70
71 define Package/haproxy/description
72 $(call Package/haproxy/Default/description)
73 This package is built with SSL and LUA support.
74 endef
75
76 define Package/haproxy/config
77 select CONFIG_OPENSSL_WITH_DEPRECATED
78 $(call Package/haproxy/Default/config)
79 endef
80
81 define Package/haproxy-nossl
82 TITLE+= (without SSL support)
83 VARIANT:=nossl
84 DEPENDS+= +libpcre +libltdl +zlib +libpthread +libatomic
85 TITLE+= (without SSL support)
86 $(call Package/haproxy/Default)
87 endef
88
89 define Package/haproxy-nossl/conffiles
90 $(call Package/haproxy/Default/conffiles)
91 endef
92
93 define Package/haproxy-nossl/description
94 $(call Package/haproxy/Default/description)
95 This package is built without SSL support.
96 endef
97
98 ENABLE_LUA:=y
99 ENABLE_REGPARM:=n
100
101 ifeq ($(CONFIG_TARGET_x86),y)
102 ENABLE_REGPARM:=y
103 endif
104
105 ifeq ($(CONFIG_avr32),y)
106 LINUX_TARGET:=linux26
107 else
108 LINUX_TARGET:=linux2628
109 endif
110
111 ifeq ($(BUILD_VARIANT),ssl)
112 ADDON+=USE_OPENSSL=1
113 ADDON+=ADDLIB="-lcrypto -lm "
114 endif
115
116 ifeq ($(ENABLE_LUA),y)
117 ADDON+=USE_LUA=1
118 ADDON+=LUA_LIB_NAME="lua534"
119 ADDON+=LUA_INC="$(STAGING_DIR)/lua-5.3.4/include"
120 ADDON+=LUA_LIB="$(STAGING_DIR)/lua-5.3.4/lib"
121 endif
122
123 ifeq ($(ENABLE_REGPARM),y)
124 ADDON+=USE_REGPARM=1
125 endif
126
127 ifeq ($(ENABLE_LUA),y)
128 define Build/Compile/lua
129 $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR)/lua \
130 INSTALL_TOP="$(STAGING_DIR)/lua-5.3.4/" \
131 CC="$(TARGET_CC)" \
132 CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
133 LDFLAGS="$(TARGET_LDFLAGS) -lncurses -lreadline" \
134 LD="$(TARGET_LD)" \
135 linux install
136
137 mv $(STAGING_DIR)/lua-5.3.4/lib/liblua.a $(STAGING_DIR)/lua-5.3.4/lib/liblua534.a
138 endef
139 endif
140
141 define Build/Compile
142 $(call Build/Compile/lua)
143 $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR) \
144 DESTDIR="$(PKG_INSTALL_DIR)" \
145 CC="$(TARGET_CC)" \
146 PCREDIR="$(STAGING_DIR)/usr/" \
147 SMALL_OPTS="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530 " \
148 USE_LINUX_TPROXY=1 USE_LINUX_SPLICE=1 USE_TFO=1 \
149 USE_ZLIB=yes USE_PCRE=1 USE_PCRE_JIT=1 USE_GETADDRINFO=1 \
150 VERSION="$(PKG_VERSION)$(BUILD_VERSION)" \
151 $(ADDON) \
152 CFLAGS="$(TARGET_CFLAGS)" \
153 LD="$(TARGET_CC)" \
154 LDFLAGS="$(TARGET_LDFLAGS) -latomic" \
155 IGNOREGIT=1
156
157 $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) \
158 DESTDIR="$(PKG_INSTALL_DIR)" \
159 LD="$(TARGET_CC)" \
160 LDFLAGS="$(TARGET_LDFLAGS)" \
161 $(MAKE_FLAGS) \
162 install
163
164 $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/contrib/halog \
165 DESTDIR="$(PKG_INSTALL_DIR)" \
166 $(MAKE_FLAGS) \
167 ADDLIB="-lcrypto" \
168 VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
169 halog
170 endef
171
172 define Package/haproxy/install
173 $(INSTALL_DIR) $(1)/usr/sbin
174 $(INSTALL_BIN) $(PKG_BUILD_DIR)/haproxy $(1)/usr/sbin/
175 $(INSTALL_DIR) $(1)/etc
176 $(INSTALL_CONF) ./files/haproxy.cfg $(1)/etc/
177 $(INSTALL_DIR) $(1)/etc/init.d
178 $(INSTALL_BIN) ./files/haproxy.init $(1)/etc/init.d/haproxy
179 $(INSTALL_DIR) $(1)/etc/hotplug.d/net
180 $(INSTALL_BIN) ./files/haproxy.hotplug $(1)/etc/hotplug.d/net/90-haproxy
181 endef
182
183 Package/haproxy-nossl/install = $(Package/haproxy/install)
184
185 define Package/halog
186 MENU:=1
187 $(call Package/haproxy)
188 TITLE+= halog
189 DEPENDS:=haproxy
190 endef
191
192 define Package/halog/description
193 HAProxy Log Analyzer
194 endef
195
196 define Package/halog/install
197 $(INSTALL_DIR) $(1)/usr/bin
198 $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/halog/halog $(1)/usr/bin/
199 endef
200
201 $(eval $(call Download,lua534))
202 $(eval $(call BuildPackage,haproxy))
203 $(eval $(call BuildPackage,halog))
204 $(eval $(call BuildPackage,haproxy-nossl))