Motivation
Macはclangをつかってコンパイルをしている。 どうやらコンパイラによって微妙に挙動が違うらしくMacでgccが使いたいと先生に言われて色々やった。
OpenFOAM-2.4.0向け
概要
流れ的には
といった順番になる。
一つづつやっていこう
gccを入れる
自分の環境と合わせたかったので最新のものではなくgcc-5.4.0をぶっこんだ
ソースコードからbuildする
まずはソースコードを入手し、解凍
$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.4.0/gcc-5.4.0.tar.gz $ tar zxvf gcc-5.4.0.tar.gz
解凍したディレクトリに移動して依存ファイル取得
$ cd gcc-5.4.0 $ contrib/download_prerequisites
build
ディレクトリを作成し、configure, build
$ mkdir build $ cd build $ ../configure --enable-languages=c,c++,fortran --prefix=/usr/local/gcc-5.4.0 --disable-bootstrap --disableultilib
$ make -j4 $ make install
/usr/local/binにgccをln -s
$ ln -s /usr/local/gcc-5.4.0/bin/gcc /usr/local/bin/gcc $ ln -s /usr/local/gcc-5.4.0/bin/g++ /usr/local/bin/g++
以下をbashrcに追記
export PATH=/usr/local/bin:$PATH
確認
$ gcc --version gcc (GCC) 5.4.0 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
参考: http://qiita.com/liveralmask/items/6ed4a98ebb3bf6b7f707
openmpiを入れる
新しすぎるopenmpiはなんかエラー吐いてめんどくさいのでちょっと古いの使う
$ wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.2.tar.gz $ tar zxvf openmpi-1.10.2.tar.gz
参考: https://www.open-mpi.org/software/ompi/v1.10/
buildディレクトリ作ってconfigureしてmake
$ mkdir build $ ../configure --prefix=/usr/local/openmpi $ make $ make install
以下を.bashrcに追加
export MANPATH=/usr/local/openmpi/share/man:$MANPATH export LD_LIBRARY_PATH=/usr/local/openmpi/lib:$LD_LIBRARY_PATH export PATH=/usr/local/openmpi/bin:$PATH
チェック
$ mpicc --version
参考: http://qiita.com/himo/items/c30d83d0f7642fb3af57
flexを入れる
これはmake – installでもbrewでもなんか無理だった macportを使う
sudo port install flex
OpenFOAMを入れる
なんかいろいろする
$ hdiutil create -size 8.3g -type SPARSEBUNDLE -fs HFSX -volname OpenFOAM -fsargs -s OpenFOAM.sparsebundle $ mkdir -p OpenFOAM $ hdiutil attach -mountpoint $HOME/OpenFOAM OpenFOAM.sparsebundle $ cd OpenFOAM
OpenFOAM2.4.0をダウンロード、解凍する
$ wget http://downloads.sourceforge.net/foam/OpenFOAM-2.4.0.tgz?use_mirror=mesh $ tar zxvf OpenFOAM-2.4.0.tar.gz
参考: https://openfoam.org/download/2-4-0-source/ パッチを当てる
$ cd OpenFOAM-2.4.0 これをダウンロード -> https://sourceforge.net/p/openfoam-extend/svn/HEAD/tree/trunk/Breeder_2.4/distroPatches/MacPatch/OpenFOAM-2.4.x-Mac.patch $ patch -p1<OpenFOAM-2.4.x_Mac.patch
make
./Allwmake
エラーが出るのでsrc/OpenFOAM/lnIncludeにFlexLexer.hを無理やりリンクさせて通す
$ ln -s /opt/local/include/FlexLexer.h $FOAM_SRC/OpenFOAM/lnInclude
もう一度make
./Allwmake
チェック
which icoFoam