移動先 先頭, , , 末尾 セクション, 目次.

gawkをインストールする

この付録では、サポートされている様々なプラットフォームにgawkをイ ンストールするやり方を説明する。本来の開発者はUNIX(といつかは、GNU)をサ ポートし、他のプラットフォームに対する移植は寄付(contribute)によって行わ れている。gawkの配布キット中にある`ACKNOWLEDGMENT'というファ イルには各プラットフォームへの移植者とその電子メイルアドレスがリストアッ プされている、彼らの名前はセクション 問題やバグの報告を参照. にもある。

gawk の配布パッケージ

このセクションではまずgawkの配布パッケージの入手と展開の方法。 そしてサブディレクトリ中のファイルについて説明する。

Getting the gawk Distribution

GNUソフトウェアを入手するには三つの方法がある。

  1. 既に持っている誰かのものをコピーする。
  2. Free Software Foundationに直接gawkを注文することもできる。 ソフトウェアの配布はUNIX、MS-DOS、VMSに対するものを テープかCD-ROMで受けることができる。 注文先の住所は

    Free Software Foundation
    59 Temple Place--Suite 330
    Boston, MA 02111-1307 USA
    Phone: +1-617-542-5942
    Fax (including Japan): +1-617-542-2652
    E-mail: gnu@gnu.org

    直接 FSF に注文することは、FSFに対する援助となり、 また、より多くのフリーソフトウェアの生産の一因になる。
  3. gnudist.gnu.orgというホストの`/gnu/gawk'というディレクトリ から匿名ftpを使ってgawkを入手することができる。 以下にGNUソフトウェアを入手できるftpサイトの一覧を載せる。 "site:directory"のような形の場合、 directoryはGNUソフトウェアが置かれているディレクトリを 表わしている。 あなたがいる場所に地理的に近いサイトを使うのが良いだろう。
    アジア:
    cair-archive.kaist.ac.kr:/pub/gnu
    ftp.cs.titech.ac.jp
    ftp.nectec.or.th:/pub/mirrors/gnu
    utsun.s.u-tokyo.ac.jp:/ftpsync/prep
    オーストラリア:
    archie.au:/gnu
    (archie.oz or archie.oz.au for ACSnet)
    アフリカ:
    ftp.sun.ac.za:/pub/gnu
    中東:
    ftp.technion.ac.il:/pub/unsupported/gnu
    ヨーロッパ:
    archive.eu.net
    ftp.denet.dk
    ftp.eunet.ch
    ftp.funet.fi:/pub/gnu
    ftp.ieunet.ie:pub/gnu
    ftp.informatik.rwth-aachen.de:/pub/gnu
    ftp.informatik.tu-muenchen.de
    ftp.luth.se:/pub/unix/gnu
    ftp.mcc.ac.uk
    ftp.stacken.kth.se
    ftp.sunet.se:/pub/gnu
    ftp.univ-lyon1.fr:pub/gnu
    ftp.win.tue.nl:/pub/gnu
    irisa.irisa.fr:/pub/gnu
    isy.liu.se
    nic.switch.ch:/mirror/gnu
    src.doc.ic.ac.uk:/gnu
    unix.hensa.ac.uk:/pub/uunet/systems/gnu
    南アメリカ:
    ftp.inf.utfsm.cl:/pub/gnu
    ftp.unicamp.br:/pub/gnu
    西カナダ:
    ftp.cs.ubc.ca:/mirror2/gnu
    アメリカ:
    col.hp.com:/mirrors/gnu
    f.ms.uky.edu:/pub3/gnu
    ftp.cc.gatech.edu:/pub/gnu
    ftp.cs.columbia.edu:/archives/gnu/prep
    ftp.digex.net:/pub/gnu
    ftp.hawaii.edu:/mirrors/gnu
    ftp.kpc.com:/pub/mirror/gnu
    アメリカ (続き):
    ftp.uu.net:/systems/gnu
    gatekeeper.dec.com:/pub/GNU
    jaguar.utah.edu:/gnustuff
    labrea.stanford.edu
    mrcnext.cso.uiuc.edu:/pub/gnu
    vixen.cso.uiuc.edu:/gnu
    wuarchive.wustl.edu:/systems/gnu

Extracting the Distribution

gawkは GNU Zipプログラム、gzipで圧縮したtarファイルとして 配布されている。

配布キットを受け取ったら(たとえば`gawk-3.0.4.tar.gz')、 最初にgzipを使ってファイルを伸長し、さらにtarを使って 展開する。これを以下のようなパイプラインにgawkの配布キットを 通すことでできる。

# System Vでは、tarのフラグに'o'を追加する
gzip -d -c gawk-3.0.4.tar.gz | tar -xvpf -

これにより、`gawk-3.0.4'という名前のディレクトリが カレントディレクトリに作成される

配布キットのファイル名は`gawk-V.R.n.tar.gz'.のよ うな形式であり、VgawkのメジャーバージョンをRV でのリリース番号を、そしてnは小規模なバグ修正などが行われた パッチレベルを表わしている。現在のパッチレベルは4 であるが、配布キット を入手するときにはもっとも高いバージョン、リリース 番号、パッチレベルの ものを入手すべきである(リリース番号が90以上のものは"ベータ"レベルであり、 non-production softwareであることを表わている。実験することを考えていな いかぎり、このようなバージョンを入手すべきではない)。

もしUNIXシステムを使っていないのなら、そのシステム向けに アレンジされたものを入手して展開する必要があるだろう。 あなたのそばにいるエキスパートに相談するのが良いだろう。

Contents of the gawk Distribution

gawkの配布キットには、幾つかのCソースファイル、 ドキュメントファイル、 コンフィギュレーションに関連したファイルとサブディレクトリ (セクション UNIX上での gawkのコンパイルとインストールを参照)、 UNIX以外のオペレーティングシステム用のサブディレクトリと ファイルがある。

`.c', `.y', `.h' という拡張子のついたファイル
これらのファイルはgawkの実際のソースコードである。
`README'
`README_d/README.*'
説明ファイル。`README'はUNIX上のgawkのため、 その他のファイルは様々なハードウェア、ソフトウェアの ためのものである。
`INSTALL'
コンフィグレーションとインストールの手順のまとめたファイル。
`PORTS'
gawkが既に移植され、test suiteの実行も成功して いるシステムのリスト。
`ACKNOWLEDGMENT'
主な移植のコードや、ドキュメントを寄付してくれた人々のリスト。
`ChangeLog'
バグを修正したり、改良を行ったときのソースコードの変更のリスト。
`NEWS'
以前のリリースやパッチからのgawkの変更点のリスト。
`COPYING'
GNU 一般公有許諾書(GNU General Public License)。
`FUTURES'
将来のリリースで予定されている変更点や追加される機能の簡単なリスト。 一部の機能については、その難易度に応じてその機能を追加する タイムフレーム(time frame)がついている。
`LIMITATIONS'
gawkの性能上の限界となる項目のリスト。 これらのほとんどのものはハードウェアやオペレーティングシステム ソフトウェアによるもので、gawkそれ自身の限界ではない。
`POSIX.STD'
POSIX標準でのawkの仕様で正しくないところと、 gawkがその問題をどのように厚かっているかの説明
`PROBLEMS'
カレントリリースにおける現時点でわかっている問題点の説明が あるファイル。
`doc/awkforai.txt'
gawkがAI(Artificial Intelligence, 人工知能)プログラミングに 向いた言語であることを示す短い発言。
`doc/README.card'
`doc/ad.block'
`doc/awkcard.in'
`doc/cardfonts'
`doc/colors'
`doc/macros'
`doc/no.colors'
`doc/setter.outline'
五色のawkリファレンスのための、troffソース。 GNU troff (groff)のような新しいバージョンのtroffは カラーバージョンを生成することが要とされる。あなたの使っているのが 古いtroffであった場合の操作説明は`README.card'という ファイルを参照のこと。
`doc/gawk.1'
gawkを説明するマニュアルページのtroffのソース。 これはUNIXユーザーの便宜のため配布されている。
`doc/gawk.texi'
このマニュアルのTexinfoソース。 印刷マニュアルを作成するにはTeXで、 Infoファイルを作成するにはmakeinfoを使用する。
`doc/gawk.info'
このマニュアルから生成されたInfoファイル。
`doc/igawk.1'
セクション ライブラリを使う簡単な方法を参照. で提供されているigawkプログラムに関して説明している マニュアルページのtroffソース。
`doc/Makefile.in'
コンフィグレーションの段階で実際の`Makefile' を生成するための入力ファイル。
`Makefile.in'
`acconfig.h'
`aclocal.m4'
`configh.in'
`configure.in'
`configure'
`custom.h'
`missing/*'
これらのファイル、サブディレクトリはgawkを様々な UNIXシステム用にコンフィグレーションするときに使用するものである。 詳しい説明は セクション UNIX上での gawkのコンパイルとインストールを参照.
`awklib/extract.awk'
`awklib/Makefile.in'
`awklib'ディレクトリには、このマニュアルのTexinfoソースファイ ルからサンプルプログラムを抜き出す`extract.awk' (セクション Texinfoのソースファイルからプログラムを取り出すを参照) のコピーと、configure`Makefile'を生成するのに使用する `Makefile.in'が含まれる。gawkの作成手順の一部として、 セクション awkの関数ライブラリを参照, からライブラリ関数が、 セクション ライブラリを使う簡単な方法を参照, からigawkプログラムが、そ れらを使用するためにファイルの展開が行われる。
`atari/*'
Atari ST上でgawkを作成するときに必要なファイル。 詳しくは セクション Atari STでの gawk のインストールを参照.
`pc/*'
MS/DOSやOS/2上でgawkを作成するときに必要なファイル。 詳しくは セクション MS-DOS および OS/2 でのインストールとコンパイルを参照.
`vms/*'
VMS上でgawkを作成するときに必要なファイル。 詳しくは セクション VMS上でのgawkのコンパイルとインストールを参照.
`test/*'
gawkのテスト用スクリプトのセット。 作成したgawkに対してテストを実行するには、gawkの トップディレクトリから`make check'とタイプすれば良い。 gawk`make chekck'で行ったテストに合格すれば、 移植(またはインストール)が成功したと考えてよい。

UNIX上での gawkのコンパイルとインストール

通常は、gawkをコンパイルとインストールを行うには たった二つのコマンドをタイプするだけでできる。しかし、 あなたの使っているのが一般的なシステムでない場合、 あなた自信でgawkをconfigureする必要があるかもしれない。

Compiling gawk for Unix

gawkの配布キットを展開した後で、`gawk-3.0.4'cdする。gawkconfigureプログラムを実行することに より、使用しているUNIXシステム用に自動的にコンフィグレーションを行う。 configureはBourne シェルのスクリプトであり、GNU の autoconfを使用して自動的に生成されたものである (autoconfソフトウェアは、Free Software Foundationから入手できる Autoconf--Generating Automatic Configuration Scripts, で詳しく説明されている)

gawkのコンフィグレーションは、単にconfigureを実行するだけである。

sh ./configure

これにより使用しているシステム用に調整された`Makefile'`config.h'が作成される。`config.h'というファイルは使用してい るシステム に関する様々な項目を記述している。あなたは`Makefile'中 にあるコンパイラに渡すコマンドラインオプション(最適化のレベルとかデバ ッグ用にコンパ イルするとか)を制御するCFLAG変数を変更したくなる ことがあるかもしれない。

その代わりに、CCCFLAGSのようなmakeの変数の 大部分に対しては、configureの実行するときにコマンドラインで 指定することで、(オプションなどの)追加を行うことができる。

CC=cc CFLAGS=-g sh ./configure

詳しくはgawkの配布キットの`INSTALL'というファイルを 参照のこと。

configureを実行した後で、編集された`Makefile'

make

のようにして使用して 少し待てば、gawkの実行ファイルができあがる。 それですべては終わり! (もしこの手順がうまくいかなければ、バグレポートを送って欲しい。 セクション 問題やバグの報告を参照.)

The Configuration Process

(This section is of interest only if you know something about using the C language and the Unix operating system.)

gawkのソースコードは、通常可能な限り標準に従おうとする。これは、 gawkはANSI 標準Cライブラリや、POSIX 標準オペレーティングシステムイ ンターフェースで規定されているライブラリ関数を使用するということである。 ANSI Cコンパイラを使っているときには、関数プロトタイプはコンパイル時のチ ェックをより厳密にするために使われる。

多くのUNIXシステムでは、ANSIとPOSIXを両方ともサポートしているということ はない。gawk配布キットの`missing'というサブディレクトリには、 そういった欠けていることが多いサブルーチンを置き換えるものが入っている。

configureによって作成される`config.h'というファイルは、gawk をコンパイルしようとしている特定のオペレーティングシステムの機能を説 明する定義から構成されている。このファイルによって記述されることは三つあ り、それは正しくインクルードできるように使用できるヘッダーファイル、使用 しているCライブラリで実際に使える標準関数、その他のそして使用しているUNI Xの種々雑多な事実、という三つである。たとえば、構造体statに@code {st_blksize}という要素がなかったとすると、`HAVE_ST_BLKSIZE'が undefineされる。

`config.h'. Cコンパイラがconfigureを失敗させるようなことがありうるが、それは おそらくライブラリ関数が使用できなくてエラーになるようなことがなかったと きだろう。これに対処するために、、`custom.h'というファイルを編集す ることができる。あなたの使うシステムに適切な#ifdefを使い、 configureが定義すべきだがそうなっていない定数を#defineし、 あるい はconfigure定義すべきでないのに定義されているような定数を #undefにする。`custom.h'`config.h'により自動的にインク ルード される。

なにかの理由であなたのシステムではautoconfが作成したconfigure プログラムがうまく働かない可能性がある。このような問題に直面した場合 には、`configure.in'というファイルをautoconfの入力にする。あ なたはこのファイルを変更することもできるし、あなたのシステムできちんと動 作する新しいconfigureを生成するこもできる。gawkのコンフィ グレーションで起きた問題のレポートの方法は、 セクション 問題やバグの報告を参照.。 同じ方法が、`configure.in'`custom.h'の更新についても使用できる。

VMS上でのgawkのコンパイルとインストール

このセクションでは、VMSの元でのgawkのコンパイルと インストールの方法を説明する。

Compiling gawk on VMS

VMSの元でgawkをコンパイルするために、必要なすべてのCCコマ ンドとLINKコマンドを発行するDCLコマンドプロシージャ、 MMSユーティリティで使うための`Makefile'がある。ソースディレ クトリから

$ @[.VMS]VMSBUILD.COM

もしくは

$ MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK

のどちらかを使用する。 使用するCコンパイラに応じて、以下のテーブルにある手順の 何れか一つを使用する。

VAX C V3.x
`vmsbuild.com'`descrip.mms'のいずれかを そのまま使用する。これらはVersion 3.0に欠くことのできない CC/OPTIMIZE=NOLINEを使用する。
VAX C V2.x
Version 2.3か2.4である必要があり、それ以前のバージョンでは動作しない。 `vmsbuild.com'`descrip.mms' のいずれかをそれらのファイルにあ るコメントに従って編集する。`vmsbuild.com'では、二つの`!'デリ ミッタを取り除くことを必要とする。同様に、`config.h' (`[.config]vms-conf.h'というファイルのコピー)を編集し、 `#define __STDC__ 0'`#define VAXC_BUILTINS' の二行を削除する かコメントアウトする。
GNU C
`vmsbuild.com' もしくは `descrip.mms'を編集する。 変更点はVAX C2.xとは異なるが、同じように簡単である。 `config.h'を変更する必要はない。
DEC C
Edit `vmsbuild.com' もしくは `descrip.mms' をそのコメントに従って編集する。 `config.h'の変更の必要はない。

gawkはVAX C V3.2、GNU C 1.40、GNU C 2.3 を使ったVAX/VMS 5.5-1 の元でテストされた。 VMS V4.6以上のものでは変更なしで動作するはずである。

Installing gawk on VMS

gawkをインストールするために、ドル記号で始まるシンボルを持った DCLの"foreign" コマンドを必要とする。

$ GAWK :== $disk1:[gnubin]GAWK

(`$disk1:[gnubin]'を実際にgawk.exeが置かれている場所に置き換 える。)このシンボルはgawkを実行したいと考えるすべてのユーザーの `login.com'に置かれるようにする。それによって、ユーザーがログインした ときはいつでもこれが定義される。あるいは、このシンボルをすべてのユーザー がgawkを実行できるようにシステムワイドな`sylogin.com'に置く こともできる。

Optionally, the help entry can be loaded into a VMS help library:

$ LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP

(You may want to substitute a site-specific help library rather than the standard VMS library `HELPLIB'.) After loading the help text,

$ HELP GAWK

will provide information about both the gawk implementation and the awk programming language.

論理名`AWK_LIBRARU'awkプログラムのデフォルトの 置き場所を指定することができる。 `-f'オプションで、デバイスやディレクトリパスの情報が ない形でファイル名が指定されていた場合、gawkは 最初にカレントディレクトリを検索し、そこでファイルが見つからなければ 次いで`AWK_LIBRARY'で指定されるディレクトリを検索する。 これらの両方の検索を行った後でもなおファイルが見つからなかった場合には gawkはファイル名に`.awk'という拡張子を付加して ファイルの検索を再度試みる。`AWK_LIBRARY'が定義されていなければ、 ファイルの検索は再検索が行われることなく失敗する。

Running gawk on VMS

コマンドラインの解釈とクォーティング(quoting)の規則は、 VMSのものと重大な違いがある。そのため、このマニュアルや 他のソースから持ってきたサンプルプログラムは、しばしば ちょっとした変更が必要となる。この違いは小さなもの(minor)であり、 awkプログラムは正しく実行されるだろう。

以下に幾つかのちょっとしたテストを挙げる。

$ gawk -- "BEGIN {print ""Hello, World!""}"
$ gawk -"W" version
! could also be -"W version" or "-W version"

大文字の場合と、大小文字が混ざっている場合には クォートしなければならないことに注意。

VMSへのgawkの移植には、オリジナルのシェルスタイルインターフェース (詳しくはヘルプエントリを参照)に加えて、DCLスタイルのインターフェ ースが含まれている。二つのコマンドライン解析の副作用の一つは、パラメータ (先のプログラムの様にクォートされた文字列のような)が一つだけしかなかった ときコマンドは曖昧になる。これに対処するために、通常DCLスタイルの 解析ではなくUNIXスタイルの解析を強制的に行わせる`--'オプションフラ グが通常は必要となる。もしその他のダッシュタイプのオプション(もしくは処 理対象のファイルのような、複数のパラメータ)があったとすると、それは曖昧 ではなく、`--'も省略することができる。

`-f'オプションによって指定されたawkのプログラムファイルを検 索するときのデフォルトの検索パスは、"SYS$DISK:[],AWK_LIBRARY:"で ある。論理名`AWKPATH'はこのデフォルトをオーバーライドできる。 `AWKPATH'の書式はカンマで区切られたディレクトリ指定のリストである。 これが定義されているとき、その値は単一の解釈(translation)であって複数の RMS検索リストではないように、クォートした方が良い。

Building and Using gawk on VMS POSIX

上にあるような手順を無視したとしても、`vms/gawk.hlp'は ヘルプライブラリで使うことができる。 必要ならば`chmod +x'を使用して configureスクリプトを実行可能にしておくこと。 実行は次のようなコマンドで行う。

$ POSIX
psx> CC=vms/posix-cc.sh configure
psx> make CC=c89 make gawk

最初のコマンドは、configureの期待するCコンパイラを作るためのスクリプ トを使ってテンプレートから`config.h'`Makefile'を生成する。 二番目のコマンドはCコンパイラを直接使ってgawkのコンパイルと リンクを行う。このとき、makeの出すCCを再定義できない とい警告は無視する。configureは実行に際して非常に長い時間が かかるけれども、少なくともそれが実行されているということを示す フィードバックがある。

これはVAX/VMS V6.2, VMS POSIX V2.0 及び DEC C V5.2.でテストされた。

一度ビルドすれば、gawkは他のシェルユーティリティと同じように動作 する。normal VMSへのgawkの移植とは異なり、VMS POSIX環境では特別な コマンドライン操作は必要ではない。

MS-DOS および OS/2 でのインストールとコンパイル

もしDOS担当保守者達によるバイナリ配布キットを入手したならば、gawk と必要なサポートファイルは`gnu'というディレクトリの下に展開される。 実行ファイルは`gnu/bin'に、ライブラリは`gnu/lib/awk'に、マニュ アルページは`gnu/man'に置かれる。これはユーザーのドライブの`/gnu' ディレクトリに単純にインストールするようにデザインされているが、 AWKPATHがセットされている場所であればどこにでもファイルを置くことがで きる。インストールするディレクトリに関係なく、(`gnu/bin'にある) `igawk.cmd'`igawk.bat'の最初の一行を編集する必要があるかもしれ ない。

バイナリ配布キットは内容を説明する別々のファイルを含んでいるだろう。特に、 二つ以上のgawkの実行ファイルが入っているかもしれない。OS/2のバイ ナリ配布キットは異なったアレンジが加えられているかもしれないが、インスト ールは同様である。

OS/2用、MS-DOS用のgawkは セクション AWKPATH環境変数を参照. で説明されているようにプログラムを検索する。 しかしながら、AWKPATH変数中の区切りには (コロンではなく)セミコロンが使用される。 もしAWKPATHがセットされていないか、内容が空であれば デフォルトの検索パス".;c:/lib/awk;c:/gnu/lib/awk"が 使用される。

(MS-DOSのcommand.comやOS/2のcmd.exeに対立するものとしての) shに似たシェルがawkプログラミングには便利だろう。Ian StewartsonはMS-DOS、OS/2のために素晴らしいシェルを作成した。また、OS/2のた めにkshクローンを作成し、GNU BashをOS/2で使えるようにした。 gawkの配布キットにある`README_d/README.pc'というファイルにはこれ らのシェルに関する情報がある。StewartonのシェルをDOSで使う人は、コマンド ラインの取り扱いのドキュメントの記述を確かめたほうが良いだろう。特にこの ようなシェルの元で使うgawkの設定は変更する必要があるだろうし、 ignoretypeオプションは特に重要なものであるだろう。

gawkはMS-DOSやOS/2用に、DJ Delorieや (DJGPP、MS-DOSのみ)、Eberhard Mattesによる(EMX、MS-DOSおよびOS/2) GNU開発ツールを使ってコンパイルすることができる。 Microsoft CはMS-DOSおよびOS/2用の16bitバージョンを作成するために 使用することができる。gawkの配布キット中にある `README_d/README.pc' というファイルにはコンパイル時のオプションに関する 重要な注意書がある。

gawkをビルドするために、`pc'というディレクトリにある ファイル(`ChangeLog'は除く) をgawkの他のソースがあるディレクトリにコピーする。 `Makefile'にはコメントがついたコンフィグレーションセクションが あり、正しく動作させるために使用するmakeユーティリティに応じて 編集する必要があるかもしれない。

`Makefile'にはさまざまなMS-DOS、OS/2バージョンをビルドするためのタ ーゲットが多数ある。ターゲットのリストはmakeユーティリティをター ゲットを指定せずに起動すると出力される。例えば、DJGPPを使ってgawk をビルドするには`make djgpp'と入力する。

makeを使って標準テストの実行とgawkをインストールするには、 更に別のshsedcpといったUNIXライクツールが必要と なる。テストを実行するために、`test/*.ok'というファイル群をDOSスタ イルの行末に変換する必要があるかもしれない。テストのほとんどはStewartson のシェルとcompanion ユーティリティや適切な GNUユーティリティを一緒に使っ たときに正しく動作する。しかし、多少の`test/Makefile'の編集が必要 である。`pc/Makefile.tst'を、`README_d/README.pc'というファイ ルを置き換える形でコピーするのをお勧めする。

Atari STでの gawk のインストール

様々なAtariのモデルがあるが、どのモデルであってもgawkのインストー ルにほとんど差はない。コンパイルされた実行形式のgawkはほとんどの awkプログラムでは大きなメモリーを必要とはしないし、モトローラのプ ロセッサを搭載したすべてのモデルで実行できる(それが正確ではないとしても STと呼ぶ)

gawkを使うためには、テキスト形式にしろグラフィックス形式であるに しろ、コマンドライン上のすべてのキャラクタを大文字にマッピングしたりしな いシェルが必要となる。オプションフラグの大小文字を保存することは、非常に 重要である(セクション コマンドラインオプションを参照)。今日ではこれはデフォ ルトであり、一部の非常に古いマシンでのみこの問題が生じることになるだろう。 もし、あなたのシステムがオプションフラグの大小文字を保存しないのであれば、 あなたの使っているツールをアップグレードする必要がある。入出力リダイレク トのサポートは、他の環境からawkプログラムを持ってくることを簡単に するために必要である。パイプはあればいいが、必需というほどでもない。

Compiling gawk on the Atari ST

sizeof(int)sizeof(void *)とが異なる場合の 適切なgawkソースのコンパイルには、ANSI Cコンパイラが 必要となる。最初にgccが移植が行われた。 intは4バイトの大きさがあるように実行したいかもしれないが、 他の様々な作業はきちんと動作する。

gawkのソースのコンパイルをするときに、一部の大きなソースファイル (特に`regex.c')では多くのメモリが必要になるかもしれない。もしこれら のファイルをコンパイルしているときにメモリ不足になってしまったならば、こ れらのファイルに対する最適化オプションのレベルを下げることを試みると良い かもしれない。

its results with the sample versions and possibly make adjustments. LinuxやMiNT、あるいは同様なオペレーティングシステム上で 妥当なシェル(Bashもそうだ)を実行している場合には、 configureユーティリティがうまく行くというチャンスがある。 そういった環境ではない場合には、サブディレクトリ`atari'にある `config.h'`Makefile.st'というサンプルバージョンを 編集し、メインソースディレクトリにコピーする。 configureが何かを生成したとしても、それは その結果とサンプルバージョンとの比較に使える程のものである。

一部のgawkソースコードは `atarist'というプリプロセッサ定義に依存している。 これは基本的にはTOS環境でgccを使っていることを仮定している。 もしあなたの環境でこれが正しくなければ、これらのセクションを 適切なものに修正する。同様に、 セクション Running gawk on the Atari STを参照. にあるAWKPATHenvsepに関する注意を参照すること。

リリースされているように、サンプルの`config.h'ではsystem関数 がライブラリにはないとしている。これは真ではないし、`atari/system.c' にはこの関数が提供されている。あなたの使用しているシェルとオペレーティ ングシステムの特定の組み合わせによって、あなたはsystemが使用可能 であるように、ファイルを変更したいと思うかもしれない。

Running gawk on the Atari ST

実行形式のgawkを置くべき場所は、通常は 使用しているシェルがそれを見つけることのできる PATHにあるディレクトリのいずれかである。

実行している間、gawkは幾つかの一時ファイルを作成する。TOS用の gccライブラリを使用しているときには、gawkTEMPか @code {TMPDIR}という環境変数をこの順番で参照する。もしどちらかが見つかれ ば、その環境変数の値が一時ファイルを作成するディレクトリとして仮定される。 このディレクトリは実際に存在していなければならない。またメモリを節約する ことができるのならば、このディレクトリをRAMディスクに置くことは良い考えで ある。TEMPTMPDIRも見つからなければ、gawkはカレント ディレクトリに一時ファイルを作成する。

STバージョンのgawkは、それに対するプログラムファイルを セクション AWKPATH環境変数を参照. にある様に検索する。変数AWKPATHのデフォルトの値は `Makefile'中で定義されているDEPPATHが採用される。 配布キットにあるST用の、gcc/TOS の`Makefile' では、DEPPATH".,c:\lib\awk,c:\gnu\lib\awk" をセットしている。この検索パスはAWKPATHに望みの値を セットすることによって、陽に変更を行うことができる。 STでは、変数AWKPATHの要素を区切るのにコロンを使えない ことに注意すること。コロンは別の意味に予約されているからである。 その代わりに、個々のパスを区切るのにカンマを使用する。 リコンパイルするときに`atari/gawkmisc.atr'にあるenvsep という変数の値を別の値で初期化することによって、この分割キャラクタを 変更することができる。

gawkがプログラム中で入出力のリダイレクトを行うことを許しているに もかかわらず、STがTOSの元で動作しているときには使用に際しては注意すべき である。一部のファイルハンドルのプールを処理するOSルーチンの環境では特定 のイベントの記録を失ってしまう。これはコンピュータをクラッシュさせ、リブ ートしなければならなくなる。しばしばウォームリブートするのに十分である。 幸いにも、これは頻繁に発生するものではなく、むしろ esoteric situation(難 解な状況?)で発生する。特に、awkプログラムを呼び出しているシェルで 標準出力をファイルにリダイレクトしていて、そのawkプログラム中で他 のprint文がデフォルトの標準出力を使っていて一部のprint文で "/dev/stdout"にリダイレクトしているような状況を避ける。

gawkがST用のgccと(gccの)通常ライブラリを使ってコンパイルさ れているとき、`/'`\'の両方をパスの区切りとして使用できる。こ れは便利であるが、この内`/'というキャラクタはあなたのファイル名から 取り除いた方が良く、これが関数systemを通じて呼び出された外部プロ グラムに問題を生じさせる可能性があることに注意すること。gawkが作 成したファイルが他のプログラムから使われる可能性があるときにはいつでも、 バックスラッシュのみを使用する。同様にawkでは、文字列中のバックス ラッシュはそれがバックスラッシュという文字そのものとして扱われるためには 二つ並べなければならないことに注意すること(セクション エスケープシーケンスを参照)。

Amigaでのgawk のインストール

gawkwuarchive.wustl.edu`pub/aminet/dev/gcc'という ディレクトリから匿名(anonymous)FTPを通じて入手できる Amigaシステム上のUNIXエミュレーション環境に インストールすることができる。 これにはpdkshに基づいたシェルが含まれている。 この環境の基本的なコンポーネントはUNIXエミュレーションライブラリ、 `ixemul.lib'である。 ftp.ninemoons.com`pub/ade/current'という ディレクトリから入手できるunixエミュレーション環境を使っている Amiga にgawkをインストールすることができる。 これはpdkshに基づいたシェルも含まれている。この環境の基本的な 構成要素は、`ixemul.lib'というunixエミュレーションのライブラリである。

より完璧なAmiga用の配布キットは 以下の住所から入手できる Geek Gadgets CD-ROMにある。

CRONUS
1840 E. Warner Road #105-265
Tempe, AZ 85284 USA
US Toll Free: (800) 804-0833
Phone: +1-602-491-0442
FAX: +1-602-491-0048
Email: info@ninemoons.com
WWW: http://www.ninemoons.com
Anonymous ftp site: ftp.ninemoons.com

一度配布キットを受け取れば、単純にconfigureを実行することにより gawkのコンフィグレーションができる。

configure -v m68k-amigaos

この後makefを実行すれば、すべて設定されているはずだ! (もしこういった手順がうまく行かなければ、それをバグレポートにして 送って欲しい。セクション 問題やバグの報告を参照.)

問題やバグの報告

There is nothing more dangerous than a bored archeologist.
The Hitchhiker's Guide to the Galaxy

もしあなたがgawkを使っていて問題にあったり、バグを見つけたなら、 それを開発者達にレポートして欲しい。私達はレポート全てに対応できる とは約束できないが、できる限りの修正を行うだろう。

バグを報告する前に、本当にそれがバグであるかどうかを確かめて欲しい。ドキュメ ントを注意深く読みかえし、あなたがやろうとしたことができるかどうかを確認する。 もし、それで何かはっきりしないことがあれば、それもまた報告して欲しい。なぜな ら、それはドキュメントのバグであるからだ。

バグを報告したり、自分で修正しようとする前に、発見した問題を再現する最小限の プログラムと入力データを作ろうとしてみて欲しい。そしてそのプログラムと入力デー タ、あなたが使っているUnixシステムの種類と gawkの実行結果を送って欲し い。そしてあなたが動作するだろうと考えたことも。これは本当にドキュメンテーショ ンの問題かどうかを決定するのに役立つ。

問題点が明確になったら、それは以下の二ヶ所のアドレスのいずれかに 送ることができる。

インターネット:
`bug-gnu-utils@gnu.org'
UUCP:
`uunet!gnu.org!bug-gnu-utils'

メイルにはあなたの使っているgawkのバージョン番号も忘れないように お願いする。バージョンは、`gawk -- version'とすれば得ることができる。 そして、そのメイルのカーボンコピーを Arnold Robbinsにも送って欲しい。 彼のメイルアドレスは`arnold@gnu.org'である。

重要! gawkに関するバグリポートを インターネットのニューズグループcomp.lang.awk行わないようにgawkの開発者達は時折このニューズグループを 見てはいるが、その投稿を私達が見るだろうという保証はない。 先程説明した手順が正式なバグレポートの手順である。

バグレポート以外に、提案もいつでも受け付ける。あなたがドキュメントのなかで不明瞭で あると考える疑問や、曖昧であると思う機能があれば、Arnold Robbinsに尋ねて欲 しい。彼はあなたの疑問を解決しようとするだろう。彼に対する電子メイルは、先 に挙げたインターネットのアドレスで出すことができる。

UNIX以外のシステムに移植されたgawkでバグを発見した場合、移植を行なっ た人物に電子メイルを送って欲しい。そのような人々を以下に挙げるし、そのリス トは配布キットの中の `README'というファイルにもある。この マニュアルの内容と`README'中の情報が矛盾していたりしたら、 READMEの方を信用するように。

UNIX以外のシステムに移植されたgawkを保守しているのは以下の人達である。

MS-DOS
Scott Deifik, `scottd@amgen.com', and Darrel Hankerson, `hankedr@mail.auburn.edu'.
OS/2
Kai Uwe Rommel, `rommel@ars.de'.
VMS
Pat Rankin, `rankin@eql.caltech.edu'.
Atari ST
Michal Jaegermann, `michal@gortel.phys.ualberta.ca'.
Amiga
Fred Fish, `fnf@ninemoons.com'.

もしあなたが見つけたバグがUNIX環境下のgawkでも発生するものならば、 バグレポートのコピーを通常のGNUのバグリストと、Arnold Robbinsにも 送って欲しい。そのためのアドレスは先に説明した通りである。

自由に入手可能な他のawk処理系

It's kind of fun to put comments like this in your awk code.
      // Do C++ comments work? answer: yes! of course
Michael Brennan

自由に入手することのできるawk処理系が二つある。 このセクションでは簡単にそれらを入手できる場所を説明する。

Unix awk
Brian Kernighanは彼のインプリメントしたawkを自由に配布できるよう にしている。これは、匿名ftpを使ってnetlib.bell-labs.comというホスト にアクセスし、`/netlib/research'というディレクトリに移動すれば入手 する事ができる。このとき、"バイナリモード"か"イメージモード"を使用し、 `awk.bundle.gzip'を検索する。 これはGNU gzipユーティリティで圧縮されたシェルアーカイブである。 GNU gunzipユーティリティを使用することで 伸長することができる。 このバージョンは、World Wide WebのBrian Kernighanのホームページ {http://cm.bell-labs.com/who/bwk から入手することもできる。 このバージョンはANSI Cのコンパイラを必要とする。GCC(GNU C コンパイラ)は 問題なく使える。
mawk
Michael Brennanはamwkと呼ばれるawkを独自に作成した。 これはgawkと同じように、GPL (セクション GNU GENERAL PUBLIC LICENSEを参照)に従い入手することができる。 ftp.whidbey.netというホストから匿名ftpによって、mawkが 入手可能である。接続した後、ディレクトリを`/pub/brennan'に変更し、 "binary"モードか"image"モードにしてから、`mawk1.3.3.tar.gz' (もしくはそれ以後の最新バージョン)というファイルを指定する。 このファイルを展開するにはgunzipを使用する。 このインストールはgawkをインストールするときと同様である。 (セクション UNIX上での gawkのコンパイルとインストールを参照).

移動先 先頭, , , 末尾 セクション, 目次.