From: Nicolas Thill Date: Fri, 7 Sep 2007 19:37:59 +0000 (+0000) Subject: fix multi-packages builds, cleanup X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=07f2ff658dcf47d4cb6838b34b7b918dbc213d65 fix multi-packages builds, cleanup SVN-Revision: 8677 --- diff --git a/net/mini_httpd/Makefile b/net/mini_httpd/Makefile index a93425e389..6bb44e500d 100644 --- a/net/mini_httpd/Makefile +++ b/net/mini_httpd/Makefile @@ -12,161 +12,178 @@ PKG_NAME:=mini-httpd 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))