aboutsummaryrefslogtreecommitdiff
path: root/devel/cl-asdf
diff options
context:
space:
mode:
authorJimmy Olgeni <olgeni@FreeBSD.org>2010-01-15 12:14:39 +0000
committerJimmy Olgeni <olgeni@FreeBSD.org>2010-01-15 12:14:39 +0000
commit1ac224e5633aab81a4aa7a40d84308751aa6bbe1 (patch)
tree364e168d1c32783717ae24623ca009a9e3afac74 /devel/cl-asdf
parent0771132bce39427ace1fc0c1a360e09e40965a9d (diff)
downloadports-1ac224e5633aab81a4aa7a40d84308751aa6bbe1.tar.gz
ports-1ac224e5633aab81a4aa7a40d84308751aa6bbe1.zip
Notes
Diffstat (limited to 'devel/cl-asdf')
-rw-r--r--devel/cl-asdf/Makefile35
-rw-r--r--devel/cl-asdf/bsd.cl-asdf.mk110
-rw-r--r--devel/cl-asdf/pkg-plist6
3 files changed, 128 insertions, 23 deletions
diff --git a/devel/cl-asdf/Makefile b/devel/cl-asdf/Makefile
index c592fa325994..26f27631bd3a 100644
--- a/devel/cl-asdf/Makefile
+++ b/devel/cl-asdf/Makefile
@@ -9,36 +9,30 @@
PORTNAME= asdf
PORTVERSION= 1.374
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= devel lisp
+PKGNAMEPREFIX= cl-
MASTER_SITES= ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= olgeni
-PKGNAMEPREFIX= cl-
MAINTAINER= olgeni@FreeBSD.org
COMMENT= A system definition facility for Common Lisp
-SUB_FILES+= pkg-message
WRKSRC= ${WRKDIR}/${PORTNAME}
-NO_BUILD= yes # Sources only
-DOCSDIR= ${PREFIX}/share/doc/${UNIQUENAME}
-EXAMPLESDIR= ${PREFIX}/share/examples/${UNIQUENAME}
+NO_BUILD= yes
-CL_LIBDIR= ${PREFIX}/lib/common-lisp
-ASDF_SYSTEM_REGISTRY= ${CL_LIBDIR}/system-registry
+SUB_FILES+= pkg-message
do-install:
- @${MKDIR} ${CL_LIBDIR}/asdf
- @${MKDIR} ${ASDF_SYSTEM_REGISTRY}
-
- @${INSTALL_DATA} ${WRKSRC}/*.lisp ${CL_LIBDIR}/asdf/
- @${INSTALL_DATA} ${WRKSRC}/*.asd ${CL_LIBDIR}/asdf/
-
- @${LN} -sf ${CL_LIBDIR}/asdf/*.asd ${ASDF_SYSTEM_REGISTRY}
-
- @${SED} -i '' -e 's|%%PREFIX%%|${PREFIX}|' ${CL_LIBDIR}/asdf/asdf.lisp
- @${SED} -e 's|%%ASDF_PATHNAME%%|${CL_LIBDIR}/asdf/asdf|' \
- -e 's|%%ASDF_SYSTEM_REGISTRY%%|${ASDF_SYSTEM_REGISTRY}|' \
+ @${MKDIR} ${ASDF_PATHNAME}
+ @${MKDIR} ${ASDF_REGISTRY}
+ @${INSTALL_DATA} ${WRKSRC}/*.lisp ${ASDF_PATHNAME}
+ @${INSTALL_DATA} ${WRKSRC}/*.asd ${ASDF_PATHNAME}
+ @${LN} -sf ${ASDF_PATHNAME}/*.asd ${ASDF_REGISTRY}
+ @${SED} -i '' -e 's|%%PREFIX%%|${PREFIX}|' ${ASDF_PATHNAME}/asdf.lisp
+ @${SED} -e 's|%%ASDF_PATHNAME%%|${ASDF_PATHNAME}/asdf|' \
+ -e 's|%%ASDF_REGISTRY%%|${ASDF_REGISTRY}|' \
-e 's|%%PREFIX%%|${PREFIX}|' \
${FILESDIR}/asdf-init.lisp > \
${PREFIX}/etc/asdf-init.lisp.default
@@ -47,11 +41,12 @@ do-install:
${PREFIX}/etc/asdf-init.lisp
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
- @${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}/
- @${INSTALL_DATA} ${FILESDIR}/README.FreeBSD ${DOCSDIR}/
+ @${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
+ @${INSTALL_DATA} ${FILESDIR}/README.FreeBSD ${DOCSDIR}
.endif
post-install:
@${CAT} ${PKGMESSAGE}
+.include <bsd.cl-asdf.mk>
.include <bsd.port.mk>
diff --git a/devel/cl-asdf/bsd.cl-asdf.mk b/devel/cl-asdf/bsd.cl-asdf.mk
new file mode 100644
index 000000000000..bd647e3ccaf6
--- /dev/null
+++ b/devel/cl-asdf/bsd.cl-asdf.mk
@@ -0,0 +1,110 @@
+# $FreeBSD$
+#
+# bsd.cl-asdf.mk - Common Lisp related macros
+#
+# SBCL - Path to the Steel Bank Common Lisp compiler
+# CLISP - Path to the GNU Common Lisp compiler
+# CL_LIBDIR_REL - Common Lisp library directory, relative to LOCALBASE or PREFIX
+# ASDF_PATHNAME - Where to install compiled FASL files (depends on FASL_DIR_REL)
+# ASDF_REGISTRY - Path to ASDF registry
+# DOCSDIR - DOCSDIR using UNIQUENAME (to account for optional cl- PKGNAMEPREFIX)
+# EXAMPLESDIR - Same as above, for EXAMPLESDIR
+# FASL_DIR_REL - Relative path to compiled FASL files; depends on FASL_TARGET
+# FASL_TARGET - Platform for building FASL files (currently "sbcl" or "clisp")
+# USE_SBCL - If set, depend on lang/sbcl
+# USE_CLISP - If set, depend on lang/clisp
+# USE_ASDF - If set, depend on devel/cl-asdf
+# USE_ASDF_FASL - If set, set dependency on compiled ASDF files (only if
+# required by the chosed FASL_TARGET)
+# FASL_BUILD - If set, compile FASL files using the ASDF framework
+# ASDF_MODULES - If FASL_BUILD is set: list of ASDF modules to compile
+
+CL_ASDF_Include_MAINTAINER= olgeni@FreeBSD.org
+
+SBCL?= ${LOCALBASE}/bin/sbcl
+CLISP?= ${LOCALBASE}/bin/clisp
+
+CL_LIBDIR_REL= lib/common-lisp
+
+ASDF_PATHNAME= ${PREFIX}/${CL_LIBDIR_REL}/${PORTNAME}
+FASL_PATHNAME= ${PREFIX}/${CL_LIBDIR_REL}/${PORTNAME}/${FASL_DIR_REL}
+ASDF_REGISTRY= ${PREFIX}/${CL_LIBDIR_REL}/system-registry
+
+# Include PKGNAMEPREFIX in DOCSDIR and EXAMPLESDIR
+DOCSDIR= ${PREFIX}/share/doc/${UNIQUENAME}
+EXAMPLESDIR= ${PREFIX}/share/examples/${UNIQUENAME}
+
+.if defined(FASL_TARGET)
+FASL_DIR_REL= ${FASL_TARGET}fasl
+PKGNAMESUFFIX= -${FASL_TARGET}
+.if ${FASL_TARGET} == "sbcl"
+USE_SBCL= yes
+.elif ${FASL_TARGET} == "clisp"
+USE_CLISP= yes
+.endif
+.endif # defined(FASL_TARGET)
+
+.if defined(USE_SBCL)
+BUILD_DEPENDS+= sbcl:${PORTSDIR}/lang/sbcl
+RUN_DEPENDS+= sbcl:${PORTSDIR}/lang/sbcl
+.elif defined(USE_CLISP)
+BUILD_DEPENDS+= clisp:${PORTSDIR}/lang/clisp
+RUN_DEPENDS+= clisp:${PORTSDIR}/lang/clisp
+.endif # defined(USE_CLISP)
+
+.if defined(USE_ASDF)
+# Even if the Common Lisp compiler already has a bundled ASDF framework,
+# we still need the asdf-init file.
+BUILD_DEPENDS= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/asdf.lisp:${PORTSDIR}/devel/cl-asdf
+RUN_DEPENDS= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/asdf.lisp:${PORTSDIR}/devel/cl-asdf
+.endif # defined(USE_ASDF)
+
+.if defined(USE_ASDF_FASL)
+.if defined(USE_SBCL)
+# SBCL already has a bundled ASDF framework
+.elif defined(USE_CLISP)
+BUILD_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/${FASL_DIR_REL}/asdf.fasl:${PORTSDIR}/devel/cl-asdf-clisp
+RUN_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/${FASL_DIR_REL}/asdf.fasl:${PORTSDIR}/devel/cl-asdf-clisp
+.endif # defined(USE_CLISP)
+.endif # defined(USE_ASDF_FASL)
+
+.if defined(FASL_BUILD)
+
+ASDF_MODULES?= ${PORTNAME}
+
+.if !target(do-build)
+
+# See devel/cl-asdf/files/asdf-init.lisp for the meaning of FBSD_ASDF_COMPILE_PORT.
+
+do-build:
+
+.for MODULE in ${ASDF_MODULES}
+
+.if defined(USE_SBCL)
+ @FBSD_ASDF_COMPILE_PORT=t WRKSRC=${WRKSRC}/ \
+ ${SBCL} --noinform --userinit /dev/null --disable-debugger \
+ --eval '#.(load "${LOCALBASE}/etc/asdf-init")' \
+ --eval "(asdf:oos 'asdf:compile-op :${MODULE})" \
+ --eval "(quit)"
+.endif # USE_SBCL
+
+.if defined(USE_CLISP)
+ @FBSD_ASDF_COMPILE_PORT=t WRKSRC=${WRKSRC}/ \
+ ${CLISP} -q -ansi -norc \
+ -i ${LOCALBASE}/etc/asdf-init \
+ -x "(asdf:oos 'asdf:compile-op :${MODULE})"
+.endif # USE_CLISP
+
+.endfor
+
+.endif # !target(do-build)
+
+.if !target(do-install)
+
+do-install:
+ @${MKDIR} ${FASL_PATHNAME}
+ @${INSTALL_DATA} ${WRKSRC}/*.fasl ${FASL_PATHNAME}
+
+.endif # !target(do-install)
+
+.endif # FASL_BUILD
diff --git a/devel/cl-asdf/pkg-plist b/devel/cl-asdf/pkg-plist
index 25bf8ebe19f6..62832838b437 100644
--- a/devel/cl-asdf/pkg-plist
+++ b/devel/cl-asdf/pkg-plist
@@ -14,6 +14,6 @@ etc/asdf-init.lisp.default
%%PORTDOCS%%%%DOCSDIR%%/README
%%PORTDOCS%%%%DOCSDIR%%/README.FreeBSD
%%PORTDOCS%%@dirrm %%DOCSDIR%%
-@dirrm %%LIB32DIR%%/common-lisp/system-registry
-@dirrm %%LIB32DIR%%/common-lisp/asdf
-@dirrm %%LIB32DIR%%/common-lisp
+@dirrmtry %%LIB32DIR%%/common-lisp/system-registry
+@dirrmtry %%LIB32DIR%%/common-lisp/asdf
+@dirrmtry %%LIB32DIR%%/common-lisp