9
0
Fork 0

Pascal now installs in the apps/ directory

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3583 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-05-10 15:50:23 +00:00
parent 6327539fc8
commit b178fec3d8
21 changed files with 351 additions and 129 deletions

View File

@ -32,3 +32,7 @@
verify NXFFS. verify NXFFS.
6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> 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.

View File

@ -48,20 +48,20 @@ APPDIR = ${shell pwd}
# list can be extended by the .config file as well # list can be extended by the .config file as well
CONFIGURED_APPS = CONFIGURED_APPS =
SUBDIRS = namedapp nshlib netutils examples vsn SUBDIRS = examples interpreters namedapp nshlib netutils vsn
-include .config -include .config
# BUILTIN_APPS_DIR is the list of currently available application directories. It # 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 # 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 # 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 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 endef
$(foreach BUILTIN, $(CONFIGURED_APPS), $(eval $(call ADD_BUILTIN,$(BUILTIN)))) $(foreach BUILTIN, $(CONFIGURED_APPS), $(eval $(call ADD_BUILTIN,$(BUILTIN))))
@ -73,18 +73,18 @@ BIN = libapps$(LIBEXT)
# Build targets # Build targets
all: $(BIN) 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)"; @$(MAKE) -C $@ TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)";
$(BIN): $(BUILTIN_APPS_DIR) $(BIN): $(INSTALLED_APPS)
@( for obj in $(OBJS) ; do \ @( for obj in $(OBJS) ; do \
$(call ARCHIVE, $@, $${obj}); \ $(call ARCHIVE, $@, $${obj}); \
done ; ) done ; )
.context: .context:
@for dir in $(BUILTIN_APPS_DIR) ; do \ @for dir in $(INSTALLED_APPS) ; do \
rm -f $$dir/.context ; \ rm -f $$dir/.context ; \
$(MAKE) -C $$dir TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" context ; \ $(MAKE) -C $$dir TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" context ; \
done done
@ -93,7 +93,7 @@ $(BIN): $(BUILTIN_APPS_DIR)
context: .context context: .context
.depend: context Makefile $(SRCS) .depend: context Makefile $(SRCS)
@for dir in $(BUILTIN_APPS_DIR) ; do \ @for dir in $(INSTALLED_APPS) ; do \
rm -f $$dir/.depend ; \ rm -f $$dir/.depend ; \
$(MAKE) -C $$dir TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" depend ; \ $(MAKE) -C $$dir TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" depend ; \
done done

View File

@ -274,7 +274,13 @@ examples/ostest
examples/pashello 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 examples/pipe
^^^^^^^^^^^^^ ^^^^^^^^^^^^^

View File

@ -39,13 +39,6 @@ include $(APPDIR)/Make.defs
# Pascal Add-On Example # 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 = ASRCS =
CSRCS = pashello.c device.c CSRCS = pashello.c device.c

View File

@ -43,8 +43,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <debug.h> #include <debug.h>
#include "pexec.h" #include "apps/pcode/insn/pexec.h"
#include "pedefs.h" #include "apps/pcode/pedefs.h"
#include "pashello.h" #include "pashello.h"
/**************************************************************************** /****************************************************************************

View File

@ -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

View File

@ -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

View File

@ -62,6 +62,3 @@ distclean: clean
@for dir in $(SUBDIRS) ; do \ @for dir in $(SUBDIRS) ; do \
$(MAKE) -C $$dir distclean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; \ $(MAKE) -C $$dir distclean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; \
done done
-include Make.dep

View File

@ -22,4 +22,10 @@ pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
stdbool.h. This change was necessary for compatibility stdbool.h. This change was necessary for compatibility
with NuttX-5.0 (any beyond). 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.

View File

@ -18,5 +18,8 @@ Installing the NuttX Runtime P-Code Interpreter
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cd <pascal-directory>/nuttx cd <pascal-directory>/nuttx
./INSTALL.sh <nuttx-directory> ./INSTALL.sh <apps-directory>
See <pascal-directory>/nuttx/README.txt for additional information.

View File

@ -25,3 +25,16 @@ The release version was bumped to 2.0 because these changes introduce
typing incompatibilies with earlier versions. typing incompatibilies with earlier versions.
This tarball contains a complete CVS snapshot from December 21, 2009. 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.

View File

@ -2,7 +2,7 @@
# nuttx/INSTALL.sh # nuttx/INSTALL.sh
# Install the pascaldirl runtime into the NuttX source tree # 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> # Author: Gregory Nutt <spudmonkey@racsa.co.cr>
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
@ -39,7 +39,7 @@
wd=`pwd` wd=`pwd`
modeldir=insn16 modeldir=insn16
unset nuttxdir unset installdir
while [ ! -z "$1" ]; do while [ ! -z "$1" ]; do
case "$1" in case "$1" in
-d ) -d )
@ -52,22 +52,22 @@ while [ ! -z "$1" ]; do
modeldir=insn32 modeldir=insn32
;; ;;
-h ) -h )
echo "USAGE: $0 [-16|-32] <NuttX-path>" echo "USAGE: $0 [-16|-32] <install-dir>"
exit 0 exit 0
;; ;;
*) *)
nuttxdir=$1 installdir=$1
;; ;;
esac esac
shift shift
done done
echo "Installing model $modeldir to $nuttxdir" echo "Installing model $modeldir to $installdir"
# Verify that required parameters were provided # Verify that required parameters were provided
if [ -z "${nuttxdir}" ]; then if [ -z "${installdir}" ]; then
echo "USAGE: $0 [-16|-32] <NuttX-path>" echo "USAGE: $0 [-16|-32] <install-dir>"
exit 1 exit 1
fi fi
@ -91,38 +91,38 @@ if [ ! -d ${pascaldir}/${modeldir} ]; then
exit 1 exit 1
fi fi
if [ ! -d ${nuttxdir} ]; then if [ ! -d ${installdir} ]; then
echo "NuttX directory ${nuttxdir} does not exist" echo "NuttX apps/ sub-directory ${installdir} does not exist"
exit 1 exit 1
fi fi
if [ -d ${nuttxdir}/pcode ]; then if [ -d ${installdir}/pcode ]; then
echo "${nuttxdir}/pcode already exists. Remove it and try again." echo "${installdir}/pcode already exists. Remove it and try again."
exit 1 exit 1
fi fi
# Looks good enough. Create NuttX directories # Looks good enough. Create NuttX directories
mkdir ${nuttxdir}/pcode || \ mkdir ${installdir}/pcode || \
{ echo "mkdir ${nuttxdir}/pcode failed" ; exit 1 ; } { echo "mkdir ${installdir}/pcode failed" ; exit 1 ; }
mkdir ${nuttxdir}/pcode/include || \ mkdir ${installdir}/pcode/include || \
{ echo "mkdir ${nuttxdir}/pcode/include failed" ; exit 1 ; } { echo "mkdir ${installdir}/pcode/include failed" ; exit 1 ; }
mkdir ${nuttxdir}/pcode/insn || \ mkdir ${installdir}/pcode/insn || \
{ echo "mkdir ${nuttxdir}/pcode/insn failed" ; exit 1 ; } { echo "mkdir ${installdir}/pcode/insn failed" ; exit 1 ; }
mkdir ${nuttxdir}/pcode/insn/include || \ mkdir ${installdir}/pcode/insn/include || \
{ echo "mkdir ${nuttxdir}/pcode/insn/include failed" ; exit 1 ; } { echo "mkdir ${installdir}/pcode/insn/include failed" ; exit 1 ; }
mkdir ${nuttxdir}/pcode/insn/prun || \ mkdir ${installdir}/pcode/insn/prun || \
{ echo "mkdir ${nuttxdir}/pcode/insn/prun failed" ; exit 1 ; } { echo "mkdir ${installdir}/pcode/insn/prun failed" ; exit 1 ; }
mkdir ${nuttxdir}/pcode/libpoff || \ mkdir ${installdir}/pcode/libpoff || \
{ echo "mkdir ${nuttxdir}/pcode/libpoff failed" ; exit 1 ; } { echo "mkdir ${installdir}/pcode/libpoff failed" ; exit 1 ; }
mkdir ${nuttxdir}/pcode/libpas || \ mkdir ${installdir}/pcode/libpas || \
{ echo "mkdir ${nuttxdir}/pcode/libpas failed" ; exit 1 ; } { echo "mkdir ${installdir}/pcode/libpas failed" ; exit 1 ; }
# Copy runtime files # 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/pedefs.h ${pascaldir}/include/perr.h \
${pascaldir}/include/pdefs.h ${pascaldir}/include/pfdefs.h \ ${pascaldir}/include/pdefs.h ${pascaldir}/include/pfdefs.h \
${pascaldir}/include/pxdefs.h ${pascaldir}/include/paslib.h \ ${pascaldir}/include/pxdefs.h ${pascaldir}/include/paslib.h \
${nuttxdir}/pcode/include/. || \ ${installdir}/pcode/include/. || \
{ echo "Failed to copy ${pascaldir}/include" ; exit 1; } { echo "Failed to copy ${pascaldir}/include" ; exit 1; }
echo "#ifndef __CONFIG_H" >${nuttxdir}/pcode/include/config.h echo "#ifndef __CONFIG_H" >${installdir}/pcode/include/config.h
echo "#define __CONFIG_H 1" >>${nuttxdir}/pcode/include/config.h echo "#define __CONFIG_H 1" >>${installdir}/pcode/include/config.h
echo "" >>${nuttxdir}/pcode/include/config.h echo "" >>${installdir}/pcode/include/config.h
echo "#undef CONFIG_DEBUG" >>${nuttxdir}/pcode/include/config.h echo "#undef CONFIG_DEBUG" >>${installdir}/pcode/include/config.h
echo "#undef CONFIG_TRACE" >>${nuttxdir}/pcode/include/config.h echo "#undef CONFIG_TRACE" >>${installdir}/pcode/include/config.h
echo "#define CONFIG_INSN16 1" >>${nuttxdir}/pcode/include/config.h echo "#define CONFIG_INSN16 1" >>${installdir}/pcode/include/config.h
echo "#undef CONFIG_INSN32" >>${nuttxdir}/pcode/include/config.h echo "#undef CONFIG_INSN32" >>${installdir}/pcode/include/config.h
echo "" >>${nuttxdir}/pcode/include/config.h echo "" >>${installdir}/pcode/include/config.h
echo "#endif /* __CONFIG_H */" >>${nuttxdir}/pcode/include/config.h echo "#endif /* __CONFIG_H */" >>${installdir}/pcode/include/config.h
cp -a ${pascaldir}/nuttx/Makefile ${nuttxdir}/pcode/. || \ cp -a ${pascaldir}/nuttx/Makefile ${installdir}/pcode/. || \
{ echo "Failed to copy ${pascaldir}/nuttx/Makefile" ; exit 1; } { 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; } { echo "Failed to copy ${pascaldir}/nuttx/keywords.h" ; exit 1; }
cp -a ${pascaldir}/libpoff/*.c ${pascaldir}/libpoff/*.h \ 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; } { echo "Failed to copy ${pascaldir}/libpoff" ; exit 1; }
cp -a ${pascaldir}/libpas/psignextend16.c ${pascaldir}/libpas/pswap.c \ 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; } { echo "Failed to copy ${pascaldir}/libpas" ; exit 1; }
cp -a ${pascaldir}/${modeldir}/include/pexec.h ${pascaldir}/${modeldir}/include/pinsn16.h \ 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; } { echo "Failed to copy ${pascaldir}/${modeldir}/include" ; exit 1; }
cp -a ${pascaldir}/${modeldir}/prun/pexec.c ${pascaldir}/${modeldir}/prun/pload.c \ 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; } { echo "Failed to copy ${pascaldir}/${modeldir}/prun" ; exit 1; }

View File

@ -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> # Author: Gregory Nutt <spudmonkey@racsa.co.cr>
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
@ -33,36 +33,63 @@
# #
############################################################################ ############################################################################
-include $(TOPDIR)/Make.defs PCODEDIR := ${shell pwd | sed -e 's/ /\\ /g'}
COMPILER = ${shell basename $(CC)} -include $(TOPDIR)/.config
ifeq ($(COMPILER),zneocc.exe) -include $(TOPDIR)/Make.defs
USRINCLUDES = -usrinc:'.;$(WTOPDIR)\pcode\include;$(WTOPDIR)\pcode\insn\include' include $(APPDIR)/Make.defs
INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES)
else # Default tools
USRINCLUDES = -I$(TOPDIR)/pcode/include -I$(TOPDIR)/pcode/insn/include
INCLUDES = $(ARCHINCLUDES) $(USRINCLUDES) ifeq ($(DIRLINK),)
DIRLINK = $(TOPDIR)/tools/link.sh
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
INCDIR = $(TOPDIR)/tools/incdir.sh
endif endif
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES)
ifeq ($(WINTOOL),y)
INCDIROPT = -w
endif
USRINCLUDES = ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(PCODEDIR)/include $(PCODEDIR)/insn/include}
COMPILER = ${shell basename $(CC)}
ifeq ($(COMPILER),zneocc.exe)
INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES)
else
INCLUDES = $(ARCHINCLUDES) $(USRINCLUDES)
endif
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES)
include insn/prun/Make.defs include insn/prun/Make.defs
include libpoff/Make.defs include libpoff/Make.defs
include libpas/Make.defs include libpas/Make.defs
ASRCS = $(PRUN_ASRCS) $(POFF_ASRCS) $(PAS_ASRCS) ASRCS = $(PRUN_ASRCS) $(POFF_ASRCS) $(PAS_ASRCS)
AOBJS = $(ASRCS:.S=$(OBJEXT)) AOBJS = $(ASRCS:.S=$(OBJEXT))
CSRCS = $(PRUN_CSRCS) $(POFF_CSRCS) $(PAS_CSRCS) CSRCS = $(PRUN_CSRCS) $(POFF_CSRCS) $(PAS_CSRCS)
COBJS = $(CSRCS:.c=$(OBJEXT)) COBJS = $(CSRCS:.c=$(OBJEXT))
SRCS = $(ASRCS) $(CSRCS) SRCS = $(ASRCS) $(CSRCS)
OBJS = $(AOBJS) $(COBJS) OBJS = $(AOBJS) $(COBJS)
BIN = libpcode$(LIBEXT) ifeq ($(WINTOOL),y)
BIN = "${shell cygpath -w $(APPDIR)/libapps$(LIBEXT)}"
else
BIN = "$(APPDIR)/libapps$(LIBEXT)"
endif
VPATH = insn/prun:libpoff:libpas ROOTDEPPATH = --dep-path .
PRUNDEPPATH = --dep-path insn/prun
POFFDEPPATH = --dep-path libpoff
PASDEPPATH = --dep-path libpas
all: $(BIN) VPATH = insn/prun:libpoff:libpas
all: .built
.PHONY: context depend clean distclean
$(AOBJS): %$(OBJEXT): %.S $(AOBJS): %$(OBJEXT): %.S
ifeq ($(COMPILER),zneocc.exe) ifeq ($(COMPILER),zneocc.exe)
@ -78,23 +105,34 @@ else
$(call COMPILE, $<, $@) $(call COMPILE, $<, $@)
endif 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 \ @( for obj in $(OBJS) ; do \
$(call ARCHIVE, $@, $${obj}); \ $(call ARCHIVE, $(BIN), $${obj}); \
done ; ) done ; )
@touch .built
context: $(APPDIR)/include/pcode $(APPDIR)/include/pcode/insn
.depend: Makefile $(SRCS) .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 $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
@touch $@ @touch $@
depend: .depend depend: .depend
clean: clean:
@rm -f $(BIN) *~ .*.swp @rm -f *.o *~ .*.swp .built
$(call CLEAN) $(call CLEAN)
distclean: clean distclean: clean
@rm -f Make.dep .depend @rm -f Make.dep .depend
@$(DIRUNLINK) $(APPDIR)/include/pcode/insn
@$(DIRUNLINK) $(APPDIR)/include/pcode
-include Make.dep -include Make.dep

View File

@ -1,31 +1,43 @@
README.txt pascal/nuttx/README.txt
^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
This directory contains miscellaneous files needed to install This directory contains miscellaneous files needed to install the pascal
pascal runtime logic into the NuttX source tree. After runtime logic into the NuttX apps/ ource tree. After installation, the NuttX
installation, the NuttX source tree contain the following files apps/ source tree contain the following files
pcode pcode
|-- Makefile |-- Makefile
|-- include |-- include
| `-- Common header files | `-- Common header files
|-- libboff |-- libboff
| `-- Pascal object format (POFF) library | `-- Pascal object format (POFF) library
`--insn `--insn
|-- include |-- include
| `-- model-specific header files | `-- model-specific header files
`-- prun `-- prun
`-- model-specific source files `-- model-specific source files
This directory contains: 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 Example:
environment.
./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.

View File

@ -1733,3 +1733,5 @@
* configs/pcblogic-pic32mx: Add directory structure for PCB Logic PIC32MX board * 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 * apps/include: Move include/apps to apps/include. A symbolic link is created at
build time build time
* Makefile: Removed support for Pascal pcode interpreter. Support for that
interpreter has been moved to apps/interpreter/Makefile.

View File

@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4"> <tr align="center" bgcolor="#e4e4e4">
<td> <td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> <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> </td>
</tr> </tr>
</table> </table>
@ -2189,9 +2189,28 @@ buildroot-1.10 2011-05-06 &lt;spudmonkey@racsa.co.cr&gt;
<ul><pre> <ul><pre>
nuttx-6.3 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; 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; 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; buildroot-1.11 2011-xx-xx &lt;spudmonkey@racsa.co.cr&gt;
</pre></ul> </pre></ul>

View File

@ -1,7 +1,6 @@
############################################################################ ############################################################################
# Makefile # Makefile
# #
#
# Copyright (C) 2007-2011 Gregory Nutt. All rights reserved. # Copyright (C) 2007-2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr> # Author: Gregory Nutt <spudmonkey@racsa.co.cr>
# #
@ -70,16 +69,12 @@ CONFIG_APPS_DIR = ../apps
endif endif
APPDIR := ${shell if [ -r $(CONFIG_APPS_DIR)/Makefile ]; then echo "$(CONFIG_APPS_DIR)"; fi} 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. # All add-on directories.
# #
# NUTTX_ADDONS is the list of directories built into the NuttX kernel. # 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 # 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 := USER_ADDONS :=
ifeq ($(CONFIG_NUTTX_KERNEL),y) ifeq ($(CONFIG_NUTTX_KERNEL),y)
@ -228,12 +223,6 @@ else
NUTTXLIBS += fs/libfs$(LIBEXT) drivers/libdrivers$(LIBEXT) binfmt/libbinfmt$(LIBEXT) NUTTXLIBS += fs/libfs$(LIBEXT) drivers/libdrivers$(LIBEXT) binfmt/libbinfmt$(LIBEXT)
endif endif
# Add libraries for Pascall P-Code
ifneq ($(PCODE_DIR),)
NUTTXLIBS += $(PCODE_DIR)/libpcode$(LIBEXT)
endif
# Add libraries for the NX graphics sub-system # Add libraries for the NX graphics sub-system
ifneq ($(NX_DIR),) ifneq ($(NX_DIR),)
@ -357,9 +346,6 @@ drivers/libdrivers$(LIBEXT): context
binfmt/libbinfmt$(LIBEXT): context binfmt/libbinfmt$(LIBEXT): context
@$(MAKE) -C binfmt TOPDIR="$(TOPDIR)" libbinfmt$(LIBEXT) EXTRADEFINES=$(KDEFINE) @$(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 graphics/libgraphics$(LIBEXT): context
@$(MAKE) -C graphics TOPDIR="$(TOPDIR)" libgraphics$(LIBEXT) EXTRADEFINES=$(KDEFINE) @$(MAKE) -C graphics TOPDIR="$(TOPDIR)" libgraphics$(LIBEXT) EXTRADEFINES=$(KDEFINE)

View File

@ -37,3 +37,6 @@
CONFIGURED_APPS += examples/pashello CONFIGURED_APPS += examples/pashello
# Path to the Pascal p-code runtime interpreter module
CONFIGURED_APPS += interpreters/pcode

View File

@ -37,3 +37,7 @@
CONFIGURED_APPS += examples/pashello CONFIGURED_APPS += examples/pashello
# Path to the Pascal p-code runtime interpreter module
CONFIGURED_APPS += interpreters/pcode

View File

@ -37,3 +37,6 @@
CONFIGURED_APPS += examples/pashello CONFIGURED_APPS += examples/pashello
# Path to the Pascal p-code runtime interpreter module
CONFIGURED_APPS += interpreters/pcode

View File

@ -37,3 +37,7 @@
CONFIGURED_APPS += examples/pashello CONFIGURED_APPS += examples/pashello
# Path to the Pascal p-code runtime interpreter module
CONFIGURED_APPS += interpreters/pcode