Dann Luciano

A lifelong student of the art of programming computers!

Instalando GCC 4.7.1 No Mac OS X Mountain Lion

| Comments

Como ja expliquei anteriormente a Apple não disponibiliza mais o GCC no Mac OS X 1.8 ou se preferirem Mountain Lion. Então estou publicando um script para fazer a instalação não só do GCC bem como de suas dependências.

Antes de mais nada é importante você ter o Command Line Tools instalando em seu mac seja pelo .dmg ou pelo Xcode.

Basicamente só atualizei o script para as versões mais novas de cada componente, pois na época o gcc 4.7 ainda era experimental.

(build_gcc2.bash) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#! /bin/bash

PREFIX=/usr/local/gcc
BUILD_FOLDER=gcc

if [ $UID -ne 0 ] ; then
    echo "Root Please"
    exit 1
fi

mkdir -p $BUILD_FOLDER

cd $BUILD_FOLDER

echo "Download need files"

wget ftp://ftp.gmplib.org/pub/gmp-5.0.4/gmp-5.0.4.tar.bz2 -c
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.1.tar.bz2 -c
wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz -c
wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.7.1/gcc-4.7.1.tar.bz2 -c

echo "Compiling gmp"

tar xfz gmp-5.0.4.tar.bz2
cd gmp*
mkdir build
cd build

../configure --prefix=$PREFIX
make
make check
make install

cd ../../

echo "Compiling mpfr"

tar xfz mpfr-3.1.1.tar.bz2
cd mpfr*
mkdir build
cd build

../configure --prefix=$PREFIX --with-gmp=$PREFIX
make
make install

cd ../../

echo "Compiling mpc"

tar xfz mpc-0.9.tar.gz

cd mpc*
mkdir build
cd build
../configure --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX
make
make install

cd ../../

echo "Compiling GCC"

tar xfz gcc-4.7.1.tar.bz2

cd gcc*
mkdir build
cd build
../configure --prefix=$PREFIX --enable-checking=release --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX
make -j 4
make install


echo "GCC Build Complete in " $PREFIX

cd ../../../

read -p "Erase your build directories (y/n)?"
[ "$REPLY" == "n" ] || rm -rf $BUILD_FOLDER

echo "Please added the lines in .bashrc or .zshrc"
echo "export PATH='$PREFIX/bin:$PATH'"

Para você não ter que executar todos esses passos manualmente aqui vai um atalho:

1
curl http://blog.dannluciano.com.br/downloads/code/build_gcc2.bash | sudo bash

Ao final o script pergunta se você quer remover o diretório onde foi compilados os códigos objetos. Se você não tiver interesse eu quiser um espaço extra é só responder y. Se não remover esse diretório poderá ser usado para futuros updates do GCC tendo a vantagem de não compilar tudo do zero novamente.

Para testar o GCC recém compilado, bastar adicionar a pasta /usr/local/gcc/bin no PATH do seu Terminal e digitar: gcc -v

A saída deve se parecer com isso:

1
2
3
4
5
6
7
8
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc/libexec/gcc/x86_64-apple-darwin12.0.0/4.7.1/lto-wrapper
Target: x86_64-apple-darwin12.0.0
Configured with: ../configure --prefix=/usr/local/gcc --enable-checking=release --with-gmp=/usr/local/gcc --with-mpfr=/usr/local/gcc --with-mpc=/usr/local/gcc
Thread model: posix
gcc version 4.7.1 (GCC)

O grupo responsável pelo High Performance Computing for Mac OS X também já atualizaram os binários do GCC compilados por eles. Para instalar é só executar a sequencia de passos abaixo.

1
2
3
4
wget http://prdownloads.sourceforge.net/hpc/gcc-mlion.tar.gz?download
gunzip gcc-mlion.tar.gz
sudo tar -xvf gcc-mlion.tar -C /
echo "export PATH=/usr/local/bin:$PATH" >> /etc/profile

Espero ter ajudado alguma alma. Qualquer problema, critica ou sugestão é só comentar ou enviar um email para dannluciano at gmail dot com. Boa sorte.

Comments