diff --git a/ChangeLog b/ChangeLog index 451edf6b72..8fe84fd4e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -Sun Dec 23 03:26:48 2007 Nobuyoshi Nakada +Sun Dec 23 03:35:52 2007 Nobuyoshi Nakada * version.h: use patchlevel if revision is not set. @@ -8,6 +8,8 @@ Sun Dec 23 03:26:48 2007 Nobuyoshi Nakada * common.mk (encs, ext/ripper/ripper.c): MAKEFLAGS needs -. + * enc/depend, enc/make_encmake.rb: use erb. + Sun Dec 23 01:56:18 2007 Yukihiro Matsumoto * io.c (rb_io_mode_enc): do not set encoding unless explicitly diff --git a/enc/depend b/enc/depend index dcdffb8bae..5c81a7b1e2 100644 --- a/enc/depend +++ b/enc/depend @@ -1,49 +1,49 @@ -! encs = Dir.open($srcdir) {|d| d.grep(/.+\.c\z/)} - BUILTIN_ENCS -! encs.each {|e| e.chomp!(".c")} -! encs = encs.sort_by {|e| e.split(/(\d+)/).map {|n| Integer(n) rescue n}} +% encs = Dir.open($srcdir) {|d| d.grep(/.+\.c\z/)} - BUILTIN_ENCS +% encs.each {|e| e.chomp!(".c")} +% encs = encs.sort_by {|e| e.split(/(\d+)/).map {|n| Integer(n) rescue n}} -VPATH = <% %w[$(arch_hdrdir)/ruby $(hdrdir)/ruby $(top_srcdir) $(srcdir)].join(CONFIG["PATH_SEPARATOR"]) %> -LIBPATH = <%libpathflag($DEFLIBPATH)%> +VPATH = <%=%w[$(arch_hdrdir)/ruby $(hdrdir)/ruby $(top_srcdir) $(srcdir)].join(CONFIG["PATH_SEPARATOR"])%> +LIBPATH = <%=libpathflag($DEFLIBPATH)%> -ENCOBJS = <%encs.map {|e|"#{e}.$(OBJEXT)"}.join(" \\\n\t ")%><%"\n" if encs.size>1%> -ENCDEFS = <%encs.map {|e|"#{e}.def"}.join(" \\\n\t ") if DEFFILE%><%"\n" if encs.size>1%> -ENCSOS = <%encs.map {|e|"$(ENCSODIR)/#{e}.$(DLEXT)"}.join(" \\\n\t ")%> +ENCOBJS = <%=encs.map {|e|"#{e}.$(OBJEXT)"}.join(" \\\n\t ")%><%="\n" if encs.size>1%> +ENCDEFS = <%=encs.map {|e|"#{e}.def"}.join(" \\\n\t ") if DEFFILE%><%="\n" if encs.size>1%> +ENCSOS = <%=encs.map {|e|"$(ENCSODIR)/#{e}.$(DLEXT)"}.join(" \\\n\t ")%> all: $(ENCSOS) -! COMPILE_RULES.each do |rule| -<% rule % %w[c $(OBJEXT)] %> - <%COMPILE_C%> +% COMPILE_RULES.each do |rule| +<%= rule % %w[c $(OBJEXT)] %> + <%=COMPILE_C%> -! end -! unless encs.empty? +% end +% unless encs.empty? $(ENCOBJS): regenc.h oniguruma.h config.h defines.h -! encs.each do |e| -<%e%>.so: $(ENCSODIR)/<%e%>.$(DLEXT) -! end +% encs.each do |e| +<%=e%>.so: $(ENCSODIR)/<%=e%>.$(DLEXT) +% end -! end -! link_so = LINK_SO.gsub(/\n/, "\n\t") -! encs.each do |e| -! deps = "#{e}.$(OBJEXT)" -! deps << " #{e}-$(arch).def" if DEFFILE -$(ENCSODIR)/<%e%>.$(DLEXT): <%deps%> - <%link_so.sub(/\$\(OBJS\)/, deps)%> +% end +% link_so = LINK_SO.gsub(/\n/, "\n\t") +% encs.each do |e| +% deps = "#{e}.$(OBJEXT)" +% deps << " #{e}-$(arch).def" if DEFFILE +$(ENCSODIR)/<%=e%>.$(DLEXT): <%=deps%> + <%=link_so.sub(/\$\(OBJS\)/, deps)%> -! end -! if DEFFILE -! encs.each do |e| -<%e%>-$(arch).def: enc.mk +% end +% if DEFFILE +% encs.each do |e| +<%=e%>-$(arch).def: enc.mk echo EXPORTS > $@ - echo <%EXPORT_PREFIX%>Init_<%e%> >> $@ + echo <%=EXPORT_PREFIX%>Init_<%=e%> >> $@ -! end -! end -! encs.each do |e| -<%e%>.$(OBJEXT): <%e%>.c -! end +% end +% end +% encs.each do |e| +<%=e%>.$(OBJEXT): <%=e%>.c +% end clean: $(RM) $(ENCSOS) diff --git a/enc/make_encmake.rb b/enc/make_encmake.rb index 799c4a0851..7b03149854 100644 --- a/enc/make_encmake.rb +++ b/enc/make_encmake.rb @@ -5,10 +5,10 @@ $:.unshift(File.join(dir, "lib")) $:.unshift(dir) $:.unshift(".") require 'mkmf' -require 'tool/serb' +require 'erb' if /--builtin-encs=/ =~ ARGV[0] - BUILTIN_ENCS = $'.split.each {|e| e.sub!(/(?:\.\w+)?\z/, '.c')} + BUILTIN_ENCS = $'.split.map {|e| File.basename(e, '.*') << '.c'} ARGV.shift else BUILTIN_ENCS = [] @@ -19,8 +19,9 @@ DEFFILE = (true if CONFIG["DLDFLAGS"].sub!(/\s+-def:\$\(DEFFILE\)\s+/, ' ')) mkin = File.read(File.join($srcdir, "Makefile.in")) mkin.gsub!(/@(#{CONFIG.keys.join('|')})@/) {CONFIG[$1]} if File.exist?(depend = File.join($srcdir, "depend")) - tmp = '' - eval(serb(File.read(depend), 'tmp'), binding, depend) + erb = ERB.new(File.read(depend), nil, '%') + erb.filename = depend + tmp = erb.result(binding) mkin << "\n#### depend ####\n\n" << depend_rules(tmp).join end open(ARGV[0], 'wb') {|f|