summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/clisp/Makefile137
-rw-r--r--lang/clisp/files/patch-modules__berkeley-db__configure10
-rw-r--r--lang/clisp/files/patch-modules__pari__cpari.c19
-rw-r--r--lang/clisp/files/patch-modules__postgresql__config.h.in20
-rw-r--r--lang/clisp/pkg-plist114
5 files changed, 248 insertions, 52 deletions
diff --git a/lang/clisp/Makefile b/lang/clisp/Makefile
index ea5865f828b9..12f04604ab42 100644
--- a/lang/clisp/Makefile
+++ b/lang/clisp/Makefile
@@ -12,48 +12,139 @@ CATEGORIES= lang lisp
MASTER_SITES= ${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR=${PORTNAME}/release/${PORTVERSION}
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= alepulver@FreeBSD.org
COMMENT= A Common Lisp implementation
BUILD_DEPENDS= ${LOCALBASE}/lib/libsigsegv.a:${PORTSDIR}/devel/libsigsegv \
dvipdf:${PORTSDIR}/${GHOSTSCRIPT_PORT}
+LIB_DEPENDS= readline.5:${PORTSDIR}/devel/readline
USE_BZIP2= yes
USE_ICONV= yes
-GNU_CONFIGURE= yes
USE_GETTEXT= yes
+GNU_CONFIGURE= yes
+BUILD_WRKSRC= ${WRKSRC}/${CONFIGURE_TARGET}
+INSTALL_WRKSRC= ${BUILD_WRKSRC}
-MAN1= clisp.1
+CPPFLAGS= -I${LOCALBASE}/include
+LDFLAGS= -L${LOCALBASE}/lib
+MAKE_ENV= ${CONFIGURE_ENV}
+CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
+MAKEMAKE_ARGS= --prefix=${PREFIX} --mandir=${PREFIX}/man \
+ --srcdir=${WRKSRC}/src --with-dynamic-ffi
-# Build subdirectory
-BUILD_DIRNAME=${CONFIGURE_TARGET}
+OPTIONS= BDB "Build Berkeley Database module" off \
+ CLX_MIT "Build X11 module (original MIT version)" off \
+ CLX_NEW "Build X11 module (new faster version)" off \
+ FASTCGI "Build FastCGI module" off \
+ ORACLE "Build Oracle database module" off \
+ PARI "Build PARI (math and calculator lib) module" off \
+ PCRE "Build PCRE (Perl Compatible Regexp) module" off \
+ PGSQL "Build PostgreSQL database module" off \
+ RAWSOCK "Build Raw Socket Access module" on \
+ WILDCARD "Build wildcard matching module" on \
+ ZLIB "Build ZLib interface module " off
-# Check ./configure --list-modules in the distribution to see all modules
-MAKEMAKE_ARGS=--prefix=${PREFIX} --mandir=${PREFIX}/man --with-dynamic-ffi \
- --with-module=rawsock --with-module=wildcard --srcdir=${WRKSRC}/src
+MAN1= clisp.1
.include <bsd.port.pre.mk>
-.if ${ARCH} == amd64 || ${ARCH} == ia64
-CONFIGURE_ARGS+= --disable-mmap
-BROKEN= Does not compile on ${ARCH}
+MODULES= BDB CLX_MIT CLX_NEW FASTCGI ORACLE PARI PCRE PGSQL RAWSOCK \
+ WILDCARD ZLIB
+
+.if ${ARCH} == "amd64"
+CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
+.endif
+
+.if ${ARCH} == "amd64" || ${ARCH} == "ia64"
+CONFIGURE_ARGS+=--disable-mmap
+MAKEMAKE_ARGS+= --disable-mmap
+.endif
+
+.for mod in ${MODULES}
+. if defined(WITH_${mod})
+PLIST_SUB+= ${mod}=""
+. else
+PLIST_SUB+= ${mod}="@comment "
+. endif
+.endfor
+
+.if defined(WITH_BDB)
+USE_BDB= 42+
+MAKEMAKE_ARGS+= --with-module=berkeley-db
+CPPFLAGS+= -I${LOCALBASE}/include/db${BDB_VER}
+LDFLAGS+= -L${LOCALBASE}/lib/db${BDB_VER}
+.endif
+
+.if defined(WITH_CLX_MIT) && defined(WITH_CLX_NEW)
+IGNORE= selected different implementations of the same X11 module
+.endif
+.if defined(WITH_CLX_MIT) || defined(WITH_CLX_NEW)
+LIB_DEPENDS+= X11.6:${X_LIBRARIES_PORT}
+.endif
+.if defined(WITH_CLX_MIT)
+MAKEMAKE_ARGS+= --with-module=clx/mit-clx
+.endif
+.if defined(WITH_CLX_NEW)
+MAKEMAKE_ARGS+= --with-module=clx/new-clx
+.endif
+
+.if defined(WITH_FASTCGI)
+LIB_DEPENDS+= fcgi.0:${PORTSDIR}/www/fcgi
+MAKEMAKE_ARGS+= --with-module=fastcgi
.endif
-.if ${OSVERSION} < 500000
-BROKEN= Coredump during build on 4.x
+.if defined(WITH_ORACLE)
+BUILD_DEPENDS+= ${ORACLE_HOME}:${PORTSDIR}/databases/oracle8-client
+MAKEMAKE_ARGS+= --with-module=oracle
+CPPFLAGS+= -I${ORACLE_HOME}/rdbms/demo -I${ORACLE_HOME}/rdbms/public
+LDFLAGS+= -L${ORACLE_HOME}/lib
+ORACLE_HOME= ${LOCALBASE}/oracle8-client
.endif
-# The source doesn't include a top-level Makefile, so we'll fake one.
-post-extract:
- @cd ${WRKSRC} && \
- ${PRINTF} "all install:\n\t@cd ${WRKSRC}/${BUILD_DIRNAME} && \$${MAKE} \$${MAKEFLAGS} \$$@\n" > ${WRKSRC}/Makefile
+.if defined(WITH_PARI)
+LIB_DEPENDS+= pari.2:${PORTSDIR}/math/pari
+MAKEMAKE_ARGS+= --with-module=pari
+BROKEN= Lisp stack overflow during build
+.endif
+
+.if defined(WITH_PCRE)
+LIB_DEPENDS+= pcre.0:${PORTSDIR}/devel/pcre
+MAKEMAKE_ARGS+=--with-module=pcre
+.endif
+
+.if defined(WITH_PGSQL)
+USE_PGSQL= yes
+MAKEMAKE_ARGS+= --with-module=postgresql
+.endif
+
+.if defined(WITH_RAWSOCK)
+MAKEMAKE_ARGS+= --with-module=rawsock
+.endif
+
+.if defined(WITH_WILDCARD)
+MAKEMAKE_ARGS+= --with-module=wildcard
+.endif
+
+.if defined(WITH_ZLIB)
+MAKEMAKE_ARGS+= --with-module=zlib
+.endif
+
+post-patch:
+.if ${ARCH} == "amd64"
+ @${REINPLACE_CMD} -Ee \
+ "s|^(subdir_configure_args=')|\1--build=${CONFIGURE_TARGET}|; \
+ s|^(module_configure_flags=')|\1--build=${CONFIGURE_TARGET}|" \
+ ${WRKSRC}/configure ${WRKSRC}/src/makemake.in
+.endif
+.if defined(WITH_ORACLE)
+ @${REINPLACE_CMD} -e 's|-ldl||; s|-lpthread|-lcompat ${PTHREAD_LIBS}|' \
+ ${WRKSRC}/modules/oracle/link.sh
+.endif
-# The 'configure' script stops short of doing this for us.
post-configure:
- cd ${WRKSRC}/${BUILD_DIRNAME} && \
- ./makemake ${MAKEMAKE_ARGS} > Makefile && \
- ${MAKE} config.lisp
- ${REINPLACE_CMD} -e 's#^CFLAGS =#CFLAGS = -I${LOCALBASE}/include#' \
- ${WRKSRC}/${BUILD_DIRNAME}/Makefile
+ cd ${BUILD_WRKSRC} && \
+ ${SETENV} ${CONFIGURE_ENV} ./makemake ${MAKEMAKE_ARGS} > Makefile && \
+ ${MAKE} config.lisp
.include <bsd.port.post.mk>
diff --git a/lang/clisp/files/patch-modules__berkeley-db__configure b/lang/clisp/files/patch-modules__berkeley-db__configure
new file mode 100644
index 000000000000..7b76804d7029
--- /dev/null
+++ b/lang/clisp/files/patch-modules__berkeley-db__configure
@@ -0,0 +1,10 @@
+--- ./modules/berkeley-db/configure.orig Sun Jan 22 23:10:23 2006
++++ ./modules/berkeley-db/configure Mon Jun 26 17:32:36 2006
+@@ -3937,6 +3937,7 @@
+
+ fi
+
++ac_cv_search_db_env_create="yes"
+ if test "$ac_cv_search_db_env_create" = "no"; then
+ { { echo "$as_me:$LINENO: error: cannot find Berkeley-DB library" >&5
+ echo "$as_me: error: cannot find Berkeley-DB library" >&2;}
diff --git a/lang/clisp/files/patch-modules__pari__cpari.c b/lang/clisp/files/patch-modules__pari__cpari.c
new file mode 100644
index 000000000000..836a5a4217e1
--- /dev/null
+++ b/lang/clisp/files/patch-modules__pari__cpari.c
@@ -0,0 +1,19 @@
+--- ./modules/pari/cpari.c.orig Fri Aug 26 14:57:48 2005
++++ ./modules/pari/cpari.c Mon Jun 26 18:07:48 2006
+@@ -62,9 +62,6 @@
+ char *p;
+ GEN p1;
+
+- extern ulong init_opts;
+- init_opts = 0;
+-
+ pari_init(parisize,maxprime);
+ /*init_graph();*/
+
+@@ -75,6 +72,5 @@
+ void fini_for_clisp (int leaving)
+ {
+ /*free_graph();*/
+- freeall();
+ killallfiles(leaving);
+ }
diff --git a/lang/clisp/files/patch-modules__postgresql__config.h.in b/lang/clisp/files/patch-modules__postgresql__config.h.in
new file mode 100644
index 000000000000..4f60033eba95
--- /dev/null
+++ b/lang/clisp/files/patch-modules__postgresql__config.h.in
@@ -0,0 +1,20 @@
+--- ./modules/postgresql/config.h.in.orig Thu Jan 12 14:56:07 2006
++++ ./modules/postgresql/config.h.in Mon Jun 26 17:59:45 2006
+@@ -174,17 +174,11 @@
+ /* Define to 1 if you have the `PQgetResult' function. */
+ #undef HAVE_PQGETRESULT
+
+-/* Define to 1 if you have the `PQgetssl' function. */
+-#undef HAVE_PQGETSSL
+-
+ /* Define to 1 if you have the `PQgetvalue' function. */
+ #undef HAVE_PQGETVALUE
+
+ /* Define to 1 if you have the `PQhost' function. */
+ #undef HAVE_PQHOST
+-
+-/* Define to 1 if you have the `PQinitSSL' function. */
+-#undef HAVE_PQINITSSL
+
+ /* Define to 1 if you have the `PQisBusy' function. */
+ #undef HAVE_PQISBUSY
diff --git a/lang/clisp/pkg-plist b/lang/clisp/pkg-plist
index ae49c780120a..859ddc874b00 100644
--- a/lang/clisp/pkg-plist
+++ b/lang/clisp/pkg-plist
@@ -18,8 +18,41 @@ lib/clisp/base/regexp.dvi
lib/clisp/clisp-link
lib/clisp/data/Symbol-Table.text
lib/clisp/data/UnicodeDataFull.txt
+%%CLX_MIT%%lib/clisp/full/attributes.fas
+%%CLX_MIT%%lib/clisp/full/attributes.lisp
+%%BDB%%lib/clisp/full/bdb.o
+%%CLX_MIT%%lib/clisp/full/buffer.fas
+%%CLX_MIT%%lib/clisp/full/buffer.lisp
+%%CLX_MIT%%lib/clisp/full/bufmac.fas
+%%CLX_MIT%%lib/clisp/full/bufmac.lisp
lib/clisp/full/calls.o
+%%CLX_MIT%%lib/clisp/full/clx.fas
+%%CLX_MIT%%lib/clisp/full/clx.lisp
+%%CLX_NEW%%lib/clisp/full/clx.o
+%%PCRE%%lib/clisp/full/cpcre.o
+%%CLX_MIT%%lib/clisp/full/depdefs.fas
+%%CLX_MIT%%lib/clisp/full/depdefs.lisp
+%%CLX_MIT%%lib/clisp/full/dependent.fas
+%%CLX_MIT%%lib/clisp/full/dependent.lisp
+%%CLX_MIT%%lib/clisp/full/describe.fas
+%%CLX_MIT%%lib/clisp/full/describe.lisp
+%%CLX_MIT%%lib/clisp/full/display.fas
+%%CLX_MIT%%lib/clisp/full/display.lisp
+%%FASTCGI%%lib/clisp/full/fastcgi.o
+%%FASTCGI%%lib/clisp/full/fastcgi_wrappers.o
+%%CLX_MIT%%lib/clisp/full/fonts.fas
+%%CLX_MIT%%lib/clisp/full/fonts.lisp
+%%CLX_MIT%%lib/clisp/full/gcontext.fas
+%%CLX_MIT%%lib/clisp/full/gcontext.lisp
lib/clisp/full/gettext.o
+%%CLX_MIT%%lib/clisp/full/graphics.fas
+%%CLX_MIT%%lib/clisp/full/graphics.lisp
+%%CLX_MIT%%lib/clisp/full/image.fas
+%%CLX_MIT%%lib/clisp/full/image.lisp
+%%CLX_MIT%%lib/clisp/full/input.fas
+%%CLX_MIT%%lib/clisp/full/input.lisp
+%%CLX_MIT%%lib/clisp/full/keysyms.fas
+%%CLX_MIT%%lib/clisp/full/keysyms.lisp
lib/clisp/full/libavcall.a
lib/clisp/full/libcallback.a
lib/clisp/full/libcharset.a
@@ -27,44 +60,67 @@ lib/clisp/full/libnoreadline.a
lib/clisp/full/lisp.a
lib/clisp/full/lisp.run
lib/clisp/full/lispinit.mem
+%%CLX_MIT%%lib/clisp/full/macros.fas
+%%CLX_MIT%%lib/clisp/full/macros.lisp
lib/clisp/full/makevars
+%%CLX_MIT%%lib/clisp/full/manager.fas
+%%CLX_MIT%%lib/clisp/full/manager.lisp
lib/clisp/full/modules.h
lib/clisp/full/modules.o
-lib/clisp/full/rawsock.o
+%%ORACLE%%lib/clisp/full/oiface.o
+%%ORACLE%%lib/clisp/full/oracle.o
+%%ORACLE%%lib/clisp/full/orafns.o
+%%CLX_MIT%%lib/clisp/full/package.fas
+%%CLX_MIT%%lib/clisp/full/package.lisp
+%%PGSQL%%lib/clisp/full/postgresql.o
+%%RAWSOCK%%lib/clisp/full/rawsock.o
lib/clisp/full/readline.o
lib/clisp/full/regex.o
lib/clisp/full/regexi.o
lib/clisp/full/regexp.dvi
-lib/clisp/full/wildcard.dvi
-lib/clisp/full/wildcard.o
+%%CLX_MIT%%lib/clisp/full/requests.fas
+%%CLX_MIT%%lib/clisp/full/requests.lisp
+%%CLX_MIT%%lib/clisp/full/resource.fas
+%%CLX_MIT%%lib/clisp/full/resource.lisp
+%%CLX_MIT%%lib/clisp/full/shape.fas
+%%CLX_MIT%%lib/clisp/full/shape.lisp
+%%CLX_MIT%%lib/clisp/full/text.fas
+%%CLX_MIT%%lib/clisp/full/text.lisp
+%%CLX_MIT%%lib/clisp/full/trace.fas
+%%CLX_MIT%%lib/clisp/full/trace.lisp
+%%CLX_MIT%%lib/clisp/full/translate.fas
+%%CLX_MIT%%lib/clisp/full/translate.lisp
+%%WILDCARD%%lib/clisp/full/wildcard.dvi
+%%WILDCARD%%lib/clisp/full/wildcard.o
+%%ZLIB%%lib/clisp/full/zlib.o
lib/clisp/linkkit/clisp.h
lib/clisp/linkkit/modprep.lisp
lib/clisp/linkkit/modules.c
lib/clisp/linkkit/modules.d
-%%PORTDOCS%%%%DOCSDIR%%/ANNOUNCE
-%%PORTDOCS%%%%DOCSDIR%%/COPYRIGHT
-%%PORTDOCS%%%%DOCSDIR%%/GNU-GPL
-%%PORTDOCS%%%%DOCSDIR%%/MAGIC.add
-%%PORTDOCS%%%%DOCSDIR%%/NEWS
-%%PORTDOCS%%%%DOCSDIR%%/README
-%%PORTDOCS%%%%DOCSDIR%%/README.de
-%%PORTDOCS%%%%DOCSDIR%%/README.es
-%%PORTDOCS%%%%DOCSDIR%%/SUMMARY
-%%PORTDOCS%%%%DOCSDIR%%/clisp.dvi
-%%PORTDOCS%%%%DOCSDIR%%/clisp.html
-%%PORTDOCS%%%%DOCSDIR%%/clisp.pdf
-%%PORTDOCS%%%%DOCSDIR%%/clisp.ps
-%%PORTDOCS%%%%DOCSDIR%%/doc/CLOS-guide.txt
-%%PORTDOCS%%%%DOCSDIR%%/doc/LISP-tutorial.txt
-%%PORTDOCS%%%%DOCSDIR%%/doc/clisp.1
-%%PORTDOCS%%%%DOCSDIR%%/doc/clisp.dvi
-%%PORTDOCS%%%%DOCSDIR%%/doc/clisp.html
-%%PORTDOCS%%%%DOCSDIR%%/doc/clisp.pdf
-%%PORTDOCS%%%%DOCSDIR%%/doc/clisp.png
-%%PORTDOCS%%%%DOCSDIR%%/doc/clisp.ps
-%%PORTDOCS%%%%DOCSDIR%%/doc/editors.txt
-%%PORTDOCS%%%%DOCSDIR%%/doc/impnotes.css
-%%PORTDOCS%%%%DOCSDIR%%/doc/impnotes.html
+%%DOCSDIR%%/ANNOUNCE
+%%DOCSDIR%%/COPYRIGHT
+%%DOCSDIR%%/GNU-GPL
+%%DOCSDIR%%/MAGIC.add
+%%DOCSDIR%%/NEWS
+%%DOCSDIR%%/README
+%%DOCSDIR%%/README.de
+%%DOCSDIR%%/README.es
+%%DOCSDIR%%/SUMMARY
+%%DOCSDIR%%/clisp.dvi
+%%DOCSDIR%%/clisp.html
+%%DOCSDIR%%/clisp.pdf
+%%DOCSDIR%%/clisp.ps
+%%DOCSDIR%%/doc/CLOS-guide.txt
+%%DOCSDIR%%/doc/LISP-tutorial.txt
+%%DOCSDIR%%/doc/clisp.1
+%%DOCSDIR%%/doc/clisp.dvi
+%%DOCSDIR%%/doc/clisp.html
+%%DOCSDIR%%/doc/clisp.pdf
+%%DOCSDIR%%/doc/clisp.png
+%%DOCSDIR%%/doc/clisp.ps
+%%DOCSDIR%%/doc/editors.txt
+%%DOCSDIR%%/doc/impnotes.css
+%%DOCSDIR%%/doc/impnotes.html
share/locale/da/LC_MESSAGES/clisp.mo
share/locale/da/LC_MESSAGES/clisplow.mo
share/locale/de/LC_MESSAGES/clisp.mo
@@ -79,8 +135,8 @@ share/locale/nl/LC_MESSAGES/clisp.mo
share/locale/nl/LC_MESSAGES/clisplow.mo
share/locale/ru/LC_MESSAGES/clisp.mo
share/locale/ru/LC_MESSAGES/clisplow.mo
-%%PORTDOCS%%@dirrm %%DOCSDIR%%/doc
-%%PORTDOCS%%@dirrm %%DOCSDIR%%
+@dirrm %%DOCSDIR%%/doc
+@dirrm %%DOCSDIR%%
@dirrm lib/clisp/linkkit
@dirrm lib/clisp/full
@dirrm lib/clisp/data