Update hmake to 3.13.
Tested on i386 with ghc-6.2.2 and (with some additional modifications)
ghc-6.6.1 (as posted some days ago here) and nhc98-1.18 (still work
in progress).
For now, it's just important that it still works and doesn't break
other stuff.
This is a prerequisite for updating ghc (and nhc98, too), so
haskellers, please test and comment.
Ciao,
Kili
ps: (expected questions and answers)
Q: Why --buildwith=ghc?
A: Because hmake will probably be dropped from the nhc98 package
(to get rid of that annoying @conflict), and the hmake port will
get a nhc98 PSEUDOFLAVOR for archs not (yet) supporting ghc.
Q: What's that harch hack?
A: It's fallout from work on the nhc98 update (which just doesn't work
without similar patches). If someone *really* wants to share
${LOCALBASE}/lib/hmake for multiple architecures on an NFS server,
let me know.
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/hmake/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- Makefile 18 Mar 2007 16:58:35 -0000 1.7
+++ Makefile 11 Jun 2007 15:47:43 -0000
@@ -2,19 +2,19 @@
COMMENT= "compilation manager for Haskell programs"
-V= 3.10
+V= 3.13
DISTNAME= hmake-${V}
-PKGNAME= ${DISTNAME}p0
CATEGORIES= devel
HOMEPAGE= http://www.haskell.org/hmake/
-MAINTAINER= Don Stewart <[EMAIL PROTECTED]>
+MAINTAINER= Matthias Kilian <[EMAIL PROTECTED]>
MODULES= lang/ghc
+CONFIGURE_ARGS= --buildwith=ghc
-MASTER_SITES= http://www.haskell.org/hmake/ \
- ftp://ftp.cs.york.ac.uk/pub/haskell/hmake/ \
- http://www.cs.york.ac.uk/fp/hmake/
+MASTER_SITES= ${HOMEPAGE} \
+ http://www.cs.york.ac.uk/fp/hmake/ \
+ ftp://ftp.cs.york.ac.uk/pub/haskell/hmake/
NO_REGRESS= Yes
USE_GMAKE= Yes
@@ -29,4 +29,7 @@ WANTLIB= c gmp m ncurses readline
post-install:
chown -R ${BINOWN}:${BINGRP} ${PREFIX}/lib/hmake
+ ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/hmake
+ ${INSTALL_DATA} ${WRKSRC}/docs/hmake/* ${PREFIX}/share/doc/hmake
+
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/hmake/distinfo,v
retrieving revision 1.5
diff -u -p -r1.5 distinfo
--- distinfo 5 Apr 2007 15:37:54 -0000 1.5
+++ distinfo 11 Jun 2007 15:47:43 -0000
@@ -1,5 +1,5 @@
-MD5 (hmake-3.10.tar.gz) = Msj+pT/qqbLq0WImCewFKg==
-RMD160 (hmake-3.10.tar.gz) = mlB2OTBeciGLMZHhdDOYPKToABo=
-SHA1 (hmake-3.10.tar.gz) = 8v8yogE+y/r6b+lgXqx9NZL/P5E=
-SHA256 (hmake-3.10.tar.gz) = MJq+goA/UEQcqtZMTV7d6kJMXZ2JZZxuRzzEQEzJDEg=
-SIZE (hmake-3.10.tar.gz) = 104656
+MD5 (hmake-3.13.tar.gz) = yH958YRva17Mvl8KAJKLiw==
+RMD160 (hmake-3.13.tar.gz) = Ogjfmke7KL4BqFwR4iPQGGs476k=
+SHA1 (hmake-3.13.tar.gz) = 8SkBaMMaWy6Rd34lcAOaGH3yow8=
+SHA256 (hmake-3.13.tar.gz) = vB68AaXUcdr2dGvsOhASgGvUSTWaMEQxBytA0qEs3jk=
+SIZE (hmake-3.13.tar.gz) = 104283
Index: patches/patch-man_hmake_1
===================================================================
RCS file: patches/patch-man_hmake_1
diff -N patches/patch-man_hmake_1
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-man_hmake_1 11 Jun 2007 15:47:43 -0000
@@ -0,0 +1,33 @@
+$OpenBSD$
+
+No MACHINE, just OpenBSD.
+
+--- man/hmake.1.orig Fri Jul 7 18:01:16 2006
++++ man/hmake.1 Mon Jun 11 16:49:03 2007
+@@ -139,11 +139,11 @@ empty.
+ .TP
+ .B MKPROG
+ if set, it is used as the location of the main program, instead of the
+-default /usr/local/lib/hmake/$MACHINE/MkProg.
++default /usr/local/lib/hmake/OpenBSD/MkProg.
+ .TP
+ .B OLDER
+ if set, it is used as the location of the help program `Older',
+-instead of the default /usr/local/lib/hmake/$MACHINE/Older.
++instead of the default /usr/local/lib/hmake/OpenBSD/Older.
+ .TP
+ .B NHC98INCDIR
+ if set, it is used as the location of the directory containing
+@@ -167,10 +167,10 @@ if set, is interpreted as a colon-separated list of di
+ for interface files for the Prelude and standard libraries (for ghc only).
+ The default is $GHCINCDIR/std:$GHCINCDIR/exts.
+ .SH FILES
+-.B /usr/local/lib/hmake/$(MACHINE)/MkProg
++.B /usr/local/lib/hmake/OpenBSD/MkProg
+ the main program
+ .PP
+-.B /usr/local/lib/hmake/$(MACHINE)/Older
++.B /usr/local/lib/hmake/OpenBSD/Older
+ help program to determine if a target is out of date.
+ .SH SEE ALSO
+ nhc98(1), hbc(1), ghc(1), lmlmake(1), make(1)
Index: patches/patch-script_confhc
===================================================================
RCS file: patches/patch-script_confhc
diff -N patches/patch-script_confhc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-script_confhc 11 Jun 2007 15:47:43 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+cpp output from ghc has changed
+
+--- script/confhc.orig Fri Jul 7 18:01:16 2006
++++ script/confhc Sat Jun 2 20:43:58 2007
+@@ -78,7 +78,7 @@ fi
+ ghcsym () {
+ echo __GLASGOW_HASKELL__ >ghcsym.hs;
+ $1 -E -cpp -optP-P ghcsym.hs -o ghcsym.out;
+- grep -v '^#' ghcsym.out | grep -v '^$' > $2;
++ grep -v '#' ghcsym.out | grep -v '^$' > $2;
+ rm -f ghcsym.hs ghcsym.out;
+ }
+ echo -n " Looking for ghc... "
Index: patches/patch-script_harch
===================================================================
RCS file: patches/patch-script_harch
diff -N patches/patch-script_harch
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-script_harch 11 Jun 2007 15:47:43 -0000
@@ -0,0 +1,105 @@
+$OpenBSD: patch-scripts_harch,v 1.1 2004/04/23 03:14:06 dons Exp $
+
+No harch black magic for OpenBSD, we don't need this.
+
+--- script/harch.orig Fri Jul 7 18:01:16 2006
++++ script/harch Mon Jun 11 15:44:28 2007
+@@ -1,97 +1,2 @@
+ #!/bin/sh
+-# harch - determine canonical processor architecture
+-# Nov 1998: first used.
+-# May 1999: ensure that small differences (e.g. kernel version)
+-# don't matter.
+-
+-PROCESSOR=
+-OS=
+-REL=
+-
+-# Unfortunately, there are a variety of incompatible
+-# ways of detecting architecture, so try them all!
+-
+-if uname >/dev/null 2>&1
+-then
+- if uname -p >/dev/null 2>&1
+- then PROCESSOR=`uname -p`
+- case "$PROCESSOR" in
+- unknown|*\ *)
+- PROCESSOR=`uname -m`
+- ;;
+- esac
+- else
+- if arch >/dev/null 2>&1
+- then PROCESSOR=`arch`
+- else PROCESSOR=`uname -m`
+- fi
+- fi
+- OS=`uname -s`
+- REL=`uname -r`
+-else
+- if arch >/dev/null 2>&1
+- then PROCESSOR=`arch`
+- else
+- if machine >/dev/null 2>&1
+- then PROCESSOR=`machine`
+- else PROCESSOR='unknown'
+- fi
+- fi
+- OS=unknown
+-fi
+-
+-
+-# Remove whitespace and slashes.
+-PROCESSOR=`echo $PROCESSOR | tr '/ ' '.'`
+-OS=`echo $OS | tr '/ ' '-'`
+-REL=`echo $REL | tr '/ ' '-'`
+-
+-# Canonicalise equivalent processor families to one representative member.
+-case $PROCESSOR in
+- i[3456789]86) PROCESSOR=ix86;;
+- athlon) PROCESSOR=ix86;;
+- sun3*) PROCESSOR=sun3;;
+- sun4*) PROCESSOR=sun4;;
+- sparc*) PROCESSOR=sparc;;
+-esac
+-
+-# Keep OS release number only if it might be relevant.
+-case $OS in
+- unknown) ;;
+- Linux) ;;
+- CYGWIN*) ;;
+- MINGW*) ;;
+- *BSD) ;;
+-# BSD/OS) OS="BSD-OS"$REL ;; -- removed by slash->dash translation.
+- SunOS) case $REL in
+- 3*) OS=SunOS3;;
+- 4*) OS=SunOS4;;
+- 5*) OS=solaris2;;
+- 6*) OS=solaris3;;
+- *) OS=SunOS-$REL;;
+- esac;;
+- Darwin) case $REL in
+- 5*) OS=Darwin5;;
+- 6*) OS=Darwin6;;
+- 7*) OS=Darwin7;;
+- 8*) OS=Darwin8;;
+- *) OS=Darwin-$REL;;
+- esac;;
+- IRIX*) case $REL in
+- 5*) OS=IRIX5;;
+- 6*) OS=IRIX6;;
+- *) OS=IRIX-$REL;;
+- esac;;
+- AIX) if oslevel >/dev/null 2>&1 # AIX just has to be
different
+- then OS=$OS-`oslevel`
+- else OS=$OS-unknown
+- fi
+- if lsattr -EHl proc0 | grep -i powerpc >/dev/null 2>&1
+- then PROCESSOR=powerpc
+- else PROCESSOR=power
+- fi ;;
+- *) OS=$OS-$REL;;
+-esac
+-
+-# And that's it.
+-echo $PROCESSOR-$OS
++echo OpenBSD
Index: patches/patch-script_hi_inst
===================================================================
RCS file: patches/patch-script_hi_inst
diff -N patches/patch-script_hi_inst
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-script_hi_inst 11 Jun 2007 15:47:43 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+We don't have to care about different archs installed at the same place.
+
+--- script/hi.inst.orig Fri Jul 7 18:01:16 2006
++++ script/hi.inst Mon Jun 11 15:49:31 2007
+@@ -5,7 +5,7 @@
+ SCRIPTDIR=${SCRIPTDIR-ScriptDir}
+ HMAKEDIR=${HMAKEDIR-ExecutableDir}
+ HMAKECONFDIR=${HMAKECONFDIR-ConfDir}
+-MACHINE=${MACHINE-"`$SCRIPTDIR/harch`"}
++MACHINE=OpenBSD
+ INSTALLVER="InstallVer"
+ export MACHINE INSTALLVER HMAKEDIR HMAKECONFDIR SCRIPTDIR
+
Index: patches/patch-script_hmake-config_inst
===================================================================
RCS file: patches/patch-script_hmake-config_inst
diff -N patches/patch-script_hmake-config_inst
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-script_hmake-config_inst 11 Jun 2007 15:47:43 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+We don't have to care about different archs installed at the same place.
+
+--- script/hmake-config.inst.orig Fri Jul 7 18:01:16 2006
++++ script/hmake-config.inst Mon Jun 11 15:50:21 2007
+@@ -4,7 +4,7 @@
+
+ INSTALLVER="InstallVer"
+ SCRIPTDIR=${SCRIPTDIR-ScriptDir}
+-MACHINE=${MACHINE-"`$SCRIPTDIR/harch`"}
++MACHINE=OpenBSD
+ HMAKEDIR=${HMAKEDIR-ExecutableDir}
+ HMAKECONFDIR=${HMAKECONFDIR-ConfDir}
+ TMP=${TMP-/tmp}
Index: patches/patch-script_hmake_inst
===================================================================
RCS file: patches/patch-script_hmake_inst
diff -N patches/patch-script_hmake_inst
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-script_hmake_inst 11 Jun 2007 15:47:43 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+We don't have to care about different archs installed at the same place.
+
+--- script/hmake.inst.orig Tue Sep 12 16:05:57 2006
++++ script/hmake.inst Mon Jun 11 15:49:57 2007
+@@ -6,7 +6,7 @@
+
+ INSTALLVER="InstallVer"
+ SCRIPTDIR=${SCRIPTDIR-ScriptDir}
+-MACHINE=${MACHINE-"`$SCRIPTDIR/harch`"}
++MACHINE=OpenBSD
+ HMAKEDIR=${HMAKEDIR-ExecutableDir}
+ HMAKECONFDIR=${HMAKECONFDIR-ConfDir}
+ TMP=${TMP-/tmp}
Index: patches/patch-scripts_harch
===================================================================
RCS file: patches/patch-scripts_harch
diff -N patches/patch-scripts_harch
--- patches/patch-scripts_harch 23 Apr 2004 03:14:06 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-$OpenBSD: patch-scripts_harch,v 1.1 2004/04/23 03:14:06 dons Exp $
-Use arch as the canonical form for the processor name.
-Makes substitution in PLISTs nicer.
-
---- script/harch.orig Thu Apr 22 14:37:44 2004
-+++ script/harch Thu Apr 22 14:37:56 2004
-@@ -48,8 +48,8 @@
-
- # Canonicalise equivalent processor families to one representative member.
- case $PROCESSOR in
-- i[3456789]86) PROCESSOR=ix86;;
-- athlon) PROCESSOR=ix86;;
-+ i[3456789]86) PROCESSOR=i386;;
-+ athlon) PROCESSOR=i386;;
- sun3*) PROCESSOR=sun3;;
- sun4*) PROCESSOR=sun4;;
- sparc*) PROCESSOR=sparc;;
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/hmake/pkg/PLIST,v
retrieving revision 1.5
diff -u -p -r1.5 PLIST
--- pkg/PLIST 18 Sep 2004 10:55:04 -0000 1.5
+++ pkg/PLIST 11 Jun 2007 15:47:43 -0000
@@ -4,12 +4,25 @@ bin/harch
bin/hi
bin/hmake
bin/hmake-config
+bin/runhs
lib/hmake/
-lib/hmake/${MACHINE_ARCH}-OpenBSD/
-lib/hmake/${MACHINE_ARCH}-OpenBSD/HInteractive
-lib/hmake/${MACHINE_ARCH}-OpenBSD/MkConfig
-lib/hmake/${MACHINE_ARCH}-OpenBSD/MkProg
-lib/hmake/${MACHINE_ARCH}-OpenBSD/Older
-lib/hmake/${MACHINE_ARCH}-OpenBSD/config
-lib/hmake/${MACHINE_ARCH}-OpenBSD/hmakerc
+lib/hmake/OpenBSD/
+lib/hmake/OpenBSD/HInteractive
+lib/hmake/OpenBSD/MkConfig
+lib/hmake/OpenBSD/MkProg
+lib/hmake/OpenBSD/Older
+lib/hmake/OpenBSD/config
+lib/hmake/OpenBSD/hmakerc
+lib/hmake/OpenBSD/runhs
@man man/man1/hmake.1
[EMAIL PROTECTED] man/man1/hmake.1.orig
+share/doc/hmake/
+share/doc/hmake/bugs.html
+share/doc/hmake/changes.html
+share/doc/hmake/hi-commands.html
+share/doc/hmake/hmake-config.html
+share/doc/hmake/hmake.html
+share/doc/hmake/index.html
+share/doc/hmake/interactive.html
+share/doc/hmake/lineedit.html
+share/doc/hmake/runhs.html