mount -t vfat /dev/fd0 /mnt/floppy
で成功。-t msdosだと8.3文字のファイル名に縮められてしまうのでだめ。
%cd /usr/local
%mkdir adventure/
アーカイブ用のディレクトリを作成
%cd adventure
%mkdir archive
%cd archive
%cp /mnt/floppy/* ./
同様にBCtoolをFDでコピー。一旦FDをアンマウントしないといけない。
%umount /dev/fd0
%mount -t vfat /dev/fd0 /mnt/floppy
%cp /mnt/floppy/* ./
引き続きTetMeshからPDFを除いたものとTriPatchをFDでコピー。TetMeshをばらしたのは、アーカイブが大きすぎるため。
Adv_IO解凍用ディレクトリの作成
%cd /usr/local/adventure
%mkdir AdvIO
%mv archive/AdvIO-0.81b.tar.gz AdvIO/
%cd AdvIO
%gunzip AdvIO-0.8b.tar.gz
%tar -xvf AdvIO-0.81b.tar
%gzip AdvIO-0.81b.tar
%mv AdvIO-0.81b.tar ../archive/
作業場は/usr/loca/にあるより/miyoshiにある方が安心なので/adventureを移動
#su
#cd /usr/local
#mv /usr/loca/adventure ~miyoshi/
#exit
突然miyoshiで操作をしようとしたら、属性がrootになっていてファイルを操作不能
%su
#cd ~miyoshi
#chown -R miyoshi:miyoshi adventure
で所有者を変更した。
%gunzip AdvTriPatch-0.82b.tar.gz
%tar -xvf AdvTriPatch-0.82b.tar
(1)環境変数PATHに/usr/loca/binを追加する。
(2)共有ライブラリを探す環境変数LD_LIBRARY_PATHに/usr/local/libを追加する。
/rootの.cshrcのバックアップを取る。
%su
#cd /root
#cp .cshrc .cshrc.original
#emacs .cshrc
(1)はsetenv PATHの行を次のように変更
setenv PATH="/usr/local/bin:/usr/sbin:/sbin:${PATH}"
(2)は次の1行を追加
setenv LD_LIBRARY_PATH /usr/local/lib
%su
#mkdir /usr/local/adventure
#tcsh
#source .cshrc
#printenv
なぜかrootだとtcshを起動しても自動的に.cshrcが呼ばれないのでsourceコマンドで実行する。
#cd ~miyoshi/adventure/AdvTriPatch-0.82b
#make install prefix=/usr/local/adventure/bin
#exit
%ls /usr/local/adventure/bin
ADVENTURE_TriPatch* maskMelon* mcpach*
フロッピーを使って苦労してダウンロードしてきた部分アーカイブであるAdvTetMesh-0.81bS.tar.gzは今やftpで取得したフルアーカイブがあるので削除した。
/root/tmp/からAdvTetMesh-0.81bS.tar.gzを~miyoshi/adventure/archiveに移動した後にchownでオーナを変更。
%cd ~miyoshi
%cd adventure
%cd archive
%su
#chown miyoshi:miyoshi AdvTetMesh-0.81bS.tar.gz
#exit
%cd ..
%gunzip -c archive/AdvTetMesh-0.81b.tar.gz
| tar -xvf -
最後の-の意味はtarの入力をファイルとして扱うという意味らしい。
%cd AdvTetMesh-0.81b
%cd TetMesh_M
Makefileのデフォールト設定はTru64なので編集してLinux用に修正。
# for g++
#CXX = g++
# for cxx
CXX = cxx
を
# for g++
CXX = g++
# for cxx
#CXX = cxx
へ変更。
# for Linux
#LDFLAGS = -static
# for Tru64 Unix
LDFLAGS = -non_shared
を
# for Linux
LDFLAGS = -static
# for Tru64 Unix
#LDFLAGS = -non_shared
へ変更。
%make
%cd ..
%su
#cp bin/* /usr/local/adventure/bin/
%ls /usr/local/adventure/bin
ADVENTURE_TriPatch advtmesh8m maskMelon mcpach
%cd adventure
%cd AdvIO-0.81b
%./configure
%make
%ls include/Adv
15個の*.hファイルが作られた。
%ls lib
4個のアーカイブファイルが作られた。
%su
#cp -R ./lib/ /usr/local/adventure/
#exit
%ls /usr/local/adventure/lib/
で4個のアーカイブファイルを確認。
%su
#cp -R ./include/ /usr/local/adventure/
#exit
%ls /usr/local/adventure/include/Adv
で15個のヘッダファイルを確認。
一般ユーザでログイン
%cd adventure
%gunzip -c archive/AdvBCtool-0.81b.tar.gz
| tar -xvf -
%cd AdvBCtool-0.81b
%cd src
%cd bcGUI
%emacs Makefile
Mesaは/usr/localにインストールしたので
GL_INC = -I/usr/include
GL_LIB = -L/usr/lib
を
GL_INC = -I/usr/local/include
GL_LIB = -L/usr/local/lib
に変更する。
LessTifは/usr/X11R6/にインストールしたので、
MOTIF_INC = -I/usr/X11R6/include
MOTIF_LIB = -L/usr/X11R6/lib
のままで変更しない。
%make > make.log
copenglview.cxx: In method `bool COpenGLView::RenderScene(float
*)
':
copenglview.cxx:303: warning: negative value
`-1' passed as
argument 1 of `glPus
hName(GLuint)'
../Common/TFC/cnode.o: In function `_Rb_tree<CMESH
*, pair<CMESH
*const, bool>,
_Select1st<pair<CMESH *const, bool>
>, less<CMESH *>,
allocator<bool> >::_M_crea
te_node(pair<CMESH *const, bool> const
&)':
../Common/TFC/cnode.o(._Rb_tree<CMESH
*, pair<CMESH *const, bool>,
_Select1st<pa
ir<CMESH *const, bool> >, less<CMESH
*>, allocator<bool>
>::gnu.linkonce.t._M_cr
eate_node(pair<CMESH *const, bool>
const &)+0x51): undefined
reference to `__sta
rt_cp_handler'
../Common/TFC/cnode.o: In function `vector<CMESH
*,
allocator<CMESH *> >::_M_ins
ert_aux(CMESH **, CMESH *const &)':
../Common/TFC/cnode.o(.vector<CMESH *,
allocator<CMESH *>
>::gnu.linkonce.t._M_i
nsert_aux(CMESH **, CMESH *const &)+0x169):
undefined reference to
`__start_cp_h
andler'
../Common/TFC/cnode.o: In function `_Rb_tree<CELEMENTGRP
*,
pair<CELEMENTGRP *co
nst, bool>, _Select1st<pair<CELEMENTGRP
*const, bool> >,
less<CELEMENTGRP *>, al
locator<bool> >::_M_create_node(pair<CELEMENTGRP
*const, bool>
const &)':
../Common/TFC/cnode.o(._Rb_tree<CELEMENTGRP
*, pair<CELEMENTGRP
*const, bool>, _
Select1st<pair<CELEMENTGRP *const,
bool> >, less<CELEMENTGRP *>,
allocator<bool>
>::gnu.linkonce.t._M_create_node(pair<CELEMENTGRP
*const, bool>
const &)+0x51):
undefined reference to `__start_cp_handler'
../Common/TFC/cnode.o: In function `vector<CELEMENTGRP
*,
allocator<CELEMENTGRP
*> >::_M_insert_aux(CELEMENTGRP **,
CELEMENTGRP *const &)':
../Common/TFC/cnode.o(.vector<CELEMENTGRP
*, allocator<CELEMENTGRP
*> >::gnu.lin
konce.t._M_insert_aux(CELEMENTGRP **, CELEMENTGRP
*const
&)+0x169): undefined re
ference to `__start_cp_handler'
../Common/TFC/cnode.o: In function `allocator<pair<CMESH
*const,
bool> >::alloca
tor(void)':
../Common/TFC/cnode.o(.allocator<pair<CMESH
*const, bool>
>::gnu.linkonce.t.(voi
d)+0x18): undefined reference to `__start_cp_handler'
../Common/TFC/cnode.o(.gnu.linkonce.t._._t9allocator1Zt4pair2ZCP5C
MESHZb+0x33):
more undefined references to `__start_cp_handler'
follow
/usr/X11R6/lib/libXm.so: undefined reference
to
`XpGetDocumentData'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpStartPage'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpQueryExtension'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpEndPage'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpEndJob'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpSelectInput'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpGetContext'
collect2: ld returned 1 exit status
make: *** [bcGUI] エラー 1
webで
http://www.astronomy.net/forums/xephem/messages/79.shtml
を見つけた。その回答記事に従ってMakefileを訂正した。
%emacs Makefile
LIBS = -lMesaGLw -lGLU -lGL -lXm -lXt -lXmu -lXext -lSM -lICE -lX11 -lm
を
LIBS = -lMesaGLw -lGLU -lGL -lXm -lXp -lXt -lXmu -lXext -lSM -lICE -lX11 -lm
に変更した。再度
%make
今度は成功。
%su
#cp bcGUI /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
でコピーされたことを確認。
%cd ..
%cd faceOfMesh
%make
%su
#cp faceOfMesh /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
%cd ..
%cd makefem
%emacs Makefile
ADVSYSDIRにAdvIOを設置したディレクトリを記述する。
ADVSYSDIR = $(HOME)/adventure/AdvIO-0.81b
%make
%su
#cp makefem /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
%cd ..
%cd makepcg
%make
%su
#cp makepcg /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
%cd ..
%su
#cp msh2pcg /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
一般ユーザでログイン
%cd adventure
%gunzip -c archive/AdvMetis-0.61.tar.gz |
tar -xvf -
%cd AdvMetis-0.61
%emacs Makefile.in
ADVSYSDにAdvIOを設置したディレクトリを記述する。
ADVSYSD = $(HOME)/adventure/AdvIO-0.81b
ふと気づいたが、AdvIOのヘッダファイルとアーカイブファイルは他のモジュールのコンパイルのみに必要なのであり、/usr/local/にはインストールする必要はなかったのではないか?
%make
%cd ADVENTURE_METIS
%su
#cp adventure_metis /usr/local/adventure/bin
#exit
%ls /usr/local/adventure/bin
一般ユーザでログイン
%cd adventure
%gunzip -c archive/AdvSolid-0.81b.tar.gz
| tar -xvf -
%cd AdvSolid-0.81b
%./configure --with-adv=/home/miyoshi/adventure/AdvIO-0.81b
--prefix=/home/miyoshi/adventure
%make
%make install
%cd ..
%su
#cp bin/* /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin
advshow advsolid advsolid-h advsolid-p advsolid-s hddmmrg log2cnv-cg log2cnv-nr log2info
が追加された。
一般ユーザでログイン
%cd adventure
%gunzip -c archive/AdvVisual-0.2b.tar.gz
| tar -xvf -
%cd AdvVisual-0.2b
%cd server
%./configure --with-advio=/home/miyoshi/adventure/AdvIO-0.81b
%make
次のエラーが起きる。
socket++.cpp: In method 'Init SockInetServer::noChanel()':
socket++.cpp: 351: 'struct fd_set' has no
member named 'fds_bits'
make:*** [socket++.o] Error 1.
対策
socket++.cpp の348行目の
#if 0 を
#if 1 に書き換えてから
% make clean
% make
%su
#cp advvis_server /usr/local/adventure/bin/
#exit
%cd ..
%cd client
%emacs Makefile
Mesaは/usr/localにインストールしたので
MESA_INCDIR = /usr/include
MESA_LIBDIR = /usr/lib
に設定する。
LessTifは/usr/X11R6/にインストールしたので、
MOTIF_INCDIR = /usr/X11R6/include
MOTIF_LIBDIR = /usr/X11R6/lib
に設定する。
%make linux
/usr/X11R6/lib/libXm.so: undefined reference
to `XpGetDocumentData'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpStartPage'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpQueryExtension'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpEndPage'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpEndJob'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpSelectInput'
/usr/X11R6/lib/libXm.so: undefined reference
to `XpGetContext'
collect2: ld returned 1 exit status
make[1]: *** [advvis] エラー 1
make[1]: 出ます ディレクトリ `/home/miyoshi/adventure/AdvVisual-0.2b/client'
make: *** [linux] エラー2
bcGUIのmakeの時と同じエラーなので、同じ対策を取る。
%emacs Makefile
linux :
....
"LIBS = -lXm -lXt -lX11 -lXext -lGLU
-lGL -lpthread -lm"
を
linux :
....
"LIBS = -lXm -lXp -lXt -lX11 -lXext
-lGLU -lGL -lpthread -lm"
に変更した。再度
%make clean
%make linux
で成功。
%su
#cp advvis /usr/local/adventure/bin/
#exit