Ubuntu 14.04 + swarm-2.2
Ubuntu 14.04 ( 64bit ) + swarm-2.2 インストールの流れ
- シェルは bash を使用しているので、csh 系の場合は適宜読み替えること。
- binutils:i386
- gcc-4.8:i386
- gobjc-4.8:i386, gobjc-4.8-multilib
- autoconf, automake
- emacs
- gperf
- libxpm-dev:i386
- libxpm4:i386
- libpng12-dev:i386
- openjdk-7-jdk:i386 ( oracle jdk でも可。ただし、32bit版を使用すること。また、パスは適宜変更すること )
- OS インストールで 「Ubuntu GNOME desktop」と「OpenSSH server」を選択し、追加パッケージは何も入れない状態からの作業を記している。
- 以下のコマンドを実行し、必要なパッケージをインストールする。
$ sudo apt-get install binutils:i386
$ sudo apt-get install gcc-4.8:i386
$ sudo apt-get install gobjc-4.8:i386
$ sudo apt-get install gobjc-4.8-multilib
$ sudo apt-get install autoconf
$ sudo apt-get install emacs
$ sudo apt-get install gperf
$ sudo apt-get install libxpm-dev:i386
$ sudo apt-get install libpng12-dev:i386
$ sudo apt-get install openjdk-7-jdk:i386
$ export CFLAGS=-m32
$ export CPPFLAGS=-m32
$ export OBJCFLAGS=-m32
$ export CC=gcc-4.8
$ wget http://download.savannah.gnu.org/releases/swarm/src/swarm/Swarm-2.4.1-MinGW-sources.zip
$ unzip Swarm-2.4.1-MinGW-sources.zip
$ cd Swarm-2.4.1-MinGW-sources/sources
$ tar zxf tcl8.4.19-src.tar.gz
$ cd tcl8.4.19/unix
$ ./configure
$ make
$ sudo make install
$ cd ../../ ( tclの作業からの続き、これでSwarm-2.4.1-MinGW-sources/sources/に移動 )
$ tar zxf tk8.4.19-src.tar.gz
$ cd tk8.4.19/unix
$ ./configure --x-libraries=/usr/lib/i386-linux-gnu
$ make
$ sudo make install
$ cd ../../ ( tkの作業からの続き、これでSwarm-2.4.1-MinGW-sources/sources/に移動 )
$ tar zxf BLT2.4z.tar.gz
$ cd blt2.4z
$ patch -p1 < ~/ダウンロード/blt2.4z_for_32bit_on_64bit_ubuntu.patch
$ ./configure
$ make
$ sudo make install
$ cd /usr/local/lib/tk8.4
$ sudo patch -p1 < ~/ダウンロード/tk8.4_script_for_linux.patch
$ export CFLAGS=-m32
$ export CPPFLAGS=-m32
$ export OBJCFLAGS=-m32
$ export CC=gcc-4.8
$ cd ~/ダウンロード
$ tar zxf swarm-2.2_fix_0.36.tgz
$ cd swarm-2.2_fix_0.36
$ ./configure --with-xpmlibdir=/usr/lib/i386-linux-gnu/ ( 改行せずに一行で入力すること )
--with-tcldir=/usr/local
--with-tclscriptdir=/usr/local/lib/tcl8.4/
--with-tkdir=/usr/local
--with-tkscriptdir=/usr/local/lib/tk8.4/
--with-jdkdir=/usr/lib/jvm/java-1.7.0-openjdk-i386
--target=i686-pc-linux-gnu
--host=i686-pc-linux-gnu
--build=i686-pc-linux-gnu
$ make
$ sudo make install
- 最後に環境変数をセットする。~/.bashrcの末尾に以下の3行を追加。
export SWARMHOME=/usr/local/
export CLASSPATH=.:/usr/local/share/swarm/kawa.jar:/usr/local/share/swarm/swarm.jar
export LD_LIBRARY_PATH=/usr/local/lib
実行
- 先ほど設定した環境変数を有効にするため、上記 export 文を実行するか、ターミナルを新しく立ち上げる。
- javac -encoding Shift_JIS *.java ( 64bit 版 java を使用しないよう注意。また oracle JDK と openjdk を混用しないよう注意 )
- java [クラス名]
FAQ
- OpenJDK 64-Bit Server VM warning: You have loaded library /xxx/xxx/libjavaswarm.so.1.0.0 which might have disabled stack guard.
というエラーが発生する場合、64bit版のjavaにパスが通ってしまっているので、~/.bashrcの先頭に以下の文を追加する。
- export PATH=/usr/lib/jvm/java-7-openjdk-i386/jre/bin:$PATH