fix multi-packages builds, cleanup

git-svn-id: svn://svn.openwrt.org/openwrt/packages@8677 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nico
2007-09-07 19:37:59 +00:00
parent 564b16d4fc
commit a28a8d47ec

View File

@ -12,161 +12,178 @@ PKG_NAME:=mini-httpd
PKG_VERSION:=1.19 PKG_VERSION:=1.19
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/mini_httpd-$(PKG_VERSION)
PKG_SOURCE:=mini_httpd-$(PKG_VERSION).tar.gz PKG_SOURCE:=mini_httpd-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.acme.com/software/mini_httpd/ PKG_SOURCE_URL:=http://www.acme.com/software/mini_httpd/
PKG_MD5SUM:=792a529dfe974355aad8ba6c80e54e7a PKG_MD5SUM:=792a529dfe974355aad8ba6c80e54e7a
PKG_CAT:=zcat
PKG_BUILD_DIR:=$(BUILD_DIR)/mini_httpd-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/mini-httpd define Package/mini-httpd/Default
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
TITLE:=A small web server 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/ URL:=http://www.acme.com/software/mini_httpd/
endef endef
define Package/mini-httpd/conffiles define Package/mini-httpd/Default/conffiles
/etc/mini_httpd.conf /etc/mini_httpd.conf
/etc/default/mini_httpd /etc/default/mini_httpd
endef endef
define Package/mini-httpd-htpasswd define Package/mini-httpd/Default/description
$(call Package/mini-httpd) mini_httpd is a small HTTP server. Its performance is not great, but for
TITLE:=Utility to generate HTTP access files low or medium traffic sites it's quite adequate. It implements all the
DESCRIPTION+=This package generates .htaccess/.htpasswd files to use HTTP access authentication 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 endef
define Package/mini-httpd-matrixssl define Package/mini-httpd-matrixssl
$(call Package/mini-httpd) $(call Package/mini-httpd/Default)
DEPENDS:= +libmatrixssl DEPENDS:= +libmatrixssl
TITLE:=A small web server, built with SSL support using MatrixSSL TITLE+= (built with MatrixSSL)
DESCRIPTION+=This package adds SSL/HTTPS. (MatrixSSL)
endef endef
define Package/mini-httpd-matrixssl/conffiles define Package/mini-httpd-matrixssl/conffiles
/etc/mini_httpd.conf $(call Package/mini-httpd/Default/conffiles)
/etc/mini_httpd.pem /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 endef
define Package/mini-httpd-openssl define Package/mini-httpd-openssl
$(call Package/mini-httpd) $(call Package/mini-httpd/Default)
DEPENDS:= +libopenssl DEPENDS:= +libopenssl
TITLE:=A small web server, built with SSL support using OpenSSL TITLE+= (built with OpenSSL)
DESCRIPTION+=This package adds SSL/HTTPS. (OpenSSL)
endef endef
define Package/mini-httpd-openssl/conffiles define Package/mini-httpd-openssl/conffiles
/etc/mini_httpd.conf $(call Package/mini-httpd/Default/conffiles)
/etc/mini_httpd.pem /etc/mini_httpd.pem
/etc/default/mini_httpd
endef endef
ifneq ($(SDK),) define Package/mini-httpd-openssl/description
CONFIG_PACKAGE_mini-httpd:=m $(call Package/mini-httpd/Default/description)
CONFIG_PACKAGE_mini-httpd-matrixssl:=m This package is built with SSL/HTTPS using OpenSSL.
CONFIG_PACKAGE_mini-httpd-openssl:=m endef
endif
define Build/Configure define Package/mini-httpd-htpasswd
$(call Package/mini-httpd/Default)
TITLE:=Utility to generate HTTP access files
endef
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
( 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
endef
define Build/Prepare
$(call Build/Prepare/Default)
$(CP) ./files/matrixssl_helper.{c,h} $(PKG_BUILD_DIR)/ $(CP) ./files/matrixssl_helper.{c,h} $(PKG_BUILD_DIR)/
endef endef
define Build/Compile define Build/Configure
# 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),)
$(MAKE) -C $(PKG_BUILD_DIR) \
$(TARGET_CONFIGURE_OPTS) \
OFLAGS="$(TARGET_CFLAGS)" \
all
endif
endef endef
define Package/mini-httpd/install define Build/Compile
$(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 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-htpasswd/install define Package/mini-httpd-htpasswd/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/htpasswd $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/htpasswd $(1)/usr/sbin/
endef 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
endef
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
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mini_httpd-openssl $(1)/usr/sbin/mini_httpd
endef
$(eval $(call BuildPackage,mini-httpd)) $(eval $(call BuildPackage,mini-httpd))
$(eval $(call BuildPackage,mini-httpd-htpasswd))
$(eval $(call BuildPackage,mini-httpd-matrixssl)) $(eval $(call BuildPackage,mini-httpd-matrixssl))
$(eval $(call BuildPackage,mini-httpd-openssl)) $(eval $(call BuildPackage,mini-httpd-openssl))
$(eval $(call BuildPackage,mini-httpd-htpasswd))