Revision: 38721 http://trac.macosforge.org/projects/macports/changeset/38721 Author: landonf@macports.org Date: 2008-07-29 11:25:43 -0700 (Tue, 29 Jul 2008) Log Message: ----------- Add FSharp, Microsoft's typed functional programming language with a great many similarities to OCaml. Added Paths: ----------- trunk/dports/lang/fsharp/ trunk/dports/lang/fsharp/Portfile Added: trunk/dports/lang/fsharp/Portfile =================================================================== --- trunk/dports/lang/fsharp/Portfile (rev 0) +++ trunk/dports/lang/fsharp/Portfile 2008-07-29 18:25:43 UTC (rev 38721) @@ -0,0 +1,64 @@ +# $Id: $ + +PortSystem 1.0 +name fsharp +version 1.9.4.19 +categories lang +maintainers landonf openmaintainer +description F# is a typed functional programming language. +long_description F# is a typed functional programming language \ + for the .NET Framework. It combines the succinctness, \ + expressivity, and compositionality of typed functional \ + programming with the runtime support, libraries, \ + interoperability, tools and object model of .NET. \ + F# stems from the ML family of languages and has a \ + core language compatible with that of OCaml, though \ + also draws from C# and Haskell. +homepage http://research.microsoft.com/fsharp/fsharp.aspx +platforms darwin + +use_zip yes + +master_sites ftp://ftp.research.microsoft.com/downloads/6f48a466-4294-4973-9e15-25e0ddff422f +checksums md5 d51c93d29599540a957f94ff387e65fa \ + sha1 655a790fd98f7b68c19722b0a29e9d1048c39e0f + +depends_lib port:mono + +worksrcdir FSharp-${version} + +use_configure no + +post-patch { + reinplace "s|gacutil -i|gacutil -i -root ${destroot}/${prefix}/lib/|g" ${worksrcpath}/install-mono.sh + reinplace "s|^echo.*||g" ${worksrcpath}/install-mono.sh +} + +build { +} + +destroot { + # Install the assemblies + system "cd ${worksrcpath} && bash install-mono.sh" + + # Copy the entire lot to ${prefix}/share + set sharedir ${prefix}/share/fsharp-${version} + file copy ${worksrcpath} ${destroot}/${sharedir} + + # Create launchers for the binaries + foreach binary [glob -dir ${worksrcpath}/bin *.exe] { + set destfile [file join "${destroot}/${prefix}/bin/" [file tail [file rootname $binary]]] + set linkdest [file join ${sharedir}/bin/ [file tail $binary]] + + # Write the launcher script + set fd [open ${destfile} "w"] + puts $fd "#/bin/sh" + puts $fd "if \[ -z \$DYLD_FALLBACK_LIBRARY_PATH \]; then" + puts $fd " export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib:/lib:/usr/lib:${prefix}/lib" + puts $fd "fi" + puts $fd "exec ${prefix}/bin/mono ${linkdest} \$\*" + close $fd + + system "chmod +x ${destfile}" + } +}