X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Makefile;h=fed43ba4311678b3fd79a210dca4e780a119a228;hb=733c1f4b67e98ad825b20943e350a73bbcc4a90d;hp=404cb0a1b4e8d13dd4c052111a5bbe152d914793;hpb=302c1de32c108c9e86360d2413fa25732879a195;p=pkgsrc-ghc.git diff --git a/Makefile b/Makefile index 404cb0a..fed43ba 100644 --- a/Makefile +++ b/Makefile @@ -1,40 +1,40 @@ # $NetBSD: Makefile,v 1.42 2008/07/07 14:58:00 kristerw Exp $ -DISTNAME= ghc-${VERSION} -VERSION= 7.4.1 -CATEGORIES= lang +DISTNAME= ghc-${VERSION} +VERSION= 7.4.1 +CATEGORIES= lang MASTER_SITES= http://www.haskell.org/ghc/dist/${VERSION}/ -MAINTAINER= kristerw@NetBSD.org -HOMEPAGE= http://www.haskell.org/ghc/ -COMMENT= Compiler for the functional language Haskell -LICENSE= modified-bsd +MAINTAINER= kristerw@NetBSD.org +HOMEPAGE= http://www.haskell.org/ghc/ +COMMENT= Compiler for the functional language Haskell +LICENSE= modified-bsd -DISTFILES= ${DISTNAME}-src.tar.bz2 -DISTFILES+= ${DISTNAME}-boot-i386-unknown-freebsd.tar.bz2 -#DISTFILES+= ${DISTNAME}-boot-i386-unknown-netbsd.tar.bz2 -DISTFILES+= ${DISTNAME}-boot-powerpc-apple-darwin.tar.bz2 +DISTFILES= ${DISTNAME}-src.tar.bz2 +DISTFILES+= ${DISTNAME}-boot-i386-unknown-freebsd8.0.tar.bz2 +DISTFILES+= ${DISTNAME}-boot-i386-unknown-netbsdelf6.99.1.tar.bz2 +DISTFILES+= ${DISTNAME}-boot-powerpc-apple-darwin9.8.0.tar.bz2 -SITES.${DISTNAME}-boot-i386-unknown-netbsd.tar.bz2 = http://static.cielonegro.org/archive/ -SITES.${DISTNAME}-boot-i386-unknown-freebsd.tar.bz2 = http://static.cielonegro.org/archive/ -SITES.${DISTNAME}-boot-powerpc-apple-darwin.tar.bz2 = http://static.cielonegro.org/archive/ +.for i in ${DISTFILES:M*-boot-*} +SITES.${i}= http://static.cielonegro.org/archive/ +.endfor PKG_DESTDIR_SUPPORT= user-destdir -.include "../../mk/bsd.prefs.mk" - -# Unregisterised HC packages are architecture dependent. We have to -# create more HC packages to support more architectures. Note that -# these packages are built with integer-simple, not integer-gmp, to -# reduce some complexity by not depending on the GMP. The resulting -# registerised GHC uses integer-gmp so this won't be a problem. +# Unregisterised HC packages are platform-dependent C sources. Yes, +# they are C sources but are totally non-portable. We have to create +# more HC packages to support more platforms. Note that those packages +# are built with integer-simple, not integer-gmp, to reduce some +# complexity by not depending on the GMP. The resulting registerised +# GHC uses integer-gmp so this won't be a problem. # # If you want to build HC packages yourself, follow instructions in # the ./TODO file. ONLY_FOR_PLATFORM= NetBSD-*-i386 FreeBSD-*-i386 Darwin-*-powerpc -# We must provide the real pass to gcc to the ./configure script, +# We must provide the real path to gcc to the ./configure script, # because GHC has a runtime dependency on it. Aren't there any ways # better than this? +.include "../../mk/bsd.prefs.mk" .include "../../mk/compiler.mk" .if empty(CCPATH) WARNINGS+= "This package depends on pkgsrc's undocumented variable \ @@ -45,8 +45,8 @@ CONFIGURE_ARGS+= --with-gcc=/usr/bin/gcc CONFIGURE_ARGS+= --with-gcc=${CCPATH} .endif -USE_TOOLS+= autoconf date gmake gtar perl perl:run -CONFIGURE_ENV+= PerlCmd=${PERL5:Q} +USE_TOOLS+= autoconf date gmake gtar perl perl:run +CONFIGURE_ENV+= PerlCmd=${PERL5:Q} # We don't want to extract all of the DISTFILEs. EXTRACT_ONLY= ${DISTNAME}-src.tar.bz2 @@ -68,22 +68,25 @@ CONFIGURE_ARGS += \ # # To install it, we just copy ghc and ghc-pkg from # "work/bootstrap/ghc-${VERSION}/inplace/bin" to -# "${BUILDLINK_DIR}/bin". Note that in-place ghc isn't usable before -# running "ghc-pkg recache". +# "${BUILDLINK_DIR}/bin". Note that in-place ghc isn't usable until we +# run "ghc-pkg recache". .if ${MACHINE_ARCH} == "i386" && ${OPSYS} == "NetBSD" BOOTSTRAP_BUILD_MK = ${PKGDIR}/files/bootstrap-bsd.mk BOOTSTRAP_CAPI_C = ${PKGDIR}/files/capi-wrappers-netbsd-i386.c +BOOTSTRAP_TARBALL = ${DISTNAME}-boot-i386-unknown-netbsdelf6.99.1.tar.bz2 PLATFORM = i386-unknown-netbsd .elif ${MACHINE_ARCH} == "i386" && ${OPSYS} == "FreeBSD" BOOTSTRAP_BUILD_MK = ${PKGDIR}/files/bootstrap-bsd.mk BOOTSTRAP_CAPI_C = ${PKGDIR}/files/capi-wrappers-freebsd-i386.c +BOOTSTRAP_TARBALL = ${DISTNAME}-boot-i386-unknown-freebsd8.0.tar.bz2 PLATFORM = i386-unknown-freebsd .elif ${MACHINE_ARCH} == "powerpc" && ${OPSYS} == "Darwin" BOOTSTRAP_BUILD_MK = ${PKGDIR}/files/bootstrap.mk BOOTSTRAP_CAPI_C = ${PKGDIR}/files/capi-wrappers-darwin-powerpc.c +BOOTSTRAP_TARBALL = ${DISTNAME}-boot-i386-unknown-darwin9.8.0.tar.bz2 PLATFORM = powerpc-apple-darwin # Existence of libelf makes LeadingUnderscore being "NO", which is # incorrect for this platform. See ghc-6.12.1/aclocal.m4 @@ -94,8 +97,7 @@ CONFLICTS= libelf-[0-9]* PKG_FAIL_REASON+= "internal error: unsupported platform" .endif -BOOTSTRAP_TARBALL = ${DISTNAME}-boot-${PLATFORM}.tar.bz2 -BOOTSTRAP_MAIN_C = ${PKGDIR}/files/bootstrap-main.c +BOOTSTRAP_MAIN_C= ${PKGDIR}/files/bootstrap-main.c pre-configure: ${WRKDIR}/stamp-bootstrap-ghc @@ -135,7 +137,21 @@ ${WRKDIR}/stamp-extract-hc: ${WRKDIR}/stamp-configure-hc-boot ${WRKDIR}/stamp-rewrite-hc-paths: ${WRKDIR}/stamp-extract-hc ${RUN} cd ${WRKDIR}/bootstrap/${DISTNAME} && \ ${PHASE_MSG} "Rewriting source paths in bootstrapping compiler for ${PKGNAME}" && \ - ${SED} -e "s#\\[\\[PREFIX\\]\\]#${PREFIX}#g" ${BOOTSTRAP_BUILD_MK} > mk/build.mk && \ + ${SED} -e "s#\\[\\[PREFIX\\]\\]#${PREFIX}#g" ${BOOTSTRAP_BUILD_MK} > mk/build.mk +.if ${MACHINE_ARCH} == "i386" && ${OPSYS} == "NetBSD" +# Unregisterised stage0 compiler gets too large (.text section being +# over 64 MiB) without dead-code elimination, exceeding NetBSD/i386's +# kernel default limitation. +# Note that stage1 currently doesn't bloat that much (about 42.6 +# MiB), but when it does we have to append +# CONF_CC_OPTS_STAGE1="-fdata..." and +# CONF_GCC_LINKER_OPTS_STAGE1="-Wl,--gc-sections" to CONFIGURE_ENV as +# well. I guess that's a matter of time :( + ${RUN} cd ${WRKDIR}/bootstrap/${DISTNAME} && \ + ${ECHO} "EXTRA_CC_OPTS += -fdata-sections -ffunction-sections" >> mk/build.mk && \ + ${ECHO} "EXTRA_CC_OPTS += -Wl,--gc-sections" >> mk/build.mk +.endif + ${RUN} cd ${WRKDIR}/bootstrap/${DISTNAME} && \ for c in libraries/*/configure; do \ (cd `${DIRNAME} $$c` && ${SETENV} ${CONFIGURE_ENV} ${SH} configure ${CONFIGURE_ARGS}); \ done && \ @@ -160,12 +176,12 @@ ${WRKDIR}/stamp-rewrite-hc-paths: ${WRKDIR}/stamp-extract-hc ${WRKDIR}/stamp-bootstrap-ghc: ${WRKDIR}/stamp-rewrite-hc-paths ${RUN} cd ${WRKDIR}/bootstrap/${DISTNAME} && \ ${PHASE_MSG} "Creating bootstrapping files for ${PKGNAME}" && \ - ${GMAKE} bootstrapping-files && \ + ${BUILD_MAKE_CMD} bootstrapping-files && \ ${PHASE_MSG} "Building bootstrapping compiler for ${PKGNAME}" && \ - ${GMAKE} all_ghc_stage2 && \ + ${BUILD_MAKE_CMD} all_ghc_stage2 && \ ${PHASE_MSG} "Building bootstrapping toolkit for ${PKGNAME}" && \ - ${GMAKE} inplace/bin/ghc-pkg && \ - ${GMAKE} inplace/lib/unlit && \ + ${BUILD_MAKE_CMD} inplace/bin/ghc-pkg && \ + ${BUILD_MAKE_CMD} inplace/lib/unlit && \ inplace/bin/ghc-pkg recache && \ ${CP} -f inplace/bin/ghc-stage2 ${BUILDLINK_DIR}/bin/ghc && \ ${CP} -f inplace/bin/ghc-pkg ${BUILDLINK_DIR}/bin/ghc-pkg && \