Use cabal and build the library on archs with ghc (i386 and amd64),
because jasper@ wants the cpphs library.
Put the library into a separate subpackage (hs-cpphs).
Shorten DESCR-main (formerly DESCR).
It would be nice if someone could chwck wether this still builds
and packages correctly on an arch with nhc (my armish is currently
busy with other stuff).
Any objections?
BTW: is there a reason why ports with MULTI_PACKAGES don't have
DISTNAME in SUBST_VARS by default?
Ciao,
Kili
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/cpphs/Makefile,v
retrieving revision 1.15
diff -u -p -r1.15 Makefile
--- Makefile 17 Jul 2010 13:54:30 -0000 1.15
+++ Makefile 25 Sep 2010 19:43:51 -0000
@@ -1,9 +1,12 @@
# $OpenBSD: Makefile,v 1.15 2010/07/17 13:54:30 kili Exp $
-COMMENT = liberalised reimplementation of cpp in Haskell
+COMMENT-main = liberalised reimplementation of cpp in Haskell
+COMMENT-lib = cpphs library
DISTNAME = cpphs-1.11
-REVISION = 2
+PKGNAME-main = ${DISTNAME}
+PKGNAME-lib = hs-${DISTNAME}
+REVISION-main = 3
CATEGORIES = devel
MAINTAINER = Matthias Kilian <[email protected]>
HOMEPAGE = http://haskell.org/cpphs/
@@ -15,28 +18,36 @@ PERMIT_PACKAGE_FTP = Yes
PERMIT_DISTFILES_CDROM =Yes
PERMIT_DISTFILES_FTP = Yes
-WANTLIB += c m pthread
+MULTI_PACKAGES = -main
+WANTLIB-main = ${WANTLIB} c m pthread
+
+SUBST_VARS += DISTNAME
-# Pure Haskell 98. Could also interpret via Hugs
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64"
-WANTLIB += gmp util
-MODULES = lang/ghc converters/libiconv
-MODGHC_BUILD = nort
-LIB_DEPENDS = ::devel/gmp
-HC = ghc
-HC_OPTS = -O -o cpphs --make
+# GHC: use cabal to build both the executable and the library.
+MULTI_PACKAGES += -lib
+WANTLIB-main += gmp util
+MODULES = lang/ghc converters/libiconv
+MODGHC_BUILD = cabal haddock register
+LIB_DEPENDS-main = ${LIB_DEPENDS} ::devel/gmp
+RUN_DEPENDS-main =
+LIB_DEPENDS-lib =
.else
-BUILD_DEPENDS+= ::devel/hmake \
- ::lang/nhc98
-HC= hmake
-HC_OPTS= -nhc98 -package base
-.endif
+# NHC: use the good old makefile for now (though it *should* be possible
+# to build with cabal, too).
+BUILD_DEPENDS += ::devel/hmake \
+ ::lang/nhc98
+HC = hmake
+HC_OPTS = -nhc98 -package base
do-build:
cd ${WRKSRC} && ${HC} ${HC_OPTS} cpphs
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/cpphs ${PREFIX}/bin
+.endif
+
+post-install:
${INSTALL_MAN} ${WRKSRC}/docs/cpphs.1 ${PREFIX}/man/man1
do-regress:
Index: pkg/DESCR
===================================================================
RCS file: pkg/DESCR
diff -N pkg/DESCR
--- pkg/DESCR 29 Jun 2007 10:59:07 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
-Rightly or wrongly, the C pre-processor is widely used in Haskell
-source code. It enables conditional compilation for different
-compilers, different versions of the same compiler, and different OS
-platforms. It is also occasionally used for its macro language, which
-can enable certain forms of platform-specific detail-filling, such as
-the tedious boilerplate generation of instance definitions and FFI
-declarations. However, there are two problems with cpp, aside from the
-obvious aesthetic ones:
-
- * For some Haskell systems, notably Hugs on Windows, a true cpp is
- not available by default.
- * Even for the other Haskell systems, the common cpp provided by the
- gcc 3.x and 4.x series has changed subtly in ways that are
- incompatible with Haskell's syntax. There have always been
- problems with, for instance, string gaps, and prime characters
- in identifiers. These problems are only going to get worse.
-
-So, it seemed right to provide an alternative to cpp, both more
-compatible with Haskell, and itself written in Haskell so that it
-can be distributed with compilers. This version of the C pre-processor
-is pretty-much feature-complete, and compatible with the -traditional
-style.
Index: pkg/DESCR-lib
===================================================================
RCS file: pkg/DESCR-lib
diff -N pkg/DESCR-lib
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/DESCR-lib 25 Sep 2010 19:43:51 -0000
@@ -0,0 +1 @@
+This library provides the functioninality of cpphs to other programs.
Index: pkg/DESCR-main
===================================================================
RCS file: pkg/DESCR-main
diff -N pkg/DESCR-main
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/DESCR-main 25 Sep 2010 19:43:51 -0000
@@ -0,0 +1,7 @@
+Cpphs is a re-implementation of the C pre-processor that is both
+more compatible with Haskell, and itself written in Haskell so that
+it can be distributed with compilers.
+This version of the C pre-processor is pretty-much feature-complete
+and compatible with traditional (K&R) pre-processors. Additional
+features include: a plain-text mode; an option to unlit literate
+code files; and an option to turn off macro-expansion.
Index: pkg/PLIST
===================================================================
RCS file: pkg/PLIST
diff -N pkg/PLIST
--- pkg/PLIST 22 Apr 2010 21:51:54 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,3 +0,0 @@
-...@comment $OpenBSD: PLIST,v 1.2 2010/04/22 21:51:54 kili Exp $
-...@bin bin/cpphs
-...@man man/man1/cpphs.1
Index: pkg/PLIST-lib
===================================================================
RCS file: pkg/PLIST-lib
diff -N pkg/PLIST-lib
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/PLIST-lib 25 Sep 2010 19:43:51 -0000
@@ -0,0 +1,43 @@
+...@comment $OpenBSD$
+lib/${DISTNAME}/
+lib/${DISTNAME}/ghc-${MODGHC_VER}/
+lib/${DISTNAME}/ghc-${MODGHC_VER}/HS${DISTNAME}.o
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/CppIfdef.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/HashDefine.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/MacroPass.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/Options.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/Position.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/ReadFirst.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/RunCpphs.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/SymTab.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Cpphs/Tokenise.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Language/Preprocessor/Unlit.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Text/
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Text/ParserCombinators/
+lib/${DISTNAME}/ghc-${MODGHC_VER}/Text/ParserCombinators/HuttonMeijer.hi
+lib/${DISTNAME}/ghc-${MODGHC_VER}/libHS${DISTNAME}.a
+lib/${DISTNAME}/register.sh
+...@exec /usr/bin/env HOME=/nonexistent %D/lib/${DISTNAME}/register.sh -v0
+...@unexec /usr/bin/env HOME=/nonexistent %D/lib/${DISTNAME}/unregister.sh -v0
--force
+lib/${DISTNAME}/unregister.sh
+share/doc/${DISTNAME}/
+share/doc/${DISTNAME}/LICENCE-LGPL
+share/doc/${DISTNAME}/html/
+share/doc/${DISTNAME}/html/Language-Preprocessor-Cpphs.html
+share/doc/${DISTNAME}/html/Language-Preprocessor-Unlit.html
+share/doc/${DISTNAME}/html/cpphs.haddock
+share/doc/${DISTNAME}/html/doc-index.html
+share/doc/${DISTNAME}/html/frames.html
+share/doc/${DISTNAME}/html/haddock-util.js
+share/doc/${DISTNAME}/html/haddock.css
+share/doc/${DISTNAME}/html/haskell_icon.gif
+share/doc/${DISTNAME}/html/index-frames.html
+share/doc/${DISTNAME}/html/index.html
+share/doc/${DISTNAME}/html/mini_Language-Preprocessor-Cpphs.html
+share/doc/${DISTNAME}/html/mini_Language-Preprocessor-Unlit.html
+share/doc/${DISTNAME}/html/minus.gif
+share/doc/${DISTNAME}/html/plus.gif
Index: pkg/PLIST-main
===================================================================
RCS file: pkg/PLIST-main
diff -N pkg/PLIST-main
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/PLIST-main 25 Sep 2010 19:43:51 -0000
@@ -0,0 +1,4 @@
+...@comment $OpenBSD$
+...@pkgpath devel/cpphs
+...@bin bin/cpphs
+...@man man/man1/cpphs.1