前回(【COBOL】WindowsにOpenCOBOL環境を構築 - くんすとの備忘録)から約2年が経ち、パッケージやらなにやらのバージョンが上がったりしているので、最近のやり方でもう一度セットアップしてみます。
※前回はMinGWを使いましたが、今回はMSYS2を使用します。

### MSYS2のセットアップ
#### インストーラの実行 MSYS2のインストーラを以下のサイトからダウンロードし、インストールします
MSYS2 installer
  • x86_64 … 64bit版
  • i686 … 32bit版
※管理者権限は不要のようです

#### 環境のアップデート スタートメニューより「MinGW-w64 Win32 Shell」を起動します。※以降は全てこのコンソール上で作業します。

#### システムパッケージの更新 ``` pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime ```MSYS2のコンソールを閉じて、開き直します。
#### 組み込みパッケージの更新 ``` pacman -Su ```
#### コンパイルに必要なパッケージのインストール ``` pacman -S gcc make gmp-devel libdb-devel pacman -S wget mkdir /usr/local ```
### nkfのセットアップ
##### ソースコードのダウンロード~インストール ```sh cd /tmp wget -O nkf-2.1.3.tar.gz "http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz" bsdtar zxvf nkf-2.1.3.tar.gz cd nkf-2.1.3 make make install ```
### opensource COBOLのセットアップ
##### ソースコードのダウンロード~インストール http://www.osscons.jp/osscobol/download/ から「opensource COBOL v1.4.0J [SJIS, Source Package, include vbisam (extend OSSCons patch)]」をダウンロードしてインストールします ```sh cd /tmp wget -O opensource-cobol-1.4.0J.tar.gz "http://www.osscons.jp/osscobol/files/?action=cabinet_action_main_download&block_id=414&room_id=21&cabinet_id=11&file_id=308&upload_id=589" bsdtar zxvf opensource-cobol-1.4.0J.tar.gz cd opensource-cobol-1.4.0J ./configure make make install cd ```
### 動作確認、コンパイルなど
#### 検証用ソース
  • cobtest.cob
```cobol IDENTIFICATION DIVISION. PROGRAM-ID. test1. ENVIRONMENT DIVISION. * DATA DIVISION. * WORKING-STORAGE SECTION. 01 FILLER. 03 TEST-X. 10 VAR PIC X(14). 10 END-POINT PIC X(01) VALUES '/'. 03 TEST-9. 10 VAR PIC 9(08). 10 END-POINT PIC X(01) VALUES '/'. 03 TEST-S. 10 VAR PIC S9(07). 10 END-POINT PIC X(01) VALUES '/'. 03 TEST-COMP3. 10 VAR PIC S9(09)V9(2) COMP-3. 10 END-POINT PIC X(01) VALUES '/'. 03 TEST-N. 10 VAR PIC N(09). 10 END-POINT PIC X(01) VALUES '/'. 03 TEST-B. 10 VAR PIC S9(4) COMP. 10 END-POINT PIC X(01) VALUES '/'. * PROCEDURE DIVISION. MAIN-RTN. PERFORM EDIT-RTN. PERFORM OUTPUT-RTN. MOVE 9 TO RETURN-CODE. EXIT. STOP RUN. * EDIT-RTN SECTION. MOVE 'This is X Type' TO VAR OF TEST-X. MOVE 12345678 TO VAR OF TEST-9. MOVE -12345 TO VAR OF TEST-S. MOVE 123456789.12 TO VAR OF TEST-COMP3. MOVE 'こんにちは、世界!' TO VAR OF TEST-N. MOVE 38533 TO VAR OF TEST-B. *> 38533 = 0x9685 = '妹' EXIT. * OUTPUT-RTN SECTION. DISPLAY 'TEST-X :' TEST-X. DISPLAY 'TEST-9 :' TEST-9. DISPLAY 'TEST-S9 :' TEST-S. DISPLAY 'TEST-COMP3:' TEST-COMP3. DISPLAY 'TEST-N :' TEST-N. DISPLAY 'TEST-BYTE :' TEST-B. EXIT. * ```
#### コンパイル ```sh cobc -x cobtest.cob ```
#### 実行 ```sh ./cobtest.exe | nkf -xS ```実行結果 ``` TEST-X :This is X Type/ TEST-9 :12345678/ TEST-S9 :001234u/ TEST-COMP3:4Vx/ TEST-N :こんにちは、世界!/ TEST-BYTE :妹/ ```以上。