From b178fec3d84131c06bb015d60533a1b704650008 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 10 May 2011 15:50:23 +0000 Subject: 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 --- misc/pascal/ChangeLog | 8 ++++- misc/pascal/README | 5 ++- misc/pascal/ReleaseNotes | 13 +++++++ misc/pascal/nuttx/INSTALL.sh | 84 ++++++++++++++++++++++---------------------- misc/pascal/nuttx/Makefile | 80 ++++++++++++++++++++++++++++++----------- misc/pascal/nuttx/README.txt | 58 ++++++++++++++++++------------ 6 files changed, 160 insertions(+), 88 deletions(-) (limited to 'misc') diff --git a/misc/pascal/ChangeLog b/misc/pascal/ChangeLog index e1d44f610..e937aa13b 100644 --- a/misc/pascal/ChangeLog +++ b/misc/pascal/ChangeLog @@ -22,4 +22,10 @@ pascal-2.0 2009-12-21 Gregory Nutt stdbool.h. This change was necessary for compatibility with NuttX-5.0 (any beyond). -pascal-2.1 2010-xx-xx Gregory Nutt +pascal-3.0 2010-xx-xx Gregory Nutt + + * 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 347c6d33c..f2d72130f 100644 --- a/misc/pascal/README +++ b/misc/pascal/README @@ -18,5 +18,8 @@ Installing the NuttX Runtime P-Code Interpreter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cd /nuttx - ./INSTALL.sh + ./INSTALL.sh + +See /nuttx/README.txt for additional information. + diff --git a/misc/pascal/ReleaseNotes b/misc/pascal/ReleaseNotes index ec7a7e26f..389aff1e4 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 ad9802d9f..f513967d3 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 # # 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] " + echo "USAGE: $0 [-16|-32] " 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] " +if [ -z "${installdir}" ]; then + echo "USAGE: $0 [-16|-32] " 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 41b9888c3..027e19915 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 # # 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 ca18eb830..9452d19fa 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] + ./INSTALL.sh [-16|-32] -Makefile -- The NuttX makefile for the runtime logic + If you are using the standard NuttX apps/ package, the correct + location for the 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. -- cgit v1.2.3