Skip to content

Instantly share code, notes, and snippets.

@henry0312
Created June 14, 2012 17:32
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save henry0312/2931638 to your computer and use it in GitHub Desktop.
Save henry0312/2931638 to your computer and use it in GitHub Desktop.
Build GCC 4.7.1 on Mac OS X Lion
#!/bin/sh
# GCC
## Prerequisites for GCC
## http://gcc.gnu.org/install/prerequisites.html
## Installing GCC: Configuration
## http://gcc.gnu.org/install/configure.html
# 初期設定
GCC_VER=4.7.1
WORK_DIR=$HOME/Builds/GCC
BUILD_DIR=$WORK_DIR/build
export PATH='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin'
PREFIX=$HOME/local
export CC='/usr/bin/llvm-gcc'
export CXX='/usr/bin/llvm-g++'
export CFLAGS='-Os -msse4'
## https://trac.macports.org/ticket/27237
export CXXFLAGS='-U_GLIBCXX_DEBUG -U_GLIBCXX_DEBUG_PEDANTIC -Os -msse4'
# ディレクトリ移動
cd $WORK_DIR
# ソースコードのダウンロード
if [ ! -d $WORK_DIR/src ] ; then
mkdir src
#curl -o src/gcc-${GCC_VER}.tar.bz2 -O ftp://gcc.gnu.org/pub/gcc/snapshots/${GCC_VER}/gcc-${GCC_VER}.tar.bz2
curl -o src/gcc-${GCC_VER}.tar.bz2 -O ftp://gcc.gnu.org/pub/gcc/releases/gcc-${GCC_VER}/gcc-${GCC_VER}.tar.bz2
elif [ ! -f $WORK_DIR/src/gcc-${GCC_VER}.tar.bz2 ] ; then
#curl -o src/gcc-${GCC_VER}.tar.bz2 -O ftp://gcc.gnu.org/pub/gcc/snapshots/${GCC_VER}/gcc-${GCC_VER}.tar.bz2
curl -o src/gcc-${GCC_VER}.tar.bz2 -O ftp://gcc.gnu.org/pub/gcc/releases/gcc-${GCC_VER}/gcc-${GCC_VER}.tar.bz2
fi
# ソースコードの展開
if [ ! -d $WORK_DIR/gcc-${GCC_VER} ] ; then
tar xjf src/gcc-${GCC_VER}.tar.bz2
fi
# ビルドディレクトリの作成
if [ -d $BUILD_DIR ] ; then
rm -fr $BUILD_DIR
fi
mkdir $BUILD_DIR
# ビルド
cd $BUILD_DIR
$WORK_DIR/gcc-${GCC_VER}/configure\
--prefix=$PREFIX/gcc-${GCC_VER}\
--with-local-prefix=$PREFIX/gcc-${GCC_VER}\
--disable-debug\
--disable-multilib\
--enable-threads\
--enable-languages=c,c++\
--enable-stage1-checking\
--enable-plugin\
--disable-nls\
--enable-lto\
--with-system-zlib\
--with-gmp=/usr/local\
--with-mpfr=/usr/local\
--with-mpc=/usr/local
make clean && make bootstrap -j4 && make install-strip
# Clean
cd $WORK_DIR
rm -fr gcc-${GCC_VER}
rm -fr $BUILD_DIR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment