require 'formula' class WineGecko < Formula url 'http://downloads.sourceforge.net/wine/wine_gecko-1.4-x86.msi', :using => :nounzip sha1 'c30aa99621e98336eb4b7e2074118b8af8ea2ad5' end class WineGeckoOld < Formula url 'http://downloads.sourceforge.net/wine/wine_gecko-1.0.0-x86.cab', :using => :nounzip sha1 'afa22c52bca4ca77dcb9edb3c9936eb23793de01' end class Wine < Formula homepage 'http://winehq.org/' if ARGV.build_devel? url 'http://downloads.sourceforge.net/project/wine/Source/wine-1.3.35.tar.bz2' sha256 'e23e4da5efebc11206198e9cf2a2638851db4e00a1af0abccd8b6369e99c288b' else url 'http://downloads.sourceforge.net/project/wine/Source/wine-1.2.3.tar.bz2' sha256 '3fd8d3f2b466d07eb90b8198cdc9ec3005917a4533db7b8c6c69058a2e57c61f' end head 'git://source.winehq.org/git/wine.git' depends_on 'jpeg' depends_on 'libicns' # gnutls not needed since 1.3.16 depends_on 'gnutls' unless ARGV.build_devel? or ARGV.build_head? fails_with_llvm 'Wine dies with an "Unhandled exception code" when built with LLVM', :build => 2336 # the following libraries are currently not specified as dependencies, or not built as 32-bit: # configure: libsane, libv4l, libgphoto2, liblcms, gstreamer-0.10, libcapi20, libgsm, libtiff # Wine loads many libraries lazily using dlopen calls, so it needs these paths # to be searched by dyld. # Including /usr/lib because wine, as of 1.3.15, tries to dlopen # libncurses.5.4.dylib, and fails to find it without the fallback path. def wine_wrapper; <<-EOS #!/bin/sh DYLD_FALLBACK_LIBRARY_PATH="/usr/X11/lib:#{HOMEBREW_PREFIX}/lib:/usr/lib" "#{bin}/wine.bin" "$@" EOS end def install ENV.x11 # Build 32-bit; Wine doesn't support 64-bit host builds on OS X. build32 = "-arch i386 -m32" ENV["LIBS"] = "-lGL -lGLU" ENV.append "CFLAGS", build32 ENV.append "CXXFLAGS", "-D_DARWIN_NO_64_BIT_INODE" ENV.append "LDFLAGS", "#{build32} -framework CoreServices -lz -lGL -lGLU" args = ["--prefix=#{prefix}", "--x-include=/usr/X11/include/", "--x-lib=/usr/X11/lib/", "--with-x", "--with-coreaudio", "--with-opengl"] args << "--disable-win16" if MacOS.leopard? # 64-bit builds of mpg123 are incompatible with 32-bit builds of Wine args << "--without-mpg123" if Hardware.is_64_bit? system "./configure", *args system "make install" # Don't need Gnome desktop support rm_rf share+'applications' # Download Gecko once so we don't need to redownload for each prefix gecko = ARGV.build_devel? ? WineGecko.new : WineGeckoOld.new gecko.brew { (share+'wine/gecko').install Dir["*"] } # Use a wrapper script, so rename wine to wine.bin # and name our startup script wine mv (bin+'wine'), (bin+'wine.bin') (bin+'wine').write(wine_wrapper) end # There is a bug in the Lion version of ld that prevents Wine from building # correctly; see # We have backported Camillo Lugaresi's patch from upstream. The patch can # be removed from this formula once it lands in both the devel and stable # branches of Wine. if MacOS.lion? and not (ARGV.build_devel? or ARGV.build_head?) def patches; DATA; end end def caveats; <<-EOS.undent For a more full-featured install, try: http://code.google.com/p/osxwinebuilder/ You may also want to get winetricks: brew install winetricks To use 3D applications, like games, check "Emulate a virtual desktop" in winecfg's "Graphics" tab. EOS end end __END__ diff --git a/configure b/configure index e8bc505..4b9a6d4 100755 --- a/configure +++ b/configure @@ -6417,7 +6417,7 @@ fi APPLICATIONSERVICESLIB="-framework ApplicationServices" - LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00000000,-segaddr,WINE_SHAREDHEAP,0x7f000000" + LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00000000,-segaddr,WINE_SHAREDHEAP,0x7f000000" if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes" then