diff options
Diffstat (limited to 'apps')
-rwxr-xr-x | apps/ChangeLog.txt | 4 | ||||
-rw-r--r-- | apps/Makefile | 22 | ||||
-rw-r--r-- | apps/examples/README.txt | 8 | ||||
-rw-r--r-- | apps/examples/pashello/Makefile | 7 | ||||
-rw-r--r-- | apps/examples/pashello/pashello.c | 4 | ||||
-rw-r--r-- | apps/interpreters/Makefile | 70 | ||||
-rw-r--r-- | apps/interpreters/README.txt | 59 | ||||
-rw-r--r-- | apps/netutils/Makefile | 3 |
8 files changed, 153 insertions, 24 deletions
diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt index 3443a9fe8..f78ae146b 100755 --- a/apps/ChangeLog.txt +++ b/apps/ChangeLog.txt @@ -32,3 +32,7 @@ verify NXFFS. 6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + + * apps/interpreter: Add a directory to hold interpreters. The Pascal add- + on module now installs and builds under this directory. + diff --git a/apps/Makefile b/apps/Makefile index c8c5bcd14..487fd94f5 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -48,20 +48,20 @@ APPDIR = ${shell pwd} # list can be extended by the .config file as well CONFIGURED_APPS = -SUBDIRS = namedapp nshlib netutils examples vsn +SUBDIRS = examples interpreters namedapp nshlib netutils vsn -include .config -# BUILTIN_APPS_DIR is the list of currently available application directories. It -# is the same as CONFIGURED_APPS, but filtered to exclude any non-existent apps +# INSTALLED_APPS is the list of currently available application directories. It +# is the same as CONFIGURED_APPS, but filtered to exclude any non-existent apps. # namedapp is always in the list of applications to be built -BUILTIN_APPS_DIR = namedapp +INSTALLED_APPS = namedapp -# Create the list of available applications (BUILTIN_APPS_DIR) +# Create the list of available applications (INSTALLED_APPS) define ADD_BUILTIN -BUILTIN_APPS_DIR += ${shell if [ -r $1/Makefile ]; then echo "$1"; fi} +INSTALLED_APPS += ${shell if [ -r $1/Makefile ]; then echo "$1"; fi} endef $(foreach BUILTIN, $(CONFIGURED_APPS), $(eval $(call ADD_BUILTIN,$(BUILTIN)))) @@ -73,18 +73,18 @@ BIN = libapps$(LIBEXT) # Build targets all: $(BIN) -.PHONY: $(BUILTIN_APPS_DIR) context depend clean distclean +.PHONY: $(INSTALLED_APPS) context depend clean distclean -$(BUILTIN_APPS_DIR): +$(INSTALLED_APPS): @$(MAKE) -C $@ TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; -$(BIN): $(BUILTIN_APPS_DIR) +$(BIN): $(INSTALLED_APPS) @( for obj in $(OBJS) ; do \ $(call ARCHIVE, $@, $${obj}); \ done ; ) .context: - @for dir in $(BUILTIN_APPS_DIR) ; do \ + @for dir in $(INSTALLED_APPS) ; do \ rm -f $$dir/.context ; \ $(MAKE) -C $$dir TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" context ; \ done @@ -93,7 +93,7 @@ $(BIN): $(BUILTIN_APPS_DIR) context: .context .depend: context Makefile $(SRCS) - @for dir in $(BUILTIN_APPS_DIR) ; do \ + @for dir in $(INSTALLED_APPS) ; do \ rm -f $$dir/.depend ; \ $(MAKE) -C $$dir TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" depend ; \ done diff --git a/apps/examples/README.txt b/apps/examples/README.txt index d342814c2..468d3d86b 100644 --- a/apps/examples/README.txt +++ b/apps/examples/README.txt @@ -274,7 +274,13 @@ examples/ostest examples/pashello ^^^^^^^^^^^^^^^^^ - This is "Hello, World" implemented via the Pascal P-Code interpreter + This is "Hello, World" implemented via the Pascal P-Code interpreter. In + order to use this example, you must first download and install the + NuttX pascal module. After unpacking the pascal module, you can find + installation instructions in pascal/nuttx/README.txt. + + The correct install location for the NuttX examples and build files is + apps/interpreters. examples/pipe ^^^^^^^^^^^^^ diff --git a/apps/examples/pashello/Makefile b/apps/examples/pashello/Makefile index f392e1b23..44830eee2 100644 --- a/apps/examples/pashello/Makefile +++ b/apps/examples/pashello/Makefile @@ -39,13 +39,6 @@ include $(APPDIR)/Make.defs # Pascal Add-On Example -ifeq ($(WINTOOL),y) -INCDIROPT = -w -endif - -CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/pcode/include } -CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/pcode/insn/include} - ASRCS = CSRCS = pashello.c device.c diff --git a/apps/examples/pashello/pashello.c b/apps/examples/pashello/pashello.c index 9ebe68a27..ae19c94f5 100644 --- a/apps/examples/pashello/pashello.c +++ b/apps/examples/pashello/pashello.c @@ -43,8 +43,8 @@ #include <stdlib.h> #include <debug.h> -#include "pexec.h" -#include "pedefs.h" +#include "apps/pcode/insn/pexec.h" +#include "apps/pcode/pedefs.h" #include "pashello.h" /**************************************************************************** diff --git a/apps/interpreters/Makefile b/apps/interpreters/Makefile new file mode 100644 index 000000000..bf27d79e8 --- /dev/null +++ b/apps/interpreters/Makefile @@ -0,0 +1,70 @@ +############################################################################ +# apps/interpreters/Makefile +# +# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt <spudmonkey@racsa.co.cr> +# +# 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. +# +############################################################################ + +-include $(TOPDIR)/.config # Current configuration + +# Sub-directories containing interpreter runtime + +SUBDIRS = pcode + +# Create the list of installed runtime modules (INSTALLED_DIRS) + +define ADD_DIRECTORY +INSTALLED_DIRS += ${shell if [ -r $1/Makefile ]; then echo "$1"; fi} +endef + +$(foreach DIR, $(SUBDIRS), $(eval $(call ADD_DIRECTORY,$(DIR)))) + +all: nothing +.PHONY: nothing context depend clean distclean + +nothing: + +context: + +depend: + @for dir in $(INSTALLED_DIRS) ; do \ + $(MAKE) -C $$dir depend TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; \ + done + +clean: + @for dir in $(INSTALLED_DIRS) ; do \ + $(MAKE) -C $$dir clean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; \ + done + +distclean: clean + @for dir in $(INSTALLED_DIRS) ; do \ + $(MAKE) -C $$dir distclean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; \ + done diff --git a/apps/interpreters/README.txt b/apps/interpreters/README.txt new file mode 100644 index 000000000..e1c58fef3 --- /dev/null +++ b/apps/interpreters/README.txt @@ -0,0 +1,59 @@ +apps/interpreters README file +============================= + +This apps/ directory is set aside to hold interpreters that may be +incorporated into NuttX. + +pcode +----- + + At present, only the NuttX Pascal add-on is supported. This NuttX add-on + must be downloaded separately (or is available in an SVN snapshot in the + misc/pascal directory). + + This Pascal add-on must be installed into the NuttX apps/ directory. After + unpacking the Pascal add-on package, an installation script and README.txt + instructions can be found at pascal/nuttx. + + INSTALL.sh -- The script that performs the operation. Usage: + + ./INSTALL.sh [-16|-32] <install-dir> + + If you are using this standard NuttX apps/ package, the correct + location for the <install-dir> is apps/interpreters. That is + where the examples and build logic will expect to find the pcode + sub-directory. + + Example: + + ./INSTALL.sh -16 $PWD/../../../apps/interpreters + + After installation, the NuttX apps/interpresters directory will contain + the following files + + pcode + |-- Makefile + |-- include + | `-- Common header files + |-- libboff + | `-- Pascal object format (POFF) library + `--insn + |-- include + | `-- model-specific header files + `-- prun + `-- model-specific source files + + pashello + + There is a simple Pascal example at apps/examples/pashello. This is the + standard "Hello, World!" example written in Pascal and interpreted from + Pascal P-Code at runtime. To use this example, place the following in + your appconfig file" + + # Path to example in apps/examples containing the user_start entry point + + CONFIGURED_APPS += examples/pashello + + # Path to the Pascal p-code runtime interpreter module + + CONFIGURED_APPS += interpreters/pcode diff --git a/apps/netutils/Makefile b/apps/netutils/Makefile index 7401a8695..91363f156 100644 --- a/apps/netutils/Makefile +++ b/apps/netutils/Makefile @@ -62,6 +62,3 @@ distclean: clean @for dir in $(SUBDIRS) ; do \ $(MAKE) -C $$dir distclean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; \ done - --include Make.dep - |