1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[OpenFOAM/foam-extend] wmakeのコンパイルフラッグを変更する

Last updated at Posted at 2018-12-05

はじめに

OpenFOAM/foam-extendはwmakeという独自のビルドシステム(中身はただのbashファイル)を使っています。
wmakeにはOpt/Debug/Profという3種類のビルドが用意されているのですが、コンパイルフラッグを追加したり、各モードに既定のグローバルなコンパイルフラッグを変更したいときがあります。

今回は、研究室の同僚のプログラムをcallgrindを使ってプロファイリングするために、Profに既定されたグローバルなコンパイルフラッグ-pg -O2を変更する方法を見つけるのに苦労したので、忘れないようにメモとして残しておきます。

wmakeはOpenFOAM/foam-extendでしか使われておらず、ドキュメントも充実していないので、同じように苦労された方々が多いんじゃないでしょうか。

グローバルなコンパイルオプションの設定場所

OpenFOAM-#.#/foam-extend-#.#のディレクトリ直下にwmakeというディレクトリがあります。その中のrulesというディレクトリの下に、各プラットフォームおよびコンパイラごとの設定ファイルが置かれています。
今回はUbuntu-16.04LTS、gcc、Profモードのオプションを変更したかったので、wmake/rules/linux64Gcc/c++Profを変更しました。

c++Prof:変更前
c++DBUG    = -pg
c++OPT     = -O2
c++Prof:変更後
c++DBUG    = -g
c++OPT     = -O2

ライブラリ・アプリケーションごとのコンパイルオプションの設定

各ライブラリ・アプリケーションフォルダ直下のMakeディレクトリにあるoption/option.debugファイルのEXE_INCにコンパイルフラッグを追加することができます。Opt/Profモードではoptionファイルを、Debugモードではoption.debugファイルが使われます。
特定のライブラリ・アプリケーションのみ設定を一時的に変更したい場合に便利です。

Make/option:変更前
EXE_INC = \
  -I$(LIB_SRC)/meshTools/lnInclude \
  ...

LIB_LIBS = \
  -lmeshTools \
  ...
Make/option:変更後
EXE_INC = \
  -Wall -Wpedantic \
  -I$(LIB_SRC)/meshTools/lnInclude \
  ...

LIB_LIBS = \
  -lmeshTools \
  ...
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?