diff options
-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 | ||||
-rw-r--r-- | misc/pascal/ChangeLog | 8 | ||||
-rw-r--r-- | misc/pascal/README | 5 | ||||
-rw-r--r-- | misc/pascal/ReleaseNotes | 13 | ||||
-rwxr-xr-x | misc/pascal/nuttx/INSTALL.sh | 84 | ||||
-rw-r--r-- | misc/pascal/nuttx/Makefile | 80 | ||||
-rw-r--r-- | misc/pascal/nuttx/README.txt | 58 | ||||
-rw-r--r-- | nuttx/ChangeLog | 2 | ||||
-rw-r--r-- | nuttx/Documentation/NuttX.html | 23 | ||||
-rw-r--r-- | nuttx/Makefile | 16 | ||||
-rw-r--r-- | nuttx/configs/sim/pashello/appconfig | 3 | ||||
-rw-r--r-- | nuttx/configs/xtrs/pashello/appconfig | 4 | ||||
-rw-r--r-- | nuttx/configs/z16f2800100zcog/pashello/appconfig | 3 | ||||
-rw-r--r-- | nuttx/configs/z80sim/pashello/appconfig | 4 |
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 <spudmonkey@racsa.co.cr> <ul><pre> nuttx-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * 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 <spudmonkey@racsa.co.cr> -pascal-2.1 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. + +pascal-3.0 2011-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-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 <spudmonkey@racsa.co.cr> </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 + |