summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2011-05-10 15:50:23 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2011-05-10 15:50:23 +0000
commitd94043c3cc18f41dd8ce6629d642cabda3ca3e14 (patch)
treec14a8e28ee4a2b3cdaf038eceb9c4b356c8505b6 /apps
parent1f3b5d77498be4852f047beaa2544607045e67ac (diff)
Pascal now installs in the apps/ directory
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3583 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'apps')
-rwxr-xr-xapps/ChangeLog.txt4
-rw-r--r--apps/Makefile22
-rw-r--r--apps/examples/README.txt8
-rw-r--r--apps/examples/pashello/Makefile7
-rw-r--r--apps/examples/pashello/pashello.c4
-rw-r--r--apps/interpreters/Makefile70
-rw-r--r--apps/interpreters/README.txt59
-rw-r--r--apps/netutils/Makefile3
8 files changed, 153 insertions, 24 deletions
diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt
index 3443a9fe81..f78ae146b3 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 c8c5bcd142..487fd94f58 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 d342814c2d..468d3d86bd 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 f392e1b235..44830eee21 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 9ebe68a279..ae19c94f55 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 0000000000..bf27d79e8d
--- /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 0000000000..e1c58fef30
--- /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 7401a86955..91363f1560 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
-