summaryrefslogtreecommitdiffstats
path: root/misc/pascal/nuttx
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 /misc/pascal/nuttx
parent1f3b5d77498be4852f047beaa2544607045e67ac (diff)
Pascal now installs in the apps/ directory
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3583 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'misc/pascal/nuttx')
-rwxr-xr-xmisc/pascal/nuttx/INSTALL.sh84
-rw-r--r--misc/pascal/nuttx/Makefile80
-rw-r--r--misc/pascal/nuttx/README.txt58
3 files changed, 136 insertions, 86 deletions
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.