2 # Copyright (C) 2010-2012 Jo-Philipp Wich <xm@subsignal.org>
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR)/rules.mk
13 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
14 PKG_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
22 include $(INCLUDE_DIR)/package.mk
24 define Package/uhttpd/default
27 SUBMENU:=Web Servers/Proxies
28 TITLE:=uHTTPd - tiny, single threaded HTTP server
29 MAINTAINER:=Jo-Philipp Wich <xm@subsignal.org>
33 $(Package/uhttpd/default)
37 define 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
43 define Package/uhttpd/config
44 config PACKAGE_uhttpd_debug
45 bool "Build with debug messages"
50 define Package/uhttpd-mod-tls
51 $(Package/uhttpd/default)
53 DEPENDS:=uhttpd +PACKAGE_uhttpd-mod-tls_cyassl:libcyassl +PACKAGE_uhttpd-mod-tls_openssl:libopenssl
56 define Package/uhttpd-mod-tls/description
57 The TLS plugin adds HTTPS support to uHTTPd.
60 define Package/uhttpd-mod-tls/config
62 depends on PACKAGE_uhttpd-mod-tls
64 default PACKAGE_uhttpd-mod-tls_cyassl
66 config PACKAGE_uhttpd-mod-tls_cyassl
69 config PACKAGE_uhttpd-mod-tls_openssl
78 ifneq ($(CONFIG_PACKAGE_uhttpd-mod-tls_cyassl),)
80 TLS_CFLAGS:=-I$(STAGING_DIR)/usr/include/cyassl -DTLS_IS_CYASSL
81 TLS_LDFLAGS:=-lcyassl -lm
84 ifneq ($(CONFIG_PACKAGE_uhttpd-mod-tls_openssl),)
86 TLS_CFLAGS:=-DTLS_IS_OPENSSL
91 define Package/uhttpd-mod-lua
92 $(Package/uhttpd/default)
94 DEPENDS:=uhttpd +liblua
97 define Package/uhttpd-mod-lua/description
98 The Lua plugin adds a CGI-like Lua runtime interface to uHTTPd.
102 define Package/uhttpd-mod-ubus
103 $(Package/uhttpd/default)
104 TITLE+= (ubus plugin)
105 DEPENDS:=uhttpd +libubus +libblobmsg-json
108 define 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.
114 TARGET_CFLAGS += $(TLS_CFLAGS) $(if $(CONFIG_PACKAGE_uhttpd_debug),-DDEBUG) -ggdb3
115 TARGET_LDFLAGS += -lubox -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
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)"
126 mkdir -p $(PKG_BUILD_DIR)
127 $(CP) ./src/* $(PKG_BUILD_DIR)/
130 define Package/uhttpd/conffiles
136 define 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
145 define Package/uhttpd-mod-tls/install
146 $(INSTALL_DIR) $(1)/usr/lib
147 $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_tls.so $(1)/usr/lib/
150 define Package/uhttpd-mod-lua/install
151 $(INSTALL_DIR) $(1)/usr/lib
152 $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_lua.so $(1)/usr/lib/
155 define Package/uhttpd-mod-ubus/install
156 $(INSTALL_DIR) $(1)/usr/lib
157 $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_ubus.so $(1)/usr/lib/
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))