Hi Simon.

The ghc package has been commited to the netbsd cvs repository
and is now available in pkgsrc as lang/ghc.
        
        ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/lang/ghc

Simon Marlow <[EMAIL PROTECTED]> writes:

> By the way, did you also modify fptools/configure.in in order to get the
> netbsd-elf target?


Yes, I did, however it's done in a way that is somewhat dependent on pkg magic,
i.e:

--- /p/lang/ghc/old/fptools/configure.in        Wed Sep 15 09:03:35 1999
+++ configure.in        Wed Dec 15 16:37:23 1999
@@ -138,7 +138,16 @@
         HostPlatform_CPP='i386_unknown_netbsd'
         HostArch_CPP='i386'
         HostVendor_CPP='unknown'
-        HostOS_CPP='netbsd'
+       if test "$HASKELL_OBJ_FMT" = "a.out"; then
+               HostOS_CPP='netbsd'
+       else
+               if test "$HASKELL_OBJ_FMT" = "ELF"; then
+                       HostOS_CPP='netbsd_elf'
+               else
+                       echo bad \$HASKELL_OBJ_FMT = "$HASKELL_OBJ_FMT"
+                       exit 1
+               fi
+       fi
         ;;
 i[[3456]]86-*-solaris2*)
        HostPlatform=i386-unknown-solaris2 # hack again

Here's the pkg Makefile (with a few targets removed) that defines
HASKELL_OBJ_FMT. the nature of the ghc.lprl hackage is
self-evident. It would be nice to be able to pass the default ghc
compiler link paths in via configure.

Keep well,
Julian.

# $NetBSD$

DISTNAME=       ghc-4.04
CATEGORIES=     lang
MASTER_SITES=   http://www.haskell.org/ghc/dist/4.04/
DISTFILES=      ghc-4.04-src.tar.gz ghc-4.04-x86-hc.tar.gz

MAINTAINER=     [EMAIL PROTECTED]
HOMEPAGE=       http://www.haskell.org/ghc/

DEPENDS+=       readline-4.0:../../devel/readline
DEPENDS+=       gmp-2.0.2:../../devel/gmp

USE_PERL5=      yes
USE_GMAKE=      yes
GNU_CONFIGURE=  yes

CONFIGURE_ARGS+= --enable-hc-boot --libdir=${PREFIX}/lib/ghc
CONFIGURE_ENV+= HASKELL_OBJ_FMT=`cat ${WRKDIR}/obj_fmt`
WRKSRC=         ${WRKDIR}/fptools

pre-configure:
        (       lnl=${WRKDIR}/longandlow; \
                ${ECHO} 'int main(){exit(0);}' > $$lnl.c && \
                ${CC} $$lnl.c -o $$lnl && \
                file $$lnl | ( ${EGREP} '[^a-zA-Z][Ee][Ll][Ff][^a-zA-Z]' && \
                ${ECHO} ELF || ${ECHO} a.out ) \
        ) > ${WRKDIR}/obj_fmt

        ${SED} < ${WRKSRC}/ghc/driver/ghc.lprl \
               > ${WRKSRC}/ghc/driver/ghc.lprl.hacked \
                '/push(@SysLibrary, "-l$LibGmp")/s%^%push(@SysLibrary, 
"-L'${LOCALBASE}/lib'");%' && \
                ${MV} -f ${WRKSRC}/ghc/driver/ghc.lprl.hacked \
                        ${WRKSRC}/ghc/driver/ghc.lprl

Reply via email to