以下は、Makefile 中の CFLAGS マクロのフラグについて記述します。



ディレクトリの読み込み。

	もし、opendir(), readdir(), closedr() が標準ライブラリにあり、そ
	れが direct 構造体を使用しているならばなにもいらない。
	direct 構造体を使用していなければ、-DSYSV_SYSTEM_DIR を CFLAGS マ
	クロに追加。
	もし、標準ライブラリになければ、 lhdir.o を Makefile の OBJS マク
	ロに追加して、-DNONSYSTEM_DIR_LIBRARY を CFLAGS マクロに追加。
	これは、デリレクトリを直接 open/read/write して opendir などをエ
	ミュレートする。
	それでもだめならあきらめて -DNODIRECTORY を CFLAGS マクロに追加。
	これを指定した場合、ディレクトリを指定してのアーカイブができなく
	なる。


メモリー比較、コピー、ゼロフィル関係。

	bcmp、bcopy、bzero のライブラリがないマシン（多くの System-V
	マシ ン）は、-DNOBSTRING を CFLAGS マクロに追加。これによって
	memcmp、memcpy、memset を使うようになる。それもなければ、以下と
	等価なものを書きなさい。
 		int bcmp (a, b, n) char *a, *b; int n;
		{ while (n--) if (*a++ != *b++)
		    return (a[-1] & 0xff) - (b[-1] & 0xff);
		  return 0; }

		void bcopy (s, d, n) char *s, *d; int n;
	 	{ while (n--) *d++ = *s++; }

		void bzero (d, n) char *d; int n;
	 	{ while (n--) *d++ = 0; }


時刻を扱う構造体

	sys/time.h で struct tm を定義していなければ（time.h
	に定義してあるならば）、-DSYSTIME_HAS_NO_TM を CFLAGS
	マクロに追加。


ファイル I/O

	（多くの System-V で）ftruncate システムコールがなければ、
	-DNOFTRUNCATE を CFLAGS マクロに追加。
#	これをつけることにより、テンポラリファイルからコピーするときに
#	rename システムコールを使わなくなるだけ。


ファイルモード

	もし、（まだ見たことないが運わるく）stat で得られるファイルモード
	の意味が以下のものと違うならば、-DNOT_COMPATIBLE_MODE を CFLAGS
	マクロに追加し、ソースをそれなりに書き直す。
		
		#define UNIX_FILE_TYPEMASK	0170000
		#define UNIX_FILE_REGULAR	0100000
		#define UNIX_FILE_DIRECTORY	0040000
		#define UNIX_SETUID		0004000
		#define UNIX_SETGID		0002000
		#define UNIX_STYCKYBIT		0001000
		#define UNIX_OWNER_READ_PERM	0000400
		#define UNIX_OWNER_WRITE_PERM	0000200
		#define UNIX_OWNER_EXEC_PERM	0000100
		#define UNIX_GROUP_READ_PERM	0000040
		#define UNIX_GROUP_WRITE_PERM	0000020
		#define UNIX_GROUP_EXEC_PERM	0000010
		#define UNIX_OTHER_READ_PERM	0000004
		#define UNIX_OTHER_WRITE_PERM	0000002
		#define UNIX_OTHER_EXEC_PERM	0000001
		#define UNIX_RW_RW_RW		0000666


これ以上は各自にまかせる。以上。健闘を祈る。
						1989.09.18  Y.Tagawa

