Root/package/network/services/uhttpd/Makefile

1#
2# Copyright (C) 2010-2012 Jo-Philipp Wich <xm@subsignal.org>
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8include $(TOPDIR)/rules.mk
9
10PKG_NAME:=uhttpd
11PKG_RELEASE:=40
12
13PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
14PKG_CONFIG_DEPENDS := \
15    CONFIG_PACKAGE_uhttpd_debug \
16    CONFIG_PACKAGE_uhttpd-mod-lua \
17    CONFIG_PACKAGE_uhttpd-mod-tls \
18    CONFIG_PACKAGE_uhttpd-mod-tls_cyassl \
19    CONFIG_PACKAGE_uhttpd-mod-tls_openssl \
20    CONFIG_PACKAGE_uhttpd-mod-ubus
21
22include $(INCLUDE_DIR)/package.mk
23
24define Package/uhttpd/default
25  SECTION:=net
26  CATEGORY:=Network
27  SUBMENU:=Web Servers/Proxies
28  TITLE:=uHTTPd - tiny, single threaded HTTP server
29  MAINTAINER:=Jo-Philipp Wich <xm@subsignal.org>
30endef
31
32define Package/uhttpd
33  $(Package/uhttpd/default)
34  DEPENDS:=+libubox
35endef
36
37define Package/uhttpd/description
38 uHTTPd is a tiny single threaded HTTP server with TLS, CGI and Lua
39 support. It is intended as a drop-in replacement for the Busybox
40 HTTP daemon.
41endef
42
43define Package/uhttpd/config
44  config PACKAGE_uhttpd_debug
45    bool "Build with debug messages"
46    default n
47endef
48
49
50define Package/uhttpd-mod-tls
51  $(Package/uhttpd/default)
52  TITLE+= (TLS plugin)
53  DEPENDS:=uhttpd +PACKAGE_uhttpd-mod-tls_cyassl:libcyassl +PACKAGE_uhttpd-mod-tls_openssl:libopenssl
54endef
55
56define Package/uhttpd-mod-tls/description
57 The TLS plugin adds HTTPS support to uHTTPd.
58endef
59
60define Package/uhttpd-mod-tls/config
61  choice
62    depends on PACKAGE_uhttpd-mod-tls
63    prompt "TLS Provider"
64    default PACKAGE_uhttpd-mod-tls_cyassl
65
66    config PACKAGE_uhttpd-mod-tls_cyassl
67      bool "CyaSSL"
68
69    config PACKAGE_uhttpd-mod-tls_openssl
70      bool "OpenSSL"
71  endchoice
72endef
73
74UHTTPD_TLS:=
75TLS_CFLAGS:=
76TLS_LDFLAGS:=
77
78ifneq ($(CONFIG_PACKAGE_uhttpd-mod-tls_cyassl),)
79  UHTTPD_TLS:=cyassl
80  TLS_CFLAGS:=-I$(STAGING_DIR)/usr/include/cyassl -DTLS_IS_CYASSL
81  TLS_LDFLAGS:=-lcyassl -lm
82endif
83
84ifneq ($(CONFIG_PACKAGE_uhttpd-mod-tls_openssl),)
85  UHTTPD_TLS:=openssl
86  TLS_CFLAGS:=-DTLS_IS_OPENSSL
87  TLS_LDFLAGS:=-lssl
88endif
89
90
91define Package/uhttpd-mod-lua
92  $(Package/uhttpd/default)
93  TITLE+= (Lua plugin)
94  DEPENDS:=uhttpd +liblua
95endef
96
97define Package/uhttpd-mod-lua/description
98 The Lua plugin adds a CGI-like Lua runtime interface to uHTTPd.
99endef
100
101
102define Package/uhttpd-mod-ubus
103  $(Package/uhttpd/default)
104  TITLE+= (ubus plugin)
105  DEPENDS:=uhttpd +libubus +libblobmsg-json
106endef
107
108define Package/uhttpd-mod-ubus/description
109 The ubus plugin adds a HTTP/JSON RPC proxy for ubus and publishes the
110 session.* namespace and procedures.
111endef
112
113
114TARGET_CFLAGS += $(TLS_CFLAGS) $(if $(CONFIG_PACKAGE_uhttpd_debug),-DDEBUG) -ggdb3
115TARGET_LDFLAGS += -lubox -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
116MAKE_VARS += \
117    FPIC="$(FPIC)" \
118    LUA_SUPPORT="$(if $(CONFIG_PACKAGE_uhttpd-mod-lua),1)" \
119    TLS_SUPPORT="$(if $(CONFIG_PACKAGE_uhttpd-mod-tls),1)" \
120    UBUS_SUPPORT="$(if $(CONFIG_PACKAGE_uhttpd-mod-ubus),1)" \
121    UHTTPD_TLS="$(UHTTPD_TLS)" \
122    TLS_CFLAGS="$(TLS_CFLAGS)" \
123    TLS_LDFLAGS="$(TLS_LDFLAGS)"
124
125define Build/Prepare
126    mkdir -p $(PKG_BUILD_DIR)
127    $(CP) ./src/* $(PKG_BUILD_DIR)/
128endef
129
130define Package/uhttpd/conffiles
131/etc/config/uhttpd
132/etc/uhttpd.crt
133/etc/uhttpd.key
134endef
135
136define Package/uhttpd/install
137    $(INSTALL_DIR) $(1)/etc/init.d
138    $(INSTALL_BIN) ./files/uhttpd.init $(1)/etc/init.d/uhttpd
139    $(INSTALL_DIR) $(1)/etc/config
140    $(INSTALL_CONF) ./files/uhttpd.config $(1)/etc/config/uhttpd
141    $(INSTALL_DIR) $(1)/usr/sbin
142    $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd $(1)/usr/sbin/uhttpd
143endef
144
145define Package/uhttpd-mod-tls/install
146    $(INSTALL_DIR) $(1)/usr/lib
147    $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_tls.so $(1)/usr/lib/
148endef
149
150define Package/uhttpd-mod-lua/install
151    $(INSTALL_DIR) $(1)/usr/lib
152    $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_lua.so $(1)/usr/lib/
153endef
154
155define Package/uhttpd-mod-ubus/install
156    $(INSTALL_DIR) $(1)/usr/lib
157    $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_ubus.so $(1)/usr/lib/
158endef
159
160
161$(eval $(call BuildPackage,uhttpd))
162$(eval $(call BuildPackage,uhttpd-mod-tls))
163$(eval $(call BuildPackage,uhttpd-mod-lua))
164$(eval $(call BuildPackage,uhttpd-mod-ubus))
165

Archive Download this file



interactive