ツールハウス − 簡単ツール − |
|
ちょっと、自作プログラムのテストをしたくなり、
既存のデータからテスト用の XML データを生成する簡単なプログラムを作ってみました。
このプログラム toxml は、
CQ出版社の月刊誌「インターフェース」に数ヶ月ごとに付属する
CD-ROM に含まれる雑誌の目次データ(CSV 形式)を
XML 形式に変換し、XSLT で清書してブラウザ上で見られるようにするものです。
同じ出版社の月刊誌「トランジスタ技術」の付録データでは、
表紙の画像データが含まれていないので、
プログラムソースの該当部分をコメントアウトしてください。
toxml csv-file インターフェース > if.xml
などとして実行すると、変換結果がファイル if.xml に生成されます。
インターネットイクスプローラなどの XML を XSL を使って表示できるブラウザで
if.xml を表示してみてください。
生成される XML ファイルの内容は以下のようになっています。
<?xml version="1.0" encoding="Shift_JIS" ?> <?xml-stylesheet type="text/xsl" href="cqmag.xsl" ?> <catalog> <magazine> <mname>インターフェース</mname> <publish year="1974" month="01"/> <cover>IFDB7401.JPG</cover> <article> <title>ミニコンとインターフェース</title> <subtitle>全ページ特集</subtitle> <kind>特集名</kind> <pstart>0</pstart> <pend>0</pend> <authors></authors> </article>〜 省略 〜
(Sep 5, 2002)
今回紹介する UNIX 系OS用のツールは、ターゲットを構成する各ファイルのリビジョンとファイル名を SnapShot というファイルに保存しておき、そのファイルも RCS で管理することで、 任意リビジョンのターゲットを make するための各ソースファイルのリビジョンを記録・復元することを可能にするものです。
リビジョンの記録とターゲットを構成するファイルの取り出しは Makefile とシェルスクリプトを用いて実現しています。
テンプレートとなるサンプルは、1個のヘッダファイル header.h を2個のC言語のソースファイル
main.c と sub.c が参照している構成になっています。
ソースファイルや Makefile がある程度完成して、スナップショットをとっておこうかな、
という状況になったら、以下のような操作を行ないます。チェックイン(ci)は変更を加えたファイルに行ないます。
make … うまく動いた ! ■ 記録 ■ ci header.h ログのコメント入力 ci main.c ログのコメント入力 ci sub.c ログのコメント入力 ci Makefile ログのコメント入力 make snapshot スナップショットを記録する。各ファイルの名称とリビジョン番号が ファイル SnapShot に記録される。 SnapShot.log には、これまでの スナップショットのログが追加されていく。 ■ 復元 ■ less SnapShot.log 戻したいターゲットに対応する SnapShot ファイルのリビジョンを調べる。 rlog SnapShot RCS のログでも確認しておく。 co -r1.1 SnapShot 特定のリビジョン構成ファイル SnapShot を取り出す。 make restore 取り出した SnapShot ファイルを用いて構成ファイルを復元
RCS が記録するヘッダの state は、通常 Exp になっていますが、SnapShot の時は Snap になります。たとえば、これを"ABCD" としたい時は、次のように入力します。 詳しくは、サンプルに含まれるドキュメントを参考にしてください。
make STAT="ABCD" SnapShot
(Sep 17, 2002)
使用例
bin2coff /usr/local/src/3.wav wavedata
カレントディレクトリに作成されるオブジェクトファイル 3.wav.o には、変数 wavedata に入力ファイルのデータが入れられ、 変数 len_wavedata にデータ長が入れられる。 ユーザプログラムからデータを参照するときに、変数 wavedata を単純な配列ではなく構造体にすることも可能である。
Vector からダウンロード
SPARC Solaris、FreeBSD4.x,Linux(Turbo Linux)用
(Apr 20, 2003)
■ 特徴 ■
(1) サイズの小さいファイルを転送するときに要する時間が短い(TAT僅少)。
(2) シェアウェアですが、小さいファイル(10kB 以下)の転送には無料で使えます。
Vector からダウンロード
Microsoft Windows95 以降用
SUN SPARC Solaris2.x 用
FreeBSD 4.x 用
Linux(TurboLinux)用
(May 14, 2002)
sudo mkdir -p /usr/local/include/GL
cd /usr/local/include/GL
sudo ln -s /System/Library/Frameworks/OpenGL.framework/Headers/*
sudo ln -s /System/Library/Frameworks/GLUT.framework/Headers/glut.h
ちょっとプログラムを書いて、動作チェックするのに、次のような内容をMakefileに書いておき、
CFLAGS = -framework OpenGL -framework GLUT -framework Foundation
作成したソースプログラムがgears.cならば、ファイル名の拡張子(.c)を除いた名称をプログラム名として、
make gears
とターミナルウィンドウでコマンド入力すると、アプリケーション gears が作成されます。
gears.c はGLUTのサンプルプログラムで、PDSとして配布されているものです。
単一のファイルから作られるアプリケーションならば Makefile の内容を変更せずに簡単に実行できるので便利です。
複数ファイルになったときに、Makefile にターゲットと依存ファイル、コマンドのペアで記述を追加すれば済みます。
似た方法としては、このコンパイルオプションを含むコンパイルコマンドをシェルスクリプトにしておく方法がありますが、
私は Makefile の方を好んでいます。
(Aug 16, 2005)
Copyright © 2002 - 2005 by Toolhouse Ltd. All rights reserved.
Last updated: Aug 16, 2005