diff --git a/Library/Homebrew/brewkit.rb b/Library/Homebrew/brewkit.rb index 41422ed9e2..ebf2235ed9 100644 --- a/Library/Homebrew/brewkit.rb +++ b/Library/Homebrew/brewkit.rb @@ -143,6 +143,14 @@ module HomebrewEnvExtension def enable_warnings remove_from_cflags '-w' end + # so yeah, GNU gettext is a funny one, if you want to use it, you need to + # call this function, see gettext.rb for info. + def gnu_gettext + gettext = Formula.factory 'gettext' + ENV['LDFLAGS'] += " -L#{gettext.lib}" + ENV['CPPFLAGS'] = "#{ENV['CPPFLAGS']} -I#{gettext.include}" + ENV['PATH'] += ":#{gettext.bin}" + end private def append key, value diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index cd095f05e2..ee9bd36f64 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -114,13 +114,16 @@ class Formula # :p1 => 'http://bar.com/patch2', # :p2 => ['http://moo.com/patch5', 'http://moo.com/patch6'] # } - # The final option is to return DATA, then put a diff after __END__ and you + # The final option is to return DATA, then put a diff after __END__. You # can still return a Hash with DATA as the value for a patch level key. def patches; end # reimplement and specify dependencies def deps; end # sometimes the clean process breaks things, return true to skip anything def skip_clean? path; false end + # rarely, you don't want your library symlinked into the main prefix + # see gettext.rb for an example + def keg_only?; false end # yields self with current working directory set to the uncompressed tarball def brew diff --git a/Library/Homebrew/install.rb b/Library/Homebrew/install.rb index 3f887e99aa..575fbe8f3f 100755 --- a/Library/Homebrew/install.rb +++ b/Library/Homebrew/install.rb @@ -6,6 +6,21 @@ require 'brew.h' show_summary_heading = false +def text_for_keg_only_formula f + <<-EOS +#{f.name} is keg-only. This means it is not symlinked into Homebrew's +prefix. The formula provides the following rationale: + +#{f.keg_only?} + +Generally there are no consequences of this for you, however if you build your +own software and it requires this formula, you may want to run this command to +link it into the Homebrew prefix: + + brew link #{f.name} + EOS +end + def install f build_time = nil @@ -71,14 +86,19 @@ def install f end end - begin - Keg.new(f.prefix).link - rescue Exception - onoe "The linking step did not complete successfully" - puts "The package built, but is not symlinked into #{HOMEBREW_PREFIX}" - puts "You can try again using `brew link #{f.name}'" - ohai e, e.inspect if ARGV.debug? + if f.keg_only? + ohai 'Caveats', text_for_keg_only_formula(f) show_summary_heading = true + else + begin + Keg.new(f.prefix).link + rescue Exception + onoe "The linking step did not complete successfully" + puts "The package built, but is not symlinked into #{HOMEBREW_PREFIX}" + puts "You can try again using `brew link #{f.name}'" + ohai e, e.inspect if ARGV.debug? + show_summary_heading = true + end end ohai "Summary" if ARGV.verbose? or show_summary_heading