Merge pull request #1479 from jow-/pthsem-musl-compat
[feed/packages.git] / net / haproxy / Makefile
1 #
2 # Copyright (C) 2010-2013 OpenWrt.org
3 # Copyright (C) 2009-2014 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.5.13
13 PKG_RELEASE:=00
14 PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=http://haproxy.1wt.eu/download/1.5/src/
16 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
17 PKG_MD5SUM:=30cf07875ecae4fd6c4c309627afa8f1
18 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
19 PKG_LICENSE:=GPL-2.0
20
21 include $(INCLUDE_DIR)/package.mk
22
23 define Package/haproxy/Default
24 SUBMENU:=Web Servers/Proxies
25 SECTION:=net
26 CATEGORY:=Network
27 TITLE:=The Reliable, High Performance TCP/HTTP Load Balancer
28 URL:=http://haproxy.1wt.eu/
29 endef
30
31 define Package/haproxy/Default/conffiles
32 /etc/haproxy.cfg
33 endef
34
35 define Package/haproxy/Default/description
36 Open source Reliable, High Performance TCP/HTTP Load Balancer.
37 endef
38
39 define Package/haproxy
40 DEPENDS+= +libpcre +libltdl +zlib +libpthread +libopenssl
41 TITLE+= (with SSL support)
42 VARIANT:=ssl
43 $(call Package/haproxy/Default)
44 endef
45
46 define Package/haproxy/conffiles
47 $(call Package/haproxy/Default/conffiles)
48 endef
49
50 define Package/haproxy/description
51 $(call Package/haproxy/Default/description)
52 This package is built with SSL support.
53 endef
54
55 define Package/haproxy-nossl
56 TITLE+= (without SSL support)
57 VARIANT:=nossl
58 DEPENDS+= +libpcre +libltdl +zlib +libpthread
59 TITLE+= (with SSL support)
60 $(call Package/haproxy/Default)
61 endef
62
63 define Package/haproxy-nossl/conffiles
64 $(call Package/haproxy/Default/conffiles)
65 endef
66
67 define Package/haproxy-nossl/description
68 $(call Package/haproxy/Default/description)
69 This package is built without SSL support.
70 endef
71
72 ifeq ($(CONFIG_avr32),y)
73 LINUX_TARGET:=linux26
74 else
75 LINUX_TARGET:=linux2628
76 endif
77
78 ifeq ($(BUILD_VARIANT),ssl)
79 USE_OPENSSL=USE_OPENSSL=1
80 else
81 USE_OPENSSL=
82 endif
83
84 define Build/Compile
85 $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR) \
86 DESTDIR="$(PKG_INSTALL_DIR)" \
87 CC="$(TARGET_CC)" \
88 CFLAGS="$(TARGET_CFLAGS) -fno-align-jumps -fno-align-functions -fno-align-labels -fno-align-loops -pipe -fomit-frame-pointer -fhonour-copts" \
89 LD="$(TARGET_CC)" \
90 LDFLAGS="$(TARGET_LDFLAGS)" \
91 PCREDIR="$(STAGING_DIR)/usr" \
92 SMALL_OPTS="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530 " \
93 USE_LINUX_TPROXY=1 USE_LINUX_SPLICE=1 USE_REGPARM=1 $(USE_OPENSSL) \
94 USE_ZLIB=yes USE_PCRE=1 \
95 VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
96 install
97
98 $(MAKE) -C $(PKG_BUILD_DIR)/contrib/halog \
99 CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS)" \
100 OPTIMIZE="" \
101 halog
102 endef
103
104 define Package/haproxy/install
105 $(INSTALL_DIR) $(1)/usr/sbin
106 $(INSTALL_BIN) $(PKG_BUILD_DIR)/haproxy $(1)/usr/sbin/
107 $(INSTALL_DIR) $(1)/etc
108 $(INSTALL_CONF) ./files/haproxy.cfg $(1)/etc/
109 $(INSTALL_DIR) $(1)/etc/init.d
110 $(INSTALL_BIN) ./files/haproxy.init $(1)/etc/init.d/haproxy
111 $(INSTALL_DIR) $(1)/etc/hotplug.d/net
112 $(INSTALL_BIN) ./files/haproxy.hotplug $(1)/etc/hotplug.d/net/90-haproxy
113 endef
114
115 Package/haproxy-nossl/install = $(Package/haproxy/install)
116
117 define Package/halog
118 MENU:=1
119 $(call Package/haproxy/Default)
120 TITLE+= halog
121 DEPENDS:=haproxy
122 endef
123
124 define Package/halog/description
125 HAProxy Log Analyzer
126 endef
127
128 define Package/halog/install
129 $(INSTALL_DIR) $(1)/usr/bin
130 $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/halog/halog $(1)/usr/bin/
131 endef
132
133 $(eval $(call BuildPackage,haproxy-nossl))
134 $(eval $(call BuildPackage,haproxy))
135 $(eval $(call BuildPackage,halog))