Index: Portfile
===================================================================
--- Portfile	(revision 144253)
+++ Portfile	(working copy)
@@ -3,10 +3,10 @@
 
 PortSystem          1.0
 PortGroup python    1.0
+PortGroup compilers 1.0
 
 name                py-ngl
-version             1.3.0b1
-revision            1
+version             1.4.0
 categories-append   science
 platforms           darwin
 license             PyNGL
@@ -15,7 +15,7 @@
 description         Python module to visualize scientific data
 long_description \
     PyNGL is a Python language module used to visualize scientific data, \
-    with an emphasis on high quality 2D visualizations.
+    with an emphasis on high-quality 2D visualizations.
 
 homepage            http://www.pyngl.ucar.edu/
 master_sites        http://www.pyngl.ucar.edu/Download/
@@ -25,14 +25,6 @@
                     sha1    76bbb03c05f0acb1591172543d3decc7c4397422 \
                     rmd160  bd4357d46af0a723cd81c16bdb0ecc3df03fa6a2
 
-fetch {
-    if {![file exists ${distpath}/${distfiles}]} {
-        xinstall -d ${distpath}
-        ui_error "Download ${distfiles} manually and place it in ${distpath}.\n \
-            See instructions on ${master_sites}"
-    }
-}
-
 python.versions     26 27
 
 if {${name} ne ${subport}} {
@@ -41,7 +33,7 @@
                         port:xorg-libX11 \
                         port:py${python.version}-nio
 
-    # ncarg is not universal, thus py-ngl is neither
+    # ncarg is not universal, thus py-ngl isn't either
     universal_variant   no
 
     patch {
@@ -52,82 +44,23 @@
 
     build.env           PNG_PREFIX=${prefix} \
                         ZLIB_PREFIX=${prefix} \
-                        NCARG_ROOT=${prefix}
+                        NCARG_ROOT=${prefix} \
+                        CC=${configure.cc}
 
     destroot.env        NCARG_ROOT=${prefix}
 
-    set gcc_versions {4.3 4.4 4.5 4.6 4.7 4.8 4.9}
-    set default_fortran_variant +gcc48
-    set g95_conflicts {}
+    compilers.choose    fc f77 f90
+    compilers.setup     require_fortran -dragonegg
 
-    foreach ver ${gcc_versions} {
-        set ver_no_dot [join [split ${ver} "."] ""]
-
-        set variant_line {variant gcc${ver_no_dot} description "build with gfortran from gcc${ver_no_dot}" conflicts g95}
-
-        foreach over ${gcc_versions} {
-            if {${ver} == ${over}} {
-                continue
-            }
-
-            set over_no_dot [join [split ${over} "."] ""]
-            append variant_line " conflicts gcc${over_no_dot}"
-        }
-        append variant_line { {}}
-
-        eval $variant_line
-
-        append g95_conflicts " conflicts gcc${ver_no_dot}"
-
-        if {[variant_isset gcc${ver_no_dot}]} {
-            if {${default_fortran_variant} ne "+gcc${ver_no_dot}"} {
-                set default_fortran_variant ""
-            }
-        }
-    }
-
-    eval [concat {variant g95 description {build with g95}} $g95_conflicts {{}}]
-
-    if {[variant_isset g95]} {
-        if {${default_fortran_variant} ne "+g95"} {
-            set default_fortran_variant ""
-        }
-    }
-
-    if {${default_fortran_variant} ne ""} {
-        default_variants-append "${default_fortran_variant}"
-    }
-
-    foreach ver ${gcc_versions} {
-        set ver_no_dot [join [split ${ver} "."] ""]
-
-        if {[variant_isset gcc${ver_no_dot}]} {
-            depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
-            depends_build-append port:gcc${ver_no_dot}
-
-            configure.fc  ${prefix}/bin/gfortran-mp-${ver}
-            configure.f77 ${prefix}/bin/gfortran-mp-${ver}
-            configure.f90 ${prefix}/bin/gfortran-mp-${ver}
-
-            build.env-append    F2CLIBS=gfortran \
-                                F2CLIBS_PREFIX=${prefix}/lib/gcc${ver_no_dot} \
-                                CC=${configure.cc}
-        }
-    }
-
-    if {[variant_isset g95]} {
-        depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
-        depends_build-append port:g95
-
-        configure.fc ${prefix}/bin/g95
-        configure.f77 ${prefix}/bin/g95
-        configure.f90 ${prefix}/bin/g95
-
+    if {[gcc_variant_isset]} {
+        build.env-append    F2CLIBS=gfortran \
+                            F2CLIBS_PREFIX=${prefix}/lib/[gcc_variant_name]
+    } else {
+        # g95
         configure.fflags-append -fno-second-underscore
 
         build.env-append    F2CLIBS=f95 \
-                            F2CLIBS_PREFIX=${prefix}/lib/ \
-                            CC=${configure.cc}
+                            F2CLIBS_PREFIX=${prefix}/lib/
     }
 
     livecheck.type   none
