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
))