2016-03-10

gzip 1.4のファイルを展開してコンパイルしようとして躓く

OpenVMS alphaのディスクをFreeBSD/i386からNFSでマウントすることができるようになったので、gzip-1.4.tar.gzをFreeBSD/i386側にあるtar+gzipを使いOpenVMS alpha上のディスクに展開してみました。ただしNFSでエクスポートする設定に「/options=(name_conversion)」を指定しないと、OpenVMSにおけるファイル名規約のため展開できませんでした。展開すると以下に示しようなファイルが現れました。「name_conversion」をつけているのでOpenVMS側から見ると余分な記号などがついています。
 Directory DISK$USER:[FURUSAWA.GZIP-1$5N4]

$AUTHORS.;1         $C$HANGE$L$OG-2007.;1                   $C$HANGE$L$OG.;1
$COPYING.;1         $GNU$MAKEFILE.;1    $INSTALL.;1         $M$AKEFILE.AM;1
(以下略)
まず[.GZIP-1$5N4.VMS]$R$EADME.VMSにある「a) MAKEZIP.COM」の記述に従ってコンパイルしようとしたらエラーになりました。
$ @[.vms]makegzip

#include <config.h>
.^
%CC-F-NOINCLFILE, Cannot find file <config.h> specified in #include directive.
at line number 57 in file DISK$USER:[FURUSAWA.GZIP-1$5N4]GZIP.C;1
 config.hが見つからないというエラーですが、gzipに限らず普通ならconfigureを走らせることで作られるファイルです。

「Gzip 1.5 for VMS (1.5b)」 で提供されるtarballではgzip-1_5b_vms/vms/config.h_vmsが用意されています。その先頭には次のようなコメントが入っています。
 /* config.h_vms 1.5.  Generated manually (from Tru64).  2012-08-28 SMS. */
/* lib/config.h.  Generated from config.hin by configure.  */
/* lib/config.hin.  Generated from configure.ac by autoheader.  */
つまりOpenVMS以外(この場合はTru64)でconfigureを走らせてconfig.hを生成し、その後に手作業で修正したということなのでしょう。

gzip-1.4.tar.gzを展開するとVMSディレクトリの下にファイルが用意されているので、直ちにコンパイルできるものと考えていましたが、そういう訳ではなかったようです。まずはconfig.hを生成してみようと思います。OpenVMSではconfigureが動かないので、今回はFreeBSD/i386を使おうと思います。将来的にはconfigureがOpenVMSでも動くと良いと思いますが、既に実現されているのでしょうか。

0 件のコメント:

コメントを投稿