infiles := $(wildcard data/*.ttl data/*/*.ttl) turtlefiles := $(infiles:data/%.ttl=build/%/index.ttl) textfiles = $(turtlefiles:%.ttl=%.txt) rdfxmlfiles = $(turtlefiles:%.ttl=%.rdf) getbase = $(shell perl -ne '/^\@base\s+<(http.+)>/ and print $$1 and exit;' "$1") all: $(textfiles) $(rdfxmlfiles) clean: rm -rf build $(turtlefiles): build/%/index.ttl : data/%.ttl mkdir -p $(dir $@) $(eval base = $(call getbase, $<)) rapper $(base:%=-I "%") -i turtle -o turtle "$<" > "$@" perl -i -pe 's/ {4}/\t/g' "$@" $(textfiles): %.txt : %.ttl ln -s $(notdir $<) $@ $(rdfxmlfiles): %.rdf : %.ttl $(eval base = $(call getbase, $<)) rapper $(base:%=-I "%") -i turtle -o rdfxml-abbrev "$<" > "$@"