Cygwinでのcfg(1.9.0)のビルドについて

Cygwinはパッケージをある程度ダウンロードできるのでcfgのビルドもそんなに難しくはないだろうということで一応まとめておくことにします。
CygwinLinuxディストリビューションと同じで、作成したcfgを他のバージョン(端末)のCygwinに持っていっても動作しない可能性がありますので、複数のCygwin環境の場合は個々につくるか、Cygwinの環境を合わせた方がよいです。

Cygwinのインストール

標準パッケージ+Develパッケージを全てインストールしました。
インストール後に以下の作業を行ってください
- boostで検索し、libboost-develを追加インストールしてください。
- xercesで検索し、xercesとxerces-develをアンインストールしてください。*1

Xerces-cのビルドとインストール(HAS_CFG_XML=1の時のみ)

XMLのパースにXerces-cを使っているので構築します。*2
Cygwinのパッケージに入っているXercesが3.0.0と古いのでソースからビルドすることにします。
Xerces-cの3.1.1をダウンロードして、やっぱりconfigureを一部修正して、xerces_cv_icu_presentの値を強制的にYESにする必要がありそうです。

$ ../configure --disable-pretty-make --disable-network --enable-transcoder-icu --disable-shared CFLAGS=-O3 CXXFLAGS=-O3

そうすると以下のような設定が表示されました。

configure: Report:
configure:   File Manager: POSIX
configure:   Mutex Manager: Windows
configure:   Transcoder: icu
configure:   NetAccessor: disabled
configure:   Message Loader: inmemory

あとは

$ make;make install

だけです。

cfgのビルド

ATK2をビルド(HAS_CFG_XML=1)するのであれば、

$ ./configure
LIBBOOST_SUFFIX=-mt
BOOST_VERSION=1_48
BOOST_DIR=/usr/include
XERCES_DIR=/usr/include
LIBBOOST_DIR=/usr/lib
LIBXERCES_DIR=/usr/lib
OPTIONS=
HAS_CFG_XML=1

しないのであれば、

$ ./configure --without-xml
LIBBOOST_SUFFIX=-mt
BOOST_VERSION=1_48
BOOST_DIR=/usr/include
XERCES_DIR=/usr/include
LIBBOOST_DIR=/usr/lib
LIBXERCES_DIR=/usr/lib
OPTIONS=

$ make

とすればcft.exeの出来上がりです。ちなみに出来上がったcfgのサイズは以下のとおりでした。

  • HAS_CFG_XML=0 4125317
  • HAS_CFG_XML=1 8190878

今回使った環境は

でした

*1:ソースからビルドするため

*2:C言語で動く汎用的なXMLパーサがこれしかなかった