aboutsummaryrefslogtreecommitdiffstats
path: root/lang/gprolog
diff options
context:
space:
mode:
authorEugene Grosbein <eugen@FreeBSD.org>2020-11-23 21:26:14 +0800
committerEugene Grosbein <eugen@FreeBSD.org>2020-11-23 21:26:14 +0800
commit5973cbeb09c236864961e043b4509b6cb01d1c8a (patch)
treea6699450e0714ddfda4a039c70f7c879b992bb99 /lang/gprolog
parent3a7b87ef5a5b0c9df4e75e4c19ba1872d231282e (diff)
downloadfreebsd-ports-gnome-5973cbeb09c236864961e043b4509b6cb01d1c8a.tar.gz
freebsd-ports-gnome-5973cbeb09c236864961e043b4509b6cb01d1c8a.tar.zst
freebsd-ports-gnome-5973cbeb09c236864961e043b4509b6cb01d1c8a.zip
lang/gprolog: recover GNU Prolog under FreeBSD.
Update to version 1.4.5 released in 2020. Make it build and run with Clang 10: - clang has no register reservation for x86, hence patch-EnginePl_machine.h and -DNO_MACHINE_REG_FOR_REG_BANK to prevent using missing feature; - add patch-Ma2Asm_x86__64__any.c fetched from upstream SourceForge post-release commit dealing with PIC issues; - disable usage of spinlocks that results in a hang eating all available CPU cycles; fixed with -DUSE_LOCKS=1 -DUSE_RECURSIVE_LOCKS=1 -DUSE_SPIN_LOCKS=0; - the software uses bundled dlmalloc dated back 2011 that replaces functions like calloc() with own implemenations and it's calloc() sometimes fails to clear allocated memory; this results in SIGSEGV when its own hash-table implementation dereferences junk that supposed to be NULL pointer, so it fails to complete build; fixed with MMAP_CLEARS=0. PR: 231393
Diffstat (limited to 'lang/gprolog')
-rw-r--r--lang/gprolog/Makefile41
-rw-r--r--lang/gprolog/distinfo3
-rw-r--r--lang/gprolog/files/patch-EnginePl_machine.h20
-rw-r--r--lang/gprolog/files/patch-Ma2Asm_x86__64__any.c57
-rw-r--r--lang/gprolog/pkg-descr20
-rw-r--r--lang/gprolog/pkg-plist185
6 files changed, 326 insertions, 0 deletions
diff --git a/lang/gprolog/Makefile b/lang/gprolog/Makefile
new file mode 100644
index 000000000000..cec993a7827d
--- /dev/null
+++ b/lang/gprolog/Makefile
@@ -0,0 +1,41 @@
+# Created by: Douglas Anestad <yotta@dougdidit.com>
+# $FreeBSD$
+
+PORTNAME= gprolog
+PORTVERSION= 1.4.5
+CATEGORIES= lang
+MASTER_SITES= http://www.gprolog.org/
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= Free Prolog compiler
+
+LICENSE= GPLv2
+
+ONLY_FOR_ARCHS= amd64 i386
+
+USES= gmake
+CFLAGS+= -DUSE_LOCKS=1 -DUSE_RECURSIVE_LOCKS=1 -DUSE_SPIN_LOCKS=0 \
+ -DMMAP_CLEARS=0 -DNO_MACHINE_REG_FOR_REG_BANK
+
+PLIST_SUB= GPROLOG_VER=${PORTVERSION}
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --with-c-flags="${CFLAGS}" \
+ --with-doc-dir="${DOCSDIR}" \
+ --with-examples-dir="${EXAMPLESDIR}"
+CONFIGURE_TARGET= ${ARCH:S/amd64/x86_64/}-portbld-${OPSYS:tl}${OSREL}
+MAKE_JOBS_UNSAFE= yes
+WRKSRC_SUBDIR= src
+
+OPTIONS_DEFINE= FD DOCS EXAMPLES
+OPTIONS_DEFAULT= FD
+OPTIONS_SUB= yes
+
+FD_DESC= Enable finite domain constraint solver
+FD_CONFIGURE_OFF= --disable-fd-solver
+
+post-patch:
+ @${REINPLACE_CMD} \
+ '/LINKS_DIR/s|$$(INSTALL_DIR)|../${PORTNAME}-${PORTVERSION}|' \
+ ${WRKSRC}/Makefile.in
+
+.include <bsd.port.mk>
diff --git a/lang/gprolog/distinfo b/lang/gprolog/distinfo
new file mode 100644
index 000000000000..c3faef75a827
--- /dev/null
+++ b/lang/gprolog/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1606049432
+SHA256 (gprolog-1.4.5.tar.gz) = ce5335d1607f0b01d5567252211ae2b19e6a5e52b62978717880524748afb9a2
+SIZE (gprolog-1.4.5.tar.gz) = 3585704
diff --git a/lang/gprolog/files/patch-EnginePl_machine.h b/lang/gprolog/files/patch-EnginePl_machine.h
new file mode 100644
index 000000000000..69bb186b924b
--- /dev/null
+++ b/lang/gprolog/files/patch-EnginePl_machine.h
@@ -0,0 +1,20 @@
+--- EnginePl/machine.h.orig 2015-01-13 18:00:19 UTC
++++ EnginePl/machine.h
+@@ -124,7 +124,7 @@ void M_Check_Magic_Words(void); /* not c
+ # define M_USED_REGS {"$9", "$10", "$11", "$12", "$13", "$14", 0}
+
+ /* on M_ix86_darwin : %ebx is used by gcc for pic base */
+-#elif defined(M_ix86) && !defined(_MSC_VER) && !defined(M_ix86_darwin)
++#elif defined(M_ix86) && !defined(_MSC_VER) && !defined(M_ix86_darwin) && !defined(__clang__)
+
+ #ifdef NO_USE_EBP
+ # define M_USED_REGS {"ebx", 0}
+@@ -137,7 +137,7 @@ void M_Check_Magic_Words(void); /* not c
+ # define M_USED_REGS {"15", "20", 0}
+
+ /* on M_x86_64_darwin Lion r12-r15 do not work (why ?) */
+-#elif defined(M_x86_64) && !defined(_MSC_VER) && !defined(M_x86_64_darwin)
++#elif defined(M_x86_64) && !defined(_MSC_VER) && !defined(M_x86_64_darwin) && !defined(__clang__)
+
+ # define M_USED_REGS {"r12", "r13", "r14", "r15", 0}
+
diff --git a/lang/gprolog/files/patch-Ma2Asm_x86__64__any.c b/lang/gprolog/files/patch-Ma2Asm_x86__64__any.c
new file mode 100644
index 000000000000..20af1004559d
--- /dev/null
+++ b/lang/gprolog/files/patch-Ma2Asm_x86__64__any.c
@@ -0,0 +1,57 @@
+--- Ma2Asm/x86_64_any.c.orig 2018-10-23 15:17:17 UTC
++++ Ma2Asm/x86_64_any.c
+@@ -112,6 +112,9 @@
+ * Global Variables *
+ *---------------------------------*/
+
++int can_produce_pic_code = 1; /* overwritte var of ma2asm.c */
++extern int pic_code;
++
+ static double dbl_tbl[MAX_DOUBLES_IN_PRED];
+ static int nb_dbl = 0;
+ static int dbl_lc_no = 0;
+@@ -149,7 +152,6 @@ static const char *fpr_arg[MAX_FPR_ARGS]
+ #endif
+ /* variables for ma_parser.c / ma2asm.c */
+
+-int can_produce_pic_code = 1;
+ char *comment_prefix = "#";
+ #ifdef M_x86_64_darwin
+ char *local_symb_prefix = "L";
+@@ -210,10 +212,8 @@ Asm_Start(void)
+ strcpy(asm_reg_cp, Off_Reg_Bank(MAP_OFFSET_CP));
+ #endif
+
+-#if defined(M_x86_64_darwin) || defined(M_x86_64_bsd)
+- pic_code = 1; /* NB: on darwin and BSD everything is PIC code */
+-#elif defined(M_x86_64_linux) && __GNUC__ >= 6 /* gcc >= 6 needs PIC for linux */
+- pic_code = 1;
++#ifdef M_x86_64_darwin
++ pic_code = 1; /* NB: on darwin everything is PIC code */
+ #elif defined(_WIN32)
+ pic_code = 0; /* NB: on MinGW nothing is needed for PIC code */
+ #endif
+@@ -1199,9 +1199,9 @@ Dico_Long(char *name, int global, VType
+ size_bytes = value * 8;
+ #ifdef M_x86_64_darwin
+ if (!global)
+- Label_Printf(".zerofill __DATA,__bss," UN "%s,%" PL_FMT_d ",4", name, size_bytes);
++ Label_Printf(".zerofill __DATA,__bss," UN "%s,%" PL_FMT_d ",3", name, size_bytes);
+ else
+- Inst_Printf(".comm", UN "%s,%" PL_FMT_d ",4", name, size_bytes);
++ Inst_Printf(".comm", UN "%s,%" PL_FMT_d ",3", name, size_bytes);
+ #else
+ #if defined(M_x86_64_linux) || defined(M_x86_64_sco) || \
+ defined(M_x86_64_solaris) || defined(M_x86_64_bsd)
+@@ -1226,11 +1226,6 @@ Dico_Long(char *name, int global, VType
+ case INITIAL_VALUE:
+ if (global)
+ Inst_Printf(".globl", UN "%s", name);
+-#ifdef M_x86_64_darwin
+- Inst_Printf(".align", "3");
+-#else
+- Inst_Printf(".align", "8");
+-#endif
+ #if !(defined(M_x86_64_darwin) || defined(_WIN32))
+ Inst_Printf(".size", UN "%s,8", name);
+ #endif
diff --git a/lang/gprolog/pkg-descr b/lang/gprolog/pkg-descr
new file mode 100644
index 000000000000..c64552c8a47c
--- /dev/null
+++ b/lang/gprolog/pkg-descr
@@ -0,0 +1,20 @@
+GNU Prolog is a free Prolog compiler with constraint solving over finite
+domains developed by Daniel Diaz.
+
+GNU Prolog accepts Prolog+constraint programs and produces native binaries
+(like gcc does from a C source). The obtained executable is then stand-alone.
+The size of this executable can be quite small since GNU Prolog can avoid to
+link the code of most unused built-in predicates. The performances of GNU
+Prolog are very encouraging (comparable to commercial systems).
+
+Beside the native-code compilation, GNU Prolog offers a classical interactive
+interpreter (top-level) with a debugger.
+
+The Prolog part conforms to the ISO standard for Prolog with many extensions
+very useful in practice (global variables, OS interface, sockets,...).
+
+GNU Prolog also includes an efficient constraint solver over Finite Domains
+(FD). This opens contraint logic pogramming to the user combining the power
+of constraint programming to the declarativity of logic programming.
+
+WWW: http://www.gprolog.org/
diff --git a/lang/gprolog/pkg-plist b/lang/gprolog/pkg-plist
new file mode 100644
index 000000000000..8dc74bb4ba1b
--- /dev/null
+++ b/lang/gprolog/pkg-plist
@@ -0,0 +1,185 @@
+%%FD%%bin/fd2c
+bin/gplc
+bin/gprolog
+bin/hexgplc
+bin/ma2asm
+bin/pl2wam
+bin/wam2ma
+gprolog-%%GPROLOG_VER%%/COPYING
+gprolog-%%GPROLOG_VER%%/ChangeLog
+gprolog-%%GPROLOG_VER%%/NEWS
+gprolog-%%GPROLOG_VER%%/README
+gprolog-%%GPROLOG_VER%%/VERSION
+%%FD%%gprolog-%%GPROLOG_VER%%/bin/fd2c
+gprolog-%%GPROLOG_VER%%/bin/gplc
+gprolog-%%GPROLOG_VER%%/bin/gprolog
+gprolog-%%GPROLOG_VER%%/bin/hexgplc
+gprolog-%%GPROLOG_VER%%/bin/ma2asm
+gprolog-%%GPROLOG_VER%%/bin/pl2wam
+gprolog-%%GPROLOG_VER%%/bin/wam2ma
+gprolog-%%GPROLOG_VER%%/gprolog.ico
+gprolog-%%GPROLOG_VER%%/include/fd_to_c.h
+gprolog-%%GPROLOG_VER%%/include/gprolog.h
+%%FD%%gprolog-%%GPROLOG_VER%%/lib/all_fd_bips.o
+gprolog-%%GPROLOG_VER%%/lib/all_pl_bips.o
+gprolog-%%GPROLOG_VER%%/lib/debugger.o
+%%FD%%gprolog-%%GPROLOG_VER%%/lib/libbips_fd.a
+gprolog-%%GPROLOG_VER%%/lib/libbips_pl.a
+%%FD%%gprolog-%%GPROLOG_VER%%/lib/libengine_fd.a
+gprolog-%%GPROLOG_VER%%/lib/libengine_pl.a
+gprolog-%%GPROLOG_VER%%/lib/liblinedit.a
+gprolog-%%GPROLOG_VER%%/lib/top_level.o
+%%PORTDOCS%%%%DOCSDIR%%/compil-scheme.eps
+%%PORTDOCS%%%%DOCSDIR%%/compil-scheme.pdf
+%%PORTDOCS%%%%DOCSDIR%%/contents_motif.gif
+%%PORTDOCS%%%%DOCSDIR%%/debug-box.eps
+%%PORTDOCS%%%%DOCSDIR%%/debug-box.pdf
+%%PORTDOCS%%%%DOCSDIR%%/gprolog.chm
+%%PORTDOCS%%%%DOCSDIR%%/gprolog.dvi
+%%PORTDOCS%%%%DOCSDIR%%/gprolog.html
+%%PORTDOCS%%%%DOCSDIR%%/gprolog.pdf
+%%PORTDOCS%%%%DOCSDIR%%/gprolog.ps
+%%PORTDOCS%%%%DOCSDIR%%/html_node/contents_motif.gif
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog-idx.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog.css
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog001.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog002.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog003.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog004.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog005.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog006.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog007.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog008.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog009.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog010.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog011.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog012.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog013.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog014.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog015.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog016.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog017.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog018.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog019.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog020.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog021.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog022.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog023.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog024.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog025.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog026.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog027.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog028.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog029.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog030.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog031.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog032.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog033.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog034.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog035.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog036.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog037.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog038.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog039.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog040.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog041.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog042.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog043.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog044.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog045.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog046.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog047.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog048.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog049.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog050.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog051.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog052.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog053.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog054.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog055.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog056.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog057.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog058.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog059.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog060.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog061.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog062.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog063.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog064.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog065.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog066.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog067.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog068.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog069.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog070.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog071.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog072.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/gprolog073.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/index.html
+%%PORTDOCS%%%%DOCSDIR%%/html_node/next_motif.gif
+%%PORTDOCS%%%%DOCSDIR%%/html_node/previous_motif.gif
+%%PORTDOCS%%%%DOCSDIR%%/logo.eps
+%%PORTDOCS%%%%DOCSDIR%%/logo.pdf
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/Makefile
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/README
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/examp.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/examp_c.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/new_main.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesC/new_main_c.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/Makefile
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/alpha.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/array.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bdiag.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bdonald.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bpigeon.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bqueens.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bramsey.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bridge.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bridge1.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bschur.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/bsend.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/cars.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/crypta.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/digit8.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/donald.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/eq10.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/eq20.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/five.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/gardner.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/interval.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/langford.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/magic.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/magsq.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/multipl.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/partit.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/qg5.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/queens.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/queens_fd.fd
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/send.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/square.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesFD/srq.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/Makefile
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/PROGS
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/README
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/boyer.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/browse.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/cal.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/chat_parser.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/common.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/crypt.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/ham.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/hook.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/meta_qsort.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/nand.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/nrev.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/poly_10.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/qsort.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/queens.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/queensn.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/query.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/reducer.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/sdda.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/sendmore.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/tak.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/tak_gvar.pl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ExamplesPl/zebra.pl