haproxy: disable lua on mips
[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:=02
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 ifeq ($(ENABLE_LUA),y)
42 tar -zxvf $(DL_DIR)/lua-5.3.4.tar.gz -C $(PKG_BUILD_DIR)
43 ln -s $(PKG_BUILD_DIR)/lua-5.3.4 $(PKG_BUILD_DIR)/lua
44 endif
45 endef
46
47 define Package/haproxy/Default/conffiles
48 /etc/haproxy.cfg
49 endef
50
51 define Package/haproxy/Default/description
52 Open source Reliable, High Performance TCP/HTTP Load Balancer.
53 endef
54
55 define Package/haproxy
56 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
57
58 TITLE+= (with SSL support)
59 VARIANT:=ssl
60 $(call Package/haproxy/Default)
61 endef
62
63 define Package/haproxy/conffiles
64 $(call Package/haproxy/Default/conffiles)
65 endef
66
67 define Package/haproxy/description
68 $(call Package/haproxy/Default/description)
69 This package is built with SSL and LUA support.
70 endef
71
72 define Package/haproxy/config
73 select CONFIG_OPENSSL_WITH_DEPRECATED
74 $(call Package/haproxy/Default/config)
75 endef
76
77 define Package/haproxy-nossl
78 TITLE+= (without SSL support)
79 VARIANT:=nossl
80 DEPENDS+= +libpcre +libltdl +zlib +libpthread
81 TITLE+= (without SSL support)
82 $(call Package/haproxy/Default)
83 endef
84
85 define Package/haproxy-nossl/conffiles
86 $(call Package/haproxy/Default/conffiles)
87 endef
88
89 define Package/haproxy-nossl/description
90 $(call Package/haproxy/Default/description)
91 This package is built without SSL support.
92 endef
93
94 ENABLE_LUA:=y
95 ifeq ($(CONFIG_mips),y)
96 ENABLE_LUA:=n
97 endif
98
99 ifeq ($(CONFIG_avr32),y)
100 LINUX_TARGET:=linux26
101 else
102 LINUX_TARGET:=linux2628
103 endif
104
105 ifeq ($(BUILD_VARIANT),ssl)
106 ADDON+=USE_OPENSSL=1
107 ADDON+=ADDLIB="-lcrypto -lm "
108 else ifeq ($(CONFIG_mips),n)
109 ADDON+=USE_LUA=1
110 ADDON+=LUA_LIB_NAME="lua534"
111 ADDON+=LUA_INC="$(STAGING_DIR)/lua-5.3.4/include"
112 ADDON+=LUA_LIB="$(STAGING_DIR)/lua-5.3.4/lib"
113 else
114 ADDON+=ADDLIB="-lm"
115 endif
116
117 ifeq ($(ENABLE_LUA),y)
118 define Build/Compile/lua
119 $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR)/lua \
120 INSTALL_TOP="$(STAGING_DIR)/lua-5.3.4/" \
121 CC="$(TARGET_CC)" \
122 CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
123 LDFLAGS="$(TARGET_LDFLAGS) -lncurses -lreadline" \
124 LD="$(TARGET_LD)" \
125 linux install
126
127 mv $(STAGING_DIR)/lua-5.3.4/lib/liblua.a $(STAGING_DIR)/lua-5.3.4/lib/liblua534.a
128 endef
129 endif
130
131 define Build/Compile
132 $(call Build/Compile/lua)
133 $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR) \
134 DESTDIR="$(PKG_INSTALL_DIR)" \
135 CC="$(TARGET_CC)" \
136 PCREDIR="$(STAGING_DIR)/usr/" \
137 SMALL_OPTS="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530 " \
138 USE_LINUX_TPROXY=1 USE_LINUX_SPLICE=1 USE_REGPARM=1 \
139 USE_ZLIB=yes USE_PCRE=1 USE_PCRE_JIT=1\
140 VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
141 $(ADDON)
142 CFLAGS="$(TARGET_CFLAGS) -fno-align-jumps -fno-align-functions -fno-align-labels -fno-align-loops -pipe -fomit-frame-pointer -fhonour-copts" \
143 LD="$(TARGET_LD)" \
144 LDFLAGS="$(TARGET_LDFLAGS) -lcurses -lreadline" \
145 GNOREGIT=1
146
147 $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) \
148 DESTDIR="$(PKG_INSTALL_DIR)" \
149 LD="$(TARGET_CC)" \
150 LDFLAGS="$(TARGET_LDFLAGS)" \
151 $(MAKE_FLAGS) \
152 install
153
154 $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/contrib/halog \
155 DESTDIR="$(PKG_INSTALL_DIR)" \
156 $(MAKE_FLAGS) \
157 ADDLIB="-lcrypto" \
158 VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
159 halog
160 endef
161
162 define Package/haproxy/install
163 $(INSTALL_DIR) $(1)/usr/sbin
164 $(INSTALL_BIN) $(PKG_BUILD_DIR)/haproxy $(1)/usr/sbin/
165 $(INSTALL_DIR) $(1)/etc
166 $(INSTALL_CONF) ./files/haproxy.cfg $(1)/etc/
167 $(INSTALL_DIR) $(1)/etc/init.d
168 $(INSTALL_BIN) ./files/haproxy.init $(1)/etc/init.d/haproxy
169 $(INSTALL_DIR) $(1)/etc/hotplug.d/net
170 $(INSTALL_BIN) ./files/haproxy.hotplug $(1)/etc/hotplug.d/net/90-haproxy
171 endef
172
173 Package/haproxy-nossl/install = $(Package/haproxy/install)
174
175 define Package/halog
176 MENU:=1
177 $(call Package/haproxy)
178 TITLE+= halog
179 DEPENDS:=haproxy
180 endef
181
182 define Package/halog/description
183 HAProxy Log Analyzer
184 endef
185
186 define Package/halog/install
187 $(INSTALL_DIR) $(1)/usr/bin
188 $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/halog/halog $(1)/usr/bin/
189 endef
190
191 $(eval $(call Download,lua534))
192 $(eval $(call BuildPackage,haproxy))
193 $(eval $(call BuildPackage,halog))
194 $(eval $(call BuildPackage,haproxy-nossl))