Trunk: mswin32: nmake realclean $B;~$KBgNL$N%U%!%$%k$,;D$k(B

pegacorn です。

以前から気になっていたんですが、mswin32 版で nmake realclean した時に
「指定されたパスが見つかりません。」という警告が出て、
削除されないファイルがあります。
最近それが増えてきて、鬱陶しい&手動で消すのが面倒になってきたので
修正してみました。

以下の環境でテストしたので、mswin32 と unix 環境では
大丈夫だと思いますが、他の環境に影響してたらごめんなさい。

  • Windows XP SP2 + Visual C++ 2008
  • FreeBSD 7.0R

パッチ>
Index: configure.in
===================================================================
— configure.in (revision 17155)
+++ configure.in (working copy)
@@ -252,6 +252,7 @@
AC_USE_SYSTEM_EXTENSIONS

AC_SUBST(RM, [‘rm -f’])
+AC_SUBST(RMDIR, [‘rmdir’])
AC_SUBST(CP, [‘cp’])
if $as_mkdir_p; then
MAKEDIRS=‘mkdir -p’
Index: enc/Makefile.in

— enc/Makefile.in (revision 17155)
+++ enc/Makefile.in (working copy)
@@ -13,6 +13,7 @@
TRANSSODIR = $(ENCSODIR)/trans
DLEXT = @DLEXT@
OBJEXT = @OBJEXT@
+LIBEXT = @LIBEXT@

BUILTIN_ENCS = ascii.c us_ascii.c
unicode.c utf_8.c
@@ -44,6 +45,7 @@
DLDFLAGS = $(ldflags) $(dldflags) $(archflag)

RM = @RM@
+RMDIR = @RMDIR@

all:

Index: enc/depend

— enc/depend (revision 17155)
+++ enc/depend (working copy)
@@ -13,10 +13,16 @@

ENCOBJS = <%=encs.map {|e|“enc/#{e}.$(OBJEXT)”}.join(" \\n\t
“)%><%=”\n" if encs.size>1%>
ENCDEFS = <%=encs.map {|e|“enc/#{e}.def”}.join(" \\n\t “) if
deffile%><%=”\n" if encs.size>1%>
+ENCIMPS = <%=encs.map {|e|“enc/#{e}.$(LIBEXT)”}.join(" \\n\t “) if
deffile%><%=”\n" if encs.size>1%>
+ENCEXPS = <%=encs.map {|e|“enc/#{e}.exp”}.join(" \\n\t “) if
deffile%><%=”\n" if encs.size>1%>
+ENCPDBS = <%=encs.map {|e|“enc/#{e}.pdb”}.join(" \\n\t “) if
deffile%><%=”\n" if encs.size>1%>
ENCSOS = <%=encs.map {|e|"$(ENCSODIR)/#{e}.$(DLEXT)"}.join(" \\n\t
")%>

TRANSOBJS = <%=trans.map {|e|“enc/#{e}.$(OBJEXT)”}.join(" \\n\t
“)%><%=”\n" if trans.size>1%>
TRANSDEFS = <%=trans.map {|e|“enc/#{e}.def”}.join(" \\n\t “) if
deffile%><%=”\n" if trans.size>1%>
+TRANSIMPS = <%=trans.map {|e|“enc/#{e}.$(LIBEXT)”}.join(" \\n\t “)
if deffile%><%=”\n" if trans.size>1%>
+TRANSEXPS = <%=trans.map {|e|“enc/#{e}.exp”}.join(" \\n\t “) if
deffile%><%=”\n" if trans.size>1%>
+TRANSPDBS = <%=trans.map {|e|“enc/#{e}.pdb”}.join(" \\n\t “) if
deffile%><%=”\n" if trans.size>1%>
TRANSSOS = <%=trans.map {|e|"$(ENCSODIR)/#{e}.$(DLEXT)"}.join(" \\n\t
")%>

all: $(ENCSOS) $(TRANSSOS)
@@ -58,8 +64,18 @@
enc/trans/transdb.$(OBJEXT): transdb.h

clean:

  • @$(RM) $(ENCSOS) $(ENCDEFS) $(ENCOBJS) $(TRANSSOS) $(TRANSDEFS)
    $(TRANSOBJS)
    -% %w[$(ENCSODIR)/trans $(ENCSODIR) enc/trans enc].each do|dir|
    -% dir = dir.gsub(’/’, File::ALT_SEPARATOR) if File::ALT_SEPARATOR
  • @-rmdir <%=dir%>
    +% rmfiles = %w[$(ENCSOS) $(ENCPDBS) $(ENCEXPS) $(ENCIMPS) $(ENCDEFS)
    $(ENCOBJS)]
    +% rmfiles += %w[$(TRANSSOS) $(TRANSPDBS) $(TRANSEXPS) $(TRANSIMPS)
    $(TRANSDEFS) $(TRANSOBJS)]
    +% rmdirs = %w[$(ENCSODIR)/trans $(ENCSODIR) enc/trans enc]
    +% if File::ALT_SEPARATOR
    +% [rmfiles, rmdirs].each do |files|
    +% files.each do |file|
    +% file.gsub!(’/’, File::ALT_SEPARATOR)
    +% file.gsub!(/$((\w+))/, “$(\1:/=#{File::ALT_SEPARATOR})”)
    +% end
    +% end
    % end
  • @$(RM) <%=rmfiles.join(’ ')%>
    +% rmdirs.each do |dir|
  • @-$(RMDIR) <%=dir%>
    +% end
    Index: win32/Makefile.sub
    ===================================================================
    — win32/Makefile.sub (revision 17155)
    +++ win32/Makefile.sub (working copy)
    @@ -65,6 +65,7 @@
    AUTOCONF = autoconf
    IFCHANGE = $(COMSPEC) /C $(srcdir:/=)\win32\ifchange.bat
    RM = $(COMSPEC) /C $(srcdir:/=)\win32\rm.bat
    +RMDIR = $(COMSPEC) /C rmdir
    CP = copy > nul
    MV = move > nul
    !if !defined(BASERUBY)
    @@ -563,6 +564,7 @@
    s,@LN_S@,$(LN_S),;t t
    s,@SET_MAKE@,MFLAGS = -$$(MAKEFLAGS),;t t
    s,@RM@,$$(COMSPEC) /C $$(top_srcdir:/=)\win32\rm.bat,;t t
    +s,@RMDIR@,$$(COMSPEC) /C rmdir,;t t
    s,@CP@,copy > nul,;t t
    s,@LIBOBJS@,$(LIBOBJS),;t t
    s,@ALLOCA@,$(ALLOCA),;t t
    Index: Makefile.in
    ===================================================================
    — Makefile.in (revision 17155)
    +++ Makefile.in (working copy)
    @@ -90,6 +90,7 @@
    CP = cp
    MV = mv
    RM = rm -f
    +RMDIR = @RMDIR@
    NM = @NM@
    AR = @AR@
    ARFLAGS = rcu
    <<