aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--enc/Makefile.in5
-rw-r--r--enc/depend4
-rw-r--r--tool/transcode-tblgen.rb4
4 files changed, 17 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 4019f20f93..afaff30cfe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Sun Aug 10 11:45:15 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enc/Makefile.in (make-workdir): use MAKEDIRS.
+
+ * enc/depend: makes target directory before compile/link.
+
+ * tool/transcode-tblgen.rb: creates target directory.
+
Sun Aug 10 11:30:48 2008 Tanaka Akira <akr@fsij.org>
* transcode.c: rename my_transcoding to tc and my_transcoder to tr.
diff --git a/enc/Makefile.in b/enc/Makefile.in
index 103ad6b9ae..cc3d99d397 100644
--- a/enc/Makefile.in
+++ b/enc/Makefile.in
@@ -46,13 +46,14 @@ DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
WORKDIRS = $(ENCSODIR) $(TRANSSODIR) enc enc/trans
RM = @RM@
+MAKEDIRS = @MAKEDIRS@
.SUFFIXES: .erb.c
-all srcs: make-workdir
+all: make-workdir
make-workdir:
- $(MINIRUBY) -run -e mkdir -- -p $(WORKDIRS)
+ $(MAKEDIRS) $(WORKDIRS)
clean:
diff --git a/enc/depend b/enc/depend
index a18df490ea..d413898689 100644
--- a/enc/depend
+++ b/enc/depend
@@ -23,7 +23,7 @@
% cleanobjs = Shellwords.shellwords(CONFIG["cleanobjs"] || "")
% rule_subst = CONFIG["RULE_SUBST"] || "%s"
% if File::ALT_SEPARATOR
-% pathrep = proc {|path| path.gsub('/', File::ALT_SEPARATOR).gsub(/\$\((\w+)\)/, "$(\\1:/=\\#{File::ALT_SEPARATOR})")}
+% pathrep = proc {|path| path.gsub('/', File::ALT_SEPARATOR).gsub(/\$\(([@<?*]\w?|\w+)\)/, "$(\\1:/=\\#{File::ALT_SEPARATOR})")}
% else
% pathrep = proc {|path| path}
% end
@@ -59,6 +59,7 @@ srcs: $(TRANSCSRCS)
% end
% compile_rules.each do |rule|
<%= rule % %w[c $(OBJEXT)] %>
+ @$(MAKEDIRS) "$(@D)"
<%=COMPILE_C%>
% end
@@ -89,6 +90,7 @@ $(ENCSODIR)/<%=e%>.$(DLEXT): <%=obj%>
echo EXPORTS > <%=df%>
echo <%=EXPORT_PREFIX%>Init_<%=File.basename(e)%> >> <%=df%>
% end
+ @$(MAKEDIRS) "$(@D)"
<%=link_so.sub(/\$\(OBJS\)/) {obj}.sub(/\$\(DEFFILE\)/) {df}.gsub(/-(?:implib|pdb):/) {|s|"#{s}enc/#{e.sub(/[^\/]+\z/, '')}"}%>
% end
diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb
index 119fa0d1cb..4e7cbc516f 100644
--- a/tool/transcode-tblgen.rb
+++ b/tool/transcode-tblgen.rb
@@ -1,5 +1,6 @@
require 'optparse'
require 'erb'
+require 'fileutils'
C_ESC = {
"\\" => "\\\\",
@@ -617,7 +618,8 @@ result << "\n"
if output_filename
new_filename = output_filename + ".new"
- File.open(new_filename, "w") {|f| f << result }
+ FileUtils.mkdir_p(File.dirname(output_filename))
+ File.open(new_filename, "wb") {|f| f << result }
File.rename(new_filename, output_filename)
STDERR.puts "done." if VERBOSE_MODE
else