diff --git a/Make.defs b/Make.defs index 0a6e869dd..5b6cd9aa0 100755 --- a/Make.defs +++ b/Make.defs @@ -36,6 +36,6 @@ define REGISTER @echo "Register: $1" - @echo "{ .name = \"$1\", .priority = $2, .stacksize = $3, .main = $4 }," >> ../exec_nuttapp_list.h - @echo "EXTERN int $4(int argc, char *argv[]);" >> ../exec_nuttapp_proto.h + @echo "{ .name = \"$1\", .priority = $2, .stacksize = $3, .main = $4 }," >> "$(APPDIR)/exec_nuttapp_list.h" + @echo "EXTERN int $4(int argc, char *argv[]);" >> "$(APPDIR)/exec_nuttapp_proto.h" endef diff --git a/Makefile b/Makefile index b9a067c26..ce00bb667 100644 --- a/Makefile +++ b/Makefile @@ -42,8 +42,14 @@ endif # Application Directories +# SUBDIRS is the list of all directories containing Makefiles. It is used +# only for cleaning. + +SUBDIRS = nshlib vsn + # we use a non-existing .built_always to guarantee that Makefile # always walks into the sub-directories and asks for build + BUILTIN_APPS_BUILT = BUILTIN_APPS_DIR = @@ -130,15 +136,21 @@ $(BIN): $(OBJS) $(BUILTIN_APPS_BUILT) depend: .depend +define MAKECLEAN + @(MAKE) -C $1 $2 TOPDIR="$(TOPDIR)" +endef + clean: @rm -f $(BIN) *~ .*.swp *.o libapps.a $(call CLEAN) + $(foreach DIR, $(SUBDIRS), $(eval $(call MAKECLEAN,$(DIR),clean))) distclean: clean @rm -f .config @rm -f Make.dep .depend @rm -f exec_nuttapp_list.h @rm -f exec_nuttapp_proto.h + $(foreach DIR, $(SUBDIRS), $(eval $(call MAKECLEAN,$(DIR),distclean))) -include Make.dep diff --git a/vsn/Makefile b/vsn/Makefile new file mode 100644 index 000000000..d971d3fe4 --- /dev/null +++ b/vsn/Makefile @@ -0,0 +1,58 @@ +############################################################################ +# vsn/Makefile +# +# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +# Sub-directories + +SUBDIRS = free hello poweroff ramtron sdcard + +all: nothing +.PHONY: nothing + +nothing: + +define DOMAKE + @(MAKE) -C $1 $2 TOPDIR="$(TOPDIR)" +endef + +depend: + $(foreach DIR, $(SUBDIRS), $(eval $(call DOMAKE,$(DIR),depend))) + +clean: + $(foreach DIR, $(SUBDIRS), $(eval $(call DOMAKE,$(DIR),clean))) + +distclean: clean + $(foreach DIR, $(SUBDIRS), $(eval $(call DOMAKE,$(DIR),distclean))) + +-include Make.dep diff --git a/free/Makefile b/vsn/free/Makefile similarity index 98% rename from free/Makefile rename to vsn/free/Makefile index 33b2c564c..d63f7af3e 100644 --- a/free/Makefile +++ b/vsn/free/Makefile @@ -38,7 +38,7 @@ # sourcing the Make.defs! -include $(TOPDIR)/Make.defs -include ../Make.defs +include ../../Make.defs ifeq ($(WINTOOL),y) INCDIROPT = -w @@ -60,7 +60,7 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) -BIN = ../libapps$(LIBEXT) +BIN = ../../libapps$(LIBEXT) ROOTDEPPATH = --dep-path . diff --git a/free/README.txt b/vsn/free/README.txt similarity index 100% rename from free/README.txt rename to vsn/free/README.txt diff --git a/free/free.c b/vsn/free/free.c similarity index 100% rename from free/free.c rename to vsn/free/free.c diff --git a/hello/Makefile b/vsn/hello/Makefile similarity index 98% rename from hello/Makefile rename to vsn/hello/Makefile index 720d365af..a0bed80e1 100644 --- a/hello/Makefile +++ b/vsn/hello/Makefile @@ -38,7 +38,7 @@ # sourcing the Make.defs! -include $(TOPDIR)/Make.defs -include ../Make.defs +include ../../Make.defs ifeq ($(WINTOOL),y) INCDIROPT = -w @@ -60,7 +60,7 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) -BIN = ../libapps$(LIBEXT) +BIN = ../../libapps$(LIBEXT) ROOTDEPPATH = --dep-path . diff --git a/hello/README.txt b/vsn/hello/README.txt similarity index 100% rename from hello/README.txt rename to vsn/hello/README.txt diff --git a/hello/hello.c b/vsn/hello/hello.c similarity index 100% rename from hello/hello.c rename to vsn/hello/hello.c diff --git a/poweroff/Makefile b/vsn/poweroff/Makefile similarity index 98% rename from poweroff/Makefile rename to vsn/poweroff/Makefile index b8e5ecd93..8e3538a2b 100644 --- a/poweroff/Makefile +++ b/vsn/poweroff/Makefile @@ -38,7 +38,7 @@ # sourcing the Make.defs! -include $(TOPDIR)/Make.defs -include ../Make.defs +include ../../Make.defs ifeq ($(WINTOOL),y) INCDIROPT = -w @@ -60,7 +60,7 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) -BIN = ../libapps$(LIBEXT) +BIN = ../../libapps$(LIBEXT) ROOTDEPPATH = --dep-path . diff --git a/poweroff/README.txt b/vsn/poweroff/README.txt similarity index 100% rename from poweroff/README.txt rename to vsn/poweroff/README.txt diff --git a/poweroff/poweroff.c b/vsn/poweroff/poweroff.c similarity index 100% rename from poweroff/poweroff.c rename to vsn/poweroff/poweroff.c diff --git a/ramtron/Makefile b/vsn/ramtron/Makefile similarity index 98% rename from ramtron/Makefile rename to vsn/ramtron/Makefile index d2430f747..42b73a09b 100644 --- a/ramtron/Makefile +++ b/vsn/ramtron/Makefile @@ -38,7 +38,7 @@ # sourcing the Make.defs! -include $(TOPDIR)/Make.defs -include ../Make.defs +include ../../Make.defs ifeq ($(WINTOOL),y) INCDIROPT = -w @@ -60,7 +60,7 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) -BIN = ../libapps$(LIBEXT) +BIN = ../../libapps$(LIBEXT) ROOTDEPPATH = --dep-path . diff --git a/ramtron/README.txt b/vsn/ramtron/README.txt similarity index 100% rename from ramtron/README.txt rename to vsn/ramtron/README.txt diff --git a/ramtron/ramtron.c b/vsn/ramtron/ramtron.c similarity index 100% rename from ramtron/ramtron.c rename to vsn/ramtron/ramtron.c diff --git a/sdcard/Makefile b/vsn/sdcard/Makefile similarity index 98% rename from sdcard/Makefile rename to vsn/sdcard/Makefile index 9df8cbe98..ccbd22952 100644 --- a/sdcard/Makefile +++ b/vsn/sdcard/Makefile @@ -38,7 +38,7 @@ # sourcing the Make.defs! -include $(TOPDIR)/Make.defs -include ../Make.defs +include ../../Make.defs ifeq ($(WINTOOL),y) INCDIROPT = -w @@ -60,7 +60,7 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) -BIN = ../libapps$(LIBEXT) +BIN = ../../libapps$(LIBEXT) ROOTDEPPATH = --dep-path . diff --git a/sdcard/README.txt b/vsn/sdcard/README.txt similarity index 100% rename from sdcard/README.txt rename to vsn/sdcard/README.txt diff --git a/sdcard/sdcard.c b/vsn/sdcard/sdcard.c similarity index 100% rename from sdcard/sdcard.c rename to vsn/sdcard/sdcard.c