4367 Commits

Author SHA1 Message Date
Samuel John
dbaac79f17 PythonInstalled: Adding a private_site_packages
that live in the `libexec` dir of a `Cellar`.
2013-09-03 10:41:54 +02:00
Samuel John
0d75de42bb python_helper: Comment wording 2013-09-03 10:36:58 +02:00
Misty De Meo
922a4f1b77 Formula: record full path to non-core formula
If a formula is passed with a relative path, the build process might
try to expand it in the wrong directory, where it doesn't exist.

Fixes Homebrew/homebrew#22266.
2013-09-02 10:01:36 -07:00
Misty De Meo
e92fa147b3 Remove attr_rw for CompilerFailure version attribute
This reverts commit 7db9ef9650a44ef8155bf66efd88703e580057b0.
2013-09-01 22:37:03 -07:00
Misty De Meo
ca3ed1e5ff CompilerFailure: specify attr_rw for version 2013-09-01 21:26:30 -07:00
Misty De Meo
96b50e013e Remove HOMEBREW_CC warning from ENV.compiler
ENV.compiler is called outside setting up the build environment, where
values unsupported for user input might have been specified - for
example, GNU GCC executables.
2013-09-01 14:42:37 -07:00
Misty De Meo
0e06e9e4b9 Document --cc= for non-Apple compilers 2013-09-01 13:23:40 -07:00
Misty De Meo
7c3d6ea81c Check dependencies for a compatible C++ stdlib
There are now a few possible C++ standard libraries a given build could
be using, with subtle incompatibilities and possibility of breakage
when mixed. This makes sure that the dependency chain was compiled in
a compatible manner.

Fortunately all of the Apple compilers use the same libstdc++, and we
don't yet support building with libc++, so this will primarily only
nag users trying to use GNU gcc who already have software installed
with Apple compilers.

Future TODOs:

* Add general support for building with libc++ (compatibility checking
  already handled here)
* Possibly track formulae which actually build C++ bindings, so that
  users aren't bothered by spurious nagging re: interpreted languages,
  pure-C software, etc.
2013-09-01 13:19:13 -07:00
Misty De Meo
b71682bdc7 Tab: track C++ stdlib in use
There are subtle incompatibilities between Apple's libstdc++ and the
libstdc++ used by the various GNU GCC formulae. In addition, we'll
likely also be supporting libc++ in the future, and that's also
incompatible with the other stdlibs.

Tracking it in the tab lets us make sure that dependencies are all
built against the same stdlib to avoid subtle breakage.
2013-09-01 13:19:13 -07:00
Misty De Meo
3ac74331a8 Move Tab creation into build process
The parent process doesn't have access to the selected compiler, which
will be important in the next commit.

Fortunately the child process already has a filtered and massaged
ARGV, so it has enough information to build the tab itself.
2013-09-01 13:19:13 -07:00
Misty De Meo
ef1d9c0cd0 Implement fails_with for non-Apple compilers
This adds support for non-Apple GCC compilers in the fails_with code.
A fails_with block for a non-Apple compiler looks like:

fails_with :gcc => '4.8.1' do
  cause 'Foo'
end

Non-Apple compilers don't have build numbers, so compiler failures are
based on version strings instead.

Internally non-Apple compilers can be distinguished because they are
passed around as strings instead of symbols.

In addition, this alters the priority list for compilers, with the
following changes:

* Apple GCC 4.2 and LLVM-GCC swap positions, with GCC now taking
  priority. (Maybe LLVM-GCC should just go away.)
* Non-Apple GCC compilers are ranked below GCC 4.2 but above LLVM-GCC
  and Apple GCC 4.0.
2013-09-01 13:19:13 -07:00
Misty De Meo
71268b7f16 Provide reusable GNU GCC constants in ENV 2013-09-01 13:19:13 -07:00
Misty De Meo
11f8b2f49c Experimental support for non-Apple GCCs 2013-09-01 13:19:12 -07:00
Mike McQuaid
f870d605fa formula_installer: handle post_install exceptions.
Warn users and point them to `brew postinstall` (which can provide a
backtrace).

Closes Homebrew/homebrew#21887.
2013-09-01 13:57:40 +01:00
Mike McQuaid
626b56f9f6 brew-postinstall: add new command.
Runs post-install jobs in case they failed or need rerun for any reason.
2013-09-01 13:57:40 +01:00
Mike McQuaid
0c5d928cad brew-reinstall: don't list --force in args. 2013-09-01 13:57:40 +01:00
Mike McQuaid
22da8eb633 brew-reinstall: don't try and rebuild bottles. 2013-09-01 13:57:40 +01:00
Mike McQuaid
98eac4226b Allow forcing bottle installation. 2013-09-01 12:59:01 +01:00
Jack Nagel
dd94518a40 Add test for option description rules 2013-08-31 20:40:06 -05:00
Jack Nagel
0c75f2d280 Push dependency option generation into BuildOptions 2013-08-31 16:16:54 -05:00
Jack Nagel
6ed24d3877 Add test for dependency options 2013-08-31 16:09:49 -05:00
Adam Vandenberg
9dc8ddf054 Workaround for debrew
See Homebrew/homebrew#21720.
2013-08-31 11:15:19 -07:00
Jack Nagel
41ac74524d Don't duplicate -E argument in ccE mode 2013-08-31 11:14:38 -05:00
Jack Nagel
803a408b1d Differentiate between "cpp" and "cc-E" modes 2013-08-31 10:43:24 -05:00
Jack Nagel
773ed20476 Reorder cc wrapper modes by frequency 2013-08-31 10:38:34 -05:00
Jack Nagel
6b79a4e714 ENV: only set fortran flags in one place 2013-08-30 19:07:10 -05:00
Jack Nagel
8828187b4c ENV: use fc accessor 2013-08-30 19:00:19 -05:00
Jack Nagel
405ba3df68 Fix conditional in ENV.fortran 2013-08-30 18:59:58 -05:00
Jack Nagel
2cb8c443e4 ENV: use cflags setter 2013-08-30 18:42:12 -05:00
Jack Nagel
cc37943267 ENV: use cc accessor 2013-08-30 18:42:12 -05:00
Jack Nagel
aa79e21ba4 ENV: add cc and cxx setters 2013-08-30 18:42:12 -05:00
Jack Nagel
4bee5db66d Simplify handling custom FCFLAGS 2013-08-30 16:42:04 -05:00
Jack Nagel
43bd5d44c2 Remove PATH hack from ENV.fortran 2013-08-30 16:30:34 -05:00
kaizoku
dbce25783c Show list of dependencies prior to installing them
Closes Homebrew/homebrew#22205.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-08-30 14:14:47 -07:00
Dan Hughes
51d1a8e3c5 Use system path for more tools, for Linux compat.
Closes Homebrew/homebrew#22196.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-08-30 13:02:19 -07:00
Jack Nagel
6e4ad9eb22 Fix wrong assumption in MacOS::Xcode.without_clt?
Fixes Homebrew/homebrew#22221.
2013-08-30 14:49:10 -05:00
Misty De Meo
f142cca6e2 Document --cc= in the manpage 2013-08-30 07:52:13 -07:00
Misty De Meo
7e1af4b7d5 Unify compiler selection logic
This unifies the logic for selecting a compiler between superenv and
stdenv. A variation of superenv's `determine_cc`, which now returns a
symbol, has been moved into the shared ENV extension. Stdenv uses the
result of this directly (as it's always used symbols), while superenv
translates that back into a compiler string.

This also has the effect of disabling HOMEBREW_USE_(gcc|llvm|clang) in
stdenv, which have already been marked as deprecated for some time, and
enables the HOMEBREW_CC= environment variable syntax from superenv in
stdenv.
2013-08-30 07:52:13 -07:00
Misty De Meo
221bb2419f Add --cc= syntax for selecting compilers 2013-08-30 07:52:12 -07:00
Shaun Jackman
774cd8b68b universal_archs returns ArchitectureListExtension
Closes Homebrew/homebrew#22210.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2013-08-29 20:47:18 -07:00
Jack Nagel
fb50be432a Remove default values from ENV.{cc,cxx}
Closes Homebrew/homebrew#22138.
2013-08-29 19:22:36 -05:00
Jack Nagel
d61d054eac superenv: fix no-op system path filtering 2013-08-29 19:08:22 -05:00
Jack Nagel
b3f0b9f7b9 Allow conflicts_with to accept multiple formula names
Closes Homebrew/homebrew#22202.
2013-08-29 19:08:15 -05:00
Misty De Meo
1900b70bd6 Check for valid --bottle-arch= when building 2013-08-28 20:21:06 -07:00
Misty De Meo
c58d707158 Allow building bottles with custom architectures
This allows overriding the "oldest CPU" behaviour - for instance, to
build Intel bottles for a newer CPU than Core 2, to build a PPC bottle
with or without Altivec on the same computer, etc.
2013-08-28 20:21:06 -07:00
Misty De Meo
8a99ea2094 superenv: also filter out -mcpu=
On PPC, -mcpu is the preferred equivalent to -march.
2013-08-28 20:01:58 -07:00
Jack Nagel
e5cd33c7a9 cleaner: don't change permissions on paths marked skip_clean 2013-08-28 12:00:06 -05:00
Samuel John
e38dd0b764 Don't consider files in the Cellar as Racks
Otherwiese a `Cellar/.DS_Store` may lead to an error about
`.ds_store.rb` not found during `brew upgrade`.
2013-08-28 09:35:11 +02:00
Misty De Meo
a39ba39688 Revert "superenv: fix cpp shim"
This reverts commit dca89db55189a34f1c02d3f12a84eda8d81fd6d1.
2013-08-27 18:31:57 -07:00
Misty De Meo
55654933f5 superenv: fix cpp shim
This sets cpp to use the compiler as cpp, and works with scripts which
pass values to cpp on stdin as well as with file arguments.

Closes Homebrew/homebrew#22155.
2013-08-27 18:24:08 -07:00