2009-10-15 08:07:12 +00:00
|
|
|
require 'formula'
|
2009-10-04 13:48:56 +00:00
|
|
|
|
2011-08-02 00:46:33 +00:00
|
|
|
class WineGecko < Formula
|
2011-12-10 22:50:54 +00:00
|
|
|
url 'http://downloads.sourceforge.net/wine/wine_gecko-1.4-x86.msi', :using => :nounzip
|
|
|
|
sha1 'c30aa99621e98336eb4b7e2074118b8af8ea2ad5'
|
2012-03-27 18:44:09 +00:00
|
|
|
|
|
|
|
devel do
|
|
|
|
url 'http://downloads.sourceforge.net/wine/wine_gecko-1.5-x86.msi', :using => :nounzip
|
|
|
|
sha1 '07b2bc74d03c885bb39124a7641715314cd3ae71'
|
|
|
|
end
|
2011-08-02 00:46:33 +00:00
|
|
|
end
|
|
|
|
|
2011-03-10 05:11:03 +00:00
|
|
|
class Wine < Formula
|
2011-08-16 15:56:29 +00:00
|
|
|
homepage 'http://winehq.org/'
|
2012-02-25 05:57:00 +00:00
|
|
|
url 'http://downloads.sourceforge.net/project/wine/Source/wine-1.4.tar.bz2'
|
|
|
|
sha256 '99a437bb8bd350bb1499d59183635e58217e73d631379c43cfd0d6020428ee65'
|
2012-01-23 04:32:15 +00:00
|
|
|
head 'git://source.winehq.org/git/wine.git'
|
2011-03-18 20:55:57 +00:00
|
|
|
|
2012-01-23 04:32:15 +00:00
|
|
|
devel do
|
2012-06-09 00:27:07 +00:00
|
|
|
url 'http://downloads.sourceforge.net/project/wine/Source/wine-1.5.6.tar.bz2'
|
|
|
|
sha256 'b178bc34a69341a8f0a7ff73f7dadf2562ed2e5eb03dc0522b7c4d6002e53994'
|
2010-12-13 23:06:05 +00:00
|
|
|
end
|
2011-03-18 20:55:57 +00:00
|
|
|
|
2012-06-07 01:35:12 +00:00
|
|
|
depends_on :x11
|
2009-10-04 13:48:56 +00:00
|
|
|
depends_on 'jpeg'
|
2010-12-13 23:06:05 +00:00
|
|
|
depends_on 'libicns'
|
2011-06-07 10:44:27 +00:00
|
|
|
|
2012-03-18 20:33:24 +00:00
|
|
|
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
|
|
|
|
2012-04-28 22:20:53 +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
|
|
|
|
end
|
|
|
|
|
2010-12-13 23:06:05 +00:00
|
|
|
# the following libraries are currently not specified as dependencies, or not built as 32-bit:
|
2010-12-29 04:57:07 +00:00
|
|
|
# configure: libsane, libv4l, libgphoto2, liblcms, gstreamer-0.10, libcapi20, libgsm, libtiff
|
2010-03-25 17:45:32 +00:00
|
|
|
|
2010-12-29 04:57:07 +00:00
|
|
|
# Wine loads many libraries lazily using dlopen calls, so it needs these paths
|
|
|
|
# to be searched by dyld.
|
2011-03-09 12:22:43 +00:00
|
|
|
# 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.
|
2011-03-18 20:55:57 +00:00
|
|
|
|
2012-03-27 18:44:09 +00:00
|
|
|
def wine_wrapper; <<-EOS.undent
|
|
|
|
#!/bin/sh
|
2012-07-26 02:51:20 +00:00
|
|
|
DYLD_FALLBACK_LIBRARY_PATH="#{MacOS::XQuartz.lib}:#{HOMEBREW_PREFIX}/lib:/usr/lib" "#{bin}/wine.bin" "$@"
|
2012-03-27 18:44:09 +00:00
|
|
|
EOS
|
2010-08-06 19:50:42 +00:00
|
|
|
end
|
|
|
|
|
2009-10-04 13:48:56 +00:00
|
|
|
def install
|
2010-06-21 16:56:22 +00:00
|
|
|
# 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
|
2012-02-25 05:57:00 +00:00
|
|
|
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"
|
2010-06-21 16:56:22 +00:00
|
|
|
ENV.append "LDFLAGS", "#{build32} -framework CoreServices -lz -lGL -lGLU"
|
|
|
|
|
2010-12-04 20:15:13 +00:00
|
|
|
args = ["--prefix=#{prefix}",
|
2012-07-26 02:51:20 +00:00
|
|
|
"--x-include=#{MacOS::XQuartz.include}",
|
|
|
|
"--x-lib=#{MacOS::XQuartz.lib}",
|
2010-12-04 20:15:13 +00:00
|
|
|
"--with-x",
|
|
|
|
"--with-coreaudio",
|
|
|
|
"--with-opengl"]
|
2011-12-23 14:42:31 +00:00
|
|
|
args << "--disable-win16" if MacOS.leopard? or ENV.compiler == :clang
|
2010-06-21 16:56:22 +00:00
|
|
|
|
2010-12-13 23:06:05 +00:00
|
|
|
# 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
|
|
|
|
2010-06-21 16:56:22 +00:00
|
|
|
system "./configure", *args
|
2009-10-04 13:48:56 +00:00
|
|
|
system "make install"
|
2010-03-25 17:45:32 +00:00
|
|
|
|
2010-06-21 16:56:22 +00:00
|
|
|
# Don't need Gnome desktop support
|
|
|
|
rm_rf share+'applications'
|
2010-08-06 19:50:42 +00:00
|
|
|
|
2011-08-02 00:46:33 +00:00
|
|
|
# Download Gecko once so we don't need to redownload for each prefix
|
2012-02-25 05:57:00 +00:00
|
|
|
gecko = WineGecko.new
|
2011-08-02 00:46:33 +00:00
|
|
|
gecko.brew { (share+'wine/gecko').install Dir["*"] }
|
|
|
|
|
2010-08-06 19:50:42 +00:00
|
|
|
# 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)
|
2009-10-04 13:48:56 +00:00
|
|
|
end
|
|
|
|
|
2011-12-23 14:42:31 +00:00
|
|
|
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
|
|
|
|
2011-12-23 14:42:31 +00:00
|
|
|
You may also want to get winetricks:
|
|
|
|
brew install winetricks
|
2010-08-06 19:50:42 +00:00
|
|
|
|
2011-12-23 14:42:31 +00:00
|
|
|
Or check out:
|
|
|
|
http://code.google.com/p/osxwinebuilder/
|
2009-10-04 13:48:56 +00:00
|
|
|
EOS
|
2011-12-23 14:42:31 +00:00
|
|
|
return s
|
2009-10-04 13:48:56 +00:00
|
|
|
end
|
|
|
|
end
|
2012-04-28 22:20:53 +00:00
|
|
|
|
|
|
|
__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)
|
|
|
|
{
|