summaryrefslogtreecommitdiff
path: root/enc
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-05 18:15:52 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-05 18:15:52 +0000
commit82e89f1237212ea06c05f10334425b3c3ed3d3b3 (patch)
treeceffa9ad6ab8f3ef9087b2f45a72a0c7afebb49a /enc
parentf694ec83e885f273ac4e0535d7f9e5e1ed9a70be (diff)
* enc/depend: added rules for .c from .erb.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enc')
-rw-r--r--enc/Makefile.in3
-rw-r--r--enc/depend19
2 files changed, 21 insertions, 1 deletions
diff --git a/enc/Makefile.in b/enc/Makefile.in
index 436c0f4e32..488e0b8a6f 100644
--- a/enc/Makefile.in
+++ b/enc/Makefile.in
@@ -42,9 +42,12 @@ ldflags = $(LDFLAGS)
dldflags = @DLDFLAGS@
archflag = @ARCH_FLAG@
DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
+BASERUBY = @BASERUBY@
RM = @RM@
+.SUFFIXES: .erb.c
+
all:
clean:
diff --git a/enc/depend b/enc/depend
index 0c15b12344..5759bd3e55 100644
--- a/enc/depend
+++ b/enc/depend
@@ -3,7 +3,17 @@
% encs.each {|e| e.chomp!(".c")}
% alphanumeric_order = proc {|e| e.scan(/(\d+)|(\D+)/).map {|n,a| a||[n.size,n.to_i]}.flatten}
% encs = encs.sort_by(&alphanumeric_order)
-% trans = Dir.open($srcdir+"/trans") {|d| d.select {|e| e.chomp!('.c') && /\.erb\z/ !~ e }}
+% atrans = []
+% trans = Dir.open($srcdir+"/trans") {|d|
+% d.select {|e|
+% if e.chomp!('.c')
+% atrans << e if e.chomp!(".erb")
+% true
+% end
+% }
+% }
+% trans.uniq!
+% atrans = atrans.sort_by(&alphanumeric_order)
% trans = trans.sort_by(&alphanumeric_order)
% trans.map! {|e| "trans/#{e}"}
% dependencies = encs + trans
@@ -34,6 +44,13 @@ $(ENCOBJS): regenc.h oniguruma.h config.h defines.h
% unless trans.empty?
$(TRANSOBJS): ruby.h intern.h config.h defines.h missing.h encoding.h oniguruma.h st.h transcode_data.h
% end
+% atrans.each do |e|
+% src = "#{e}.erb.c"
+% src = [src, *IO.read(File.join($srcdir, "trans", src)).scan(/^\s*require\s+[\'\"]([^\'\"]*)/).flatten.map{|e|e+".rb"}]
+
+$(srcdir)/enc/trans/<%=e%>.c: <%= src.map {|e| "$(srcdir)/enc/trans/#{e}"}.join(" ")%>
+ $(BASERUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo "$@" "$<"
+% end
% end
% link_so = LINK_SO.gsub(/\n/, "\n\t")