Added a utility method to get an array of architecture names for
a given executable.
This will be useful for, say, figuring out what Python was compiled for,
to know what to compile a C-based module as.
Signed Off By: Max Howell <max@methylblue.com>
I added a test and made the function use `which` if the path provided is not
absolute. I considered allowing relative paths, but then it is possible for
the function to take eg. the svn binary from the current directory when you
meant the one in the path, and that could be a confusing bug.
Brew fails if a tool (make, or whatever) doesn't return an exit code
of 0. This patch displays the non-zero code on failure, so we can
better diagnose what caused the build to fail (or if we need to add
that exit code as exception 'success code'.)
I removed this months back as I found it confusing, does it mean:
prefix+'share' or prefix+'share'+name()
But honestly, it's obvious, it's the former. It's the same as the other path
functions.
This is because I have observed two people confuse make with the "make" tool
and thus assume `brew make' is `brew install'.
`brew make' will be deprecated at 0.7, until then it shows a warning.
Pressing CTRL-C during installs would remove the prefix but not the keg directory. brew list would then report this keg as installed, even though it was empty.
Defaulting to EDITOR, then checking for the mate command, and then using
vim as a last resort.
Signed Off By: Max Howell <max@methylblue.com>
Plain brew edit still uses Textmate though because a client that
supported a project concept is required for that particular feature.
Patches for that welcome.
Example usage:
brew search w # formulae containing w
brew search ^w # formulae starting with w
No parameters lists all packages.
Also adds puts_columns to util, and uses it for output.
Signed Off By: Max Howell <max@methylblue.com>
I changed the command from 'available' to search because this is more similar
to how other tools call this function.
The short form is -S, which is the "pacman" tool equivalent.
For when we optimize too much and things seem to break. In my experience the
GCC optimizer is pretty safe nowadays, but at least this allows you to test
the hypothesis the optimization is breaking the build.
New method which uses RubyCocoa with the FSEvents API from Rucola to watch if
files aren't installed outside the Homebrew prefix. Right now the paths being
watched are: /System, /usr, /etc, /sbin, /bin, and /Applications.
Signed Off By: Max Howell <max@methylblue.com>
I realised that -msse4.1 and -msse4.2 aren't supported by GCC 4.0, so I made
the brash decision that we require GCC 4.2. It comes with Xcode 3.1 so people
can upgrade if they have to.
Requiring a single compiler is better for us anyway -- less possible errors
and failures.
Formulae can still request gcc-4.0.1, but at least then those formulae still
only use a single compiler and not possibly two.
This regards Issue Homebrew/homebrew#30.
Turns out -march=native isn't supported by Apple's GCC, but while investigating it I found they'd back ported the -march=core2 option, so we win anyway.
Logic reverted to how it was yesterday.
I moved the gcc options stuff back to brewkit.rb as we manipulate the cflags more later and it seemed bad form to split the logic for this area over two files.
Additionally the brew command exits immediately on powerpc now. Brewkit doesn't throw as theoretically it is a useful library file for other projects.
I went with 0555 as the permissions changing only occurs to bin, sbin and lib, so there shouldn't be any files in there for editing in general anyway.
Formulae can specify not to "clean" any particular file by reimplementing the skip_clean? function, in case some config file or what not ends up in there.
Also committing cosmetic fix to pretty_duration function.
Thrift is a software framework for scalable cross-language services
development. It combines a powerful software stack with a code generation
engine to build services that work efficiently and seamlessly between C++,
Java, Python, PHP, and Ruby. Thrift was developed at Facebook and released as
open source.
Simplified hardware model testing.
Even smarter compiler option generation using sysctl and new GCC 4.2 features.
Get processor count from sysctl and thus remove our dependency on RubyCocoa.
If brew is called with an explicit path, eg. './bin/brew',
HOMEBREW_PREFIX is set to an empty string resulting in failure of all
brew commands using HOMEBREW_PREFIX. This commit forces Pathname to
compile an absolute path, setting HOMEBREW_PREFIX correctly.
I removed the rename and mv functions as when I wrote the tests I realised the function implied the pathname object would be updated to reflect the moved or renamed file. However that cannot be done. Also frankly I think writing it out in full makes clearer code.
Specifying -v/--verbose shows the build environment before the build
MACOS_VERSION contains the floating point value of the OS X version
A test for some floating point assumptions I make
Added Formula::etc()
Added Pathname::write() convenience function which can write a string out to
the file it points too, raising if it would have to overwrite.
The PWD environment variable is apparently not set for root.
Signed Off By: Max Howell <max@methylblue.com>
I removed the Dir.chdir line altogether as it was a hacky solution to an issue
in Ruby that I encountered a lot during early development, ie. I'd brew rm
while working directory was set to that keg.
We don't install documentation to save space. It seems pointless in this
modern age where the online docs are probably more up to date. However I do
believe this should be an option, defaulting to "don't install".