diff options
Diffstat (limited to 'enc/depend')
-rw-r--r-- | enc/depend | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/enc/depend b/enc/depend index f5eeafe9dc..29ae9154b6 100644 --- a/enc/depend +++ b/enc/depend @@ -3,23 +3,43 @@ ! 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) -.c.$(OBJEXT): +! 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| -$(ENCSODIR)/<%e%>.$(DLEXT): <%e%>.$(OBJEXT) - <%LINK_SO.gsub(/\n/, "\n\t")%> +! 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 @@ -27,6 +47,7 @@ $(ENCSODIR)/<%e%>.$(DLEXT): <%e%>.$(OBJEXT) clean: $(RM) $(ENCSOS) + $(RM) $(ENCDEFS) $(RM) $(ENCOBJS) distclean: clean |