haproxy update to 1.7.9 and pending patches
[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.9
13 PKG_RELEASE:=01
14
15 PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
16 PKG_SOURCE_URL:=http://www.haproxy.org/download/1.7/src/
17 PKG_HASH:=1072337e54fa188dc6e0cfe3ba4c2200b07082e321cbfe5a0882d85d54db068e
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/lua534
34 FILE:=lua-5.3.4.tar.gz
35 URL:=http://www.lua.org/ftp/
36 HASH:=f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c
37 endef
38
39 define Build/Prepare
40 $(call Build/Prepare/Default)
41 tar -zxvf $(DL_DIR)/lua-5.3.4.tar.gz -C $(PKG_BUILD_DIR)
42 ln -s $(PKG_BUILD_DIR)/lua-5.3.4 $(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="lua534"
102 ADDON+=LUA_INC="$(STAGING_DIR)/lua-5.3.4/include"
103 ADDON+=LUA_LIB="$(STAGING_DIR)/lua-5.3.4/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.4/" \
113 CC="$(TARGET_CC)" \
114 CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
115 LDFLAGS="$(TARGET_LDFLAGS) -lncurses -lreadline" \
116 LD="$(TARGET_LD)" \
117 linux install
118
119 mv $(STAGING_DIR)/lua-5.3.4/lib/liblua.a $(STAGING_DIR)/lua-5.3.4/lib/liblua534.a
120
121 $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR) \
122 DESTDIR="$(PKG_INSTALL_DIR)" \
123 CC="$(TARGET_CC)" \
124 PCREDIR="$(STAGING_DIR)/usr/" \
125 SMALL_OPTS="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530 " \
126 USE_LINUX_TPROXY=1 USE_LINUX_SPLICE=1 USE_REGPARM=1 \
127 USE_ZLIB=yes USE_PCRE=1 USE_PCRE_JIT=1\
128 VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
129 $(ADDON)
130 CFLAGS="$(TARGET_CFLAGS) -fno-align-jumps -fno-align-functions -fno-align-labels -fno-align-loops -pipe -fomit-frame-pointer -fhonour-copts" \
131 LD="$(TARGET_LD)" \
132 LDFLAGS="$(TARGET_LDFLAGS) -lcurses -lreadline" \
133 GNOREGIT=1
134
135 $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) \
136 DESTDIR="$(PKG_INSTALL_DIR)" \
137 LD="$(TARGET_CC)" \
138 LDFLAGS="$(TARGET_LDFLAGS)" \
139 $(MAKE_FLAGS) \
140 install
141
142 $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/contrib/halog \
143 DESTDIR="$(PKG_INSTALL_DIR)" \
144 $(MAKE_FLAGS) \
145 ADDLIB="-lcrypto" \
146 VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
147 halog
148 endef
149
150 define Package/haproxy/install
151 $(INSTALL_DIR) $(1)/usr/sbin
152 $(INSTALL_BIN) $(PKG_BUILD_DIR)/haproxy $(1)/usr/sbin/
153 $(INSTALL_DIR) $(1)/etc
154 $(INSTALL_CONF) ./files/haproxy.cfg $(1)/etc/
155 $(INSTALL_DIR) $(1)/etc/init.d
156 $(INSTALL_BIN) ./files/haproxy.init $(1)/etc/init.d/haproxy
157 $(INSTALL_DIR) $(1)/etc/hotplug.d/net
158 $(INSTALL_BIN) ./files/haproxy.hotplug $(1)/etc/hotplug.d/net/90-haproxy
159 endef
160
161 Package/haproxy-nossl/install = $(Package/haproxy/install)
162
163
164 define Package/halog
165 MENU:=1
166 $(call Package/haproxy)
167 TITLE+= halog
168 DEPENDS:=haproxy
169 endef
170
171 define Package/halog/description
172 HAProxy Log Analyzer
173 endef
174
175 define Package/halog/install
176 $(INSTALL_DIR) $(1)/usr/bin
177 $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/halog/halog $(1)/usr/bin/
178 endef
179
180 $(eval $(call Download,lua534))
181 $(eval $(call BuildPackage,haproxy))
182 $(eval $(call BuildPackage,halog))
183 $(eval $(call BuildPackage,haproxy-nossl))