homebrew-core/Formula/wine.rb

187 lines
5.9 KiB
Ruby
Raw Normal View History

require 'formula'
2009-10-04 13:48:56 +00:00
class WineGecko < Formula
url 'http://downloads.sourceforge.net/wine/wine_gecko-1.4-x86.msi', :using => :nounzip
sha1 'c30aa99621e98336eb4b7e2074118b8af8ea2ad5'
devel do
url 'http://downloads.sourceforge.net/wine/wine_gecko-1.9-x86.msi', :using => :nounzip
sha1 'd2553224848a926eacfa8685662ff1d7e8be2428'
end
end
class WineMono < Formula
url 'http://downloads.sourceforge.net/wine/wine-mono-0.0.8.msi', :using => :nounzip
sha1 'dd349e72249ce5ff981be0e9dae33ac4a46a9f60'
end
2011-03-10 05:11:03 +00:00
class Wine < Formula
homepage 'http://winehq.org/'
url 'http://downloads.sourceforge.net/project/wine/Source/wine-1.4.1.tar.bz2'
sha256 '3c233e3811e42c2f3623413783dbcd0f2288014b5645211f669ffd0ba6ae1856'
2012-10-21 20:27:57 +00:00
head 'git://source.winehq.org/git/wine.git'
devel do
# NOTE: when updating Wine, please check if Wine-Gecko and Wine-Mono needs
# updating too
# * http://wiki.winehq.org/Gecko
# * http://wiki.winehq.org/Mono
url 'http://downloads.sourceforge.net/project/wine/Source/wine-1.5.23.tar.bz2'
sha1 '8c99ea994fc76bdcce95ea377a6f68e6f1c0cdf9'
end
2012-09-14 16:07:47 +00:00
env :std
# this tells Homebrew that dependencies must be built universal
def build.universal? ; true; end
depends_on :x11
# note: we get freetype from :x11, but if the freetype formula has been installed
# separately and not built universal, it's going to get picked up and break the build
2009-10-04 13:48:56 +00:00
depends_on 'jpeg'
depends_on 'libicns'
depends_on 'libtiff'
depends_on 'little-cms'
fails_with :llvm do
build 2336
cause 'llvm-gcc does not respect force_align_arg_pointer'
end
2011-03-21 21:24:22 +00:00
# Wine tests CFI support by calling clang, but then attempts to use as, which
# does not work. Use clang for assembling too.
def patches
DATA if ENV.compiler == :clang and !build.devel?
end
# the following libraries are currently not specified as dependencies, or not built as 32-bit:
# configure: libsane, libv4l, libgphoto2, gstreamer-0.10, libcapi20, libgsm
2010-03-25 17:45:32 +00:00
# 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.undent
#!/bin/sh
DYLD_FALLBACK_LIBRARY_PATH="#{MacOS::X11.lib}:#{HOMEBREW_PREFIX}/lib:/usr/lib" "#{bin}/wine.bin" "$@"
EOS
end
def winemac_key; <<-EOS.undent
REGEDIT4
[HKEY_CURRENT_USER\\Software\\Wine\\Drivers]
"Graphics"="mac,x11"
"Ime"="osxime,mac,x11"
EOS
end
2009-10-04 13:48:56 +00:00
def install
# Build 32-bit; Wine doesn't support 64-bit host builds on OS X.
2009-10-04 13:48:56 +00:00
build32 = "-arch i386 -m32"
ENV["LIBS"] = "-lGL -lGLU"
2009-11-16 18:41:26 +00:00
ENV.append "CFLAGS", build32
if ENV.compiler == :clang
opoo <<-EOS.undent
Clang currently miscompiles some parts of Wine. If you have gcc, you
can get a more stable build with:
brew install wine --use-gcc
EOS
end
2009-11-16 18:41:26 +00:00
ENV.append "CXXFLAGS", "-D_DARWIN_NO_64_BIT_INODE"
ENV.append "LDFLAGS", "#{build32} -framework CoreServices -lz -lGL -lGLU"
# Workarounds for XCode not including pkg-config files
ENV.libxml2
ENV.append "LDFLAGS", "-lxslt"
args = %W[--prefix=#{prefix}
--with-coreaudio
--with-opengl
--with-x
--x-include=#{MacOS::X11.include}
--x-lib=#{MacOS::X11.lib}]
args << "--disable-win16" if MacOS.version == :leopard or ENV.compiler == :clang
# 64-bit builds of mpg123 are incompatible with 32-bit builds of Wine
2011-02-12 16:49:20 +00:00
args << "--without-mpg123" if Hardware.is_64_bit?
2010-08-10 14:42:05 +00:00
system "./configure", *args
2009-10-04 13:48:56 +00:00
system "make install"
2010-03-25 17:45:32 +00:00
# Don't need Gnome desktop support
rm_rf share+'applications'
# Download Gecko and Mono once so we don't need to redownload for each prefix
gecko = WineGecko.new
gecko.brew { (share+'wine/gecko').install Dir["*"] }
mono = WineMono.new
mono.brew { (share+'wine/mono').install Dir["*"] }
# Use a wrapper script, so rename wine to wine.bin
# and name our startup script wine
2012-10-21 20:27:57 +00:00
mv bin/'wine', bin/'wine.bin'
(bin/'wine').write(wine_wrapper)
(prefix/'winemac.key').write(winemac_key) unless build.stable?
2009-10-04 13:48:56 +00:00
end
def caveats
s = <<-EOS.undent
For best results, you will want to install the latest version of XQuartz:
http://xquartz.macosforge.org/
2010-07-31 21:50:28 +00:00
You may also want to get winetricks:
brew install winetricks
Or check out:
http://code.google.com/p/osxwinebuilder/
2009-10-04 13:48:56 +00:00
EOS
2012-10-21 20:27:57 +00:00
unless build.stable?
# see http://bugs.winehq.org/show_bug.cgi?id=31374
2012-10-21 20:27:57 +00:00
s += <<-EOS.undent
2012-10-21 20:27:57 +00:00
The current version of Wine contains a partial implementation of dwrite.dll
which may cause text rendering issues in applications such as Steam.
We recommend that you run winecfg, add an override for dwrite in the
Libraries tab, and edit the override mode to "disable".
EOS
s += <<-EOS.undent
Starting with wine 1.5.22 the new experimental Mac driver by CodeWeavers has
been included in the main distribution. This allows wine to run without X11
on MacOS X. To enable it execute the following command in your wine prefix:
wine regedit #{prefix/'winemac.key'}
To disable it execute:
wine regedit /D 'HKEY_CURRENT_USER\\Software\\Wine\\Drivers'
EOS
2012-10-21 20:27:57 +00:00
end
return s
2009-10-04 13:48:56 +00:00
end
end
__END__
diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
index 09f9b73..ed198f8 100644
--- a/tools/winebuild/utils.c
+++ b/tools/winebuild/utils.c
@@ -345,10 +345,11 @@ struct strarray *get_as_command(void)
if (!as_command)
{
- static const char * const commands[] = { "gas", "as", NULL };
- as_command = find_tool( "as", commands );
+ static const char * const commands[] = { "clang", NULL };
+ as_command = find_tool( "clang", commands );
}
strarray_add_one( args, as_command );
+ strarray_add_one( args, "-c" );
if (force_pointer_size)
{