1999/12/03    CERNLIB 2000

Y2K の前に CERNLIB 2000 にアップデート。念のために、dis45、patchy、garfield もコンパイルし直し。
同じ作業を HP-UX と Intel Linux でもしないといけない。あーめんどくさい。

[1] CERNLIB 2000

使った開発環境は
gcc*-2.95.2-1cm
glibc-2.1.3-0b
binutils-2.9.5.0.14-0a
XFree86-3.3.3.1-49a
lesstif-0.88.1-1
これについては使用上の注意を参照(gcc-2.95.1 を適当に gcc-2.95.2 に読み代える)。

ビルドの手順は以下のごとし。すべてのライブラリー lib*.a は、shared lib に組み込めるよう -fPIC つきでコンパイル。

# cd /
# rm cern
# ln -s /home/cernlib cern
# cd /cern
# for i in `ls <somewhere>/src_*.tar.gz`; do tar -zxvf $i; done
# ln -s 2000 new
# ln -s 2000 pro
# mkdir -p 2000/work
# chown fujiik:jlc 2000/work
# chown fujiik:jlc 2000
# cd src
# patch -p1 -s < <somewhere>/config_pic.patch
# patch -p1 -s < <somewhere>/mclibs_lepto63.patch
# patch -p1 -s < <somewhere>/mclibs_photos.patch
# patch -p1 -s < <somewhere>/packlib_tcpaw.patch
$ cd /cern/2000/work
$ mkdir logs
$ export CVSCOSRC=/cern/2000/src
$ cp $CVSCOSRC/scripts/cernlib ../bin
$ $CVSCOSRC/config/imake_boot
$ make tree HAVE_MOTIF='YES' >& ../logs/tree.log &
$ tail -f ../logs/tree.log    99/12/03 15:17-15:21
^C

$ cd packlib/kuip/programs/kuipc
$ make
$ make install.bin
$ cd /cern/2000/work

$ make HAVE_MOTIF='YES' >& ../logs/make.log &              99/12/03 15:22-18:22
$ tail -f ../logs/make.log

$ cd packlib
$ make install.bin HAVE_MOTIF='YES' >& ../../logs/packlib.bin.log &
$ tail -f ../../logs/packlib.bin.log                       99/12/03 18:43-18:48

$ cd ../pawlib
$ make install.bin HAVE_MOTIF='YES' >& ../../logs/pawlib.bin.log &
$ tail -f ../../logs/pawlib.bin.log                        99/12/03 20:45-20:45

$ cd ../graflib
$ make install.bin HAVE_MOTIF='YES' >& ../../logs/graflib.bin.log &
$ tail -f ../../logs/graflib.bin.log                       99/12/03 20:46-20:46

$ cd ../scripts
$ make install.bin HAVE_MOTIF='YES' >& ../../logs/scripts.bin.log &
$ tail -f ../../logs/scripts.bin.log                       99/12/03 20:47-20:47

$ cd ..
$ make install.include CERN_INCLUDEDIR=/cern/new/include \
  >& ../logs/install.include.log &                         99/12/03 20:48-20:49
$ tail -f ../logs/install.include.log

$ su
# rpm -ivh /usr/local/src/patchy/patchy*-4.15-2a.ppc.rpm
# exit
$ cd patchy
$ make install.bin HAVE_MOTIF='YES' >& ../../logs/patchy.bin.log &
$ tail -f ../../logs/patchy.bin.log                       99/12/03 20:52-20:53
$ su
# rpm -e patchy-symlinks
# rpm -e patchy
# exit
 

Tests

$ cd ../packlib
$ make test >& ../../logs/packlib.test.log &                                      99/12/03 20:54-20:58
$ tail -f ../../logs/packlib.test.log

 ALL TESTS PASSED!

$ cd ../mathlib
$ make test >& ../../logs/mathlib.test.log &                                      99/12/03 20:59-21:01
$ tail -f ../../logs/mathlib.test.log

 ALL TESTS PASSED!

$ cd ../graflib/higz/examples
$ make higzex
$ ./higzex

 OK!

$ cd ../../../../src/pawlib/paw/demo
$ paw all.kumac
...
go
...
 OK!
 

$ cd ../../../../work/mclibs
$ make test >& ../../logs/mclibs.test.log &                                      99/12/03 21:13-21:17
$ tail -f ../../logs/mclibs.test.log

 ALL TESTS PASSED!
        but remember you remove lepto63 from testlibdir.

$ cd ../phtools
$ make test >& ../../logs/phtools.test.log &                                    99/12/03 21:17-21:17
$ tail -f ../../logs/phtools.test.log

 ALL TESTS PASSED!

$ cd ../geant321
$ make test >& ../../logs/geant321.test.log &                                 99/12/03 21:18-21:38
$ tail -f ../../logs/geant321.test.log

 ALL TESTS PASSED!
 

Aftermath

# cd /home/cernlib
# chown -R root:root *
# mkdir 2000/tgz
# tar -zcvf 2000/tgz/cernlib2000-bin.tar.gz 2000/bin
# tar -zcvf 2000/tgz/cernlib2000-lib.tar.gz 2000/lib
# tar -zcvf 2000/tgz/cernlib2000-include.tar.gz 2000/include
# tar -zcvf 2000/tgz/cernlib2000-share.tar.gz 2000/share

CERNLIB の使用にはライセンスが必要。ライセンスをお持ちの方で、linuxppc-1999 用のバイナリーパッケージが必要な方は連絡下さい (2000年4月現在、CERNLIB は GPL 準拠のライセンスに変わりましたので、cernlib のディレクトリーのパスワード保護は外しました。必要な方は御自由にお持ちください)

[2] Patchy, garfield, and dis45

patchy-4.15-2b.ppc.rpm
patchy-symlinks-4.15-2b.ppc.rpm
garfield-6.27-1b.ppc.rpm
dis45-1.36-2b.ppc.rpm

これらも CERNLIB がリンクされているのでライセンスが必要。ライセンスをお持ちの方で、linuxppc-1999 用のバイナリーパッケージが必要な方は連絡下さい。SRPM もあります (2000年4月現在、CERNLIB は GPL 準拠のライセンスに変わりましたので、dis45 のディレクトリーもパスワード保護は外しました。必要な方は御自由にお持ちください。また、linuxppc-2000 でもおそらく動作すると思います)
 


Back to Keisuke Fujii's MkLinux/LinuxPPC Life