[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3 of 4] minios/build: Introduce application directories
Allow for separate application subdirectories when developing with minios. The new system allows a developer to run: make XEN_TARGET_ARCH=<arch> APP=<foo> While maintaining separate apps in apps/<foo>/ There is now a requirement to have apps/<foo>/app.mk which lists the source files, and can provide application specific configuration of settings. The default application, daytime, has been moved to use this system, and remains the default if no APP is provided to the invocation of make. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> diff -r 29138c27eb72 -r 121ae49aabcb extras/mini-os/Config.mk --- a/extras/mini-os/Config.mk +++ b/extras/mini-os/Config.mk @@ -2,6 +2,10 @@ MINI-OS_ROOT=$(XEN_ROOT)/extras/mini-os export MINI-OS_ROOT +# Default to the daytime app +MINIOS_APP_DIR := apps +APP ?= daytime + libc = $(stubdom) XEN_INTERFACE_VERSION := 0x00030205 diff -r 29138c27eb72 -r 121ae49aabcb extras/mini-os/Makefile --- a/extras/mini-os/Makefile +++ b/extras/mini-os/Makefile @@ -15,6 +15,9 @@ EXTRA_DEPS += $(MINIOS_CONFIG) include $(MINIOS_CONFIG) endif +EXTRA_DEPS += $(MINIOS_APP_DIR)/$(APP)/app.mk +include $(MINIOS_APP_DIR)/$(APP)/app.mk + # Configuration defaults CONFIG_START_NETWORK ?= y CONFIG_SPARSE_BSS ?= y @@ -77,7 +80,6 @@ src-$(CONFIG_TPMFRONT) += tpmfront.c src-$(CONFIG_TPM_TIS) += tpm_tis.c src-$(CONFIG_TPMBACK) += tpmback.c src-y += cmdline.c -src-y += daytime.c src-y += events.c src-$(CONFIG_FBFRONT) += fbfront.c src-y += gntmap.c @@ -108,7 +110,6 @@ src-y += console/xencons_ring.c src-$(CONFIG_CONSFRONT) += console/xenbus.c # The common mini-os objects to build. -APP_OBJS := OBJS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(src-y)) .PHONY: default @@ -181,12 +182,15 @@ endif $(LD) $(LDFLAGS) $(LDFLAGS_FINAL) $@.o $(EXTRA_OBJS) -o $@ gzip -f -9 -c $@ >$@.gz -.PHONY: clean arch_clean +.PHONY: clean arch_clean apps_clean arch_clean: $(MAKE) --directory=$(TARGET_ARCH_DIR) OBJ_DIR=$(OBJ_DIR)/$(TARGET_ARCH_DIR) clean || exit 1; -clean: arch_clean +apps_clean: + find $(OBJ_DIR)/$(MINIOS_APP_DIR) -name '*.o' | xargs rm -f + +clean: arch_clean apps_clean for dir in $(addprefix $(OBJ_DIR)/,$(SUBDIRS)); do \ rm -f $$dir/*.o; \ done diff -r 29138c27eb72 -r 121ae49aabcb extras/mini-os/apps/daytime/app.mk --- /dev/null +++ b/extras/mini-os/apps/daytime/app.mk @@ -0,0 +1,1 @@ +src-y += $(MINIOS_APP_DIR)/$(APP)/daytime.c diff -r 29138c27eb72 -r 121ae49aabcb extras/mini-os/apps/daytime/daytime.c --- /dev/null +++ b/extras/mini-os/apps/daytime/daytime.c @@ -0,0 +1,67 @@ +/* + * daytime.c: a simple network service based on lwIP and mini-os + * + * Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>, July 2007 + */ + +#include <os.h> +#include <xmalloc.h> +#include <console.h> +#include <netfront.h> +#include <lwip/api.h> + +static char message[29]; + +void run_server(void *p) +{ + struct ip_addr listenaddr = { 0 }; + struct netconn *listener; + struct netconn *session; + struct timeval tv; + err_t rc; + + start_networking(); + + if (0) { + struct ip_addr ipaddr = { htonl(0x0a000001) }; + struct ip_addr netmask = { htonl(0xff000000) }; + struct ip_addr gw = { 0 }; + networking_set_addr(&ipaddr, &netmask, &gw); + } + + tprintk("Opening connection\n"); + + listener = netconn_new(NETCONN_TCP); + tprintk("Connection at %p\n", listener); + + rc = netconn_bind(listener, &listenaddr, 13); + if (rc != ERR_OK) { + tprintk("Failed to bind connection: %i\n", rc); + return; + } + + rc = netconn_listen(listener); + if (rc != ERR_OK) { + tprintk("Failed to listen on connection: %i\n", rc); + return; + } + + while (1) { + session = netconn_accept(listener); + if (session == NULL) + continue; + + gettimeofday(&tv, NULL); + sprintf(message, "%20lu.%6.6lu\n", tv.tv_sec, tv.tv_usec); + (void) netconn_write(session, message, strlen(message), NETCONN_COPY); + (void) netconn_disconnect(session); + (void) netconn_delete(session); + } +} + + +int app_main(start_info_t *si) +{ + create_thread("server", run_server, NULL); + return 0; +} diff -r 29138c27eb72 -r 121ae49aabcb extras/mini-os/daytime.c --- a/extras/mini-os/daytime.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * daytime.c: a simple network service based on lwIP and mini-os - * - * Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>, July 2007 - */ - -#include <os.h> -#include <xmalloc.h> -#include <console.h> -#include <netfront.h> -#include <lwip/api.h> - -static char message[29]; - -void run_server(void *p) -{ - struct ip_addr listenaddr = { 0 }; - struct netconn *listener; - struct netconn *session; - struct timeval tv; - err_t rc; - - start_networking(); - - if (0) { - struct ip_addr ipaddr = { htonl(0x0a000001) }; - struct ip_addr netmask = { htonl(0xff000000) }; - struct ip_addr gw = { 0 }; - networking_set_addr(&ipaddr, &netmask, &gw); - } - - tprintk("Opening connection\n"); - - listener = netconn_new(NETCONN_TCP); - tprintk("Connection at %p\n", listener); - - rc = netconn_bind(listener, &listenaddr, 13); - if (rc != ERR_OK) { - tprintk("Failed to bind connection: %i\n", rc); - return; - } - - rc = netconn_listen(listener); - if (rc != ERR_OK) { - tprintk("Failed to listen on connection: %i\n", rc); - return; - } - - while (1) { - session = netconn_accept(listener); - if (session == NULL) - continue; - - gettimeofday(&tv, NULL); - sprintf(message, "%20lu.%6.6lu\n", tv.tv_sec, tv.tv_usec); - (void) netconn_write(session, message, strlen(message), NETCONN_COPY); - (void) netconn_disconnect(session); - (void) netconn_delete(session); - } -} - - -int app_main(start_info_t *si) -{ - create_thread("server", run_server, NULL); - return 0; -} _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |