aboutsummaryrefslogtreecommitdiffstats
path: root/lang/gcl
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2003-09-14 23:10:02 +0800
committermarkm <markm@FreeBSD.org>2003-09-14 23:10:02 +0800
commit72f44748729dac4d3266fab6dee3d98a7e0d99f7 (patch)
tree0b549062c8fbfdc3a6cfa5eaa03c7de5c8969896 /lang/gcl
parentf81723e56f232d4ef8c5dd98629266bc3ded6075 (diff)
downloadfreebsd-ports-gnome-72f44748729dac4d3266fab6dee3d98a7e0d99f7.tar.gz
freebsd-ports-gnome-72f44748729dac4d3266fab6dee3d98a7e0d99f7.tar.zst
freebsd-ports-gnome-72f44748729dac4d3266fab6dee3d98a7e0d99f7.zip
Rescue a hosed port from death row. GCL is now healthy enough to
compile and run Maxima (see math/). Make portlint-clean as well. Claim maintainership in case it breaks again.
Diffstat (limited to 'lang/gcl')
-rw-r--r--lang/gcl/Makefile51
-rw-r--r--lang/gcl/distinfo2
-rw-r--r--lang/gcl/files/patch-aa21
-rw-r--r--lang/gcl/files/patch-ab40
-rw-r--r--lang/gcl/files/patch-ac54
-rw-r--r--lang/gcl/files/patch-ad11
-rw-r--r--lang/gcl/files/patch-configure.in52
-rw-r--r--lang/gcl/files/patch-h_FreeBSD.defs33
-rw-r--r--lang/gcl/files/patch-h_FreeBSD.h90
-rw-r--r--lang/gcl/files/patch-info::gcl-tk.texi42
-rw-r--r--lang/gcl/files/patch-info_gcl-si.texi13
-rw-r--r--lang/gcl/files/patch-info_makefile71
-rw-r--r--lang/gcl/files/patch-makedefc.in24
-rw-r--r--lang/gcl/files/patch-makefile15
-rw-r--r--lang/gcl/files/patch-o_readline.d11
-rw-r--r--lang/gcl/files/patch-o_sfaslelf.c136
-rw-r--r--lang/gcl/files/patch-o_unixfasl.c11
-rw-r--r--lang/gcl/files/patch-unixport::makefile11
-rw-r--r--lang/gcl/files/patch-unixport::rsym_elf.c13
-rw-r--r--lang/gcl/files/patch-unixport_rsym_elf.c20
-rw-r--r--lang/gcl/pkg-descr4
-rw-r--r--lang/gcl/pkg-plist64
22 files changed, 537 insertions, 252 deletions
diff --git a/lang/gcl/Makefile b/lang/gcl/Makefile
index 09a1fa204e25..08e0c2610e37 100644
--- a/lang/gcl/Makefile
+++ b/lang/gcl/Makefile
@@ -1,37 +1,48 @@
-# New ports collection makefile for: gcl
-# Date created: Feb 8 1995
-# Whom: hsu
+# New ports collection makefile for: gcl
+# Date created: Feb 8 1995
+# Whom: hsu
#
# $FreeBSD$
#
PORTNAME= gcl
-PORTVERSION= 2.4.0
-CATEGORIES= lang
-MASTER_SITES= ftp://ftp.ma.utexas.edu/pub/gcl/
-EXTRACT_SUFX= .tgz
+PORTVERSION= 2.5.3
+CATEGORIES= lang tcl84 tk84
+MASTER_SITES= ${MASTER_SITE_GNU}
+MASTER_SITE_SUBDIR= gcl
-MAINTAINER= twp@unchi.org
+MAINTAINER= markm@freebsd.org
COMMENT= GNU Common Lisp
-BROKEN= "Dies with sig11 during build"
+LIB_DEPENDS= tk84.1:${PORTSDIR}/x11-toolkits/tk84
GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --enable-machine=FreeBSD
+USE_AUTOCONF= yes
+USE_GMAKE= yes
+USE_XLIB= yes
+CONFIGURE_ARGS=--prefix=${PREFIX} \
+ --enable-machine=FreeBSD \
+ --enable-ansi \
+ --infodir=${PREFIX}/info \
+ --enable-info=${PREFIX}/info \
+ --enable-tkconfig=${LOCALBASE}/lib/tk8.4 \
+ --enable-tclconfig=${LOCALBASE}/lib/tcl8.4 \
+ --with-x \
+ --x-includes=${X11BASE}/include \
+ --x-libraries=${X11BASE}/lib \
+ --disable-dlopen \
+ --disable-dynsysbfd \
+ --disable-statsysbfd \
+ --disable-locbfd \
+ --enable-custreloc
MAKEFILE= makefile
+INFO= gcl gcl-si gcl-tk
+
PLIST_SUB= GCL_VER=${PORTVERSION}
pre-configure:
- @${LN} -sf unexelf.c ${WRKSRC}/o/unexec.c
-
-pre-build:
- ${RM} -rf ${WRKSRC}/info/gcl-si.info* ${WRKSRC}/info/gcl-tk.info*
-
-post-install:
- ${INSTALL_DATA} ${WRKSRC}/info/gcl-si.info ${PREFIX}/info
- ${INSTALL_DATA} ${WRKSRC}/info/gcl-tk.info ${PREFIX}/info
- @install-info ${PREFIX}/info/gcl-si.info ${PREFIX}/info/dir
- @install-info ${PREFIX}/info/gcl-tk.info ${PREFIX}/info/dir
+ ${RM} -f ${WRKSRC}/configure
+ ${SED} -i '.PRE-SED' -e 's|@@CFLAGS@@|${CFLAGS}|' ${WRKSRC}/h/FreeBSD.defs
.include <bsd.port.mk>
diff --git a/lang/gcl/distinfo b/lang/gcl/distinfo
index 6487886a0ce2..afcc6414eba7 100644
--- a/lang/gcl/distinfo
+++ b/lang/gcl/distinfo
@@ -1 +1 @@
-MD5 (gcl-2.4.0.tgz) = 86da3b0368e3cafd44d6ed809263c96b
+MD5 (gcl-2.5.3.tar.gz) = 42c24f9a8d4f823c7c411cbf77edb36f
diff --git a/lang/gcl/files/patch-aa b/lang/gcl/files/patch-aa
deleted file mode 100644
index 68bf2a1cafc6..000000000000
--- a/lang/gcl/files/patch-aa
+++ /dev/null
@@ -1,21 +0,0 @@
---- info/gcl-si.texi.orig Wed Mar 8 18:08:53 1995
-+++ info/gcl-si.texi Sun Oct 12 17:14:04 1997
-@@ -9,7 +9,6 @@
- @c ! unbalanced parens in @def arguments.
- @c ignore these by using 's' to scroll error messages in tex.
-
--
- @c @smallbook
- @setfilename gcl-si.info
- @synindex vr fn
-@@ -21,6 +20,10 @@
-
- @setchapternewpage odd
- @ifinfo
-+@dircategory GNU Common Lisp
-+@direntry
-+* GCL Systems Internals: (gcl-si). GCL SYSTEM INTERNALS Manual
-+@end direntry
- This is a Texinfo GCL SYSTEM INTERNALS Manual
-
- Copyright 1994 William F. Schelter
diff --git a/lang/gcl/files/patch-ab b/lang/gcl/files/patch-ab
deleted file mode 100644
index 5905f5a4f4c9..000000000000
--- a/lang/gcl/files/patch-ab
+++ /dev/null
@@ -1,40 +0,0 @@
---- makefile.orig Sun May 6 02:18:49 2001
-+++ makefile Mon Dec 3 22:20:13 2001
-@@ -198,10 +198,12 @@
- -if [ -d "${prefix}/lib" ] ;then true; else mkdir ${prefix}/lib ; fi
- -if [ -d "${prefix}/bin" ] ;then true; else mkdir ${prefix}/bin ; fi
- -if [ -d "${INSTALL_LIB_DIR}" ] ; then true; else mkdir ${INSTALL_LIB_DIR} ;fi
-+ -if [ -d "${prefix}/info" ];then true; else mkdir ${prefix}/info ; fi
- make install-command "INSTALL_LIB_DIR=${INSTALL_LIB_DIR}" "prefix=${prefix}"
- rm -f ${prefix}/bin/gcl.exe
-- tar cvf - unixport/saved_gcl info/*info* doc/*.el ${LISP_LIB} \
-+ tar cvf - unixport/saved_gcl doc/*.el ${LISP_LIB} \
- gcl-tk/gcl.tcl gcl-tk/gcltkaux | (cd ${INSTALL_LIB_DIR} ;tar xvf -)
-+ strip ${INSTALL_LIB_DIR}/unixport/saved_gcl
- ln ${SYMB} ${INSTALL_LIB_DIR}/unixport/saved_gcl \
- ${prefix}/bin/gcl.exe
- -cat gcl-tk/gcltksrv | \
---- makedefc.in.orig Tue Dec 4 01:39:21 2001
-+++ makedefc.in Tue Dec 4 02:25:46 2001
-@@ -16,13 +16,18 @@
- prefix=@prefix@
-
- # where to place the info files
--INFO_DIR=@INFO_DIR@
-+INFO_DIR=@prefix@/info
-+
-+# configure has a clever process for figuring out where Emacs
-+# really expects to find site-lisp and default.el. We use
-+# these values instead to ensure that building with --prefix=PREFIX
-+# will not make changes outside the specified tree. -twp
-
- # where to put emacs lisp files.
--EMACS_SITE_LISP=@EMACS_SITE_LISP@
-+EMACS_SITE_LISP=@prefix@/share/emacs/site-lisp
-
- # the default.el file
--EMACS_DEFAULT_EL=@EMACS_DEFAULT_EL@
-+EMACS_DEFAULT_EL=@prefix@/share/emacs/site-lisp/default.el
-
- # numerous TCL/TK variables culled from the tkConfig.sh and tclConfig.sh
- # if these are found.
diff --git a/lang/gcl/files/patch-ac b/lang/gcl/files/patch-ac
deleted file mode 100644
index 24c618037afb..000000000000
--- a/lang/gcl/files/patch-ac
+++ /dev/null
@@ -1,54 +0,0 @@
---- info/makefile.orig Sun May 6 02:18:49 2001
-+++ info/makefile Tue Dec 4 01:00:35 2001
-@@ -19,7 +19,7 @@
- prefix=/usr/local
-
- # where to place the info files
--INFO_DIR=/usr/local/info/
-+INFO_DIR=${prefix}/info/
-
- # where to put emacs lisp files.
- EMACS_SITE_LISP=/usr/share/emacs/20.7/site-lisp
-@@ -63,7 +63,7 @@
-
- # Machine dependent makefile definitions for intel 386,486 running linux
-
--LBINDIR=/usr/local/bin
-+LBINDIR=${prefix}/bin
-
- OFLAG = -O
- LIBS = -lm
-@@ -115,8 +115,8 @@
-
- .texi.info:
- rm -f $*.*gz
-- makeinfo $*.texi
-- - gzip $*.info-*
-+ makeinfo --no-split $*.texi
-+# - gzip $*.info
-
- GCL_SI= number.texi sequence.texi character.texi list.texi io.texi \
- form.texi compile.texi symbol.texi system.texi structure.texi \
-@@ -128,7 +128,7 @@
- gcl-si.dvi: ${GCL_SI} gcl-si.texi
- tex gcl-si.texi
-
--gcl-si.info:
-+gcl-si.info: gcl-si.texi
- makeinfo gcl-si.texi
-
- gcl-tk.dvi: ${GCL_TK} gcl-tk.texi
-@@ -147,13 +147,6 @@
- cp *.html /d/www/gcl
-
- install:
-- if [ -d "${INFO_DIR}" ] ; then true ; else exit 0; fi
-- -if fgrep gcl-si ${INFO_DIR}/dir > /dev/null ; then true ; else \
-- echo "* GCL Doc: (gcl-si.info). GNU Common Lisp specific Documentation." >> ${INFO_DIR}/dir ; fi
-- -if fgrep gcl-tk ${INFO_DIR}/dir > /dev/null ; then true ; else \
-- echo "* GCL TK Doc: (gcl-tk.info). TK window GCL interface." >> ${INFO_DIR}/dir ; fi
-- -if fgrep gcl.info ${INFO_DIR}/dir > /dev/null ; then true ; else \
-- echo "* GCL Ansi Doc: (gcl.info). Ansi Common Lisp Specification." >> ${INFO_DIR}/dir ; fi
- -if [ -d "${INFO_DIR}" ] ; then cp *.info* ${INFO_DIR} ; fi
-
-
diff --git a/lang/gcl/files/patch-ad b/lang/gcl/files/patch-ad
deleted file mode 100644
index df0e4db6e8ca..000000000000
--- a/lang/gcl/files/patch-ad
+++ /dev/null
@@ -1,11 +0,0 @@
---- h/FreeBSD.defs.orig Mon Dec 6 17:44:02 1999
-+++ h/FreeBSD.defs Mon Dec 3 22:58:46 2001
-@@ -2,7 +2,7 @@
- # Ported to FreeBSD 2.0 by Jeffrey Hsu (hsu@freebsd.org).
- # Hacked September-93 by Paul F. Werkowski for 386BSD 0.1 + Patchkit 0.2.4
-
--LBINDIR=/usr/local/bin
-+LBINDIR=${prefix}/bin
-
- OFLAG = -O2 -pipe
- LIBS = -lm
diff --git a/lang/gcl/files/patch-configure.in b/lang/gcl/files/patch-configure.in
new file mode 100644
index 000000000000..e5d452bded13
--- /dev/null
+++ b/lang/gcl/files/patch-configure.in
@@ -0,0 +1,52 @@
+--- ./configure.in.orig Sun Mar 2 15:23:17 2003
++++ ./configure.in Sat Sep 13 23:52:23 2003
+@@ -361,8 +361,8 @@
+ # for subconfigurations
+ CFLAGS=-g
+ else
+- TO3FLAGS="-O6 -fomit-frame-pointer"
+- TO2FLAGS="-O"
++ TO3FLAGS="-fomit-frame-pointer"
++ TO2FLAGS=""
+ fi
+
+ AC_CHECK_PROGS(AWK,gawk nawk awk,"")
+@@ -1266,30 +1266,30 @@
+
+ if test -d ${TK_CONFIG_PREFIX}/tk${TK_VERSION} ; then
+ TK_LIBRARY=${TK_CONFIG_PREFIX}/tk${TK_VERSION}
+- else
++else
+ if test -d ${TK_CONFIG_PREFIX}/../tk${TK_VERSION} ; then
+ TK_LIBRARY=${TK_CONFIG_PREFIX}/../tk${TK_VERSION}
+ fi
+ fi
+ if test -d ${TK_CONFIG_PREFIX}/tcl${TCL_VERSION} ; then
+ TCL_LIBRARY=${TK_CONFIG_PREFIX}/tcl${TCL_VERSION}
+- else
++else
+ if test -d ${TK_CONFIG_PREFIX}/../tcl${TCL_VERSION} ; then
+ TCL_LIBRARY=${TK_CONFIG_PREFIX}/../tcl${TCL_VERSION}
+ fi
+ fi
+ if test -f ${TK_CONFIG_PREFIX}/../include/tk.h ; then
+ TK_INCLUDE=-I${TK_CONFIG_PREFIX}/../include
+- else
+- if test -f /usr/include/tcl${TCL_VERSION}/tk.h ; then
+- TK_INCLUDE=-I/usr/include/tcl${TCL_VERSION}
++else
++ if test -f ${TK_CONFIG_PREFIX}/../../include/tk${TK_VERSION}/tk.h ; then
++ TK_INCLUDE=-I${TK_CONFIG_PREFIX}/../../include/tk${TK_VERSION}
+ fi
+ fi
+ if test -f ${TCL_CONFIG_PREFIX}/../include/tcl.h ; then
+ TCL_INCLUDE=-I${TCL_CONFIG_PREFIX}/../include
+- else
+- if test -f /usr/include/tcl${TCL_VERSION}/tcl.h ; then
+- TCL_INCLUDE=-I/usr/include/tcl${TCL_VERSION}
++else
++ if test -f ${TCL_CONFIG_PREFIX}/../../include/tcl${TCL_VERSION}/tcl.h ; then
++ TCL_INCLUDE=-I${TCL_CONFIG_PREFIX}/../../include/tcl${TCL_VERSION}
+ fi
+ fi
+ AC_CHECK_LIB(lieee,main,have_ieee=1,have_ieee=0)
diff --git a/lang/gcl/files/patch-h_FreeBSD.defs b/lang/gcl/files/patch-h_FreeBSD.defs
new file mode 100644
index 000000000000..0830e8a13ae6
--- /dev/null
+++ b/lang/gcl/files/patch-h_FreeBSD.defs
@@ -0,0 +1,33 @@
+--- ./h/FreeBSD.defs.orig Fri Nov 1 04:09:34 2002
++++ ./h/FreeBSD.defs Sun Sep 14 01:49:46 2003
+@@ -1,26 +1,16 @@
+-# Machine dependent makefile definitions for intel 386,486 running 386bsd
++# Machine dependent makefile definitions for 386bsd
+ # Ported to FreeBSD 2.0 by Jeffrey Hsu (hsu@freebsd.org).
+ # Hacked September-93 by Paul F. Werkowski for 386BSD 0.1 + Patchkit 0.2.4
++# Hacked September-2003 by Juergen Weiss, Mark Murray for FreeBSD-5 CURRENT
+
+-LBINDIR=/usr/local/bin
+-
+-OFLAG = -pipe -O2
+-CFLAGS = -fwritable-strings -fomit-frame-pointer -DVOL=volatile -I$(GCLDIR)/o -I/usr/local/lib/gcl-2.0/h -fsigned-char -I/usr/local/lib
+-LIBS = -lm -L/usr/local/lib
+-ODIR_DEBUG=
+-NULLFILE=../h/twelve_null
++LBINDIR=${prefix}/bin
+
+ # This CC string will be used for compilation of the system,
+ # and also in the compiler::*cc* variable for later compilation of
+ # lisp files.
+-
+-CC = gcc
++CC = gcc @@CFLAGS@@
+
+ LDCC = $(CC) -static
+-
+-# Use the mp.s file on 68k machine
+-MPFILES= $(MPDIR)/mpi-386.o $(MPDIR)/libmport.a
+-GNULIB1=/usr/lib/libgcc.a
+
+ # Enable the fastloading mechanism which does not use ld -A
+ # requires c/rel_.. machine dependent code.
diff --git a/lang/gcl/files/patch-h_FreeBSD.h b/lang/gcl/files/patch-h_FreeBSD.h
new file mode 100644
index 000000000000..f64c9edfa10b
--- /dev/null
+++ b/lang/gcl/files/patch-h_FreeBSD.h
@@ -0,0 +1,90 @@
+--- ./h/FreeBSD.h.orig Fri Nov 1 04:09:34 2002
++++ ./h/FreeBSD.h Sun Sep 14 01:51:55 2003
+@@ -1,5 +1,5 @@
+ /*
+- * FreeBSD.h for gcl 1.1
++ * FreeBSD.h for gcl
+ *
+ * Ported by Jeffrey Hsu (hsu@freebsd.org).
+ * Looked at previous versions by Hsu, Werkowsksi, Tobin, and Mogart.
+@@ -8,6 +8,50 @@
+
+ #include "bsd.h"
+
++#ifndef __ELF__
++#error FreeBSD systems use ELF
++#endif
++
++#undef HAVE_AOUT
++#define HAVE_AOUT <elf.h>
++#define HAVE_ELF
++
++#if defined(__i386__)
++#define __ELF_NATIVE_CLASS 32
++#endif
++#if defined(__alpha__) || defined(__sparc64__) || defined(__ia64__)
++#define __ELF_NATIVE_CLASS 64
++#endif
++#define mjoin(a,b) a ## b
++#define Mjoin(a,b) mjoin(a,b)
++#if !defined(ElfW)
++#define ElfW(a) Mjoin(Elf,Mjoin(__ELF_NATIVE_CLASS,Mjoin(_,a)))
++#endif
++#define ELFW(a) Mjoin(ELF,Mjoin(__ELF_NATIVE_CLASS,Mjoin(_,a)))
++
++/* Seeking to the end of ELF data is a little messy... */
++#include <link.h>
++#define SEEK_TO_END_OFILE(fp)\
++ do { \
++ long offset = 0, endofelf; int j; \
++ ElfW(Ehdr) eheader; ElfW(Shdr) shdr; \
++ fseek(fp, 0, SEEK_SET); \
++ fread(&eheader, sizeof(eheader), 1, fp); \
++ /* in case the headers themselves come AFTER the actual sections */ \
++ endofelf=offset = eheader.e_shoff+ eheader.e_shentsize *eheader.e_shnum;\
++ fseek(fp, eheader.e_shoff, SEEK_SET); \
++ if ( eheader.e_shentsize != sizeof(ElfW(Shdr)) ) \
++ { FEerror("Bad ELF section header size",0); } \
++ for ( j = 0; j < eheader.e_shnum; j++ ) \
++ { fread(&shdr,eheader.e_shentsize,1,fp); \
++ if ( (shdr.sh_offset > offset) && (shdr.sh_type != SHT_NOBITS) ) \
++ { offset = shdr.sh_offset; endofelf = offset+shdr.sh_size; } \
++ } \
++ if ( fseek(fp, endofelf, SEEK_SET) ) \
++ FEerror("Bad ELF file",0); \
++ } while(0)
++
++
+ #undef LD_COMMAND
+ #define LD_COMMAND(command,main,start,input,ldarg,output) \
+ sprintf(command, "ld -dc -N -x -A %s -T %x %s %s -o %s", \
+@@ -39,17 +83,9 @@
+ #endif
+
+ #define DATA_BEGIN (char *) N_DATADDR(header);
+-#define A_TEXT_OFFSET(x) (sizeof (struct exec))
+-#define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr))
+-#define start_of_data() &etext
+-#define start_of_text() ((char *)(sizeof(struct exec) + getpagesize()))
+
+-#define UNIXSAVE "unexec.c"
+-#ifdef UNIXSAVE
+- extern char etext;
+-#endif
+-
+-#define RELOC_FILE "rel_sun3.c" /* for SFASL - enabled in bsd.h */
++/*#define UNEXEC_USE_MAP_PRIVATE*/
++#define UNIXSAVE "unexelf.c"
+
+ #ifdef CLOCKS_PER_SEC
+ #define HZ CLOCKS_PER_SEC
+@@ -67,7 +103,8 @@
+ #define SETUP_SIG_STACK \
+ { \
+ static struct sigaltstack estack; \
+- if ((estack.ss_sp = malloc(SIGSTKSZ)) == NULL) \
++ if (estack.ss_sp == NULL && \
++ (estack.ss_sp = malloc(SIGSTKSZ)) == NULL) \
+ perror("malloc"); \
+ estack.ss_size = SIGSTKSZ; \
+ estack.ss_flags = 0; \
diff --git a/lang/gcl/files/patch-info::gcl-tk.texi b/lang/gcl/files/patch-info::gcl-tk.texi
deleted file mode 100644
index 03b516a1c171..000000000000
--- a/lang/gcl/files/patch-info::gcl-tk.texi
+++ /dev/null
@@ -1,42 +0,0 @@
---- info/gcl-tk.texi.orig Mon Dec 6 17:44:04 1999
-+++ info/gcl-tk.texi Mon Dec 3 18:57:22 2001
-@@ -2,6 +2,10 @@
- @c -*-texinfo-*-
- @c @smallbook
- @setfilename gcl-tk.info
-+@dircategory GNU Common Lisp
-+@direntry
-+* GCL TK: (gcl-tk). Tk bindings for GCL.
-+@end direntry
-
- @c to update the menus do:
- @c (texinfo-multiple-files-update "gcl-tk.texi" t t)
---- info/control.texi.orig Mon Dec 3 19:12:25 2001
-+++ info/control.texi Mon Dec 3 19:14:06 2001
-@@ -78,12 +78,10 @@
- The command will be executed at global level (outside the context
- of any Tcl procedure).
- If an error occurs while executing the delayed command then the
--@b{tkerror} mechanism is used to report the error.
-+@b{tkerror} mechanism (@pxref{tkerror}) is used to report the error.
-
- The @b{after} command always returns an empty string.
-
--@xref{tkerror}
--
- @unnumberedsubsec Keywords
- delay, sleep, time
- @node bind, destroy, after, Control
-@@ -472,11 +470,9 @@
-
-
- If an error occurs in executing the command for a binding then the
--@b{tkerror} mechanism is used to report the error.
-+@b{tkerror} mechanism (@pxref{tkerror}) is used to report the error.
- The command will be executed at global level (outside the context
- of any Tcl procedure).
--
--@xref{tkerror}
-
- @unnumberedsubsec Keywords
- form, manual
diff --git a/lang/gcl/files/patch-info_gcl-si.texi b/lang/gcl/files/patch-info_gcl-si.texi
new file mode 100644
index 000000000000..bc28e65a4bb5
--- /dev/null
+++ b/lang/gcl/files/patch-info_gcl-si.texi
@@ -0,0 +1,13 @@
+--- info/gcl-si.texi.orig Sun Sep 14 12:13:24 2003
++++ info/gcl-si.texi Sun Sep 14 12:14:28 2003
+@@ -19,6 +19,10 @@
+
+ @setchapternewpage odd
+ @ifinfo
++@dircategory GNU Common Lisp
++@direntry
++* GCL Systems Internals: (gcl-si). GCL SYSTEM INTERNALS Manual
++@end direntry
+ This is a Texinfo GCL SYSTEM INTERNALS Manual
+
+ Copyright 1994 William F. Schelter
diff --git a/lang/gcl/files/patch-info_makefile b/lang/gcl/files/patch-info_makefile
new file mode 100644
index 000000000000..7adb8892f8a0
--- /dev/null
+++ b/lang/gcl/files/patch-info_makefile
@@ -0,0 +1,71 @@
+--- info/makefile.orig Fri Jan 24 18:55:23 2003
++++ info/makefile Sun Sep 14 14:30:50 2003
+@@ -1,19 +1,18 @@
+ .SUFFIXES:
+ .SUFFIXES: .info .dvi .texi
+
+-INFO_DIR=/usr/local/lib/info
++INFO_DIR=${prefix}/info/
+
+ GCL_DVI=gcl-tk.dvi gcl-si.dvi gcl.dvi
+ GCL_HTML=gcl-si_toc.html gcl-tk_toc.html gcl_toc.html
+
+ -include ../makedefs
+
+-all: gcl-tk.info gcl-si.info gcl.info $(GCL_DVI) $(GCL_HTML)
++all: gcl-tk.info gcl-si.info gcl.info
+
+ .texi.info:
+ rm -f $*.*gz
+- -$(MAKEINFO) $*.texi
+- - gzip $*.info-*
++ -$(MAKEINFO) --no-split $*.texi
+
+ GCL_SI= number.texi sequence.texi character.texi list.texi io.texi \
+ form.texi compile.texi symbol.texi system.texi structure.texi \
+@@ -31,19 +30,19 @@
+ TEXINPUTS=.:$$TEXINPUTS tex --interaction nonstopmode gcl-si.texi || true
+
+ gcl-si.info:
+- -$(MAKEINFO) gcl-si.texi
++ -$(MAKEINFO) --no-split gcl-si.texi
+
+ gcl-tk.dvi: ${GCL_TK} gcl-tk.texi
+ TEXINPUTS=.:$$TEXINPUTS tex --interaction nonstopmode gcl-tk.texi || true
+
+ gcl-tk.info: ${GCL_TK} gcl-tk.texi
+- -$(MAKEINFO) gcl-tk.texi
++ -$(MAKEINFO) --no-split gcl-tk.texi
+
+ gcl.dvi: ${GCL_MAN} gcl.texi
+ TEXINPUTS=.:$$TEXINPUTS tex --interaction nonstopmode gcl.texi || true
+
+ gcl.info: ${GCL_MAN} gcl.texi
+- -$(MAKEINFO) gcl.texi
++ -$(MAKEINFO) --no-split gcl.texi
+
+ gcl-si_toc.html:
+ texi2html -split_chapter gcl-si.texi
+@@ -58,22 +57,7 @@
+ cp *.html /d/www/gcl
+
+ install:
+- mkdir -p $(DESTDIR)${INFO_DIR}
+- [ -f $(DESTDIR)$(INFO_DIR)dir ] || touch $(DESTDIR)$(INFO_DIR)dir
+- ! grep -q gcl-si $(DESTDIR)${INFO_DIR}dir || \
+- echo "* GCL Doc: (gcl-si.info). GNU Common Lisp specific Documentation." >> $(DESTDIR)${INFO_DIR}dir
+- ! grep -q gcl-tk $(DESTDIR)${INFO_DIR}dir || \
+- echo "* GCL TK Doc: (gcl-tk.info). TK window GCL interface." >> $(DESTDIR)${INFO_DIR}dir
+- ! grep -q gcl.info $(DESTDIR)${INFO_DIR}dir || \
+- echo "* GCL Ansi Doc: (gcl.info). Ansi Common Lisp Specification." >> $(DESTDIR)${INFO_DIR}dir
+ cp *.info* $(DESTDIR)${INFO_DIR}
+- mkdir -p $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl.html
+- mkdir -p $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl-si.html
+- mkdir -p $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl-tk.html
+- cp gcl_*html $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl.html
+- cp gcl-si_*html $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl-si.html
+- cp gcl-tk_*html $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl-tk.html
+- cp *dvi $(DESTDIR)$(INFO_DIR)../doc/gcl-doc
+
+ FILE=gcl-si.texi
+ srcs:
diff --git a/lang/gcl/files/patch-makedefc.in b/lang/gcl/files/patch-makedefc.in
new file mode 100644
index 000000000000..f62f1d8ce58d
--- /dev/null
+++ b/lang/gcl/files/patch-makedefc.in
@@ -0,0 +1,24 @@
+--- makedefc.in.orig Sun Sep 14 12:02:18 2003
++++ makedefc.in Sun Sep 14 12:10:34 2003
+@@ -16,13 +16,18 @@
+ prefix=@prefix@
+
+ # where to place the info files
+-INFO_DIR=@INFO_DIR@
++INFO_DIR=@prefix@/info
++
++# configure has a clever process for figuring out where Emacs
++# really expects to find site-lisp and default.el. We use
++# these values instead to ensure that building with --prefix=PREFIX
++# will not make changes outside the specified tree. -twp
+
+ # where to put emacs lisp files.
+-EMACS_SITE_LISP=@EMACS_SITE_LISP@
++EMACS_SITE_LISP=@prefix@/share/emacs/site-lisp
+
+ # the default.el file
+-EMACS_DEFAULT_EL=@EMACS_DEFAULT_EL@
++EMACS_DEFAULT_EL=@prefix@/share/emacs/site-lisp/default.el
+
+ # numerous TCL/TK variables culled from the tkConfig.sh and tclConfig.sh
+ # if these are found.
diff --git a/lang/gcl/files/patch-makefile b/lang/gcl/files/patch-makefile
new file mode 100644
index 000000000000..42cf0d489ebe
--- /dev/null
+++ b/lang/gcl/files/patch-makefile
@@ -0,0 +1,15 @@
+--- makefile.orig Sun Sep 14 13:48:53 2003
++++ makefile Sun Sep 14 13:50:15 2003
+@@ -162,10 +162,11 @@
+ mkdir -p $(DESTDIR)$(prefix)/lib
+ mkdir -p $(DESTDIR)$(prefix)/bin
+ mkdir -p $(DESTDIR)$(INSTALL_LIB_DIR)
++ mkdir -p $(DESTDIR)$(prefix)/info
+ MINSTALL_LIB_DIR=`echo $(INSTALL_LIB_DIR) | sed -e 'sX^\([a-z]\):X/\1Xg'` ; \
+ $(MAKE) install-command "INSTALL_LIB_DIR=$(INSTALL_LIB_DIR)" "prefix=$(prefix)" "DESTDIR=$(DESTDIR)" "BINDIR=$$MINSTALL_LIB_DIR/unixport"
+ rm -f $(DESTDIR)$(prefix)/bin/gcl.exe
+- tar cf - $(PORTDIR)/$(FLISP)$(EXE) info/*.info* $(LISP_LIB) \
++ tar cf - $(PORTDIR)/$(FLISP)$(EXE) $(LISP_LIB) \
+ $(TCL_EXES) | (cd $(DESTDIR)$(INSTALL_LIB_DIR) ;tar xf -)
+ if [ -e "unixport/rsym$(EXE)" ] ; then cp unixport/rsym$(EXE) $(DESTDIR)$(INSTALL_LIB_DIR)/unixport/ ; fi
+ # ln $(SYMB) $(INSTALL_LIB_DIR)/$(PORTDIR)/$(FLISP)$(EXE) \
diff --git a/lang/gcl/files/patch-o_readline.d b/lang/gcl/files/patch-o_readline.d
new file mode 100644
index 000000000000..e6c3ccbd4a23
--- /dev/null
+++ b/lang/gcl/files/patch-o_readline.d
@@ -0,0 +1,11 @@
+--- ./o/readline.d.orig Sat Jul 20 08:10:56 2002
++++ ./o/readline.d Sat Sep 13 23:52:24 2003
+@@ -94,7 +94,7 @@
+ the word to complete. We can use the entire contents of rl_line_buffer
+ in case we want to do some simple parsing. Return the array of matches,
+ or NULL if there aren't any. */
+-extern char **completion_matches(char *,char *(*)(char *,int));
++/*extern char **completion_matches(char *,char *(*)(char *,int));*/
+ static char **rl_completion(char *text, int start, int end) {
+ return completion_matches(text, rl_completion_words);
+ }
diff --git a/lang/gcl/files/patch-o_sfaslelf.c b/lang/gcl/files/patch-o_sfaslelf.c
new file mode 100644
index 000000000000..68c5844333ac
--- /dev/null
+++ b/lang/gcl/files/patch-o_sfaslelf.c
@@ -0,0 +1,136 @@
+--- ./o/sfaslelf.c.orig Wed Jul 24 20:05:53 2002
++++ ./o/sfaslelf.c Sat Sep 13 23:52:25 2003
+@@ -23,7 +23,7 @@
+ */
+
+
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__FreeBSD__)
+ #define ELF_TARGET_SPARC 1
+ #endif
+
+@@ -83,7 +83,7 @@
+ if (!(symin=fopen(symfile,"r")))
+ {perror(symfile);exit(1);};
+ if(!fread((char *)&tab,sizeof(tab),1,symin))
+- FEerror("No header",0,0);
++ FEerror("No header",0);
+ symbols=malloc(tab.tot_leng);
+ c_table.alloc_length=( (PTABLE_EXTRA+ tab.n_symbols));
+ (c_table.ptable) = (TABL *) malloc(sizeof(struct node) * c_table.alloc_length);
+@@ -196,7 +196,7 @@
+ file = fileno(fp);
+
+ if (fstat (file, &stat_buf) == -1)
+- FEerror ("Can't fstat(~a): errno %d\n", 1,faslfile);
++ FEerror ("Can't fstat(~a): errno %d\n", 2,faslfile,0);
+
+
+ if (use_mmap) {
+@@ -303,7 +303,7 @@
+
+ relocate_symbols(symbol_table,nsyms,file_h->e_shnum,&init_address);
+ if (init_address < 0)
+- { FEerror(0,"Init address not found ");
++ { FEerror("Init address not found ",0);
+ }
+
+ {
+@@ -317,7 +317,7 @@
+ {
+ int index_to_relocate = shp->sh_info;
+ if (symtab_index != shp->sh_link)
+- FEerror("unexpected symbol table used");
++ FEerror("unexpected symbol table used",0);
+ the_start = start_address + section[index_to_relocate].start;
+ }
+ /* else if (shp->sh_type == SHT_REL */
+@@ -332,7 +332,7 @@
+ else if ( (shp->sh_type == SHT_REL) || (shp->sh_type == SHT_RELA) )
+ { if (get_section_number(".rel.stab") == j)
+ continue;
+- FEerror("unknown rel type");
++ FEerror("unknown rel type",0);
+ }
+ else
+ continue;
+@@ -520,7 +520,7 @@
+ else if (sh_type == SHT_REL)
+ a = 0;
+ else {
+- FEerror("relocate() error: unknown sh_type in ELF object");
++ FEerror("relocate() error: unknown sh_type in ELF object",0);
+ a=0;
+ }
+ b = (unsigned int) the_start;
+@@ -540,9 +540,9 @@
+ /* do_bfd_reloc(ELF32_R_TYPE(reloc_info->r_info),s+a,(unsigned int *)where); */
+ /* #else */
+ switch(ELF32_R_TYPE(reloc_info->r_info)){
+-#if (defined(__svr4__) || defined(__linux__)) && defined(__i386__)
++#if (defined(__svr4__) || defined(__linux__) || defined(__FreeBSD__)) && defined(__i386__)
+ case R_386_NONE:
+- FEerror("Unsupported ELF type R_386_NONE");
++ FEerror("Unsupported ELF type R_386_NONE",0);
+ break;
+
+ case R_386_32:
+@@ -556,40 +556,40 @@
+ break;
+
+ case R_386_GOT32:
+- FEerror("Unsupported ELF type R_386_GOY32");
++ FEerror("Unsupported ELF type R_386_GOY32",0);
+ break;
+
+ case R_386_PLT32:
+- FEerror("Unsupported ELF type R_386_PLT32");
++ FEerror("Unsupported ELF type R_386_PLT32",0);
+ break;
+
+ case R_386_COPY:
+- FEerror("Unsupported ELF type R_386_COPY");
++ FEerror("Unsupported ELF type R_386_COPY",0);
+ break;
+
+ case R_386_GLOB_DAT:
+- FEerror("Unsupported ELF type R_386_GLOB_DAT");
++ FEerror("Unsupported ELF type R_386_GLOB_DAT",0);
+ break;
+
+ case R_386_JMP_SLOT:
+- FEerror("Unsupported ELF type R_386_JMP_SLOT");
++ FEerror("Unsupported ELF type R_386_JMP_SLOT",0);
+ break;
+
+ case R_386_RELATIVE:
+- FEerror("Unsupported ELF type R_386_RELATIVE");
++ FEerror("Unsupported ELF type R_386_RELATIVE",0);
+ break;
+
+ case R_386_GOTOFF:
+- FEerror("Unsupported ELF type R_386_GOTOFF");
++ FEerror("Unsupported ELF type R_386_GOTOFF",0);
+ break;
+
+ case R_386_GOTPC:
+- FEerror("Unsupported ELF type R_386_GOTPC");
++ FEerror("Unsupported ELF type R_386_GOTPC",0);
+ break;
+
+ #ifdef R_386_NUM
+ case R_386_NUM:
+- FEerror("Unsupported ELF type R_386_NUM");
++ FEerror("Unsupported ELF type R_386_NUM",0);
+ break;
+ #endif
+
+@@ -657,7 +657,7 @@
+ fflush(stdout);
+ }
+ }
+- else{FEerror("symbol table not loaded",0,0);}
++ else{FEerror("symbol table not loaded",0);}
+ }
+
+ static void
diff --git a/lang/gcl/files/patch-o_unixfasl.c b/lang/gcl/files/patch-o_unixfasl.c
new file mode 100644
index 000000000000..7f731f935872
--- /dev/null
+++ b/lang/gcl/files/patch-o_unixfasl.c
@@ -0,0 +1,11 @@
+--- ./o/unixfasl.c.orig Sat Feb 15 00:38:28 2003
++++ ./o/unixfasl.c Sat Sep 13 23:52:25 2003
+@@ -282,7 +282,7 @@
+ static int
+ faslink(object faslfile, object ldargstring)
+ {
+-#if defined(__linux__) && defined(__ELF__)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__ELF__)
+ FEerror("faslink() not supported for ELF yet",0);
+ return 0;
+ #else
diff --git a/lang/gcl/files/patch-unixport::makefile b/lang/gcl/files/patch-unixport::makefile
deleted file mode 100644
index 7d8162543588..000000000000
--- a/lang/gcl/files/patch-unixport::makefile
+++ /dev/null
@@ -1,11 +0,0 @@
---- unixport/makefile.orig Sun May 6 02:18:49 2001
-+++ unixport/makefile Mon Dec 3 19:36:08 2001
-@@ -16,7 +16,7 @@
- MPFILES= $(MPDIR)/mpi.o $(MPDIR)/mp2.o $(MPDIR)/libmport.a
- MPFILES= $(MPDIR)/mpi.o $(MPDIR)/mp2.o $(MPDIR)/libmport.a
- INIT_SYSTEM_LSP=init_$(SYSTEM).lsp
--SPECIAL_RSYM = rsym.c
-+SPECIAL_RSYM = rsym_elf.c
-
- # begin makedefs
-
diff --git a/lang/gcl/files/patch-unixport::rsym_elf.c b/lang/gcl/files/patch-unixport::rsym_elf.c
deleted file mode 100644
index c809d6478b32..000000000000
--- a/lang/gcl/files/patch-unixport::rsym_elf.c
+++ /dev/null
@@ -1,13 +0,0 @@
---- unixport/rsym_elf.c.orig Sat May 13 19:40:14 2000
-+++ unixport/rsym_elf.c Mon Dec 3 22:49:54 2001
-@@ -11,8 +11,9 @@
- */
-
- #include "string.h"
--#ifdef __linux__
-+#if defined(__linux__) || defined(__ELF__)
- /* Needed these to get it working with Linux. Bill Metzenthen 23 May 95 */
-+/* Also with FreeBSD 4.3. Tim Pierce, 1 December 2001 */
- #define IN_RSYM 1
- #include <stdio.h>
-
diff --git a/lang/gcl/files/patch-unixport_rsym_elf.c b/lang/gcl/files/patch-unixport_rsym_elf.c
new file mode 100644
index 000000000000..3a715eaafde5
--- /dev/null
+++ b/lang/gcl/files/patch-unixport_rsym_elf.c
@@ -0,0 +1,20 @@
+--- ./unixport/rsym_elf.c.orig Thu Jul 25 22:49:47 2002
++++ ./unixport/rsym_elf.c Sat Sep 13 23:52:25 2003
+@@ -34,9 +34,6 @@
+ int text_index,data_index,bss_index,sbss_index;
+ #undef SYM_NAME
+ #undef EXT_and_TEXT_BSS_DAT
+-#define mjoin(a,b) a ## b
+-#define Mjoin(a,b) mjoin(a,b)
+-#define ELFW(a) Mjoin(ELF,Mjoin(__ELF_NATIVE_CLASS,Mjoin(_,a)))
+
+ int nsyms;
+ char *my_string_table;
+@@ -136,7 +133,6 @@
+ unsigned int i;
+ FILE *fp;
+ int symsize;
+- extern char *malloc();
+
+
+ fp = fopen(filename, RDONLY);
diff --git a/lang/gcl/pkg-descr b/lang/gcl/pkg-descr
index 09ba9dfc2234..82b7e2199c26 100644
--- a/lang/gcl/pkg-descr
+++ b/lang/gcl/pkg-descr
@@ -7,8 +7,6 @@ license.
WWW: http://www.gnu.org/software/gcl/
-NOTE: GCL 2.4.0 supports Tk bindings with Tcl 8.0 and Tk 8.0. This
-port of GCL does not insist on Tcl/Tk, but will attempt to build with
-Tcl/Tk support if the libraries are found at build time.
+NOTE: GCL supports Tk bindings with Tcl 8 and Tk 8.
Tim Pierce <twp@unchi.org>
diff --git a/lang/gcl/pkg-plist b/lang/gcl/pkg-plist
index a1b1d855cb7f..deebce9c622c 100644
--- a/lang/gcl/pkg-plist
+++ b/lang/gcl/pkg-plist
@@ -1,32 +1,12 @@
bin/gcl
-bin/gcl.exe
-@unexec install-info --delete %D/info/gcl-si.info %D/info/dir
-@unexec install-info --delete %D/info/gcl-tk.info %D/info/dir
-info/gcl-tk.info
-info/gcl-tk.info-1
-info/gcl-tk.info-2
-info/gcl-tk.info-3
-info/gcl-tk.info-4
-info/gcl-tk.info-5
-info/gcl-tk.info-6
-info/gcl-tk.info-7
-info/gcl-tk.info-8
-info/gcl-si.info
-info/gcl-si.info-1
-info/gcl-si.info-2
-info/gcl-si.info-3
-info/gcl-si.info-4
-info/gcl-si.info-5
-@exec install-info %D/info/gcl-si.info %D/info/dir
-@exec install-info %D/info/gcl-tk.info %D/info/dir
-lib/gcl-%%GCL_VER%%/unixport/saved_gcl
+lib/gcl-%%GCL_VER%%/cmpnew/cmpmain.lsp
+lib/gcl-%%GCL_VER%%/cmpnew/cmpopt.lsp
lib/gcl-%%GCL_VER%%/cmpnew/collectfn.o
-lib/gcl-%%GCL_VER%%/lsp/gprof.lsp
-lib/gcl-%%GCL_VER%%/lsp/info.o
-lib/gcl-%%GCL_VER%%/lsp/profile.lsp
+lib/gcl-%%GCL_VER%%/cmpnew/lfun_list.lsp
lib/gcl-%%GCL_VER%%/gcl-tk/decode.tcl
-lib/gcl-%%GCL_VER%%/gcl-tk/demos/index.lsp
lib/gcl-%%GCL_VER%%/gcl-tk/demos/gc-monitor.lisp
+lib/gcl-%%GCL_VER%%/gcl-tk/demos/gc-monitor.o
+lib/gcl-%%GCL_VER%%/gcl-tk/demos/index.lsp
lib/gcl-%%GCL_VER%%/gcl-tk/demos/mkBasic.lisp
lib/gcl-%%GCL_VER%%/gcl-tk/demos/mkCanvText.lisp
lib/gcl-%%GCL_VER%%/gcl-tk/demos/mkEntry.lisp
@@ -48,18 +28,30 @@ lib/gcl-%%GCL_VER%%/gcl-tk/demos/nqthm-stack.lisp
lib/gcl-%%GCL_VER%%/gcl-tk/demos/showVars.lisp
lib/gcl-%%GCL_VER%%/gcl-tk/demos/widget.lisp
lib/gcl-%%GCL_VER%%/gcl-tk/gcl.tcl
+lib/gcl-%%GCL_VER%%/gcl-tk/gcltkaux
lib/gcl-%%GCL_VER%%/gcl-tk/gcltksrv
-share/emacs/site-lisp/add-default.el
-share/emacs/site-lisp/smart-complete.el
-share/emacs/site-lisp/man1-to-texi.el
-share/emacs/site-lisp/gcl.el
-share/emacs/site-lisp/doc-to-texi.el
-share/emacs/site-lisp/dbl.el
-share/emacs/site-lisp/ansi-doc.el
-share/emacs/site-lisp/sshell.el
-@dirrm lib/gcl-%%GCL_VER%%/unixport
-@dirrm lib/gcl-%%GCL_VER%%/lsp
+lib/gcl-%%GCL_VER%%/gcl-tk/tinfo.o
+lib/gcl-%%GCL_VER%%/gcl-tk/tk-package.lsp
+lib/gcl-%%GCL_VER%%/gcl-tk/tkl.o
+lib/gcl-%%GCL_VER%%/h/cmpinclude.h
+lib/gcl-%%GCL_VER%%/lsp/auto_new.lsp
+lib/gcl-%%GCL_VER%%/lsp/autoload.lsp
+lib/gcl-%%GCL_VER%%/lsp/export.lsp
+lib/gcl-%%GCL_VER%%/lsp/gprof.lsp
+lib/gcl-%%GCL_VER%%/lsp/info.o
+lib/gcl-%%GCL_VER%%/lsp/profile.lsp
+lib/gcl-%%GCL_VER%%/lsp/readline.o
+lib/gcl-%%GCL_VER%%/unixport/init_ansi_gcl.lsp
+lib/gcl-%%GCL_VER%%/unixport/libansi_gcl.a
+lib/gcl-%%GCL_VER%%/unixport/libgclp.a
+lib/gcl-%%GCL_VER%%/unixport/rsym
+lib/gcl-%%GCL_VER%%/unixport/saved_ansi_gcl
+@dirrm lib/gcl-%%GCL_VER%%/cmpnew
@dirrm lib/gcl-%%GCL_VER%%/gcl-tk/demos
@dirrm lib/gcl-%%GCL_VER%%/gcl-tk
-@dirrm lib/gcl-%%GCL_VER%%/cmpnew
+@dirrm lib/gcl-%%GCL_VER%%/h
+@dirrm lib/gcl-%%GCL_VER%%/lsp
+@dirrm lib/gcl-%%GCL_VER%%/unixport
@dirrm lib/gcl-%%GCL_VER%%
+share/nls/POSIX
+share/nls/en_US.US-ASCII