---
description: Windows 上で mingw64 版のビルドについてのみ記します
---

# OpenOCD のビルド : Windows 編

## 環境の準備

### Msys2 のインストール

適宜インストールします。(省略)

[https://www.msys2.org/](https://www.msys2.org/)

#### 当然 64bit 版を使います。

* MSYS2 MSYS
* MSYS2 MinGW 32-bit
* MSYS2 MinGW 64-bit

の３種類がスタートメニューに追加されますが MinGW 64-bit を選択して下さい。

![](https://1907000908-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M6TdChCiZpRe7r7Bo9G%2F-M6UfKaYu4pdTB0dbppa%2F-M6Ugt5Fm9cWje2DHZn9%2FMSYS2-MinGW64.png?alt=media\&token=aeab216a-78e8-4ee5-87ac-bff7afc19320)

### パッケージの追加

OpenOCD のビルドに必要なライブラリ等を追加します。

#### その前にアップデート

```bash
pacman -Syu
```

![](https://1907000908-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M6TdChCiZpRe7r7Bo9G%2F-M6UA3Z5Vnargc-D0N1G%2F-M6UC1j8y_3u_C7U7Fzu%2FMSYS2-pacman-Syu.png?alt=media\&token=be0e6720-0d7f-48c6-89a4-3696f0708ab9)

{% hint style="info" %}
表示されるメッセージに従い ここで一旦 Msys2 のウィンドウを閉じて開き直して下さい。
{% endhint %}

```bash
pacman -S git
```

git は [git for windows](https://gitforwindows.org/) 等の配布を利用した方がいいかもしれません。

```bash
pacman -S autoconf autoconf2.13　automake-wrapper
```

```bash
pacman -S libtool make pkg-config
```

```bash
pacman -S mingw-w64-x86_64-gcc
```

```bash
pacman -S mingw-w64-x86_64-hidapi mingw-w64-x86_64-libftdi mingw-w64-x86_64-libusb-compat-git
```

{% hint style="info" %}
複数行にして書きましたが一行にまとめて実行できます。

pacman -S autoconf autoconf2.13　automake-wrapper libtool make pkg-config mingw-w64-x86\_64-gcc mingw-w64-x86\_64-hidapi mingw-w64-x86\_64-libftdi mingw-w64-x86\_64-libusb-compat-git
{% endhint %}

## ソースの取得

対象のデバイスに合わせて取得元は変わって来る場合があります。アーカイブファイルとして提供されているものを使う必要があるかもしれません。

* 本家 [https://git.code.sf.net/p/openocd/code](https://sourceforge.net/p/openocd/code/)
* risc-v の場合 [https://github.com/riscv/riscv-openocd.git](https://github.com/riscv/riscv-openocd.git)&#x20;
  * など

```
git clone --recurse-submodules https://git.code.sf.net/p/openocd/code OpenOCD-SourceForge
```

{% hint style="info" %}
大抵はいくつかのフォークを使い分けることになるので分かりやすいディレクトリ名を付けましょう。
{% endhint %}

## ビルド

### bootstrap && configure

```bash
cd OpenOCD-SourceForge
```

```bash
./bootstrap
```

{% tabs %}
{% tab title="入力" %}
```bash
./configure
```
{% endtab %}

{% tab title="出力" %}
```
OpenOCD configuration summary
--------------------------------------------------
MPSSE mode of FTDI based devices        yes (auto)
ST-Link Programmer                      yes (auto)
TI ICDI JTAG Programmer                 yes (auto)
Keil ULINK JTAG Programmer              yes (auto)
Altera USB-Blaster II Compatible        yes (auto)
Bitbang mode of FT232R based devices    yes (auto)
Versaloon-Link JTAG Programmer          yes (auto)
TI XDS110 Debug Probe                   yes (auto)
OSBDM (JTAG only) Programmer            yes (auto)
eStick/opendous JTAG Programmer         yes (auto)
Andes JTAG Programmer                   yes (auto)
USBProg JTAG Programmer                 yes (auto)
Raisonance RLink JTAG Programmer        yes (auto)
Olimex ARM-JTAG-EW Programmer           yes (auto)
CMSIS-DAP Compliant Debugger            yes (auto)
Cypress KitProg Programmer              yes (auto)
Altera USB-Blaster Compatible           yes (auto)
ASIX Presto Adapter                     yes (auto)
OpenJTAG Adapter                        yes (auto)
SEGGER J-Link Programmer                yes (auto)

```
{% endtab %}
{% endtabs %}

{% hint style="info" %}
ビルドに必要なライブラリ等が足りないと失敗します。
{% endhint %}

### make

```bash
make -j
```

src の下に openocd.exe が作成されます。

{% hint style="info" %}
openocd.exe と以下の DLL があれば動きます。実行時に Msys2 への依存は(これらのDLLを除いては)ありません。

* libftdi1.dll
* libhidapi-0.dll
* libusb-0-1-4.dll
* libusb-1.0.dll
{% endhint %}



