summaryrefslogtreecommitdiff
path: root/cleopatre/buildroot/package
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/buildroot/package')
-rw-r--r--cleopatre/buildroot/package/Config.in8
-rw-r--r--cleopatre/buildroot/package/spidgoahead/Config.in9
-rw-r--r--cleopatre/buildroot/package/spidgoahead/spidgoahead.mk113
3 files changed, 130 insertions, 0 deletions
diff --git a/cleopatre/buildroot/package/Config.in b/cleopatre/buildroot/package/Config.in
index 77f74b4850..7eaca7887b 100644
--- a/cleopatre/buildroot/package/Config.in
+++ b/cleopatre/buildroot/package/Config.in
@@ -246,6 +246,14 @@ source "package/quagga/Config.in"
source "package/rsync/Config.in"
source "package/samba/Config.in"
source "package/socat/Config.in"
+if BR2_TARGET_SPIDCOM
+source "package/spidgoahead/Config.in"
+config BR2_SPIDGOAHEAD_SSL_SUPPORT
+ bool "Support for HTTPS protocol."
+ depends on BR2_PACKAGE_OPENSSL
+ depends on BR2_PACKAGE_GOA
+ default n
+endif
source "package/stunnel/Config.in"
source "package/tcpdump/Config.in"
source "package/tftpd/Config.in"
diff --git a/cleopatre/buildroot/package/spidgoahead/Config.in b/cleopatre/buildroot/package/spidgoahead/Config.in
new file mode 100644
index 0000000000..6e3c11a4af
--- /dev/null
+++ b/cleopatre/buildroot/package/spidgoahead/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_SPIDGOAHEAD
+ bool "spidgoahead"
+ depends on BR2_PACKAGE_LIBSPID
+ help
+ GoAhead WebServer 2.1 is a fully featured, open source web server designed specifically for the needs of embedded device developers. It delivers a full range of features.
+
+ http://www.goahead.com/
+comment "spidgoahead disabled (requires package libspid)"
+ depends on !BR2_PACKAGE_LIBSPID \ No newline at end of file
diff --git a/cleopatre/buildroot/package/spidgoahead/spidgoahead.mk b/cleopatre/buildroot/package/spidgoahead/spidgoahead.mk
new file mode 100644
index 0000000000..7c28ba4c3d
--- /dev/null
+++ b/cleopatre/buildroot/package/spidgoahead/spidgoahead.mk
@@ -0,0 +1,113 @@
+#############################################################
+#
+# spidgoahead
+# Fully featured HTTP server customized for SPC300 board
+#
+#############################################################
+
+SPIDGOAHEAD_VERSION:=0.0.1
+SPIDGOAHEAD_SITE:=$(BASE_DIR)/../application/spidgoahead
+SPIDGOAHEAD_NAME:=spidgoahead-$(SPIDGOAHEAD_VERSION)
+SPIDGOAHEAD_DIR:=$(BUILD_DIR)/spidgoahead-$(SPIDGOAHEAD_VERSION)
+
+SPIDGOAHEAD_LIBSPID_SITE:=$(BASE_DIR)/../application/libspid
+
+TARGET_ETC_CERTS_DIR = $(TARGET_DIR)/etc/certs
+
+TARGET_LIST_BASE := \
+ $(TARGET_DIR)/usr/bin/httpd \
+ $(TARGET_DIR)/etc/http/um_httpd.conf
+
+TARGET_LIST_WITH_SSH := \
+ $(TARGET_DIR)/etc/server.pem \
+ $(TARGET_DIR)/etc/certs/cacert.pem \
+ $(TARGET_DIR)/etc/certs/cakey.pem
+
+# Update target if SSL switch is on
+ifeq ($(BR2_SPIDGOAHEAD_SSL_SUPPORT),y)
+TARGET_LIST := $(TARGET_LIST_BASE) $(TARGET_LIST_WITH_SSH)
+else
+TARGET_LIST := $(TARGET_LIST_BASE)
+endif
+
+spidgoahead-source:
+
+$(TARGET_ETC_CERTS_DIR):
+ mkdir -p $(TARGET_DIR)/etc/certs
+
+$(SPIDGOAHEAD_DIR)/.unpacked:
+ ln -s $(SPIDGOAHEAD_SITE) $(SPIDGOAHEAD_DIR)
+ touch $(SPIDGOAHEAD_DIR)/.unpacked
+
+$(SPIDGOAHEAD_DIR)/.configured: $(SPIDGOAHEAD_DIR)/.unpacked
+ touch $(SPIDGOAHEAD_DIR)/.configured
+
+$(SPIDGOAHEAD_DIR)/.compiled: $(SPIDGOAHEAD_DIR)/.configured \
+ $(SPIDGOAHEAD_LIBSPID_SITE)/libspid.so \
+ FORCE_SPIDGOAHEAD_MAKE
+ @$(TARGET_CONFIGURE_OPTS) \
+ $(MAKE) -C $(SPIDGOAHEAD_DIR) \
+ SSL_SUPPORT=$(BR2_SPIDGOAHEAD_SSL_SUPPORT) \
+ STAGING_DIR="$(STAGING_DIR)"
+
+# httpd file is expected through .compiled rule.
+# 'web.tar' is always rebuild with httpd. See spidgoahead makefile.
+$(TARGET_DIR)/usr/bin/httpd: $(SPIDGOAHEAD_DIR)/.compiled
+ mkdir -p $(TARGET_DIR)/usr/bin
+ cp $(SPIDGOAHEAD_DIR)/httpd $@
+ mkdir -p $(TARGET_DIR)/usr/share/httpd/web/cgi-bin
+ tar -xvf $(SPIDGOAHEAD_DIR)/web.tar -C $(TARGET_DIR)/usr/share/httpd/
+
+# '$(SPIDGOAHEAD_DIR)/server.pem' is expected through .compiled rule.
+$(TARGET_DIR)/etc/server.pem: $(SPIDGOAHEAD_DIR)/.compiled \
+ | $(TARGET_ETC_CERTS_DIR)
+ cp $(SPIDGOAHEAD_DIR)/server.pem $@
+
+# '$(SPIDGOAHEAD_DIR)/um_httpd.conf' is expected through .compiled rule.
+$(TARGET_DIR)/etc/http/um_httpd.conf: $(SPIDGOAHEAD_DIR)/.compiled
+ mkdir -p $(TARGET_DIR)/etc/http
+ cp $(SPIDGOAHEAD_DIR)/um_httpd.conf $@
+
+# This rule should be in spidgoahead makefile.
+# because package's makefile prepare TARGET only.
+$(SPIDGOAHEAD_DIR)/server-cert.pem $(SPIDGOAHEAD_DIR)/server.pem: $(SPIDGOAHEAD_DIR)/server-key.pem
+ openssl req -x509 -newkey rsa:2048 -days 1024 -keyout \
+ $(SPIDGOAHEAD_DIR)/server-key.pem \
+ -out $(SPIDGOAHEAD_DIR)/server-cert.pem
+ openssl rsa \
+ -in $(SPIDGOAHEAD_DIR)/server-key.pem \
+ -out $(SPIDGOAHEAD_DIR)/server-key-nopassword.pem
+ cat $(SPIDGOAHEAD_DIR)/server-key-nopassword.pem $(SPIDGOAHEAD_DIR)/server-cert.pem \
+ > $(SPIDGOAHEAD_DIR)/server.pem
+
+$(TARGET_DIR)/etc/certs/cacert.pem: $(SPIDGOAHEAD_DIR)/server-cert.pem \
+ | $(TARGET_ETC_CERTS_DIR)
+ cp $< $@
+
+$(TARGET_DIR)/etc/certs/cakey.pem: $(SPIDGOAHEAD_DIR)/server-key.pem \
+ | $(TARGET_ETC_CERTS_DIR)
+ cp $< $@
+
+spidgoahead: uclibc $(TARGET_LIST)
+
+spidgoahead-clean:
+ rm -f $(TARGET_LIST_BASE)
+ rm -f $(TARGET_LIST_WITH_SSH)
+ -$(MAKE) -C $(SPIDGOAHEAD_DIR) clean
+
+https-clean: spidgoahead-clean
+
+spidgoahead-dirclean:
+ rm -f $(SPIDGOAHEAD_DIR)
+
+# We declare FORCE_SPIDGOAHEAD_MAKE rule as PHONY to force compilation
+.PHONY: FORCE_SPIDGOAHEAD_MAKE
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_SPIDGOAHEAD)),y)
+TARGETS+=spidgoahead
+endif