ruby/prism/srcs.mk.in
Nobuyoshi Nakada 4080abecd6
Ignore distclean failures
Just clean the directory if it exists and is empty.
2025-12-07 21:18:00 +09:00

49 lines
1.4 KiB
Ruby

<% # -*- ruby -*-
require_relative 'templates/template'
script = File.basename(__FILE__)
srcs = output ? File.basename(output) : script.chomp('.in')
mk = 'uncommon.mk'
# %>
PRISM_TEMPLATES_DIR = $(PRISM_SRCDIR)/templates
PRISM_TEMPLATE = $(PRISM_TEMPLATES_DIR)/template.rb
PRISM_CONFIG = $(PRISM_SRCDIR)/config.yml
srcs <%=%><%=mk%>: prism/.srcs.mk.time
prism/.srcs.mk.time: $(order_only) $(PRISM_BUILD_DIR)/.time
prism/$(HAVE_BASERUBY:no=.srcs.mk.time):
touch $@
prism/$(HAVE_BASERUBY:yes=.srcs.mk.time): \
$(PRISM_SRCDIR)/templates/template.rb \
$(PRISM_SRCDIR)/<%=%><%=script%>
$(BASERUBY) $(tooldir)/generic_erb.rb -c -t$@ -o $(PRISM_SRCDIR)/<%=%><%=srcs%> $(PRISM_SRCDIR)/<%=%><%=script%>
distclean-prism-srcs::
$(RM) prism/.srcs.mk.time
$(RMDIRS) prism || $(NULLCMD)
distclean-srcs-local:: distclean-prism-srcs
realclean-prism-srcs:: distclean-prism-srcs
$(RM) $(PRISM_SRCDIR)/<%=%><%=srcs%>
realclean-srcs-local:: realclean-prism-srcs
<% Prism::Template::TEMPLATES.map do |t|
/\.(?:[ch]|rb)\z/ =~ t or next
s = '$(srcdir)/' + t.sub(%r[\A(?:(src)|ext|include)/]) {$1 && 'prism/'}
s.sub!(%r[\A\$(srcdir)/prism/], '$(PRISM_SRCDIR)/')
target = s.end_with?('.h') ? 'incs' : 'srcs'
# %>
main <%=%><%=target%>: <%=%><%=s%>
<%=%><%=s%>: $(PRISM_CONFIG) $(PRISM_TEMPLATE) $(PRISM_TEMPLATES_DIR)/<%=%><%=t%>.erb
$(Q) $(BASERUBY) $(PRISM_TEMPLATE) <%=%><%=t%> $@
realclean-prism-srcs::
$(RM) <%=%><%=s%>
<%
end
# %>