自分のマシンでExercismの演習を解くために、Fortranをローカルにインストールする方法を学びます
Fortranのトラックでは、次のソフトウェアがシステムにインストールされている必要があります。
このトラックには、Fortran 2003をサポートするコンパイラーが必要です。ここ数年でリリースされた主要なコンパイラーなら、どれも対応しているはずです。
以下では、GNU FortranまたはGFortranのインストール方法を説明します。その他のFortranコンパイラーはこちらにまとめられています。Intel Fortranは、高性能アプリケーション向けのプロプライエタリな選択肢としてよく使われています。ほとんどの演習はIntel Fortranでも動きますが、テストはGNU Fortranでしか行われていないため、すべてが同じように動くとは限りません。
CMakeは、ネイティブなビルドシステム(make、Visual Studio、Xcodeなど)向けのビルドスクリプトを生成する、オープンソースのクロスプラットフォームビルドシステムです。ExercismのFortranトラックではCMakeを使い、すぐに使えるビルド環境を用意しています。このビルド環境は次のことを行います。
CMakeを使うことで、Exercismはクロスプラットフォームなビルドスクリプトを提供できます。このスクリプトは、Visual StudioやXcodeのような統合開発環境向けのプロジェクトファイルも生成できます。これにより、演習ごとにビルドを設定する手間をかけずに、問題に集中できます。
移植性の高いビルドを用意するのは簡単ではなく、さまざまな種類のシステムへのアクセスが必要です。提供されているCMakeのレシピで問題が起きた場合は、issueを報告してください。CMakeのサポートを改善していきます。
提供されているビルドレシピを使うには、CMake 2.8.11以降が必要です。
Ubuntu 16.04以降には対応するコンパイラーがパッケージマネージャーに入っているので、必要なコンパイラーは次のコマンドでインストールできます。
sudo apt-get install gfortran cmake
その他のディストリビューションでは、パッケージマネージャーからコンパイラーを入手できるはずです。
MacOSでは、Homebrewを使ってGCCをインストールできます。
brew install gfortran cmake
Windowsにはいくつか選択肢があります。
Windows 10では、Windows Subsystem for Linux (WSL)が導入されました。サブシステムとしてUbuntu 16.04以降を使っている場合は、UbuntuのBashシェルを開き、Linuxの手順に従ってください。
Windowsでは、MingWを通してGNU Fortranを入手できます。一番簡単なのは、まずchocolateyをインストールし、管理者としてcmdシェルを開いて、次を実行する方法です。
choco install mingw cmake
これでMingW(GFortranとGCC)がC:\tools\mingw64に、CMakeがC:\Program Files\CMakeにインストールされます。次に、それぞれのインストール先のbinディレクトリをPATHに追加します。
set PATH=%PATH%;C:\tools\mingw64\bin;C:\Program Files\CMake\bin
Intel Fortranを参照してください。
Intel Fortranを使うには、まずFortranコンパイラーを初期化する必要があります。WindowsでIntel Fortran 2019とVisual Studio 2017を使う場合、コマンドラインは次のようになります。
"c:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019\windows\bin\ifortvars.bat" intel64 vs2017
これでIntel Fortranのパスが読み込まれ、CMakeが正しく認識するはずです。また、Windowsでコマンドラインビルドを行う場合は、CMakeのジェネレーターにNMakeを指定します。
mkdir build
cd build
cmake -G"NMake Makefiles" ..
NMake
ctest -V
上記のコマンドは、buildディレクトリを作成し(必須ではありませんが、良い習慣です)、実行ファイルをビルド(NMake)してテスト(ctest)を実行します。
他のバージョンのIntel Fortranでは、Windowsならifortvars.bat、LinuxやmacOSならifortvars.shをインストール先から探してください。オプションを付けずにシェルでスクリプトを実行すると、ヘルプに利用できるオプションが表示されます。LinuxやMacOSでは、コマンドは次のようになります。
. /opt/intel/parallel_studio_xe_2016.1.056/compilers_and_libraries_2016/linux/bin/ifortvars.sh intel64
mkdir build
cd build
cmake ..
make
ctest -V