aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
authorade <ade@FreeBSD.org>2000-10-14 04:17:46 +0800
committerade <ade@FreeBSD.org>2000-10-14 04:17:46 +0800
commit62bcc0baeac6e1ce5a8f0a8fdfa656167987f151 (patch)
treef99f08c27415d4cb5c2ff736dcc0385bbe7fabbc /lang
parent8a6663aa63029af8bc70862cd0e475687f8da2d4 (diff)
downloadfreebsd-ports-gnome-62bcc0baeac6e1ce5a8f0a8fdfa656167987f151.tar.gz
freebsd-ports-gnome-62bcc0baeac6e1ce5a8f0a8fdfa656167987f151.tar.zst
freebsd-ports-gnome-62bcc0baeac6e1ce5a8f0a8fdfa656167987f151.zip
Update to 4.08.1
PR: 21502 Submitted by: maintainer
Diffstat (limited to 'lang')
-rw-r--r--lang/ghc/Makefile31
-rw-r--r--lang/ghc/distinfo4
-rw-r--r--lang/ghc/files/build.mk2
-rw-r--r--lang/ghc/files/patch-aa19
-rw-r--r--lang/ghc/files/patch-ab100
-rw-r--r--lang/ghc/pkg-plist2
-rw-r--r--lang/ghc5/Makefile31
-rw-r--r--lang/ghc5/distinfo4
-rw-r--r--lang/ghc5/files/build.mk2
-rw-r--r--lang/ghc5/files/patch-aa19
-rw-r--r--lang/ghc5/files/patch-ab100
-rw-r--r--lang/ghc5/pkg-plist2
-rw-r--r--lang/ghc6/Makefile31
-rw-r--r--lang/ghc6/distinfo4
-rw-r--r--lang/ghc6/files/build.mk2
-rw-r--r--lang/ghc6/files/patch-aa19
-rw-r--r--lang/ghc6/files/patch-ab100
-rw-r--r--lang/ghc6/pkg-plist2
18 files changed, 450 insertions, 24 deletions
diff --git a/lang/ghc/Makefile b/lang/ghc/Makefile
index c1e181c16e1c..7f125b8bf238 100644
--- a/lang/ghc/Makefile
+++ b/lang/ghc/Makefile
@@ -5,9 +5,9 @@
# $FreeBSD$
PORTNAME= ghc
-PORTVERSION= 4.08
+PORTVERSION= 4.08.1
CATEGORIES= lang
-MASTER_SITES= http://www.haskell.org/ghc/dist/4.08/
+MASTER_SITES= http://www.haskell.org/ghc/dist/4.08.1/
DISTFILES= ghc-${PORTVERSION}-src${EXTRACT_SUFX} \
ghc-${PORTVERSION}-x86-hc${EXTRACT_SUFX}
@@ -23,6 +23,12 @@ CONFIGURE_TARGET=
WRKSRC= ${WRKDIR}/fptools
+# override TMPDIR because /tmp often doesn't have enough space
+# to build some of the larger libraries.
+TMPDIR = ${WRKSRC}/tmp
+MAKE_ENV += TMPDIR=${TMPDIR}
+
+
# Note:
# - This port will bootstrap from pre-compiled C files.
# - ToDo: bootstrap using existing compiler, if one is installed.
@@ -31,17 +37,34 @@ WRKSRC= ${WRKDIR}/fptools
# switch to non-bootstrapping mode for installation, the build system
# won't try to create them.
#
-pre-build:
+BOOT_COOKIE = ${WRKDIR}/.boot_done
+
+${BOOT_COOKIE}:
+ @${MKDIR} ${TMPDIR}
@${CP} ${FILESDIR}/build.mk ${WRKSRC}/mk
@${TOUCH} ${TOUCH_FLAGS} ${WRKSRC}/ghc/compiler/rename/ParseIface.hs
@${TOUCH} ${TOUCH_FLAGS} ${WRKSRC}/ghc/compiler/parser/Parser.hs
@(cd ${WRKSRC}/glafp-utils; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
@(cd ${WRKSRC}/ghc; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
@(cd ${WRKSRC}/hslibs; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
+ @${TOUCH} ${TOUCH_FLAGS} ${BOOT_COOKIE}
+
+pre-build: ${BOOT_COOKIE}
-post-build:
+# After building the compiler, we go back and build the libraries from
+# source using the compiler we just built. We also build profiling
+# versions of the libraries at this point.
+
+REAL_LIBS_COOKIE = ${WRKDIR}/.real_libs_done
+
+${REAL_LIBS_COOKIE}:
@echo "GhcWithHscBuiltViaC=NO" >>${WRKSRC}/mk/build.mk
+ @echo "GhcLibWays=p" >>${WRKSRC}/mk/build.mk
+ @(cd ${WRKSRC}/ghc/rts; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
@(cd ${WRKSRC}/ghc/lib; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
@(cd ${WRKSRC}/hslibs; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
+ @${TOUCH} ${TOUCH_FLAGS} ${REAL_LIBS_COOKIE}
+
+post-build: ${REAL_LIBS_COOKIE}
.include <bsd.port.mk>
diff --git a/lang/ghc/distinfo b/lang/ghc/distinfo
index 3a8e0f44598c..3ebbea2b26d4 100644
--- a/lang/ghc/distinfo
+++ b/lang/ghc/distinfo
@@ -1,2 +1,2 @@
-MD5 (ghc-4.08-src.tar.gz) = 624af8e537fdaacb12719c0e5af080b5
-MD5 (ghc-4.08-x86-hc.tar.gz) = 3fc776f3963a6821720e7ae203b80529
+MD5 (ghc-4.08.1-src.tar.gz) = f2c4a579c186102239411efea17c963c
+MD5 (ghc-4.08.1-x86-hc.tar.gz) = b1d18eeb3f5fdb02a85ef24b40d1bf0d
diff --git a/lang/ghc/files/build.mk b/lang/ghc/files/build.mk
index af3ed3e53007..73a6f53ea26a 100644
--- a/lang/ghc/files/build.mk
+++ b/lang/ghc/files/build.mk
@@ -1,5 +1,5 @@
ProjectsToBuild = glafp-utils hslibs ghc
GhcLibHcOpts = -O -split-objs -H32m
SRC_HAPPY_OPTS += -c
-GhcLibWays=p
+GhcLibWays=
GhcLibsWithReadline = YES
diff --git a/lang/ghc/files/patch-aa b/lang/ghc/files/patch-aa
new file mode 100644
index 000000000000..87b353cdcbf3
--- /dev/null
+++ b/lang/ghc/files/patch-aa
@@ -0,0 +1,19 @@
+*** ghc/driver/ghc-asm.lprl~ Sat Aug 26 23:25:46 2000
+--- ghc/driver/ghc-asm.lprl Sat Aug 26 23:26:11 2000
+***************
+*** 954,960 ****
+ }
+ print OUTASM $T_HDR_consist, "${consist}${T_POST_LBL}\n";
+
+! } elsif ( $TargetPlatform !~ /^(mips)-/ ) { # we just don't try in those case (ToDo)
+ # on mips: consistency string is just a v
+ # horrible bunch of .bytes,
+ # which I am too lazy to sort out (WDP 95/05)
+--- 954,960 ----
+ }
+ print OUTASM $T_HDR_consist, "${consist}${T_POST_LBL}\n";
+
+! } elsif ( $TargetPlatform !~ /mips|freebsd/ ) { # we just don't try in those case (ToDo)
+ # on mips: consistency string is just a v
+ # horrible bunch of .bytes,
+ # which I am too lazy to sort out (WDP 95/05)
diff --git a/lang/ghc/files/patch-ab b/lang/ghc/files/patch-ab
new file mode 100644
index 000000000000..20f3a9be98ae
--- /dev/null
+++ b/lang/ghc/files/patch-ab
@@ -0,0 +1,100 @@
+*** mk/config.mk.in~ Thu Jun 1 12:02:31 2000
+--- mk/config.mk.in Sat Sep 2 16:35:34 2000
+***************
+*** 365,371 ****
+ # this in build.mk or set your environment variable "TMPDIR" to point
+ # to somewhere with more space. (TMPDIR=. is a good choice).
+
+! TMPDIR = /tmp
+
+ # FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
+
+--- 365,371 ----
+ # this in build.mk or set your environment variable "TMPDIR" to point
+ # to somewhere with more space. (TMPDIR=. is a good choice).
+
+! GHC_TMPDIR = /tmp
+
+ # FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
+
+*** ghc/driver/Makefile~ Thu Apr 27 12:04:37 2000
+--- ghc/driver/Makefile Sat Sep 2 16:35:43 2000
+***************
+*** 65,71 ****
+ ifeq "$(BIN_DIST)" "1"
+ SCRIPT_PREFIX_FILES=prefix.txt
+ else
+! SCRIPT_SUBST_VARS += libdir includedir libexecdir datadir bindir TMPDIR TOP_PWD
+ endif
+
+ all :: $(DYN_LOADABLE_BITS)
+--- 65,71 ----
+ ifeq "$(BIN_DIST)" "1"
+ SCRIPT_PREFIX_FILES=prefix.txt
+ else
+! SCRIPT_SUBST_VARS += libdir includedir libexecdir datadir bindir GHC_TMPDIR TOP_PWD
+ endif
+
+ all :: $(DYN_LOADABLE_BITS)
+*** ghc/driver/ghc.lprl~ Wed Aug 9 14:55:39 2000
+--- ghc/driver/ghc.lprl Sat Sep 2 16:56:16 2000
+***************
+*** 108,114 ****
+
+ bindir libdir libexecdir datadir
+
+! CURRENT_DIR TMPDIR
+
+ GHC_LIB_DIR GHC_RUNTIME_DIR GHC_INCLUDE_DIR
+
+--- 108,114 ----
+
+ bindir libdir libexecdir datadir
+
+! CURRENT_DIR GHC_TMPDIR
+
+ GHC_LIB_DIR GHC_RUNTIME_DIR GHC_INCLUDE_DIR
+
+***************
+*** 157,177 ****
+ @INC = ( ( $INSTALLING ) ? $InstLibDirGhc
+ : "$TopPwd/${CURRENT_DIR}" );
+
+! $ENV{'TMPDIR'} = $TMPDIR if $TargetPlatform =~ /^.*(cygwin32|mingw32)$/;
+! if ( $ENV{'TMPDIR'} ) { # where to make tmp file names
+! # Try to find a $Tmp_prefix which isn't being used...
+! $tmp = $$;
+! do {
+! $Tmp_prefix = ($ENV{'TMPDIR'} . "/ghc$tmp");
+! $tmp++;
+! } while ( -e "$Tmp_prefix.hc" ||
+! -e "$Tmp_Prefix.s" ||
+! -e "$Tmp_Prefix.hi" );
+! } else {
+! print STDERR "TMPDIR has not been set to anything useful!\n" if (${TMPDIR} eq '');
+! $Tmp_prefix ="${TMPDIR}/ghc$$"; # TMPDIR set via Makefile when booting..
+! $ENV{'TMPDIR'} = ${TMPDIR}; # set the env var as well
+ }
+
+ # Some shells run into real trouble when command line and environment
+ # gets big (e.g., cmd lines of >4K to /bin/sh causes havoc on our
+--- 157,177 ----
+ @INC = ( ( $INSTALLING ) ? $InstLibDirGhc
+ : "$TopPwd/${CURRENT_DIR}" );
+
+! $ENV{'TMPDIR'} = ${GHC_TMPDIR} if $TargetPlatform =~ /^.*(cygwin32|mingw32)$/;
+! if ( ! $ENV{'TMPDIR'} ) {
+! print STDERR "TMPDIR has not been set to anything useful!\n" if (${GHC_TMPDIR} eq '');
+! $ENV{'TMPDIR'} = ${GHC_TMPDIR}; # set the env var as well
+ }
++ # Try to find a $Tmp_prefix which isn't being used...
++ $tmp = $$;
++ do {
++ $Tmp_prefix = ($ENV{'TMPDIR'} . "/ghc$tmp");
++ $tmp++;
++ } while ( -e "$Tmp_prefix.hc" ||
++ -e "$Tmp_Prefix.s" ||
++ -e "$Tmp_Prefix.hi" );
+
+ # Some shells run into real trouble when command line and environment
+ # gets big (e.g., cmd lines of >4K to /bin/sh causes havoc on our
diff --git a/lang/ghc/pkg-plist b/lang/ghc/pkg-plist
index db32441cc732..c56fe8a24786 100644
--- a/lang/ghc/pkg-plist
+++ b/lang/ghc/pkg-plist
@@ -1,5 +1,5 @@
bin/ghc
-bin/ghc-4.08
+bin/ghc-4.08.1
bin/ghcprof
bin/hp2ps
bin/stat2resid
diff --git a/lang/ghc5/Makefile b/lang/ghc5/Makefile
index c1e181c16e1c..7f125b8bf238 100644
--- a/lang/ghc5/Makefile
+++ b/lang/ghc5/Makefile
@@ -5,9 +5,9 @@
# $FreeBSD$
PORTNAME= ghc
-PORTVERSION= 4.08
+PORTVERSION= 4.08.1
CATEGORIES= lang
-MASTER_SITES= http://www.haskell.org/ghc/dist/4.08/
+MASTER_SITES= http://www.haskell.org/ghc/dist/4.08.1/
DISTFILES= ghc-${PORTVERSION}-src${EXTRACT_SUFX} \
ghc-${PORTVERSION}-x86-hc${EXTRACT_SUFX}
@@ -23,6 +23,12 @@ CONFIGURE_TARGET=
WRKSRC= ${WRKDIR}/fptools
+# override TMPDIR because /tmp often doesn't have enough space
+# to build some of the larger libraries.
+TMPDIR = ${WRKSRC}/tmp
+MAKE_ENV += TMPDIR=${TMPDIR}
+
+
# Note:
# - This port will bootstrap from pre-compiled C files.
# - ToDo: bootstrap using existing compiler, if one is installed.
@@ -31,17 +37,34 @@ WRKSRC= ${WRKDIR}/fptools
# switch to non-bootstrapping mode for installation, the build system
# won't try to create them.
#
-pre-build:
+BOOT_COOKIE = ${WRKDIR}/.boot_done
+
+${BOOT_COOKIE}:
+ @${MKDIR} ${TMPDIR}
@${CP} ${FILESDIR}/build.mk ${WRKSRC}/mk
@${TOUCH} ${TOUCH_FLAGS} ${WRKSRC}/ghc/compiler/rename/ParseIface.hs
@${TOUCH} ${TOUCH_FLAGS} ${WRKSRC}/ghc/compiler/parser/Parser.hs
@(cd ${WRKSRC}/glafp-utils; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
@(cd ${WRKSRC}/ghc; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
@(cd ${WRKSRC}/hslibs; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
+ @${TOUCH} ${TOUCH_FLAGS} ${BOOT_COOKIE}
+
+pre-build: ${BOOT_COOKIE}
-post-build:
+# After building the compiler, we go back and build the libraries from
+# source using the compiler we just built. We also build profiling
+# versions of the libraries at this point.
+
+REAL_LIBS_COOKIE = ${WRKDIR}/.real_libs_done
+
+${REAL_LIBS_COOKIE}:
@echo "GhcWithHscBuiltViaC=NO" >>${WRKSRC}/mk/build.mk
+ @echo "GhcLibWays=p" >>${WRKSRC}/mk/build.mk
+ @(cd ${WRKSRC}/ghc/rts; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
@(cd ${WRKSRC}/ghc/lib; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
@(cd ${WRKSRC}/hslibs; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
+ @${TOUCH} ${TOUCH_FLAGS} ${REAL_LIBS_COOKIE}
+
+post-build: ${REAL_LIBS_COOKIE}
.include <bsd.port.mk>
diff --git a/lang/ghc5/distinfo b/lang/ghc5/distinfo
index 3a8e0f44598c..3ebbea2b26d4 100644
--- a/lang/ghc5/distinfo
+++ b/lang/ghc5/distinfo
@@ -1,2 +1,2 @@
-MD5 (ghc-4.08-src.tar.gz) = 624af8e537fdaacb12719c0e5af080b5
-MD5 (ghc-4.08-x86-hc.tar.gz) = 3fc776f3963a6821720e7ae203b80529
+MD5 (ghc-4.08.1-src.tar.gz) = f2c4a579c186102239411efea17c963c
+MD5 (ghc-4.08.1-x86-hc.tar.gz) = b1d18eeb3f5fdb02a85ef24b40d1bf0d
diff --git a/lang/ghc5/files/build.mk b/lang/ghc5/files/build.mk
index af3ed3e53007..73a6f53ea26a 100644
--- a/lang/ghc5/files/build.mk
+++ b/lang/ghc5/files/build.mk
@@ -1,5 +1,5 @@
ProjectsToBuild = glafp-utils hslibs ghc
GhcLibHcOpts = -O -split-objs -H32m
SRC_HAPPY_OPTS += -c
-GhcLibWays=p
+GhcLibWays=
GhcLibsWithReadline = YES
diff --git a/lang/ghc5/files/patch-aa b/lang/ghc5/files/patch-aa
new file mode 100644
index 000000000000..87b353cdcbf3
--- /dev/null
+++ b/lang/ghc5/files/patch-aa
@@ -0,0 +1,19 @@
+*** ghc/driver/ghc-asm.lprl~ Sat Aug 26 23:25:46 2000
+--- ghc/driver/ghc-asm.lprl Sat Aug 26 23:26:11 2000
+***************
+*** 954,960 ****
+ }
+ print OUTASM $T_HDR_consist, "${consist}${T_POST_LBL}\n";
+
+! } elsif ( $TargetPlatform !~ /^(mips)-/ ) { # we just don't try in those case (ToDo)
+ # on mips: consistency string is just a v
+ # horrible bunch of .bytes,
+ # which I am too lazy to sort out (WDP 95/05)
+--- 954,960 ----
+ }
+ print OUTASM $T_HDR_consist, "${consist}${T_POST_LBL}\n";
+
+! } elsif ( $TargetPlatform !~ /mips|freebsd/ ) { # we just don't try in those case (ToDo)
+ # on mips: consistency string is just a v
+ # horrible bunch of .bytes,
+ # which I am too lazy to sort out (WDP 95/05)
diff --git a/lang/ghc5/files/patch-ab b/lang/ghc5/files/patch-ab
new file mode 100644
index 000000000000..20f3a9be98ae
--- /dev/null
+++ b/lang/ghc5/files/patch-ab
@@ -0,0 +1,100 @@
+*** mk/config.mk.in~ Thu Jun 1 12:02:31 2000
+--- mk/config.mk.in Sat Sep 2 16:35:34 2000
+***************
+*** 365,371 ****
+ # this in build.mk or set your environment variable "TMPDIR" to point
+ # to somewhere with more space. (TMPDIR=. is a good choice).
+
+! TMPDIR = /tmp
+
+ # FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
+
+--- 365,371 ----
+ # this in build.mk or set your environment variable "TMPDIR" to point
+ # to somewhere with more space. (TMPDIR=. is a good choice).
+
+! GHC_TMPDIR = /tmp
+
+ # FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
+
+*** ghc/driver/Makefile~ Thu Apr 27 12:04:37 2000
+--- ghc/driver/Makefile Sat Sep 2 16:35:43 2000
+***************
+*** 65,71 ****
+ ifeq "$(BIN_DIST)" "1"
+ SCRIPT_PREFIX_FILES=prefix.txt
+ else
+! SCRIPT_SUBST_VARS += libdir includedir libexecdir datadir bindir TMPDIR TOP_PWD
+ endif
+
+ all :: $(DYN_LOADABLE_BITS)
+--- 65,71 ----
+ ifeq "$(BIN_DIST)" "1"
+ SCRIPT_PREFIX_FILES=prefix.txt
+ else
+! SCRIPT_SUBST_VARS += libdir includedir libexecdir datadir bindir GHC_TMPDIR TOP_PWD
+ endif
+
+ all :: $(DYN_LOADABLE_BITS)
+*** ghc/driver/ghc.lprl~ Wed Aug 9 14:55:39 2000
+--- ghc/driver/ghc.lprl Sat Sep 2 16:56:16 2000
+***************
+*** 108,114 ****
+
+ bindir libdir libexecdir datadir
+
+! CURRENT_DIR TMPDIR
+
+ GHC_LIB_DIR GHC_RUNTIME_DIR GHC_INCLUDE_DIR
+
+--- 108,114 ----
+
+ bindir libdir libexecdir datadir
+
+! CURRENT_DIR GHC_TMPDIR
+
+ GHC_LIB_DIR GHC_RUNTIME_DIR GHC_INCLUDE_DIR
+
+***************
+*** 157,177 ****
+ @INC = ( ( $INSTALLING ) ? $InstLibDirGhc
+ : "$TopPwd/${CURRENT_DIR}" );
+
+! $ENV{'TMPDIR'} = $TMPDIR if $TargetPlatform =~ /^.*(cygwin32|mingw32)$/;
+! if ( $ENV{'TMPDIR'} ) { # where to make tmp file names
+! # Try to find a $Tmp_prefix which isn't being used...
+! $tmp = $$;
+! do {
+! $Tmp_prefix = ($ENV{'TMPDIR'} . "/ghc$tmp");
+! $tmp++;
+! } while ( -e "$Tmp_prefix.hc" ||
+! -e "$Tmp_Prefix.s" ||
+! -e "$Tmp_Prefix.hi" );
+! } else {
+! print STDERR "TMPDIR has not been set to anything useful!\n" if (${TMPDIR} eq '');
+! $Tmp_prefix ="${TMPDIR}/ghc$$"; # TMPDIR set via Makefile when booting..
+! $ENV{'TMPDIR'} = ${TMPDIR}; # set the env var as well
+ }
+
+ # Some shells run into real trouble when command line and environment
+ # gets big (e.g., cmd lines of >4K to /bin/sh causes havoc on our
+--- 157,177 ----
+ @INC = ( ( $INSTALLING ) ? $InstLibDirGhc
+ : "$TopPwd/${CURRENT_DIR}" );
+
+! $ENV{'TMPDIR'} = ${GHC_TMPDIR} if $TargetPlatform =~ /^.*(cygwin32|mingw32)$/;
+! if ( ! $ENV{'TMPDIR'} ) {
+! print STDERR "TMPDIR has not been set to anything useful!\n" if (${GHC_TMPDIR} eq '');
+! $ENV{'TMPDIR'} = ${GHC_TMPDIR}; # set the env var as well
+ }
++ # Try to find a $Tmp_prefix which isn't being used...
++ $tmp = $$;
++ do {
++ $Tmp_prefix = ($ENV{'TMPDIR'} . "/ghc$tmp");
++ $tmp++;
++ } while ( -e "$Tmp_prefix.hc" ||
++ -e "$Tmp_Prefix.s" ||
++ -e "$Tmp_Prefix.hi" );
+
+ # Some shells run into real trouble when command line and environment
+ # gets big (e.g., cmd lines of >4K to /bin/sh causes havoc on our
diff --git a/lang/ghc5/pkg-plist b/lang/ghc5/pkg-plist
index db32441cc732..c56fe8a24786 100644
--- a/lang/ghc5/pkg-plist
+++ b/lang/ghc5/pkg-plist
@@ -1,5 +1,5 @@
bin/ghc
-bin/ghc-4.08
+bin/ghc-4.08.1
bin/ghcprof
bin/hp2ps
bin/stat2resid
diff --git a/lang/ghc6/Makefile b/lang/ghc6/Makefile
index c1e181c16e1c..7f125b8bf238 100644
--- a/lang/ghc6/Makefile
+++ b/lang/ghc6/Makefile
@@ -5,9 +5,9 @@
# $FreeBSD$
PORTNAME= ghc
-PORTVERSION= 4.08
+PORTVERSION= 4.08.1
CATEGORIES= lang
-MASTER_SITES= http://www.haskell.org/ghc/dist/4.08/
+MASTER_SITES= http://www.haskell.org/ghc/dist/4.08.1/
DISTFILES= ghc-${PORTVERSION}-src${EXTRACT_SUFX} \
ghc-${PORTVERSION}-x86-hc${EXTRACT_SUFX}
@@ -23,6 +23,12 @@ CONFIGURE_TARGET=
WRKSRC= ${WRKDIR}/fptools
+# override TMPDIR because /tmp often doesn't have enough space
+# to build some of the larger libraries.
+TMPDIR = ${WRKSRC}/tmp
+MAKE_ENV += TMPDIR=${TMPDIR}
+
+
# Note:
# - This port will bootstrap from pre-compiled C files.
# - ToDo: bootstrap using existing compiler, if one is installed.
@@ -31,17 +37,34 @@ WRKSRC= ${WRKDIR}/fptools
# switch to non-bootstrapping mode for installation, the build system
# won't try to create them.
#
-pre-build:
+BOOT_COOKIE = ${WRKDIR}/.boot_done
+
+${BOOT_COOKIE}:
+ @${MKDIR} ${TMPDIR}
@${CP} ${FILESDIR}/build.mk ${WRKSRC}/mk
@${TOUCH} ${TOUCH_FLAGS} ${WRKSRC}/ghc/compiler/rename/ParseIface.hs
@${TOUCH} ${TOUCH_FLAGS} ${WRKSRC}/ghc/compiler/parser/Parser.hs
@(cd ${WRKSRC}/glafp-utils; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
@(cd ${WRKSRC}/ghc; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
@(cd ${WRKSRC}/hslibs; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} boot)
+ @${TOUCH} ${TOUCH_FLAGS} ${BOOT_COOKIE}
+
+pre-build: ${BOOT_COOKIE}
-post-build:
+# After building the compiler, we go back and build the libraries from
+# source using the compiler we just built. We also build profiling
+# versions of the libraries at this point.
+
+REAL_LIBS_COOKIE = ${WRKDIR}/.real_libs_done
+
+${REAL_LIBS_COOKIE}:
@echo "GhcWithHscBuiltViaC=NO" >>${WRKSRC}/mk/build.mk
+ @echo "GhcLibWays=p" >>${WRKSRC}/mk/build.mk
+ @(cd ${WRKSRC}/ghc/rts; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
@(cd ${WRKSRC}/ghc/lib; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
@(cd ${WRKSRC}/hslibs; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean boot all)
+ @${TOUCH} ${TOUCH_FLAGS} ${REAL_LIBS_COOKIE}
+
+post-build: ${REAL_LIBS_COOKIE}
.include <bsd.port.mk>
diff --git a/lang/ghc6/distinfo b/lang/ghc6/distinfo
index 3a8e0f44598c..3ebbea2b26d4 100644
--- a/lang/ghc6/distinfo
+++ b/lang/ghc6/distinfo
@@ -1,2 +1,2 @@
-MD5 (ghc-4.08-src.tar.gz) = 624af8e537fdaacb12719c0e5af080b5
-MD5 (ghc-4.08-x86-hc.tar.gz) = 3fc776f3963a6821720e7ae203b80529
+MD5 (ghc-4.08.1-src.tar.gz) = f2c4a579c186102239411efea17c963c
+MD5 (ghc-4.08.1-x86-hc.tar.gz) = b1d18eeb3f5fdb02a85ef24b40d1bf0d
diff --git a/lang/ghc6/files/build.mk b/lang/ghc6/files/build.mk
index af3ed3e53007..73a6f53ea26a 100644
--- a/lang/ghc6/files/build.mk
+++ b/lang/ghc6/files/build.mk
@@ -1,5 +1,5 @@
ProjectsToBuild = glafp-utils hslibs ghc
GhcLibHcOpts = -O -split-objs -H32m
SRC_HAPPY_OPTS += -c
-GhcLibWays=p
+GhcLibWays=
GhcLibsWithReadline = YES
diff --git a/lang/ghc6/files/patch-aa b/lang/ghc6/files/patch-aa
new file mode 100644
index 000000000000..87b353cdcbf3
--- /dev/null
+++ b/lang/ghc6/files/patch-aa
@@ -0,0 +1,19 @@
+*** ghc/driver/ghc-asm.lprl~ Sat Aug 26 23:25:46 2000
+--- ghc/driver/ghc-asm.lprl Sat Aug 26 23:26:11 2000
+***************
+*** 954,960 ****
+ }
+ print OUTASM $T_HDR_consist, "${consist}${T_POST_LBL}\n";
+
+! } elsif ( $TargetPlatform !~ /^(mips)-/ ) { # we just don't try in those case (ToDo)
+ # on mips: consistency string is just a v
+ # horrible bunch of .bytes,
+ # which I am too lazy to sort out (WDP 95/05)
+--- 954,960 ----
+ }
+ print OUTASM $T_HDR_consist, "${consist}${T_POST_LBL}\n";
+
+! } elsif ( $TargetPlatform !~ /mips|freebsd/ ) { # we just don't try in those case (ToDo)
+ # on mips: consistency string is just a v
+ # horrible bunch of .bytes,
+ # which I am too lazy to sort out (WDP 95/05)
diff --git a/lang/ghc6/files/patch-ab b/lang/ghc6/files/patch-ab
new file mode 100644
index 000000000000..20f3a9be98ae
--- /dev/null
+++ b/lang/ghc6/files/patch-ab
@@ -0,0 +1,100 @@
+*** mk/config.mk.in~ Thu Jun 1 12:02:31 2000
+--- mk/config.mk.in Sat Sep 2 16:35:34 2000
+***************
+*** 365,371 ****
+ # this in build.mk or set your environment variable "TMPDIR" to point
+ # to somewhere with more space. (TMPDIR=. is a good choice).
+
+! TMPDIR = /tmp
+
+ # FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
+
+--- 365,371 ----
+ # this in build.mk or set your environment variable "TMPDIR" to point
+ # to somewhere with more space. (TMPDIR=. is a good choice).
+
+! GHC_TMPDIR = /tmp
+
+ # FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
+
+*** ghc/driver/Makefile~ Thu Apr 27 12:04:37 2000
+--- ghc/driver/Makefile Sat Sep 2 16:35:43 2000
+***************
+*** 65,71 ****
+ ifeq "$(BIN_DIST)" "1"
+ SCRIPT_PREFIX_FILES=prefix.txt
+ else
+! SCRIPT_SUBST_VARS += libdir includedir libexecdir datadir bindir TMPDIR TOP_PWD
+ endif
+
+ all :: $(DYN_LOADABLE_BITS)
+--- 65,71 ----
+ ifeq "$(BIN_DIST)" "1"
+ SCRIPT_PREFIX_FILES=prefix.txt
+ else
+! SCRIPT_SUBST_VARS += libdir includedir libexecdir datadir bindir GHC_TMPDIR TOP_PWD
+ endif
+
+ all :: $(DYN_LOADABLE_BITS)
+*** ghc/driver/ghc.lprl~ Wed Aug 9 14:55:39 2000
+--- ghc/driver/ghc.lprl Sat Sep 2 16:56:16 2000
+***************
+*** 108,114 ****
+
+ bindir libdir libexecdir datadir
+
+! CURRENT_DIR TMPDIR
+
+ GHC_LIB_DIR GHC_RUNTIME_DIR GHC_INCLUDE_DIR
+
+--- 108,114 ----
+
+ bindir libdir libexecdir datadir
+
+! CURRENT_DIR GHC_TMPDIR
+
+ GHC_LIB_DIR GHC_RUNTIME_DIR GHC_INCLUDE_DIR
+
+***************
+*** 157,177 ****
+ @INC = ( ( $INSTALLING ) ? $InstLibDirGhc
+ : "$TopPwd/${CURRENT_DIR}" );
+
+! $ENV{'TMPDIR'} = $TMPDIR if $TargetPlatform =~ /^.*(cygwin32|mingw32)$/;
+! if ( $ENV{'TMPDIR'} ) { # where to make tmp file names
+! # Try to find a $Tmp_prefix which isn't being used...
+! $tmp = $$;
+! do {
+! $Tmp_prefix = ($ENV{'TMPDIR'} . "/ghc$tmp");
+! $tmp++;
+! } while ( -e "$Tmp_prefix.hc" ||
+! -e "$Tmp_Prefix.s" ||
+! -e "$Tmp_Prefix.hi" );
+! } else {
+! print STDERR "TMPDIR has not been set to anything useful!\n" if (${TMPDIR} eq '');
+! $Tmp_prefix ="${TMPDIR}/ghc$$"; # TMPDIR set via Makefile when booting..
+! $ENV{'TMPDIR'} = ${TMPDIR}; # set the env var as well
+ }
+
+ # Some shells run into real trouble when command line and environment
+ # gets big (e.g., cmd lines of >4K to /bin/sh causes havoc on our
+--- 157,177 ----
+ @INC = ( ( $INSTALLING ) ? $InstLibDirGhc
+ : "$TopPwd/${CURRENT_DIR}" );
+
+! $ENV{'TMPDIR'} = ${GHC_TMPDIR} if $TargetPlatform =~ /^.*(cygwin32|mingw32)$/;
+! if ( ! $ENV{'TMPDIR'} ) {
+! print STDERR "TMPDIR has not been set to anything useful!\n" if (${GHC_TMPDIR} eq '');
+! $ENV{'TMPDIR'} = ${GHC_TMPDIR}; # set the env var as well
+ }
++ # Try to find a $Tmp_prefix which isn't being used...
++ $tmp = $$;
++ do {
++ $Tmp_prefix = ($ENV{'TMPDIR'} . "/ghc$tmp");
++ $tmp++;
++ } while ( -e "$Tmp_prefix.hc" ||
++ -e "$Tmp_Prefix.s" ||
++ -e "$Tmp_Prefix.hi" );
+
+ # Some shells run into real trouble when command line and environment
+ # gets big (e.g., cmd lines of >4K to /bin/sh causes havoc on our
diff --git a/lang/ghc6/pkg-plist b/lang/ghc6/pkg-plist
index db32441cc732..c56fe8a24786 100644
--- a/lang/ghc6/pkg-plist
+++ b/lang/ghc6/pkg-plist
@@ -1,5 +1,5 @@
bin/ghc
-bin/ghc-4.08
+bin/ghc-4.08.1
bin/ghcprof
bin/hp2ps
bin/stat2resid