前回(【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
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
</div>
</div>
<div class="section">
    ### opensource COBOLのセットアップ
    
<div class="section">
    ##### ソースコードのダウンロード~インストール
    <a href="http://www.osscons.jp/osscobol/download/">http://www.osscons.jp/osscobol/download/</a> から「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&amp;block_id=414&amp;room_id=21&amp;cabinet_id=11&amp;file_id=308&amp;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. *
1
2
3
4
5
6
</div>
<div class="section">
    #### コンパイル
    ```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 :妹/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<br/>


</div>
</div>
<div class="section">
    ### 参考URL
    <a href="https://msys2.github.io/">MSYS2 installer</a><br/>
<a href="https://archlinuxjp.kusakata.com/wiki/Pacman">pacman - ArchWiki</a><br/>
<a href="http://arithmeticoverflow.blog.fc2.com/blog-entry-33.html">MSYS2でMinGW環境整備(2)</a>

</div>