summaryrefslogtreecommitdiffstats
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
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
-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
-rw-r--r--misc/pascal/ChangeLog8
-rw-r--r--misc/pascal/README5
-rw-r--r--misc/pascal/ReleaseNotes13
-rwxr-xr-xmisc/pascal/nuttx/INSTALL.sh84
-rw-r--r--misc/pascal/nuttx/Makefile80
-rw-r--r--misc/pascal/nuttx/README.txt58
-rw-r--r--nuttx/ChangeLog2
-rw-r--r--nuttx/Documentation/NuttX.html23
-rw-r--r--nuttx/Makefile16
-rw-r--r--nuttx/configs/sim/pashello/appconfig3
-rw-r--r--nuttx/configs/xtrs/pashello/appconfig4
-rw-r--r--nuttx/configs/z16f2800100zcog/pashello/appconfig3
-rw-r--r--nuttx/configs/z80sim/pashello/appconfig4
21 files changed, 351 insertions, 129 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
-
diff --git a/misc/pascal/ChangeLog b/misc/pascal/ChangeLog
index e1d44f610e..e937aa13bf 100644
--- a/misc/pascal/ChangeLog
+++ b/misc/pascal/ChangeLog
@@ -22,4 +22,10 @@ pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
stdbool.h. This change was necessary for compatibility
with NuttX-5.0 (any beyond).
-pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+pascal-3.0 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+
+ * nuttx/: The Pascal add-on module now installs and builds under the
+ apps/interpreters directory. This means that the pascal-3.0 module is
+ incompatible with will all releases of NuttX prior to nuttx-6.0 where the
+ apps/ module was introduced.
+
diff --git a/misc/pascal/README b/misc/pascal/README
index 347c6d33cc..f2d72130fc 100644
--- a/misc/pascal/README
+++ b/misc/pascal/README
@@ -18,5 +18,8 @@ Installing the NuttX Runtime P-Code Interpreter
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cd <pascal-directory>/nuttx
- ./INSTALL.sh <nuttx-directory>
+ ./INSTALL.sh <apps-directory>
+
+See <pascal-directory>/nuttx/README.txt for additional information.
+
diff --git a/misc/pascal/ReleaseNotes b/misc/pascal/ReleaseNotes
index ec7a7e26f5..389aff1e4e 100644
--- a/misc/pascal/ReleaseNotes
+++ b/misc/pascal/ReleaseNotes
@@ -25,3 +25,16 @@ The release version was bumped to 2.0 because these changes introduce
typing incompatibilies with earlier versions.
This tarball contains a complete CVS snapshot from December 21, 2009.
+
+pascal-3.0
+^^^^^^^^^^
+
+This release moves the Pascal installation location from the nuttx/
+source to the apps/ source tree. Specifically, the Pascall runtime now
+builds under apps/interpreters.
+
+This means that the pascal-3.0 module is incompatible with will all
+releases of NuttX prior to nuttx-6.0 where the apps/ module was
+introduced. The release version was bumped to 3.0 because these changes
+introduces installation incompatibilies with earlier versions.
+
diff --git a/misc/pascal/nuttx/INSTALL.sh b/misc/pascal/nuttx/INSTALL.sh
index ad9802d9fd..f513967d3e 100755
--- a/misc/pascal/nuttx/INSTALL.sh
+++ b/misc/pascal/nuttx/INSTALL.sh
@@ -2,7 +2,7 @@
# nuttx/INSTALL.sh
# Install the pascaldirl runtime into the NuttX source tree
#
-# Copyright (C) 2008 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -39,7 +39,7 @@
wd=`pwd`
modeldir=insn16
-unset nuttxdir
+unset installdir
while [ ! -z "$1" ]; do
case "$1" in
-d )
@@ -52,22 +52,22 @@ while [ ! -z "$1" ]; do
modeldir=insn32
;;
-h )
- echo "USAGE: $0 [-16|-32] <NuttX-path>"
+ echo "USAGE: $0 [-16|-32] <install-dir>"
exit 0
;;
*)
- nuttxdir=$1
+ installdir=$1
;;
esac
shift
done
-echo "Installing model $modeldir to $nuttxdir"
+echo "Installing model $modeldir to $installdir"
# Verify that required parameters were provided
-if [ -z "${nuttxdir}" ]; then
- echo "USAGE: $0 [-16|-32] <NuttX-path>"
+if [ -z "${installdir}" ]; then
+ echo "USAGE: $0 [-16|-32] <install-dir>"
exit 1
fi
@@ -91,38 +91,38 @@ if [ ! -d ${pascaldir}/${modeldir} ]; then
exit 1
fi
-if [ ! -d ${nuttxdir} ]; then
- echo "NuttX directory ${nuttxdir} does not exist"
+if [ ! -d ${installdir} ]; then
+ echo "NuttX apps/ sub-directory ${installdir} does not exist"
exit 1
fi
-if [ -d ${nuttxdir}/pcode ]; then
- echo "${nuttxdir}/pcode already exists. Remove it and try again."
+if [ -d ${installdir}/pcode ]; then
+ echo "${installdir}/pcode already exists. Remove it and try again."
exit 1
fi
# Looks good enough. Create NuttX directories
-mkdir ${nuttxdir}/pcode || \
- { echo "mkdir ${nuttxdir}/pcode failed" ; exit 1 ; }
+mkdir ${installdir}/pcode || \
+ { echo "mkdir ${installdir}/pcode failed" ; exit 1 ; }
-mkdir ${nuttxdir}/pcode/include || \
- { echo "mkdir ${nuttxdir}/pcode/include failed" ; exit 1 ; }
+mkdir ${installdir}/pcode/include || \
+ { echo "mkdir ${installdir}/pcode/include failed" ; exit 1 ; }
-mkdir ${nuttxdir}/pcode/insn || \
- { echo "mkdir ${nuttxdir}/pcode/insn failed" ; exit 1 ; }
+mkdir ${installdir}/pcode/insn || \
+ { echo "mkdir ${installdir}/pcode/insn failed" ; exit 1 ; }
-mkdir ${nuttxdir}/pcode/insn/include || \
- { echo "mkdir ${nuttxdir}/pcode/insn/include failed" ; exit 1 ; }
+mkdir ${installdir}/pcode/insn/include || \
+ { echo "mkdir ${installdir}/pcode/insn/include failed" ; exit 1 ; }
-mkdir ${nuttxdir}/pcode/insn/prun || \
- { echo "mkdir ${nuttxdir}/pcode/insn/prun failed" ; exit 1 ; }
+mkdir ${installdir}/pcode/insn/prun || \
+ { echo "mkdir ${installdir}/pcode/insn/prun failed" ; exit 1 ; }
-mkdir ${nuttxdir}/pcode/libpoff || \
- { echo "mkdir ${nuttxdir}/pcode/libpoff failed" ; exit 1 ; }
+mkdir ${installdir}/pcode/libpoff || \
+ { echo "mkdir ${installdir}/pcode/libpoff failed" ; exit 1 ; }
-mkdir ${nuttxdir}/pcode/libpas || \
- { echo "mkdir ${nuttxdir}/pcode/libpas failed" ; exit 1 ; }
+mkdir ${installdir}/pcode/libpas || \
+ { echo "mkdir ${installdir}/pcode/libpas failed" ; exit 1 ; }
# Copy runtime files
@@ -130,37 +130,37 @@ cp -a ${pascaldir}/include/poff.h ${pascaldir}/include/pofflib.h \
${pascaldir}/include/pedefs.h ${pascaldir}/include/perr.h \
${pascaldir}/include/pdefs.h ${pascaldir}/include/pfdefs.h \
${pascaldir}/include/pxdefs.h ${pascaldir}/include/paslib.h \
- ${nuttxdir}/pcode/include/. || \
+ ${installdir}/pcode/include/. || \
{ echo "Failed to copy ${pascaldir}/include" ; exit 1; }
-echo "#ifndef __CONFIG_H" >${nuttxdir}/pcode/include/config.h
-echo "#define __CONFIG_H 1" >>${nuttxdir}/pcode/include/config.h
-echo "" >>${nuttxdir}/pcode/include/config.h
-echo "#undef CONFIG_DEBUG" >>${nuttxdir}/pcode/include/config.h
-echo "#undef CONFIG_TRACE" >>${nuttxdir}/pcode/include/config.h
-echo "#define CONFIG_INSN16 1" >>${nuttxdir}/pcode/include/config.h
-echo "#undef CONFIG_INSN32" >>${nuttxdir}/pcode/include/config.h
-echo "" >>${nuttxdir}/pcode/include/config.h
-echo "#endif /* __CONFIG_H */" >>${nuttxdir}/pcode/include/config.h
-
-cp -a ${pascaldir}/nuttx/Makefile ${nuttxdir}/pcode/. || \
+echo "#ifndef __CONFIG_H" >${installdir}/pcode/include/config.h
+echo "#define __CONFIG_H 1" >>${installdir}/pcode/include/config.h
+echo "" >>${installdir}/pcode/include/config.h
+echo "#undef CONFIG_DEBUG" >>${installdir}/pcode/include/config.h
+echo "#undef CONFIG_TRACE" >>${installdir}/pcode/include/config.h
+echo "#define CONFIG_INSN16 1" >>${installdir}/pcode/include/config.h
+echo "#undef CONFIG_INSN32" >>${installdir}/pcode/include/config.h
+echo "" >>${installdir}/pcode/include/config.h
+echo "#endif /* __CONFIG_H */" >>${installdir}/pcode/include/config.h
+
+cp -a ${pascaldir}/nuttx/Makefile ${installdir}/pcode/. || \
{ echo "Failed to copy ${pascaldir}/nuttx/Makefile" ; exit 1; }
-cp -a ${pascaldir}/nuttx/keywords.h ${nuttxdir}/pcode/include/. || \
+cp -a ${pascaldir}/nuttx/keywords.h ${installdir}/pcode/include/. || \
{ echo "Failed to copy ${pascaldir}/nuttx/keywords.h" ; exit 1; }
cp -a ${pascaldir}/libpoff/*.c ${pascaldir}/libpoff/*.h \
- ${pascaldir}/libpoff/Make.defs ${nuttxdir}/pcode/libpoff/. || \
+ ${pascaldir}/libpoff/Make.defs ${installdir}/pcode/libpoff/. || \
{ echo "Failed to copy ${pascaldir}/libpoff" ; exit 1; }
cp -a ${pascaldir}/libpas/psignextend16.c ${pascaldir}/libpas/pswap.c \
- ${pascaldir}/libpas/Make.defs ${nuttxdir}/pcode/libpas/. || \
+ ${pascaldir}/libpas/Make.defs ${installdir}/pcode/libpas/. || \
{ echo "Failed to copy ${pascaldir}/libpas" ; exit 1; }
cp -a ${pascaldir}/${modeldir}/include/pexec.h ${pascaldir}/${modeldir}/include/pinsn16.h \
- ${nuttxdir}/pcode/insn/include/. || \
+ ${installdir}/pcode/insn/include/. || \
{ echo "Failed to copy ${pascaldir}/${modeldir}/include" ; exit 1; }
cp -a ${pascaldir}/${modeldir}/prun/pexec.c ${pascaldir}/${modeldir}/prun/pload.c \
- ${pascaldir}/${modeldir}/prun/Make.defs ${nuttxdir}/pcode/insn/prun/. || \
+ ${pascaldir}/${modeldir}/prun/Make.defs ${installdir}/pcode/insn/prun/. || \
{ echo "Failed to copy ${pascaldir}/${modeldir}/prun" ; exit 1; }
diff --git a/misc/pascal/nuttx/Makefile b/misc/pascal/nuttx/Makefile
index 41b9888c37..027e199156 100644
--- a/misc/pascal/nuttx/Makefile
+++ b/misc/pascal/nuttx/Makefile
@@ -1,7 +1,7 @@
############################################################################
-# pcode/Makefile
+# apps/interpreters/pcode/Makefile
#
-# Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -33,36 +33,63 @@
#
############################################################################
+PCODEDIR := ${shell pwd | sed -e 's/ /\\ /g'}
+
+-include $(TOPDIR)/.config
-include $(TOPDIR)/Make.defs
+include $(APPDIR)/Make.defs
+
+# Default tools
+
+ifeq ($(DIRLINK),)
+DIRLINK = $(TOPDIR)/tools/link.sh
+DIRUNLINK = $(TOPDIR)/tools/unlink.sh
+INCDIR = $(TOPDIR)/tools/incdir.sh
+endif
+
+ifeq ($(WINTOOL),y)
+INCDIROPT = -w
+endif
+
+USRINCLUDES = ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(PCODEDIR)/include $(PCODEDIR)/insn/include}
-COMPILER = ${shell basename $(CC)}
+COMPILER = ${shell basename $(CC)}
ifeq ($(COMPILER),zneocc.exe)
-USRINCLUDES = -usrinc:'.;$(WTOPDIR)\pcode\include;$(WTOPDIR)\pcode\insn\include'
-INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES)
+INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES)
else
-USRINCLUDES = -I$(TOPDIR)/pcode/include -I$(TOPDIR)/pcode/insn/include
-INCLUDES = $(ARCHINCLUDES) $(USRINCLUDES)
+INCLUDES = $(ARCHINCLUDES) $(USRINCLUDES)
endif
-CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES)
+
+CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES)
include insn/prun/Make.defs
include libpoff/Make.defs
include libpas/Make.defs
-ASRCS = $(PRUN_ASRCS) $(POFF_ASRCS) $(PAS_ASRCS)
-AOBJS = $(ASRCS:.S=$(OBJEXT))
+ASRCS = $(PRUN_ASRCS) $(POFF_ASRCS) $(PAS_ASRCS)
+AOBJS = $(ASRCS:.S=$(OBJEXT))
+
+CSRCS = $(PRUN_CSRCS) $(POFF_CSRCS) $(PAS_CSRCS)
+COBJS = $(CSRCS:.c=$(OBJEXT))
-CSRCS = $(PRUN_CSRCS) $(POFF_CSRCS) $(PAS_CSRCS)
-COBJS = $(CSRCS:.c=$(OBJEXT))
+SRCS = $(ASRCS) $(CSRCS)
+OBJS = $(AOBJS) $(COBJS)
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
+ifeq ($(WINTOOL),y)
+ BIN = "${shell cygpath -w $(APPDIR)/libapps$(LIBEXT)}"
+else
+ BIN = "$(APPDIR)/libapps$(LIBEXT)"
+endif
-BIN = libpcode$(LIBEXT)
+ROOTDEPPATH = --dep-path .
+PRUNDEPPATH = --dep-path insn/prun
+POFFDEPPATH = --dep-path libpoff
+PASDEPPATH = --dep-path libpas
-VPATH = insn/prun:libpoff:libpas
+VPATH = insn/prun:libpoff:libpas
-all: $(BIN)
+all: .built
+.PHONY: context depend clean distclean
$(AOBJS): %$(OBJEXT): %.S
ifeq ($(COMPILER),zneocc.exe)
@@ -78,23 +105,34 @@ else
$(call COMPILE, $<, $@)
endif
-$(BIN): $(OBJS)
+$(APPDIR)/include/pcode: include
+ @$(DIRLINK) $(PCODEDIR)/include $(APPDIR)/include/pcode
+
+$(APPDIR)/include/pcode/insn: $(APPDIR)/include/pcode insn/include
+ @$(DIRLINK) $(PCODEDIR)/insn/include $(APPDIR)/include/pcode/insn
+
+.built: $(APPDIR)/include/pcode $(APPDIR)/include/pcode/insn $(OBJS)
@( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
+ $(call ARCHIVE, $(BIN), $${obj}); \
done ; )
+ @touch .built
+
+context: $(APPDIR)/include/pcode $(APPDIR)/include/pcode/insn
.depend: Makefile $(SRCS)
- @$(MKDEP) --dep-path . --dep-path insn/prun --dep-path libpoff --dep-path libpas \
+ @$(MKDEP) $(ROOTDEPPATH) $(PRUNDEPPATH) $(POFFDEPPATH) $(PASDEPPATH) \
$(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
@touch $@
depend: .depend
clean:
- @rm -f $(BIN) *~ .*.swp
+ @rm -f *.o *~ .*.swp .built
$(call CLEAN)
distclean: clean
@rm -f Make.dep .depend
+ @$(DIRUNLINK) $(APPDIR)/include/pcode/insn
+ @$(DIRUNLINK) $(APPDIR)/include/pcode
-include Make.dep
diff --git a/misc/pascal/nuttx/README.txt b/misc/pascal/nuttx/README.txt
index ca18eb830a..9452d19fa6 100644
--- a/misc/pascal/nuttx/README.txt
+++ b/misc/pascal/nuttx/README.txt
@@ -1,31 +1,43 @@
-README.txt
-^^^^^^^^^^
-
-This directory contains miscellaneous files needed to install
-pascal runtime logic into the NuttX source tree. After
-installation, the NuttX source tree 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
+pascal/nuttx/README.txt
+^^^^^^^^^^^^^^^^^^^^^^^
+
+This directory contains miscellaneous files needed to install the pascal
+runtime logic into the NuttX apps/ ource tree. After installation, the NuttX
+apps/ source tree 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
This directory contains:
-INSTALL.sh -- The script that performs the operation. Usage:
+ INSTALL.sh -- The script that performs the operation. Usage:
- ./INSTALL.sh [-16|-32] <NuttX-path>
+ ./INSTALL.sh [-16|-32] <install-dir>
-Makefile -- The NuttX makefile for the runtime logic
+ If you are using the 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.
-keywords.h -- A version that adjusts build context for the NuttX
- environment.
+ Example:
+
+ ./INSTALL.sh -16 $PWD/../../../apps/interpreters
+
+ Makefile -- The NuttX makefile for the runtime logic. This makefile
+ is customized to work in the standard apps/ package. If you intend
+ to use your own custom apps/ directory, then this Makefile may
+ require some modifications.
+
+ keywords.h -- A version that adjusts build context for the NuttX
+ build environment.
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 69dc8fc1e4..1d696e6f44 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -1733,3 +1733,5 @@
* configs/pcblogic-pic32mx: Add directory structure for PCB Logic PIC32MX board
* apps/include: Move include/apps to apps/include. A symbolic link is created at
build time
+ * Makefile: Removed support for Pascal pcode interpreter. Support for that
+ interpreter has been moved to apps/interpreter/Makefile.
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index 4d5691b082..391849996b 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
- <p>Last Updated: May 6, 2011</p>
+ <p>Last Updated: May 10, 2011</p>
</td>
</tr>
</table>
@@ -2189,9 +2189,28 @@ buildroot-1.10 2011-05-06 &lt;spudmonkey@racsa.co.cr&gt;
<ul><pre>
nuttx-6.3 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+ * Remove clock_getutc(). It is replaces with clock_gettime(CLOCK_ACTIVETIME).
+ Add other RTC related changes provided by Uros Platise.
+ * arch/arm/src/stm32/stm32_flash.c: Add support for access to on-chp STM32
+ FLASH; beginning of integration with NXFFS (Uros Platise).
+ * arch/mips: Added directory structure for PIC32 support
+ * configs/pcblogic-pic32mx: Add directory structure for PCB Logic PIC32MX board
+ * apps/include: Move include/apps to apps/include. A symbolic link is created at
+ build time
+ * Makefile: Removed support for Pascal pcode interpreter. Support for that
+ interpreter has been moved to apps/interpreter/Makefile.
+
apps-6.3 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-pascal-2.1 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+ * apps/interpreter: Add a directory to hold interpreters. The Pascal add-
+ on module now installs and builds under this directory.
+
+pascal-3.0 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+
+ * nuttx/: The Pascal add-on module now installs and builds under the
+ apps/interpreters directory. This means that the pascal-2.1 module is
+ incompatible with will all releases of NuttX prior to nuttx-6.0 where the
+ apps/ module was introduced.
buildroot-1.11 2011-xx-xx &lt;spudmonkey@racsa.co.cr&gt;
</pre></ul>
diff --git a/nuttx/Makefile b/nuttx/Makefile
index 8785f1a1f4..b74f9e225f 100644
--- a/nuttx/Makefile
+++ b/nuttx/Makefile
@@ -1,7 +1,6 @@
############################################################################
# Makefile
#
-#
# Copyright (C) 2007-2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
@@ -70,16 +69,12 @@ CONFIG_APPS_DIR = ../apps
endif
APPDIR := ${shell if [ -r $(CONFIG_APPS_DIR)/Makefile ]; then echo "$(CONFIG_APPS_DIR)"; fi}
-# The Pascal p-code add-on directory
-
-PCODE_DIR := ${shell if [ -r pcode/Makefile ]; then echo "pcode"; fi}
-
# All add-on directories.
#
# NUTTX_ADDONS is the list of directories built into the NuttX kernel.
# USER_ADDONS is the list of directories that will be built into the user application
-NUTTX_ADDONS := $(PCODE_DIR) $(NX_DIR)
+NUTTX_ADDONS := $(NX_DIR)
USER_ADDONS :=
ifeq ($(CONFIG_NUTTX_KERNEL),y)
@@ -228,12 +223,6 @@ else
NUTTXLIBS += fs/libfs$(LIBEXT) drivers/libdrivers$(LIBEXT) binfmt/libbinfmt$(LIBEXT)
endif
-# Add libraries for Pascall P-Code
-
-ifneq ($(PCODE_DIR),)
-NUTTXLIBS += $(PCODE_DIR)/libpcode$(LIBEXT)
-endif
-
# Add libraries for the NX graphics sub-system
ifneq ($(NX_DIR),)
@@ -357,9 +346,6 @@ drivers/libdrivers$(LIBEXT): context
binfmt/libbinfmt$(LIBEXT): context
@$(MAKE) -C binfmt TOPDIR="$(TOPDIR)" libbinfmt$(LIBEXT) EXTRADEFINES=$(KDEFINE)
-pcode/libpcode$(LIBEXT): context
- @$(MAKE) -C pcode TOPDIR="$(TOPDIR)" libpcode$(LIBEXT) EXTRADEFINES=$(KDEFINE)
-
graphics/libgraphics$(LIBEXT): context
@$(MAKE) -C graphics TOPDIR="$(TOPDIR)" libgraphics$(LIBEXT) EXTRADEFINES=$(KDEFINE)
diff --git a/nuttx/configs/sim/pashello/appconfig b/nuttx/configs/sim/pashello/appconfig
index 30d83caaf4..d4adbcce11 100644
--- a/nuttx/configs/sim/pashello/appconfig
+++ b/nuttx/configs/sim/pashello/appconfig
@@ -37,3 +37,6 @@
CONFIGURED_APPS += examples/pashello
+# Path to the Pascal p-code runtime interpreter module
+
+CONFIGURED_APPS += interpreters/pcode
diff --git a/nuttx/configs/xtrs/pashello/appconfig b/nuttx/configs/xtrs/pashello/appconfig
index cb1af14a30..0deb0b01b0 100644
--- a/nuttx/configs/xtrs/pashello/appconfig
+++ b/nuttx/configs/xtrs/pashello/appconfig
@@ -37,3 +37,7 @@
CONFIGURED_APPS += examples/pashello
+# Path to the Pascal p-code runtime interpreter module
+
+CONFIGURED_APPS += interpreters/pcode
+
diff --git a/nuttx/configs/z16f2800100zcog/pashello/appconfig b/nuttx/configs/z16f2800100zcog/pashello/appconfig
index f77eca16a5..07a95ee0fc 100644
--- a/nuttx/configs/z16f2800100zcog/pashello/appconfig
+++ b/nuttx/configs/z16f2800100zcog/pashello/appconfig
@@ -37,3 +37,6 @@
CONFIGURED_APPS += examples/pashello
+# Path to the Pascal p-code runtime interpreter module
+
+CONFIGURED_APPS += interpreters/pcode
diff --git a/nuttx/configs/z80sim/pashello/appconfig b/nuttx/configs/z80sim/pashello/appconfig
index b08323b164..faa2589ab3 100644
--- a/nuttx/configs/z80sim/pashello/appconfig
+++ b/nuttx/configs/z80sim/pashello/appconfig
@@ -37,3 +37,7 @@
CONFIGURED_APPS += examples/pashello
+# Path to the Pascal p-code runtime interpreter module
+
+CONFIGURED_APPS += interpreters/pcode
+