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:
parent
398cadbb31
commit
1141cc4cc6
@ -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.
|
||||
|
||||
|
22
Makefile
22
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
|
||||
|
@ -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
|
||||
^^^^^^^^^^^^^
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
||||
/****************************************************************************
|
||||
|
70
interpreters/Makefile
Normal file
70
interpreters/Makefile
Normal 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
|
59
interpreters/README.txt
Normal file
59
interpreters/README.txt
Normal 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
|
@ -62,6 +62,3 @@ distclean: clean
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
$(MAKE) -C $$dir distclean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"; \
|
||||
done
|
||||
|
||||
-include Make.dep
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user