[Mew-dist 14752] Re: bin.tar.gz

SAKAI Kiyotaka ksakai at example.com
2000年 10月 25日 (水) 14:11:15 JST


>> In article <20001025.120238.125121987.kazu at example.com>, Kazu Yamamoto (山本和彦) <kazu at example.com> writes:

> プロトタイプを入れた bin を作りましたので、試して下さい。警告がぐっと
> 少なくなると思います。4B の後ろでめんどうなので、web に置きました。

> 	http://www.kame.net/~kazu/bin.tar.gz

1. コンパイル時に以下の警告が出ました。

  これは isdigit() の引数は int を仮定しているのに char を渡しているた
  めで、自動的に cast されるので今のままで問題はありませんが、一応、報
  告しておきます。

    gcc -c -I. -I../bin  -g -O2 -Wall ../bin/mewls.c
    ../bin/mewls.c: In function `scan_numfile':
    ../bin/mewls.c:527: warning: subscript has type `char'
    ../bin/mewls.c: In function `exec_getfile':
    ../bin/mewls.c:698: warning: subscript has type `char'
    ../bin/mewls.c:700: warning: subscript has type `char'


2. C コンパイラに gcc を使うとは限りませんので、Makefile の CFLAGS の
  直接 -Wall を埋め込むのはよくないスタイルだと思います。

  もし、gcc のときは自動的に -Wall を指定するようにしたいのであれば、
  以下のように configure.in の方を修正するべきだと思います。

===================================================================
RCS file: RCS/configure.in,v
retrieving revision 1.1
diff -u -r1.1 configure.in
--- configure.in	2000/10/25 04:49:23	1.1
+++ configure.in	2000/10/25 04:53:30
@@ -15,4 +15,8 @@
 AC_CHECK_LIB(z, main)
 AC_CHECK_FUNCS(strncasecmp strnicmp fork vfork getpwuid usleep Sleep setmode _setmode chdir _chdir2)
 
+if test "$ac_cv_prog_CC" = "gcc"; then
+  CFLAGS="$CFLAGS -Wall"
+fi
+
 AC_OUTPUT(Makefile)



3. せっかくですので、VPATH に対応しませんか?

  以下のパッチを当てておくと、GNU make など VPATH 対応の make を使えば、

    % gzip -dc bin.tar.gz | tar xf -
    % mkdir solaris
    % cd solaris
    % ../bin/configure
    % make
    # make install

  のような手順で、source tree の中で作業することなく make できます。
  (この機能は、特に、複数のブラットホームのバイナリーを 1つの source
  tree から make したいときに力を発揮します。)

===================================================================
RCS file: RCS/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- Makefile.in	2000/10/25 04:37:38	1.1
+++ Makefile.in	2000/10/25 05:02:23
@@ -10,6 +10,9 @@
 ### make install
 ###
 
+srcdir = @srcdir@
+VPATH = @srcdir@
+
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 bindir = @bindir@
@@ -17,6 +20,7 @@
 CC = @CC@
 CFLAGS = @CFLAGS@ -Wall
 COFLAG = -o $@ 
+DEFS = -I. -I$(srcdir) 
 LIBS = @LIBS@
 
 INSTALL = @INSTALL@ -m 555
@@ -47,6 +51,10 @@
 
 CNF = config.h config.status config.cache config.log
 MK  = Makefile
+
+.c$(OBJEXT):
+	$(CC) -c $(DEFS) $(CFLAGS) $<
+
 all: $(PRG1) $(PRG2)
 
 $(PRG1) : $(OBJ1)

-- 
酒井 清隆 (E-mail: ksakai at example.com)



Mew-dist メーリングリストの案内