PKG_VERSION:=1.19
PKG_RELEASE:=1
-PKG_BUILD_DIR:=$(BUILD_DIR)/mini_httpd-$(PKG_VERSION)
PKG_SOURCE:=mini_httpd-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.acme.com/software/mini_httpd/
PKG_MD5SUM:=792a529dfe974355aad8ba6c80e54e7a
-PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/mini_httpd-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
-define Package/mini-httpd
+define Package/mini-httpd/Default
SECTION:=net
CATEGORY:=Network
TITLE:=A small web server
- DESCRIPTION:=mini_httpd is a small HTTP server. Its performance is not great, but for \\\
- low or medium traffic sites it's quite adequate. It implements all the \\\
- basic features of an HTTP server, including: \\\
- \\\
- * GET, HEAD, and POST methods.\\\
- * CGI.\\\
- * Basic authentication.\\\
- * Security against ".." filename snooping.\\\
- * The common MIME types.\\\
- * Trailing-slash redirection.\\\
- * index.html, index.htm, index.cgi\\\
- * Directory listings.\\\
- * Multihoming / virtual hosting.\\\
- * Standard logging.\\\
- * Custom error pages.\\\
- \\\
- It can also be configured to do IPv6.
URL:=http://www.acme.com/software/mini_httpd/
endef
-define Package/mini-httpd/conffiles
+define Package/mini-httpd/Default/conffiles
/etc/mini_httpd.conf
/etc/default/mini_httpd
endef
-define Package/mini-httpd-htpasswd
- $(call Package/mini-httpd)
- TITLE:=Utility to generate HTTP access files
- DESCRIPTION+=This package generates .htaccess/.htpasswd files to use HTTP access authentication
+define Package/mini-httpd/Default/description
+ mini_httpd is a small HTTP server. Its performance is not great, but for
+ low or medium traffic sites it's quite adequate. It implements all the
+ basic features of an HTTP server, including:
+ - GET, HEAD, and POST methods
+ - CGI
+ - Basic authentication
+ - Security against ".." filename snooping
+ - The common MIME types
+ - Trailing-slash redirection
+ - index.html, index.htm, index.cgi
+ - Directory listings
+ - Multihoming / virtual hosting
+ - Standard logging
+ - Custom error pages
+ It can also be configured to do IPv6.
+endef
+
+define Package/mini-httpd
+$(call Package/mini-httpd/Default)
+endef
+
+define Package/mini-httpd/conffiles
+$(call Package/mini-httpd/Default/conffiles)
+endef
+
+define Package/mini-httpd/description
+$(call Package/mini-httpd/Default/description)
endef
define Package/mini-httpd-matrixssl
- $(call Package/mini-httpd)
- DEPENDS:=+libmatrixssl
- TITLE:=A small web server, built with SSL support using MatrixSSL
- DESCRIPTION+=This package adds SSL/HTTPS. (MatrixSSL)
+$(call Package/mini-httpd/Default)
+ DEPENDS:= +libmatrixssl
+ TITLE+= (built with MatrixSSL)
endef
define Package/mini-httpd-matrixssl/conffiles
-/etc/mini_httpd.conf
+$(call Package/mini-httpd/Default/conffiles)
/etc/mini_httpd.pem
-/etc/default/mini_httpd
+endef
+
+define Package/mini-httpd-matrixssl/description
+$(call Package/mini-httpd/Default/description)
+ This package is built with SSL/HTTPS using MatrixSSL.
endef
define Package/mini-httpd-openssl
- $(call Package/mini-httpd)
- DEPENDS:=+libopenssl
- TITLE:=A small web server, built with SSL support using OpenSSL
- DESCRIPTION+=This package adds SSL/HTTPS. (OpenSSL)
+$(call Package/mini-httpd/Default)
+ DEPENDS:= +libopenssl
+ TITLE+= (built with OpenSSL)
endef
define Package/mini-httpd-openssl/conffiles
-/etc/mini_httpd.conf
+$(call Package/mini-httpd/Default/conffiles)
/etc/mini_httpd.pem
-/etc/default/mini_httpd
endef
-ifneq ($(SDK),)
- CONFIG_PACKAGE_mini-httpd:=m
- CONFIG_PACKAGE_mini-httpd-matrixssl:=m
- CONFIG_PACKAGE_mini-httpd-openssl:=m
-endif
+define Package/mini-httpd-openssl/description
+$(call Package/mini-httpd/Default/description)
+ This package is built with SSL/HTTPS using OpenSSL.
+endef
-define Build/Configure
- $(CP) ./files/matrixssl_helper.{c,h} $(PKG_BUILD_DIR)/
+define Package/mini-httpd-htpasswd
+ $(call Package/mini-httpd/Default)
+ TITLE:=Utility to generate HTTP access files
endef
-define Build/Compile
- # with MatrixSSL
- ifneq ($(CONFIG_PACKAGE_mini-httpd-matrixssl),)
- $(MAKE) -C $(PKG_BUILD_DIR) \
- $(TARGET_CONFIGURE_OPTS) \
- OFLAGS="$(TARGET_CFLAGS)" \
- SSL_DEFS="-DUSE_SSL -DHAVE_MATRIXSSL" \
- SSL_INC="-I$(STAGING_DIR)/usr/include" \
- SSL_LIBS="-L$(STAGING_DIR)/usr/lib -lmatrixssl" \
- SSL_OBJS="matrixssl_helper.o" \
- all
- (cd $(PKG_BUILD_DIR); mv mini_httpd mini_httpd-matrixssl; )
- $(MAKE) -C $(PKG_BUILD_DIR) clean
- endif
- # with OpenSSL
- ifneq ($(CONFIG_PACKAGE_mini-httpd-openssl),)
- $(MAKE) -C $(PKG_BUILD_DIR) \
- $(TARGET_CONFIGURE_OPTS) \
- OFLAGS="$(TARGET_CFLAGS)" \
- SSL_DEFS="-DUSE_SSL -DHAVE_OPENSSL" \
- SSL_INC="-I$(STAGING_DIR)/usr/include" \
- SSL_LIBS="-L$(STAGING_DIR)/usr/lib -lssl -lcrypto" \
- all
- (cd $(PKG_BUILD_DIR); mv mini_httpd mini_httpd-openssl; )
- $(MAKE) -C $(PKG_BUILD_DIR) clean
- endif
- # without SSL
- ifneq ($(CONFIG_PACKAGE_mini-httpd),)
+define Package/mini-httpd-htpasswd/description
+$(call Package/mini-httpd/Default/description)
+ This package generates .htaccess/.htpasswd files to use HTTP access authentication.
+endef
+
+
+define Build/Template
+
+$(STAMP_BUILT)-$(2): $(STAMP_PREPARED)
+ -$(MAKE) -C $(PKG_BUILD_DIR) clean
$(MAKE) -C $(PKG_BUILD_DIR) \
$(TARGET_CONFIGURE_OPTS) \
OFLAGS="$(TARGET_CFLAGS)" \
+ $(3) \
all
- endif
+ ( cd $(PKG_BUILD_DIR); mv -f mini_httpd mini_httpd-$(2) )
+ touch $$@
+
+$(STAMP_BUILT): $(STAMP_BUILT)-$(2)
+
+define Package/$(1)/install
+ $(INSTALL_DIR) $$(1)/etc
+ifeq ($(2),without-ssl)
+ $(INSTALL_DATA) ./files/mini_httpd.conf $$(1)/etc/mini_httpd.conf
+else
+ $(INSTALL_DATA) ./files/mini_httpd-ssl.conf $$(1)/etc/mini_httpd.conf
+ $(INSTALL_CONF) ./files/mini_httpd.pem $$(1)/etc/mini_httpd.pem
+endif
+ $(INSTALL_DIR) $$(1)/etc/default
+ $(INSTALL_DATA) ./files/mini_httpd.default $$(1)/etc/default/mini_httpd
+ $(INSTALL_DIR) $$(1)/etc/init.d
+ $(INSTALL_BIN) ./files/mini_httpd.init $$(1)/etc/init.d/mini_httpd
+ $(INSTALL_DIR) $$(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/mini_httpd-$(2) $$(1)/usr/sbin/mini_httpd
endef
-define Package/mini-httpd/install
- $(INSTALL_DIR) $(1)/etc
- $(INSTALL_DATA) ./files/mini_httpd.conf $(1)/etc/mini_httpd.conf
- $(INSTALL_DIR) $(1)/etc/default
- $(INSTALL_DATA) ./files/mini_httpd.default $(1)/etc/default/mini_httpd
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/mini_httpd.init $(1)/etc/init.d/mini_httpd
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/mini_httpd $(1)/usr/sbin/mini_httpd
endef
-define Package/mini-httpd-htpasswd/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/htpasswd $(1)/usr/sbin/
+
+define Build/Prepare
+$(call Build/Prepare/Default)
+ $(CP) ./files/matrixssl_helper.{c,h} $(PKG_BUILD_DIR)/
endef
-define Package/mini-httpd-matrixssl/install
- $(INSTALL_DIR) $(1)/etc
- $(INSTALL_DATA) ./files/mini_httpd-ssl.conf $(1)/etc/mini_httpd.conf
- $(INSTALL_CONF) ./files/mini_httpd.pem $(1)/etc/mini_httpd.pem
- $(INSTALL_DIR) $(1)/etc/default
- $(INSTALL_DATA) ./files/mini_httpd.default $(1)/etc/default/mini_httpd
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/mini_httpd.init $(1)/etc/init.d/mini_httpd
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/mini_httpd-matrixssl $(1)/usr/sbin/mini_httpd
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+# always build without SSL because we might need htpassd
+define Build/without-ssl
+ $(call Build/Template,minit-httpd,without-ssl,)
endef
+$(eval $(Build/without-ssl))
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_mini-httpd-matrixssl),)
+ define Build/with-matrixssl
+ $(call Build/Template,mini-httpd-matrixssl,with-matrixssl, \
+ SSL_DEFS="-DUSE_SSL -DHAVE_MATRIXSSL" \
+ SSL_INC="$(TARGET_CPPFLAGS)" \
+ SSL_LIBS="$(TARGET_LDFLAGS) -lmatrixssl" \
+ SSL_OBJS="matrixssl_helper.o" \
+ )
+ endef
+endif
+$(eval $(Build/with-matrixssl))
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_mini-httpd-openssl),)
+ define Build/with-openssl
+ $(call Build/Template,minit-httpd-openssl,with-openssl, \
+ SSL_DEFS="-DUSE_SSL -DHAVE_OPENSSL" \
+ SSL_INC="$(TARGET_CPPFLAGS)" \
+ SSL_LIBS="$(TARGET_LDFLAGS) -lcrypto -lssl" \
+ )
+ endef
+endif
+$(eval $(Build/with-openssl))
-define Package/mini-httpd-openssl/install
- $(INSTALL_DIR) $(1)/etc
- $(INSTALL_DATA) ./files/mini_httpd-ssl.conf $(1)/etc/mini_httpd.conf
- $(INSTALL_CONF) ./files/mini_httpd.pem $(1)/etc/mini_httpd.pem
- $(INSTALL_DIR) $(1)/etc/default
- $(INSTALL_DATA) ./files/mini_httpd.default $(1)/etc/default/mini_httpd
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/mini_httpd.init $(1)/etc/init.d/mini_httpd
+define Package/mini-httpd-htpasswd/install
$(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/mini_httpd-openssl $(1)/usr/sbin/mini_httpd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/htpasswd $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,mini-httpd))
-$(eval $(call BuildPackage,mini-httpd-htpasswd))
$(eval $(call BuildPackage,mini-httpd-matrixssl))
$(eval $(call BuildPackage,mini-httpd-openssl))
+$(eval $(call BuildPackage,mini-httpd-htpasswd))