Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Re^5: WindowsからのSAD
Date: 2008/10/06(Mon) 21:50:01
ContributorAkio Morita

> 設定ONにしたsad.conf
> #--------------------------------
> #!sad.conf.minimum
> COMPILER=GNU
> USE_GCC=4.2.3|4.3.0|4.4.0
> _USE_GFORTRAN= YES
> FC=gfortran
> CC=gcc
> FOPT = -O2 -fno-second-underscore -fdollar-ok -fargument-alias -mpreferred-stack-boundary=4 mfancy-math-387 -frecursive -fbackslash -std=legacy -fall-intrinsics
> SAD_ROOT=/usr/local/SAD
> USE_X11=YES
> USE_TCLTK=YES
> #--------------------------------
USE_GCCは、使用する GCCのバージョン番号を入れる変数なので、
この場合はUSE_GCC=4.3.0と書くのが正解

config/GCC.specでは左からバージョン番号らしき文字列を解釈するので
4.2.3|4.3.0|4.4.0と書いて有ると4.2.3と解釈されていると思う

_USE_GFORTRAN=YESは参照するコードが無いので意味がない&make framework的には
_で始まる変数はframework内部で使っている変数なので、framework(mk/sad.*.mk)の内部
動作を理解していない限り設定しない方が無難です。
# 内部動作を強制的に上書きする hackに使うのは自由ですが...

-fno-second-underscore -fdollar-ok -fargument-alias -mpreferred-stack-boundary=4は
自動的にSYS_FOPT経由で設定されるので不要なはず。

-fbackslashに関しては、USE_GCCで正しいバージョンが宣言されていれば自動的に
SYS_FOPT経由で必要な(-fbackslash/-fno-backslash)が設定されます。

-std=legacyもSYS_FOPTの-std=gnuでオーバーライドされるので意味がないはず。

あと、Linuxの場合 Dynamic Module Loaderが標準で有効に成るはずなので、
USE_X11/TCLTKを指定しなくても X11/Tkinter拡張モジュールが構築されて
インストールされます(使用時に、自動的に拡張モジュールがロードされる)

-recursive/-fall-intrinsics無しでもコンパイルできるはずというか、最小構成の sad.confだと...
SAD_ROOT=/usr/local/SAD
COMPILER=GNU
USE_GCC=4.3.0
FC=gfortran
CC=gcc
CXX=g++
で十分だと思います。
あとは最適化オプションに
FOPT=-O2
COPT=-O2
を追加するぐらいかな...

速度優先だと、GCCで最適化オプションをいじるより、
Interl C/Fortran compilerを持ってきた方が早くなります。


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)