homebrew-core/Formula/glib.rb
Max Howell 48fd4f9d43 Fixes Homebrew/homebrew#60
Well, I guessed keg_only would have issues.

Here, glib assumes GNU gettext will be in the same path as itself. Which would
be true if we symlinked gettext into the tree, but we don't to avoid conflicts
with the BSD version: /usr/lib/libgettext.dylib

We'll have to do this a lot, so I need to figure out how to automate it, or
how to avoid doing this kind of thing altogether.
2009-09-25 00:04:55 +01:00

60 lines
2.1 KiB
Ruby
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

require 'brewkit'
class Libiconv <Formula
@url='http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz'
@homepage='http://www.gnu.org/software/libiconv/'
@md5='7ab33ebd26687c744a37264a330bbe9a'
end
class Glib <Formula
@url='http://ftp.acc.umu.se/pub/gnome/sources/glib/2.20/glib-2.20.5.tar.bz2'
@md5='4c178b91d82ef80a2da3c26b772569c0'
@homepage='http://www.gtk.org'
depends_on 'pkg-config'
depends_on 'gettext'
def install
# Snow Leopard libiconv doesn't have a 64bit version of the libiconv_open
# function, which breaks things for us, so we build our own
# http://www.mail-archive.com/gtk-list@gnome.org/msg28747.html
iconvd = Pathname.getwd+'iconv'
iconvd.mkpath
Libiconv.new.brew do
system "./configure", "--prefix=#{iconvd}", "--disable-debug", "--disable-dependency-tracking",
"--enable-static", "--disable-shared"
system "make install"
end
# indeed, amazingly, -w causes gcc to emit spurious errors for this package!
ENV.enable_warnings
# basically we are going to statically link to the symbols that glib doesn't
# find in the bugged GNU libiconv that ships with 10.6
ENV['LDFLAGS'] += " #{iconvd}/lib/libiconv.a"
system "./configure", "--disable-debug",
"--prefix=#{prefix}",
"--disable-dependency-tracking",
"--disable-rebuilds",
"--with-libiconv=gnu"
system "make"
system "make install"
# this sucks, basically gettext is Keg only to prevent conflicts with
# the wider system, but pkg-config or glib is not smart enough to
# have determined that libintl.dylib isn't in the DYLIB_PATH so we have
# to add it manually, we might have to do this a lot, so clearly we need
# to make it automatic or solve the BSD/GNU gettext conflict in another
# way
gettext = Formula.factory 'gettext'
inreplace lib+'pkgconfig'+'glib-2.0.pc',
'Libs: -L${libdir} -lglib-2.0 -lintl',
"Libs: -L${libdir} -lglib-2.0 -L#{gettext.lib} -lintl"
(prefix+'share'+'gtk-doc').rmtree
end
end