xpm
- http://gnuwin32.sourceforge.net/packages/xpm.htm から「Developer files」をダウンロードし、md5をチェックする。
md5 の値が一致しない場合、危険なファイルである可能性が高いため使用せず、本家の対応を待つ。
また、ここからの作業は bash にて行う。
- 解凍し、xpm_lib_for_mingw.patch をダウンロードしパッチを充てる。
- /c/MinGW へ全てを置く。include と lib は同じフォルダが存在するので中身だけ、manifest はそのままフォルダごと移す。
- 以下、bash 上での「md5値の確認」からの一連の流れ。
$ md5sum.exe xpm-???-lib.zip ( ??? はバージョン番号 )
( 表示される文字列とweb上の文字列が一致することを確認 )
( zipファイルを解凍(展開)する )
$ cd xpm-???-lib
$ patch -p1 < [xpm_lib_for_mingw.patchのパス]
$ mv include/* /c/MinGW/include/
$ mv lib/* /c/MinGW/lib/
$ mv manifest /c/MinGW/
$ export CPPFLAGS='-I/c/swarm/include'
$ export LDFLAGS='-L/c/swarm/lib'
$ cd Swarm-2.4.1-MinGW-sources/sources/
$ tar jxf libpng-1.5.4.tar.bz2
$ cd libpng-1.5.4
$ ./configure --prefix=/c/swarm
$ make
$ make install
$ cd ../ ( libpngの作業からの続き、これでSwarm-2.4.1-MinGW-sources/sources/に移動 )
$ tar zxf tcl8.4.19-src.tar.gz
$ cd tcl8.4.19
$ patch -p1 < ../../patches/tcl-8.4.19-fix-lvalues.patch
$ cd win
$ ./configure --prefix=/c/swarm
$ make
$ make install
$ cd ../../ ( tclの作業からの続き、これでSwarm-2.4.1-MinGW-sources/sources/に移動 )
$ tar zxf tk8.4.19-src.tar.gz
$ cd tk8.4.19/win
$ ./configure --prefix=/c/swarm
$ make
$ make install
$ cd ../../ ( tkの作業からの続き、これでSwarm-2.4.1-MinGW-sources/sources/に移動 )
$ tar zxf BLT2.4z.tar.gz
$ cd blt2.4z
$ ./configure --prefix=/c/swarm --without-x
$ make
$ make install
- http://ftp.gnu.org/gnu/emacs/windows/ から emacs-???-bin-i386.zip ( ??? は最新版のバージョン番号 ) をダウンロードする。
( 可能ならば署名の確認を行う )
- 解凍し、全てを/c/MinGW以下へ置く。binフォルダは既に存在するので中身だけ移し、他のフォルダはそのまま /c/MinGW 以下へ移す。
$ cd emacs-??? ( ??? はバージョン番号 )
$ mv bin/* /c/MinGW/bin/
$ rmdir bin
$ mv * /c/MinGW/
- http://gnuwin32.sourceforge.net/packages/gperf.htm から「Binaries」をダウンロード、md5 をチェックする。
md5 の値が一致しない場合、危険なファイルである可能性が高いため使用せず、本家の対応を待つ。
- 解凍し、bin/gperf.exe を /c/MinGW/bin 以下へ置く。
- 以下、bash 上での「md5値の確認」からの一連の流れ。
$ md5sum.exe gperf-???-bin.zip ( ???はバージョン番号 )
( 表示される文字列とweb上の文字列が一致することを確認 )
( zipファイルを解凍(展開)する )
$ cd gperf-???-bin
$ mv bin/gperf.exe /c/MinGW/bin/
- oracle から最新版の「Windows x86」の「Java SE Development Kit」をダウンロードし、インストールする。
- 環境変数「PATH」に jdk/bin フォルダへのパスを末尾に追加する。以下に通常、jdk/bin がインストールされるパスを示す ( ??? はバージョン番号 )。
( 追加するパスの先頭に、区切り文字である「;」を忘れないこと )
- C:\Program Files\java\jdk???\bin ( 32bit OS の場合 )
- C:\Program Files (x86)\java\jdk???\bin ( 64bit OS の場合 )
- なお、Java 32bit版へのPATHは、Javaインストール時に追加される
- C:\Program Data\Oracle\Java\javapath
よりも上に持ってくる必要がある。(swarmのコンパイルには関係ないが、シミュレーション実行時に必要となる)
$ export CPPFLAGS=-I/c/swarm/include
$ tar zxf swarm-2.2_fix_0.36.tgz
$ cd swarm-2.2_fix_0.36
$ patch -p1 < [swarm_findImp_for_win8.1.patchのパス]
$ export CFLAGS='-g -O2 -std=gnu90'
$ ./configure --prefix=/c/swarm ( 改行せずに一行で入力すること )
--with-xpmdir=/c/MinGW
--with-tcldir=/c/swarm
--with-tclscriptdir=/c/swarm/lib/tcl8.4
--with-tkdir=/c/swarm
--with-tkscriptdir=/c/swarm/lib/tk8.4
--with-jdkdir=/c/PROGRA~2/Java/jdk??? ( ??? は最新版のバージョン番号 )
( 通常、java は 「Program Files」か「Program Files (x86)」以下に置かれるので、--with-jdkdir には省略形のパスを渡すこと )
$ make
$ make install
- configure オプションに渡す全てのパスは、スペースを含んではならない。スペースを含むパスを使用する場合は
Windowsの省略パスを使用すること。
- configure 時に「checking whether floats are returned in integer registers...」で conftest.exe エラーが起こるが、問題ない。
( 特殊なキャストが実行可能か試す際に、このエラーが発生する )
- make install 後に以下の環境変数を設定する。既に同名の環境変数が設定されているものは、末尾に「;」を付け区切り、その後に追記する。
PATH => C:\swarm\bin (追記の例 PATH => [既に設定されているパス];C:\swarm\bin )
SWARMHOME => /c/swarm/
CLASSPATH => .;C:\swarm\share\swarm\kawa.jar;C:\swarm\share\swarm\swarm.jar
実行
- 設定した環境変数を有効にするため、コマンドプロンプトを新しく立ち上げる。
- javac *.java ( 64bit 環境の場合、64bit 版 java を使用しないよう注意 )
- java [クラス名]
FAQ
- 環境変数の設定は旧Windows版に準拠しているので、適宜適切な方法で設定してほしい。
-
MinGWの入手法は変更になっているかもしれない。たとえば、
https://sourceforge.net/projects/mingw/files/
から、
- Installer->mingw-get-setup.exe
のリンクをたどると得られる。
- まれなケースだが、Octaveがインストールされている場合、正常に動作しない。
- 他に、Swarm-2.4.1-MinGWのインストール中に問題が発生する場合、同じコマンドを使用する他のプログラムと競合している場合がある。
その場合、bash上でexport PATH=/c/MinGW/bin:/c/MinGW/msys/1.0/bin:/c/swarm/bin:$PATHと、環境変数PATHの先頭に一時的にパスを追加することで動作する場合がある.
- クリーンな環境にインストールする場合、上記のような問題は発生しないので、どうしてもうまく行かない人は試してみてほしい。
- Javaは32bit版を使用するように注意する。たとえば、JDK : 1.8.0_121 (32bit)を用いる。
- なお、古いインストール法との違いは、Swarm2.2のコンパイル前に、
- $ export CFLAGS='-g -O2 -std=gnu90'
を実行することだけである。これはgccのバージョンアップで extern inline の仕様が変更されたことによる。