From 031c45994b0986963222b957a98cb9a66b6924f8 Mon Sep 17 00:00:00 2001 From: David Kopf Date: Sun, 24 Jul 2011 11:59:28 -0400 Subject: [PATCH] Add WITH_WEBSERVER= options --- examples/ipv6/rpl-border-router/Makefile | 22 +++++++++++----- .../ipv6/rpl-border-router/border-router.c | 18 +++++++------ examples/webserver-ipv6/Makefile | 26 ++++++++++++++++++- examples/webserver-ipv6/README | 5 ++++ 4 files changed, 55 insertions(+), 16 deletions(-) diff --git a/examples/ipv6/rpl-border-router/Makefile b/examples/ipv6/rpl-border-router/Makefile index 3fd4c82b4..8ce443082 100644 --- a/examples/ipv6/rpl-border-router/Makefile +++ b/examples/ipv6/rpl-border-router/Makefile @@ -5,16 +5,24 @@ CONTIKI=../../.. WITH_UIP6=1 UIP_CONF_IPV6=1 -#Override inclusion of internal webserver with make WITH_WEBSERVER=0 -WITH_WEBSERVER=1 - -ifeq ($(WITH_WEBSERVER), 0) CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\" PROJECT_SOURCEFILES += slip-bridge.c -else + +#Simple built-in webserver is the default. +#Override with make WITH_WEBSERVER=0 for no webserver. +#WITH_WEBSERVER=webserver-name will use /apps/webserver-name if it can be +#found in the /apps, /platform/$(TARGET)/apps/, or current directory (in that order). +# WITH_WEBSERVER=webserver for /apps/webserver +# WITH_WEBSERVER=raven-webserver for /platform/avr-raven/apps/raven-webserver/ +#make clean before changing webservers! +WITH_WEBSERVER=1 +ifeq ($(WITH_WEBSERVER),1) +CFLAGS += -DWEBSERVER=1 +PROJECT_SOURCEFILES += httpd-simple.c APPS += webserver -CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\" -DWEBSERVER -PROJECT_SOURCEFILES += slip-bridge.c httpd-simple.c +else ifneq ($(WITH_WEBSERVER), 0) +APPS += $(WITH_WEBSERVER) +CFLAGS += -DWEBSERVER=2 endif include $(CONTIKI)/Makefile.include diff --git a/examples/ipv6/rpl-border-router/border-router.c b/examples/ipv6/rpl-border-router/border-router.c index a7a31f48e..b5e9a470e 100644 --- a/examples/ipv6/rpl-border-router/border-router.c +++ b/examples/ipv6/rpl-border-router/border-router.c @@ -69,11 +69,17 @@ static uip_ipaddr_t prefix; static uint8_t prefix_set; PROCESS(border_router_process, "Border router process"); -AUTOSTART_PROCESSES(&border_router_process); -#if WEBSERVER -/*---------------------------------------------------------------------------*/ -/* Only one single web request at time */ +#if WEBSERVER==0 + /* No webserver */ +AUTOSTART_PROCESSES(&border_router_process); +#elif WEBSERVER>1 +/* Use an external webserver process */ +//PROCESS_NAME(webserver_nogui_process); +AUTOSTART_PROCESSES(&border_router_process,&webserver_nogui_process); +#else +AUTOSTART_PROCESSES(&border_router_process,&webserver_nogui_process); +/* Use simple webserver with only one page */ static const char *TOP = "ContikiRPL\n"; static const char *BOTTOM = "\n"; static char buf[128]; @@ -212,10 +218,6 @@ PROCESS_THREAD(border_router_process, ev, data) PROCESS_PAUSE(); -#if WEBSERVER - process_start(&webserver_nogui_process, NULL); -#endif - SENSORS_ACTIVATE(button_sensor); PRINTF("RPL-Border router started\n"); diff --git a/examples/webserver-ipv6/Makefile b/examples/webserver-ipv6/Makefile index 388605ac8..d6809e862 100644 --- a/examples/webserver-ipv6/Makefile +++ b/examples/webserver-ipv6/Makefile @@ -1,5 +1,29 @@ -all: webserver6 +all: webserver6 $(WITH_WEBSERVER) + +ifeq ($(WITH_WEBSERVER),) +# +#Set default webserver for different platforms +#Although Makefile.include sets the default target, we need to know it now. +# +ifeq ($(TARGET),) + -include Makefile.target +endif +ifeq ($(TARGET),sky) +WITH_WEBSERVER=webserver-nano +else ifeq ($(TARGET),avr-raven) +WITH_WEBSERVER=raven-webserver +endif +# +endif + +ifneq ($(WITH_WEBSERVER),) +APPS = $(WITH_WEBSERVER) +#copy output to e.g. webserver-nano.sky, raven-webserver.avr-raven +$(WITH_WEBSERVER) : webserver6 + cp webserver6.$(TARGET) $(WITH_WEBSERVER).$(TARGET) +else APPS=webserver +endif UIP_CONF_IPV6=1 DEFINES=WITH_UIP6 diff --git a/examples/webserver-ipv6/README b/examples/webserver-ipv6/README index 731c0dd40..c6e34b4df 100644 --- a/examples/webserver-ipv6/README +++ b/examples/webserver-ipv6/README @@ -23,3 +23,8 @@ code as follows: 3ffe:0501:ffff:0100:0206:98ff:fe00:0232 - Finally you can use 'wget http://[3ffe:0501:ffff:0100:0206:98ff:fe00:0232]' to get the web page (index.html file) + + The default webserver and content is in /apps/webserver/... + Change that using e.g. + $make WITH_WEBSERVER=webserver-nano + $make TARGET=avr-raven WITH_WEBSERVER=raven-webserver \ No newline at end of file