19 Commits

Author SHA1 Message Date
Max Howell
4febf938ae Put X11 last in the libpath and cpath
It was after HOMEBREW_PREFIX but not after everything else too.
2012-09-03 15:12:31 -04:00
Max Howell
c35f6cb9d5 Set CC and CXX with superenv (again)
It was dumb to have make call different compilers to configure depending on the `servile?` flag. This is not a route to reliability.

Instead now we set CC (formula that break if CC is set like Jack be damned, their build-systems are just plain broken and should not be supported). When cc is called we examine HOMEBREW_CC, otherwise we instantiate the tool that was called, just like the formula's build-system will expect.

Fixes Homebrew/homebrew#14659 (though the build fails later for me, with the same error for stdenv and superenv).
2012-09-03 15:12:31 -04:00
Max Howell
af06c75d72 Add NCLT SDK apache include directory to superenv
Fixes subversion compile issues for NCLT configurations with superenv, stdenv still broken (tough).
2012-09-03 15:12:30 -04:00
Max Howell
429226d562 Hack so that ENV['CFLAGS'] += "foo" always works
So many formula assume CFLAGS etc. are not nil. One fix would be to set them to "" but this would set them in the environment, and that could have consequences for build-scripts. This hack works but with a (hopefully) small caveat.

Fixes Homebrew/homebrew#14580.
2012-08-31 23:45:10 -04:00
Max Howell
30b53cf92a Cram GL headers and includes into superenv
Fixes Homebrew/homebrew#14554.

We justify doing this because pre 10.8 X11 came with GL for all Homebrew-capable systems and as such is a default that we'd prefer not to have to address.
2012-08-31 14:12:28 -04:00
Max Howell
f6ded076df superenv fix for broken 10.8 apr-1-config
serf requires you to explicitly tell it where to find the supertool because otherwise it has a hardcoded /usr/bin/apr-1-config (:P), ctail however is sensible and searches the PATH so now it's as though we do nothing special in that formula. Nice.
2012-08-31 13:29:45 -04:00
Max Howell
ae17944e06 Raise if sdk_path is nil for nclt
This situation should be impossible now (in that, we should detect sdk_path provided we also detected nclt), so if it happens somehow raise in such a way that the user will be encouraged to report the bug.
2012-08-31 10:27:07 -04:00
Max Howell
6c6e82a721 Set VERBOSE if --verbose
You tend to get more useful build output this way, and (more importantly?), superenv itself only outputs certain things if VERBOSE is set.
2012-08-31 10:22:11 -04:00
Max Howell
05c708b9fc Revert the user-PATH fix
User paths might have anything in them, anything can break builds.

Instead special case these two formula with the view to having an eventual DSL to allow injection of user paths into superenv. Certainly defaulting to off.
2012-08-31 10:22:10 -04:00
Max Howell
d4503b1202 Fixes Homebrew/homebrew#14542; ocaml superenv issues
This patch removes most of the settings for CC, CXX etc. because we are trying to be minimal. Then we force the compiler to Homebrew's choice underneath in superenv. We however leave LD because we prefer that build-systems use the c-compiler for linking, it generally works better (copiously tested), however when the build-system explicitly calls ld, we respect that. This gets around the ocaml bug in question, since somehow clang was crashing during link, but the ld tool itself (which is kind of clang, kind of llvm-gcc) is okay with this.

Also moved the setting of O (so that cc-args are refurbished) into a make wrapper. Not sure if this matter much, but seems more consistent.
2012-08-30 20:02:29 -04:00
Jack Nagel
a4ccf68602 superenv: look for pc files under prefix, not repository
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-30 16:08:24 -05:00
Max Howell
ea12f340e7 Put user's PATHs at end of superenv PATH
Making sure to remove X11, should be safe if this order is kept.

Refs Homebrew/homebrew#14519.
Fixes Homebrew/homebrew#14544.
2012-08-30 09:45:33 -04:00
Max Howell
491be4fa89 Typo
Not sure how I forgot to test that.
2012-08-29 14:52:00 -04:00
Max Howell
096ba6c17c Don't fail pre-Xcode 4.3
Refs Homebrew/homebrew#14392.
2012-08-29 14:49:03 -04:00
Max Howell
95164a5d46 Use fortran from std-env in superenv
Fixes Homebrew/homebrew#14524.
2012-08-29 14:45:04 -04:00
Max Howell
a360a41472 superenv only adds X11 paths if required
Since we are moving towards only depending on X11 for X-headers, superenv now doesn't automatically add X11 compilation. I was reluctant to do this, but it is the right thing to do now that X11 is not automatically installed by OS X or Xcode.

I didn't implement ENV.x11 because the order that the X headers are inserted is important. It must be done at initial setup to ensure that brewed versions of e.g. freetype and Cairo are used and not the ones installed by XQuartz.
2012-08-29 12:41:37 -04:00
Max Howell
4f06d131df Superenv wrapper for sed
Fixes Mountain Lion specific sed issue.

Provided scripts don't use the full-path to see we are fine. They never do though, that would assume too much.
2012-08-29 12:41:35 -04:00
Max Howell
1ec368759e Support HOMEBREW_MAKE_JOBS 2012-08-29 12:41:34 -04:00
Max Howell
65d195dcaa superenv: build-environments that just work
1. A minimal build environment, we don't set CFLAGS, CPPFLAGS, LDFLAGS, etc. the rationale being, the less that is set, the less variables we are introducing that can break builds.
2. A set of scripts that replace cc, ld, etc. and inject the -I, -L, etc. flags we need into the args passed to the build-tools.

Because we now have complete control over compiler instantiations we do a variety of clean-up tasks, like removing bad flags, enforcing universal builds and ensuring makefiles don't try to change the order of library and include paths from ones that work to ones that don't.

The previous ENV-system is still available when --env=std is specified.

superenv applies to Xcode >= 4.3 only currently.
2012-08-29 12:41:34 -04:00