! 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)%> 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%> ! end ! unless encs.empty? $(ENCOBJS): regenc.h oniguruma.h config.h defines.h ! 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 ! if DEFFILE ! encs.each do |e| <%e%>-$(arch).def: echo EXPORTS > $@ echo <%EXPORT_PREFIX%>Init_<%e.upcase%> >> $@ ! end ! end ! encs.each do |e| <%e%>.$(OBJEXT): <%e%>.c ! end clean: $(RM) $(ENCSOS) $(RM) $(ENCDEFS) $(RM) $(ENCOBJS) distclean: clean $(RM) enc.mk