aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Howell2009-09-04 15:42:19 +0100
committerMax Howell2009-09-04 15:54:27 +0100
commitd11165cd97912e22e07ec67c040dafb2b9f9c78f (patch)
tree831f37d9ad79faae7ea45755e6f262459dc9d7a1
parent4d940628cc71c57e63f9c414199db7cee6ff549d (diff)
downloadbrew-d11165cd97912e22e07ec67c040dafb2b9f9c78f.tar.bz2
Fixes Homebrew/homebrew#30 -- GCC can't create executables
The fix is to error out if GCC isn't installed, and to ensure we aren't setting CC and CXX to something that doesn't exist.
-rw-r--r--Library/Homebrew/brewkit.rb11
-rwxr-xr-xbin/brew7
2 files changed, 13 insertions, 5 deletions
diff --git a/Library/Homebrew/brewkit.rb b/Library/Homebrew/brewkit.rb
index 4c9bdbc26..ce15625a0 100644
--- a/Library/Homebrew/brewkit.rb
+++ b/Library/Homebrew/brewkit.rb
@@ -37,7 +37,7 @@ require 'hardware'
MACOS_VERSION=$1.to_f
ENV['MACOSX_DEPLOYMENT_TARGET']=$1
-# to be consistent with cflags, we ignore the existing environment
+# ignore existing build vars, thus we should have less bugs to deal with
ENV['LDFLAGS']=""
cflags=%w[-O3]
@@ -63,9 +63,12 @@ else
cflags<<"-march=prescott"
end
cflags<<"-mfpmath=sse"
- # gcc 4.0 is the default on Leopard
- ENV['CC']="gcc-4.2"
- ENV['CXX']="g++-4.2"
+
+ # use gcc 4.2 if available (Xcode 3.1 and above)
+ if system "which -s gcc-4.2" and $?.success?
+ ENV['CC']="gcc-4.2"
+ ENV['CXX']="g++-4.2"
+ end
end
cflags<<"-mmmx"
diff --git a/bin/brew b/bin/brew
index e58fa38db..b8e726c60 100755
--- a/bin/brew
+++ b/bin/brew
@@ -75,13 +75,18 @@ begin
exit 0
end
+ require 'brewkit'
+
if ARGV.verbose?
- require 'brewkit'
ohai "Build Environment"
%w[CFLAGS LDFLAGS CPPFLAGS MAKEFLAGS CC CXX].each do |f|
puts "#{f}: #{ENV[f]}" unless ENV[f].to_s.empty?
end
end
+
+ unless system "which #{ENV['CC'] or 'cc'} &> /dev/null" and $?.success?
+ raise "We cannot find a c compiler, have you installed the latest Xcode?"
+ end
# we need to ensure a pristine ENV for each process or the formula
# will start with the ENV from the previous build