2 # Copyright (C) 2010-2016 OpenWrt.org
3 # Copyright (C) 2009-2016 Thomas Heil <heil@terminal-consulting.de>
4 # Copyright (C) 2018 Christian Lachner <gladiac@gmail.com>
6 # This is free software, licensed under the GNU General Public License v2.
7 # See /LICENSE for more information.
10 include $(TOPDIR
)/rules.mk
16 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
17 PKG_SOURCE_URL
:=https
://www.haproxy.org
/download
/2.0/src
18 PKG_HASH
:=3873cd72028ed1bd2506dd174e01a92620e92683092f34234c96e067dcb113dc
19 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(PKG_NAME
)-$(BUILD_VARIANT
)/$(PKG_NAME
)-$(PKG_VERSION
)
21 PKG_MAINTAINER
:=Thomas Heil
<heil@terminal-consulting.de
>, \
22 Christian Lachner
<gladiac@gmail.com
>
23 PKG_LICENSE
:=GPL-2.0
-only
24 PKG_LICENSE_FILES
:=LICENSE
25 PKG_CPE_ID
:=cpe
:/a
:haproxy
:haproxy
27 include $(INCLUDE_DIR
)/package.mk
29 define Package
/haproxy
/Default
30 SUBMENU
:=Web Servers
/Proxies
33 TITLE
:=The Reliable
, High Performance TCP
/HTTP Load Balancer
34 URL
:=https
://www.haproxy.org
/
37 define Download
/lua535
38 FILE
:=lua-5.3
.5.
tar.gz
39 URL
:=https
://www.lua.org
/ftp
/
40 HASH
:=0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac
44 $(call Build
/Prepare
/Default
)
45 ifeq ($(ENABLE_LUA
),y
)
46 tar -zxvf
$(DL_DIR
)/lua-5.3
.5.
tar.gz
-C
$(PKG_BUILD_DIR
)
47 ln
-s
$(PKG_BUILD_DIR
)/lua-5.3
.5 $(PKG_BUILD_DIR
)/lua
51 define Package
/haproxy
/Default
/conffiles
55 define Package
/haproxy
/Default
/description
56 Open source Reliable
, High Performance TCP
/HTTP Load Balancer.
59 define Package
/haproxy
60 DEPENDS
+= +libpcre
+libltdl
+zlib
+libpthread
+libopenssl
+libncurses
+libreadline
+libatomic
61 TITLE
+= (with SSL support
)
63 $(call Package
/haproxy
/Default
)
66 define Package
/haproxy
/conffiles
67 $(call Package
/haproxy
/Default
/conffiles
)
70 define Package
/haproxy
/description
71 $(call Package
/haproxy
/Default
/description
)
72 This package is built with SSL and LUA support.
75 define Package
/haproxy-nossl
76 TITLE
+= (without SSL support
)
78 DEPENDS
+= +libpcre
+libltdl
+zlib
+libpthread
+libatomic
79 TITLE
+= (without SSL support
)
80 $(call Package
/haproxy
/Default
)
83 define Package
/haproxy-nossl
/conffiles
84 $(call Package
/haproxy
/Default
/conffiles
)
87 define Package
/haproxy-nossl
/description
88 $(call Package
/haproxy
/Default
/description
)
89 This package is built without SSL support.
95 ifeq ($(CONFIG_TARGET_x86
),y
)
99 ifeq ($(CONFIG_USE_UCLIBC
),y
)
100 LINUX_TARGET
:=linux-uclibc
102 LINUX_TARGET
:=linux-glibc
105 ifeq ($(BUILD_VARIANT
),ssl
)
107 ADDON
+=ADDLIB
="-lcrypto -lm "
110 ifeq ($(ENABLE_LUA
),y
)
112 ADDON
+=LUA_LIB_NAME
="lua535"
113 ADDON
+=LUA_INC
="$(STAGING_DIR)/lua-5.3.5/include"
114 ADDON
+=LUA_LIB
="$(STAGING_DIR)/lua-5.3.5/lib"
117 ifeq ($(ENABLE_REGPARM
),y
)
121 ifeq ($(ENABLE_LUA
),y
)
122 define Build
/Compile
/lua
123 $(MAKE
) TARGET
=$(LINUX_TARGET
) -C
$(PKG_BUILD_DIR
)/lua \
124 INSTALL_TOP
="$(STAGING_DIR)/lua-5.3.5/" \
126 CFLAGS
="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
127 LDFLAGS
="$(TARGET_LDFLAGS) -lncurses -lreadline" \
131 mv
$(STAGING_DIR
)/lua-5.3
.5/lib
/liblua.a
$(STAGING_DIR
)/lua-5.3
.5/lib
/liblua535.a
136 $(call Build
/Compile
/lua
)
137 $(MAKE
) TARGET
=$(LINUX_TARGET
) -C
$(PKG_BUILD_DIR
) \
138 DESTDIR
="$(PKG_INSTALL_DIR)" \
140 PCREDIR
="$(STAGING_DIR)/usr/" \
141 SMALL_OPTS
="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530" \
142 USE_LINUX_TPROXY
=1 USE_LINUX_SPLICE
=1 USE_TFO
=1 USE_NS
=1 \
143 USE_ZLIB
=1 USE_PCRE
=1 USE_PCRE_JIT
=1 USE_GETADDRINFO
=1 \
144 USE_THREAD
=1 USE_PTHREAD_PSHARED
=1 \
145 VERSION
="$(PKG_VERSION)" SUBVERS
="-$(PKG_RELEASE)" \
146 VERDATE
="$(shell date -d @$(SOURCE_DATE_EPOCH) '+%Y/%m/%d')" IGNOREGIT
=1 \
148 CFLAGS
="$(TARGET_CFLAGS) -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-format-truncation -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-stringop-overflow -Wno-cast-function-type -Wtype-limits -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference" \
150 LDFLAGS
="$(TARGET_LDFLAGS) -latomic" \
151 EXTRA_OBJS
="contrib/prometheus-exporter/service-prometheus.o"
153 $(MAKE_VARS
) $(MAKE
) -C
$(PKG_BUILD_DIR
) \
154 DESTDIR
="$(PKG_INSTALL_DIR)" \
156 LDFLAGS
="$(TARGET_LDFLAGS)" \
160 $(MAKE_VARS
) $(MAKE
) -C
$(PKG_BUILD_DIR
)/contrib
/halog \
161 DESTDIR
="$(PKG_INSTALL_DIR)" \
163 OPTIMIZE
="$(TARGET_CFLAGS)" \
168 define Package
/haproxy
/install
169 $(INSTALL_DIR
) $(1)/usr
/sbin
170 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/haproxy
$(1)/usr
/sbin
/
171 $(INSTALL_DIR
) $(1)/etc
172 $(INSTALL_CONF
) .
/files
/haproxy.cfg
$(1)/etc
/
173 $(INSTALL_DIR
) $(1)/etc
/init.d
174 $(INSTALL_BIN
) .
/files
/haproxy.init
$(1)/etc
/init.d
/haproxy
175 $(INSTALL_DIR
) $(1)/etc
/hotplug.d
/net
176 $(INSTALL_BIN
) .
/files
/haproxy.hotplug
$(1)/etc
/hotplug.d
/net
/90-haproxy
179 Package
/haproxy-nossl
/install = $(Package
/haproxy
/install)
183 $(call Package
/haproxy
)
188 define Package
/halog
/description
192 define Package
/halog
/install
193 $(INSTALL_DIR
) $(1)/usr
/bin
194 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/contrib
/halog
/halog
$(1)/usr
/bin
/
197 $(eval
$(call Download
,lua535
))
198 $(eval
$(call BuildPackage
,haproxy
))
199 $(eval
$(call BuildPackage
,halog
))
200 $(eval
$(call BuildPackage
,haproxy-nossl
))