.PHONY: all all: subdirs localmenus date_today SOURCEUPDATES # ----------------------------------------------------------------------------- # Dive into subdirectories # ----------------------------------------------------------------------------- SUBDIRS := $(shell find */* -name "Makefile" | xargs --max-args=1 dirname) .PHONY: subdirs $(SUBDIRS) subdirs: $(SUBDIRS) $(SUBDIRS): $(MAKE) -C $@ # ----------------------------------------------------------------------------- # Handle local menus # ----------------------------------------------------------------------------- HELPERFILE := menuhelper SELECT := '' STYLESHEET := ./tools/buildmenu.xsl FIND := ./\(.*/\)*\(.*\)\.\([a-z][a-z]\)\.xhtml:[ \t]*\(.*\) REPLACE := /\1\2.html\4 sources := $(shell grep -l -R --include='*.xhtml' $(SELECT) . ) .PHONY: localmenus localmenus: localmenuinfo.en.xml localmenuinfo.en.xml: $(sources) $(STYLESHEET) echo \ > $(HELPERFILE) grep -R --include='*.xhtml' $(SELECT) .| sed -e 's,$(FIND),$(REPLACE),' >> $(HELPERFILE) echo \ >> $(HELPERFILE) xsltproc -o $@ $(STYLESHEET) $(HELPERFILE) rm $(HELPERFILE) YEAR := MONTH := DAY := .PHONY: date_today d_day.en.xml date_today: d_year.en.xml d_month.en.xml d_day.en.xml d_day.en.xml: grep -q '$(DAY)' $@ || echo '$(DAY)' >$@ d_month.en.xml: d_day.en.xml grep -q '$(MONTH)' $@ || echo '$(MONTH)' >$@ d_year.en.xml: d_month.en.xml grep -q '$(YEAR)' $@ || echo '$(YEAR)' >$@ .PHONY: SOURCEUPDATES SOURCEUPDATES: $(shell find ./ -name '*.sources') SOURCEREQS = $(shell ./build/source_globber.sh sourceglobs $@ |sed -r 's;$$;.??.xml;g') SOURCEDIRS = $(shell sed -rn 's;^(.*/)[^/]*:(\[\]|global)$$;\1;gp' $@) .SECONDEXPANSION: %.sources: $$(SOURCEREQS) touch $@ %.sources: $$(SOURCEDIRS) touch $@