--- /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/emulators/hatari/Portfile	2013-12-22 01:30:31.000000000 -0800
+++ /opt/myports/emulators/hatari/Portfile	2016-09-12 08:40:40.000000000 -0700
@@ -1,34 +1,99 @@
 # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
 # $Id: Portfile 115019 2013-12-22 09:29:46Z ryandesign@macports.org $
 
+# tested on 10.4 PPC, 10.4 Intel, 10.5 Intel, 10.6 with LibCxx upgrade, 10.7, 10.11
+# hatari command line builds on all systems
+# hatari MacOSX GUI builds on >= 10.6 as NSWindowDelegate is used and is only 10.6 onwards
+# MacOSX GUI does not build with gcc* or llvm-gcc-4.2
+# winuae works on all with gcc flag modification below. 
+# SDL2 works on 10.6, 10.7 and 10.11, and likely all in between, but not 10.5
+
 PortSystem              1.0
+PortGroup               cmake 1.0
 
 name                    hatari
-version                 1.7.0
-revision                1
+version                 1.9.0
+revision                0
+
 categories              emulators
 license                 GPL-2+
 platforms               darwin
-maintainers             slor.net:james openmaintainer
 
+maintainers             slor.net:james gmail.com:ken.cunningham.webuse openmaintainer
 description             Atari ST/STe/STfm emulator
-
-long_description        Hatari is an Atari ST/STe/STfm (and somewhat Falcon) emulator
-
+long_description        Hatari is an actively developed Atari ST/STe/STfm and Falcon emulator
 homepage                http://hatari.tuxfamily.org/
-master_sites            http://download.tuxfamily.org/hatari/${version}/
 
-checksums               sha256  2056d12807cb827585f337912238492f8b66b7ff3d9d0628090e58209a519e4d \
-                        rmd160  17e3fdef444d75d1131411ed367dfb4968fbf702
+fetch.type              hg
+hg.url                  https://hg.tuxfamily.org/mercurialroot/hatari/hatari
+hg.tag                  v1.9.0
 
-use_bzip2               yes
+cmake.out_of_source     yes
 
+depends_build           port:cmake
 depends_lib             port:libsdl \
                         port:libpng \
                         port:readline
 
-depends_build           port:cmake
+# 1. fix hard-coded installation directory for MacOSX bundle
+# 2. delete warning flag in winuae emulator code not supported by GCC42
+post-extract {
+     reinplace "s|/Applications|${applications_dir}|g" ${worksrcpath}/src/CmakeLists.txt
+     reinplace "s|-Wno-maybe-uninitialized||g" ${worksrcpath}/src/cpu/CmakeLists.txt
+}
+
+# update python code to work with python3 in case user has selected python3 variant
+# verified to work with all versions of python back to MacOSX Tiger
+# a proper fix would be to set the python variant, and then 
+# add designated python references in build script => upstream
+patchfiles-append      001-hatari-gentypes-python3-fix.diff
+
+# default to install MacOSX GUI application, and then adjust for OS variations
+
+platform darwin {
+    if { ${os.major} <= 9 } {
+        # 10.4 and 10.5 cannot build the MacOSX GUI at present
+        default_variants       +commandlineapp
+    } 
+    
+    if { ${os.major} >= 10 } {
+        # *gcc* does not appear to build the MacOSX GUI, so blacklist it on 10.6+
+        compiler.blacklist     *gcc*
+    }
+}
+
+# ensure cmake's choice of compiler is correctly passed in (doesn't always seem to be?)
+# may not be strictly necessary, but won't hurt
+configure.args-append   -DCMAKE_C_COMPILER=${configure.cc}
 
+# these settings are copied from the previous portfile (1.7 version)
 configure.cflags        -O3 -pipe -fomit-frame-pointer
 configure.universal_args-delete --disable-dependency-tracking
-configure.args-append   --disable-osx-bundle
+
+variant commandlineapp description "Install command line version only" {
+    # we're bypassing the configure script in this portfile by using the cmake portgroup, so set these directly in cmake
+    configure.args-append   -DENABLE_OSX_BUNDLE:BOOL=0
+}
+
+variant winuae description "Enable WinUAE CPU core (experimental)" {
+    # we're bypassing the configure script in this portfile by using the cmake portgroup, so set these directly in cmake
+    configure.args-append  -DENABLE_WINUAE_CPU:BOOL=1
+}
+
+platform darwin {
+	# sdl2 can be used on MacOSX 10.6 or later (for 10.6, need to add MacOSX10.7.sdk to build libsdl2)
+	# no combination of tricks allowed presently current libSDL@2.04 to build, or the web-installed SDL2.framework to work, on 10.5
+	# it is possible an older version of libsdl2, perhaps @2.01, might install and be useable on 10.5/Intel but this is left as an exercise for the reader
+	if { ${os.major} >= 10 } {
+		variant sdl2 description "Use SDL2" {
+			configure.args-append  -DENABLE_SDL2:BOOL=1
+			depends_lib-delete     port:libsdl
+			depends_lib-append     port:libsdl2
+		}
+	}
+}
+
+notes \
+"A free ROM, EmuTOS, is available at http://sourceforge.net/projects/emutos  \
+ \nAn online manual has been installed at file://${prefix}/share/doc/hatari/manual.html \
+ \nand can be accessed via the Help menu in the MacOSX application."
