diff options
author | John Marino <marino@FreeBSD.org> | 2016-12-31 19:42:42 +0000 |
---|---|---|
committer | John Marino <marino@FreeBSD.org> | 2016-12-31 19:42:42 +0000 |
commit | 78a5f56be2afac01098f4fa5b6a9383910de7bec (patch) | |
tree | 4cdfb65e5f7117db6c0352edbc31ea2c9232aec8 /shells | |
parent | a70567c89b9796fc8d68c0c94288396b90fe0fc7 (diff) | |
download | ports-78a5f56be2afac01098f4fa5b6a9383910de7bec.tar.gz ports-78a5f56be2afac01098f4fa5b6a9383910de7bec.zip |
Notes
Diffstat (limited to 'shells')
-rw-r--r-- | shells/Makefile | 1 | ||||
-rw-r--r-- | shells/sparforte/Makefile | 159 | ||||
-rw-r--r-- | shells/sparforte/distinfo | 3 | ||||
-rw-r--r-- | shells/sparforte/files/new_configure.in | 111 | ||||
-rw-r--r-- | shells/sparforte/pkg-descr | 22 | ||||
-rw-r--r-- | shells/sparforte/pkg-plist | 225 |
6 files changed, 521 insertions, 0 deletions
diff --git a/shells/Makefile b/shells/Makefile index 5abb7c58081c..6a92bba190e4 100644 --- a/shells/Makefile +++ b/shells/Makefile @@ -38,6 +38,7 @@ SUBDIR += sash SUBDIR += scponly SUBDIR += shell-include + SUBDIR += sparforte SUBDIR += tcsh_nls SUBDIR += tcshrc SUBDIR += v7sh diff --git a/shells/sparforte/Makefile b/shells/sparforte/Makefile new file mode 100644 index 000000000000..778a5ce89da4 --- /dev/null +++ b/shells/sparforte/Makefile @@ -0,0 +1,159 @@ +# Created by: John Marino <marino@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= sparforte +PORTVERSION= 2.0.1 +DISTVERSIONPREFIX= v +CATEGORIES= shells lang + +MAINTAINER= marino@FreeBSD.org +COMMENT= Shell and scripting language for mission-critical, scalable projects + +LICENSE= GPLv2 GMGPL +LICENSE_COMB= multi +LICENSE_FILE= ${WRKSRC}/COPYING + +USE_GITHUB= yes +GH_ACCOUNT= kburtch +GH_PROJECT= SparForte + +USES= ada bdb:48 gettext-runtime gmake pkgconfig readline:port +USE_SDL= sdl image +HAS_CONFIGURE= yes +MAKE_ARGS+= RPM_BUILD_ROOT=1 +PORTDOCS= * + +# Repurpose CXXFLAGS for gnatprep options +CXXFLAGS:= -DREADLINE=true \ + -DBDB=true + +PREPFILES= world.ads \ + user_io-getline.adb \ + scanner_res.ads \ + scanner_res.adb \ + parser.adb \ + builtins.adb \ + parser_db.adb \ + parser_dbm.adb \ + parser_mysql.adb \ + parser_mysqlm.adb \ + parser_sound.adb \ + parser_pen.adb \ + parser_gnat_cgi.adb \ + parser_bdb.adb \ + parser_btree_io.adb \ + parser_hash_io.adb + +CONFIGURE_SCRIPT= new_configure +MAKE_JOBS_UNSAFE= yes # adacgi seems to be unsafe + +OPTIONS_DEFINE= CGI OPENGL SOUND DOCS EXAMPLES +OPTIONS_GROUP= Database +OPTIONS_GROUP_Database= MYSQL PGSQL +OPTIONS_DEFAULT= MYSQL PGSQL OPENGL SOUND + +MYSQL_USES= mysql +MYSQL_CXXFLAGS= -DMYSQL=true +MYSQL_CXXFLAGS_OFF= -DMYSQL=false + +PGSQL_USES= pgsql ssl +PGSQL_CXXFLAGS= -DPOSTGRES=true +PGSQL_CXXFLAGS_OFF= -DPOSTGRES=false + +OPENGL_USE= GL=gl,glu +OPENGL_CXXFLAGS= -DOPENGL=true +OPENGL_CXXFLAGS_OFF= -DOPENGL=false + +SOUND_LIB_DEPENDS= libgstreamer-0.10.so:multimedia/gstreamer +SOUND_USE= GNOME=glib20,libxml2 +SOUND_CXXFLAGS= -DSOUND=true +SOUND_CXXFLAGS_OFF= -DSOUND=false + +CGI_DESC= Common Gateway Interface (breaks other features) +CGI_CXXFLAGS= -DGCGI=true +CGI_CXXFLAGS_OFF= -DGCGI=false + +# Currently Ada is only available for x86, so we can assume the following +SF_ARCH= ${ARCH:S/amd64/athlon64/:S/x86_64/athlon64/} +SF_CPU_FLAG= -march +SF_CFLAGSTYPE= -DFREEBSD + +# shortcuts +SF_SRC= ${WRKSRC}/src +SCAL= scanner-calendar + +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MMYSQL} || ${PORT_OPTIONS:MPGSQL} +CXXFLAGS+= -DAPQ=true +SETAPQ= 1 +.else +CXXFLAGS+= -DAPQ=false +SETAPQ= 0 +.endif +SETMYSQL= ${"${PORT_OPTIONS:MMYSQL}" != "":?1:0} +SETPGSQL= ${"${PORT_OPTIONS:MPGSQL}" != "":?1:0} +SETSOUND= ${"${PORT_OPTIONS:MSOUND}" != "":?1:0} +SETGL= ${"${PORT_OPTIONS:MOPENGL}" != "":?1:0} + +post-extract: + ${CP} ${SF_SRC}/bush_freebsd.ads ${SF_SRC}/bush_os.ads + ${CP} ${SF_SRC}/${SCAL}-latest.ads ${SF_SRC}/${SCAL}.ads + ${CP} ${SF_SRC}/${SCAL}-latest.adb ${SF_SRC}/${SCAL}.adb +.if ${SF_ARCH} == "athlon64" + ${CP} ${SF_SRC}/bush_os-sdl-64bit.ads ${SF_SRC}/bush_os-sdl.ads +.else + ${CP} ${SF_SRC}/bush_os-sdl-32bit.ads ${SF_SRC}/bush_os-sdl.ads +.endif + # Create a compact configure script for ports collection + ${SED} -e "s|@CPU_FLAG@|${SF_CPU_FLAG}|" \ + -e "s|@ARCH@|${SF_ARCH}|" \ + -e "s|@MAKECMD@|${MAKE_CMD}|" \ + -e "s|@CFLAGSTYPE@|${SF_CFLAGSTYPE}|" \ + -e "s|@PREFIX@|${PREFIX}|" \ + -e "s|@SETAPQ@|${SETAPQ}|" \ + -e "s|@SETMYSQL@|${SETMYSQL}|" \ + -e "s|@SETPGSQL@|${SETPGSQL}|" \ + -e "s|@SETSOUND@|${SETSOUND}|" \ + -e "s|@SETGL@|${SETGL}|" \ + -e "s|@SED@|${SED}|" \ + ${FILESDIR}/new_configure.in > ${WRKSRC}/new_configure + ${CHMOD} 755 ${WRKSRC}/new_configure + +post-patch: + # Use the gcc compiler associated with the ada frontend. + # Without this substitution, the base compiler is used instead. + ${REINPLACE_CMD} -e "s|cc |gcc |" ${WRKSRC}/src/pegasock/Makefile + # Avoid use of malloc.h + ${REINPLACE_CMD} -e "s|<malloc.h>|<stdlib.h>|" \ + ${WRKSRC}/src/bdb/c_bdb.c + # Use db.h from db48 and link to it + # Fix multi-job support + ${REINPLACE_CMD} -e "s|BDB4|BDB4 -I${PREFIX}/include/db48|" \ + -e "s|-ldb|-L${PREFIX}/lib/db48 -ldb|" \ + -e "s|db: db.adb|db: bdb_constants.ads db.adb|" \ + ${WRKSRC}/src/bdb/GNUmakefile + # fix areadline linkage + ${REINPLACE_CMD} -e "s|gnatlink.*|gnatlink rl.ali -L${PREFIX}/lib -lreadline -lhistory|" \ + ${WRKSRC}/src/areadline/Makefile + +post-configure: +.for f in ${PREPFILES} + (cd ${WRKSRC}/src && ${SETENV} ${MAKE_ENV} \ + gnatprep ${CXXFLAGS} ${f}.orig ${f}) +.endfor + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/spar + +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + (cd ${WRKSRC}/doc && ${COPYTREE_SHARE} \* ${STAGEDIR}${DOCSDIR}) + +post-install-EXAMPLES-on: + @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + @${MV} ${WRKSRC}/examples/incomplete ${WRKDIR}/ + (cd ${WRKSRC}/examples && \ + ${COPYTREE_SHARE} \* ${STAGEDIR}${EXAMPLESDIR}) + +.include <bsd.port.mk> diff --git a/shells/sparforte/distinfo b/shells/sparforte/distinfo new file mode 100644 index 000000000000..15579e394fa6 --- /dev/null +++ b/shells/sparforte/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1482942904 +SHA256 (kburtch-SparForte-v2.0.1_GH0.tar.gz) = d8cab4bc90e2480bd3b8fe295e32a1f6d5584520b9126dde20acd73425367b31 +SIZE (kburtch-SparForte-v2.0.1_GH0.tar.gz) = 2761519 diff --git a/shells/sparforte/files/new_configure.in b/shells/sparforte/files/new_configure.in new file mode 100644 index 000000000000..5dc56d8da5ff --- /dev/null +++ b/shells/sparforte/files/new_configure.in @@ -0,0 +1,111 @@ +#!/bin/sh +# Configure script tailored for FreeBSD ports collection + +SETAPQ=@SETAPQ@ +SETMYSQL=@SETMYSQL@ +SETPGSQL=@SETPGSQL@ +SETSOUND=@SETSOUND@ +SETGL=@SETGL@ + +CCTYPE=ada +CPUTYPE="@ARCH@" +CPUFLAG="@CPU_FLAG@" +GMAKETYPE="@MAKECMD@" +PREFIXSUB="@PREFIX@" +MANPREFIXSUB="@PREFIX@/man" +CFLAGSTYPE="@CFLAGSTYPE@" +BDBINCLSUB="-I@PREFIX@/include/db48 -I./bdb/" +BDBSUB="-L@PREFIX@/lib/db48 -ldb bdb/c_bdb.o" +RLINCLSUB="-I./areadline/" +RLLIBSSUB="-L@PREFIX@/lib -lreadline -lhistory" +FASTCGISUB= +SDLINCLSSUB= +SDLLIBSTYPE=$(@PREFIX@/bin/pkgconf --libs SDL_image) +SDLINCLTYPE=$(@PREFIX@/bin/pkgconf --cflags SDL_image) + +# Blank defaults +GSTREAMERLIBSSUB= +GSTREAMERFLAGSUB= +GSTREAMEROUTSUB= +MESAINCLSUB= +MESALIBSSUB= +MYSQLLIBSSUB= +PGLIBSSUB= + +if [ ${SETAPQ} -eq 1 ]; then + APQ="apq-2.1" + APQMAKESUB="\$(MAKE) -C ${APQ}" + APQLIBSSUB="-L./${APQ} " + APQINCLSSUB="-I./${APQ} " + if [ ${SETMYSQL} -eq 1 ]; then + MYSQLLIBSSUB="-L@PREFIX@/lib/mysql -lmysqlclient -pthread -lm" + APQLIBSSUB="${APQLIBSSUB} ./${APQ}/c_mysql.o" + if [ ${SETPGSQL} -eq 0 ]; then + echo "Executing APQ's configure (skipping PostgreSQL)" + (cd src/${APQ} && /usr/bin/env HAVE_PG=0 ./configure) + fi + fi + if [ ${SETPGSQL} -eq 1 ]; then + PGLIBSSUB="-L@PREFIX@/lib -lintl -lssl -lcrypto" + if [ ${SETMYSQL} -eq 1 ]; then + echo "Executing APQ's configure" + (cd src/${APQ} && ./configure) + else + echo "Executing APQ's configure (skipping MySQL)" + (cd src/${APQ} && /usr/bin/env HAVE_MY=0 ./configure) + fi + fi +else + APQMAKESUB="@echo disabled" + APQLIBSSUB= + APQINCLSSUB= +fi + +if [ ${SETSOUND} -eq 1 ]; then + GSTREAMERLIBSSUB=$(@PREFIX@/bin/pkgconf --cflags --libs gstreamer-0.10) + GSTREAMEROUTSUB="c_gstreamer.o" + GSTREAMERFLAGSUB="-DGSTREAMER" +fi + +if [ ${SETGL} -eq 1 ]; then + MESAINCLSUB=$(@PREFIX@/bin/pkgconf --cflags gl glu) + MESALIBSSUB=$(@PREFIX@/bin/pkgconf --libs gl glu) +fi + +echo "Creating GNUmakefile" +@SED@ -e "s|CPUFLAG|${CPUFLAG}|g" \ + -e "s|CCTYPE|${CCTYPE}|g" \ + -e "s|CPUTYPE|${CPUTYPE}|g" \ + -e "s|GMAKETYPE|${GMAKETYPE}|g" \ + -e "s|CFLAGSTYPE|${CFLAGSTYPE}|g" \ + -e "s|MANPREFIXSUB|${MANPREFIXSUB}|g" \ + -e "s|PREFIXSUB|${PREFIXSUB}|g" \ + GNUmakefile.orig > Makefile + +echo "Creating src/GNUmakefile" +@SED@ -e "s|CPUFLAG|${CPUFLAG}|g" \ + -e "s|CCTYPE|${CCTYPE}|g" \ + -e "s|CPUTYPE|${CPUTYPE}|g" \ + -e "s|GMAKETYPE|${GMAKETYPE}|g" \ + -e "s|CFLAGSTYPE|${CFLAGSTYPE}|g" \ + -e "s|MANPREFIXSUB|${MANPREFIXSUB}|g" \ + -e "s|PREFIXSUB|${PREFIXSUB}|g" \ + -e "s|SDLLIBSTYPE|${SDLLIBSTYPE}|g" \ + -e "s|SDLINCLTYPE|${SDLINCLTYPE}|g" \ + -e "s|PGLIBSSUB|${PGLIBSSUB}|g" \ + -e "s|MYSQLLIBSSUB|${MYSQLLIBSSUB}|g" \ + -e "s|APQLIBSSUB|${APQLIBSSUB}|g" \ + -e "s|APQINCLSSUB|${APQINCLSSUB}|g" \ + -e "s|SDLINCLSSUB|${SDLINCLSSUB}|g" \ + -e "s|APQMAKESUB|${APQMAKESUB}|g" \ + -e "s|FASTCGISUB|${FASTCGISUB}|g" \ + -e "s|GSTREAMERLIBSSUB|${GSTREAMERLIBSSUB}|g" \ + -e "s|GSTREAMERFLAGSUB|${GSTREAMERFLAGSUB}|g" \ + -e "s|GSTREAMEROUTSUB|${GSTREAMEROUTSUB}|g" \ + -e "s|MESAINCLSUB|${MESAINCLSUB}|g" \ + -e "s|MESALIBSSUB|${MESALIBSSUB}|g" \ + -e "s|BDBSUB|${BDBSUB}|g" \ + -e "s|BDBINCLSUB|${BDBINCLSUB}|g" \ + -e "s|RLINCLSUB|${RLINCLSUB}|g" \ + -e "s|RLLIBSSUB|${RLLIBSSUB}|g" \ + src/GNUmakefile.orig > src/GNUmakefile diff --git a/shells/sparforte/pkg-descr b/shells/sparforte/pkg-descr new file mode 100644 index 000000000000..38cb65acf332 --- /dev/null +++ b/shells/sparforte/pkg-descr @@ -0,0 +1,22 @@ +SPARforte is an open source programming language for high-integrity tasks, +efficient development over the project lifecycle and assuming best practices. + +Language characteristics: +* Paradigm: imperative/ procedural, scripting, shell, limited reflexive +* Typing Disciplines: strong typing, type safety, nominative static with + optional limited weak and duck typing +* Appeared: 2001 (Ken O. Burtch) +* Source Code: GCC Ada, GCC C, Bourne-Again Shell, GCC Make +* Influenced by: Ada 95, Bourne Shell, SQL, and minorly BASIC, PHP, Python +* Usual File Extensions: .sp, .bush + +The computer language that the SparForte shell understands is called +AdaScript. Unlike JavaScript, which has no relation to Java, AdaScript is a +small subset of the Ada programming language, with additional features +related to shell commands and databases. + +AdaScript is intended to be "upward compatible" with Ada. AdaScript scripts +should run with little difficulty under Ada, but Ada programs may require +large changes run under SparForte. + +WWW: http://www.sparforte.com diff --git a/shells/sparforte/pkg-plist b/shells/sparforte/pkg-plist new file mode 100644 index 000000000000..8875d88a0e99 --- /dev/null +++ b/shells/sparforte/pkg-plist @@ -0,0 +1,225 @@ +bin/spar +man/man1/spar.1.gz +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/8ball.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/8ball.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/add_ramdisk.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/add_ramdisk.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/add_swap.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/add_swap.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/aligncols.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/aligncols.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/aplusb.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/aplusb.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/archive.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/archive.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/arraycat.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/arraycat.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/arrayloop.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/arrayloop.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/arraysum.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/arraysum.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/arrow.wav +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/attention.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/attention.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/audio.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/audio.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bases.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bases.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bats.wav +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/best_shuffle.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/best_shuffle.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bitarith.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bitarith.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bjack.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bjack.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bottles.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bottles.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calcrms.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calcrms.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camel.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camel.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cecho.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cecho.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/charcode.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/charcode.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/chessboard.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/chessboard.png +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/chessboard.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/chomp.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/chomp.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/chomp2.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/chomp2.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/clap.wav +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/combinations.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/combinations.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/count_statements.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/count_statements.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/database.gif +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/database.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/database.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dateformat.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dateformat.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/de_RPM.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/de_RPM.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dispatch.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dispatch.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/distance.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/distance.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/doors.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/doors.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dotproduct.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dotproduct.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/draco_ii.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/draco_ii.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/draco_score.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/drawline.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/drawline.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dynamic_css.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dynamic_css.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dynamic_css2.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dynamic_css2.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/eliza.data +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/eliza.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/eliza.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/env.cgi +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/env.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/env.tmpl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/factorial.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/factorial.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fibonacci.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fibonacci.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/file_creation.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/file_creation.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/filecopy.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/filecopy.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/files.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fizzbuzz.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fizzbuzz.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/game.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/game.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/geometry.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/get_env_data.gif +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/get_env_data.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/get_env_data.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/gray.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/gray.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/gss.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/gss.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hello.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hello.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/incstr.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/incstr.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/index.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/int_sort.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/int_sort.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/introsp.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/introsp.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/isxwindows.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/isxwindows.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/json_health_check.cgi +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/json_health_check.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/linear_reg.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/linear_reg.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/loopsbreak.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/loopsbreak.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/main.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mandel.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mandel.png +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mandel.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mapping.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mapping.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menu.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menu.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menu2.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menu2.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minimal.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minimal_cgi.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minimal_cgi.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minsort.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minsort.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/moire.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/moire.png +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/moire.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/monte.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/monte.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/monty.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/monty.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/neartime.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/neartime.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nonsquares.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nonsquares.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/opengl_first.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/opengl_first.png +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/opengl_first.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/opengl_second.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/opengl_second.png +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/opengl_second.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pack.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pack.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/palindrome.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/palindrome.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/perfect.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/perfect.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pit.wav +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/poetry.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/poetry.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/postgres_csv.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/postgres_csv.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/prime.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/prime.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/printargs.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/printargs.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quest.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quest.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/radices.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/radices.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/randdist.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/randdist.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/random.cgi +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/random.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/random.tmpl +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rle.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rle.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rm_ramdisk.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rm_ramdisk.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rm_swap.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rm_swap.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/roman_numerals.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/roman_numerals.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rot13.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rot13.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/run.wav +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scream.wav +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/scripting.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shuffle.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shuffle.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sieve.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sieve.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sleep.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sleep.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/stringcase.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/stringcase.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/stripcomment.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/stripcomment.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timestamp.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timestamp.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/title.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/title.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tmpfile.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tmpfile.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/validate_name.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/validate_name.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/weave.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/weave.png +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/weave.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/web_summary.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/web_summary.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/whattime.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/whattime.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/wumpus.gif +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/wumpus.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/wumpus.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yorn.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yorn.sp +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yuletide.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yuletide.sp |