Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Dec 2016 19:42:42 +0000 (UTC)
From:      John Marino <marino@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r430153 - in head/shells: . sparforte sparforte/files
Message-ID:  <201612311942.uBVJggrj061183@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marino
Date: Sat Dec 31 19:42:42 2016
New Revision: 430153
URL: https://svnweb.freebsd.org/changeset/ports/430153

Log:
  Add new port shells/sparforte
  
  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

Added:
  head/shells/sparforte/
  head/shells/sparforte/Makefile   (contents, props changed)
  head/shells/sparforte/distinfo   (contents, props changed)
  head/shells/sparforte/files/
  head/shells/sparforte/files/new_configure.in   (contents, props changed)
  head/shells/sparforte/pkg-descr   (contents, props changed)
  head/shells/sparforte/pkg-plist   (contents, props changed)
Modified:
  head/shells/Makefile

Modified: head/shells/Makefile
==============================================================================
--- head/shells/Makefile	Sat Dec 31 19:11:57 2016	(r430152)
+++ head/shells/Makefile	Sat Dec 31 19:42:42 2016	(r430153)
@@ -38,6 +38,7 @@
     SUBDIR += sash
     SUBDIR += scponly
     SUBDIR += shell-include
+    SUBDIR += sparforte
     SUBDIR += tcsh_nls
     SUBDIR += tcshrc
     SUBDIR += v7sh

Added: head/shells/sparforte/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/sparforte/Makefile	Sat Dec 31 19:42:42 2016	(r430153)
@@ -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>

Added: head/shells/sparforte/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/sparforte/distinfo	Sat Dec 31 19:42:42 2016	(r430153)
@@ -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

Added: head/shells/sparforte/files/new_configure.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/sparforte/files/new_configure.in	Sat Dec 31 19:42:42 2016	(r430153)
@@ -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

Added: head/shells/sparforte/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/sparforte/pkg-descr	Sat Dec 31 19:42:42 2016	(r430153)
@@ -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

Added: head/shells/sparforte/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/sparforte/pkg-plist	Sat Dec 31 19:42:42 2016	(r430153)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612311942.uBVJggrj061183>