From 7ae3a78d483f3ef1fb328821b1028b6c78c80ec8 Mon Sep 17 00:00:00 2001 From: Ade Lovett Date: Fri, 13 Oct 2000 20:17:46 +0000 Subject: [PATCH] Update to 4.08.1 PR: 21502 Submitted by: maintainer --- lang/ghc/Makefile | 31 ++++++++++-- lang/ghc/distinfo | 4 +- lang/ghc/files/build.mk | 2 +- lang/ghc/files/patch-aa | 19 ++++++++ lang/ghc/files/patch-ab | 100 +++++++++++++++++++++++++++++++++++++++ lang/ghc/pkg-plist | 2 +- lang/ghc5/Makefile | 31 ++++++++++-- lang/ghc5/distinfo | 4 +- lang/ghc5/files/build.mk | 2 +- lang/ghc5/files/patch-aa | 19 ++++++++ lang/ghc5/files/patch-ab | 100 +++++++++++++++++++++++++++++++++++++++ lang/ghc5/pkg-plist | 2 +- lang/ghc6/Makefile | 31 ++++++++++-- lang/ghc6/distinfo | 4 +- lang/ghc6/files/build.mk | 2 +- lang/ghc6/files/patch-aa | 19 ++++++++ lang/ghc6/files/patch-ab | 100 +++++++++++++++++++++++++++++++++++++++ lang/ghc6/pkg-plist | 2 +- 18 files changed, 450 insertions(+), 24 deletions(-) create mode 100644 lang/ghc/files/patch-aa create mode 100644 lang/ghc/files/patch-ab create mode 100644 lang/ghc5/files/patch-aa create mode 100644 lang/ghc5/files/patch-ab create mode 100644 lang/ghc6/files/patch-aa create mode 100644 lang/ghc6/files/patch-ab 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} -post-build: +pre-build: ${BOOT_COOKIE} + +# 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 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} -post-build: +pre-build: ${BOOT_COOKIE} + +# 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 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} -post-build: +pre-build: ${BOOT_COOKIE} + +# 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 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