diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index 3fec81d373..5f51d79eaa 100755 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -52,17 +52,36 @@ rescue Exception => e end end -def install f +def pre_superenv_hacks f # TODO replace with Formula DSL # Python etc. build but then pip can't build stuff. # Scons resets ENV and then can't find superenv's build-tools. + # In some cases we should only apply in the case of an option I suggest the + # following: + # + # option 'with-passenger' do + # env :userpaths # for superenv + # end + # option 'without-foo' do + # env :std, :x11 + # end + # + # NOTE I think all ENV stuff should be specified with a DSL like this now. + case f.name + when 'lilypond', 'nginx' + paths = ORIGINAL_PATHS.map{|pn| pn.realpath.to_s rescue nil } - %w{/usr/X11/bin /opt/X11/bin} + ENV['PATH'] = "#{ENV['PATH']}:#{paths.join(':')}" + end stdenvs = %w{fontforge python python3 ruby ruby-enterprise-edition jruby wine} ARGV.unshift '--env=std' if (stdenvs.include?(f.name) or f.recursive_deps.detect{|d| d.name == 'scons' }) and not ARGV.include? '--env=super' +end +def install f keg_only_deps = f.recursive_deps.uniq.select{|dep| dep.keg_only? } + pre_superenv_hacks(f) require 'superenv' ENV.setup_build_environment unless superenv? diff --git a/Library/Homebrew/superenv.rb b/Library/Homebrew/superenv.rb index f059283ce2..ce5eecf9cf 100644 --- a/Library/Homebrew/superenv.rb +++ b/Library/Homebrew/superenv.rb @@ -100,7 +100,6 @@ class << ENV paths << HOMEBREW_PREFIX/:bin paths << "#{MacSystem.x11_prefix}/bin" if x11? paths += %w{/usr/bin /bin /usr/sbin /sbin} - paths += ORIGINAL_PATHS.map{|pn| pn.realpath.to_s rescue nil } - %w{/usr/X11/bin /opt/X11/bin} paths.to_path_s end