2013-11-09 08:58:29 +01:00
|
|
|
|
2013-11-12 16:02:03 +01:00
|
|
|
MAKEFILE=$(lastword $(MAKEFILE_LIST))
|
|
|
|
MAKEFILE_DIR=$(dir $(MAKEFILE))
|
2013-11-09 08:58:29 +01:00
|
|
|
PONY_DIR=$(MAKEFILE_DIR)Ponies
|
|
|
|
SCRIPT=$(MAKEFILE_DIR)render_parts.php
|
|
|
|
OUT_DIR=$(MAKEFILE_DIR)rendered
|
2014-04-21 19:01:11 +02:00
|
|
|
PONIES=$(notdir $(shell find $(PONY_DIR) -maxdepth 1 -mindepth 1 -type d ))
|
2013-11-09 08:58:29 +01:00
|
|
|
OUT_PLAIN=$(addprefix $(PONY_DIR)/,$(addsuffix .txt,$(PONIES)))
|
2014-04-21 19:22:10 +02:00
|
|
|
OUT_COLOR=$(addprefix $(OUT_DIR)/ansi/,$(addsuffix .colored.txt,$(PONIES)))
|
|
|
|
OUT_COLOR_IRC=$(addprefix $(OUT_DIR)/irc/,$(addsuffix .irc.txt,$(PONIES)))
|
|
|
|
OUT_SVG=$(addprefix $(OUT_DIR)/svg/,$(addsuffix .svg,$(PONIES)))
|
|
|
|
OUT_PNG=$(addprefix $(OUT_DIR)/png/,$(addsuffix .png,$(PONIES)))
|
|
|
|
OUT_BASH=$(addprefix $(OUT_DIR)/sh/,$(addsuffix .sh,$(PONIES)))
|
2014-01-20 17:36:50 +01:00
|
|
|
OUT_ALL= $(OUT_COLOR) $(OUT_PLAIN) $(OUT_SVG) $(OUT_PNG) $(OUT_BASH) $(OUT_COLOR_IRC)
|
2013-11-08 22:28:04 +01:00
|
|
|
OUT_DIRS=$(sort $(dir $(OUT_ALL)))
|
2014-04-21 19:22:10 +02:00
|
|
|
find_deps=$(subst ;,\\\;,$(wildcard $(PONY_DIR)/$(1)/*))
|
2013-11-08 17:36:09 +01:00
|
|
|
|
2014-12-09 22:02:35 +01:00
|
|
|
# NOTE: not .PONY :-P
|
2014-12-18 21:20:32 +01:00
|
|
|
.PHONY: all show show_deps clean list random
|
2013-11-09 10:23:42 +01:00
|
|
|
|
2013-11-08 19:48:53 +01:00
|
|
|
all: $(OUT_ALL)
|
2013-11-08 17:07:35 +01:00
|
|
|
|
2013-11-08 18:42:21 +01:00
|
|
|
define rule_template
|
2014-04-21 19:22:10 +02:00
|
|
|
$(OUT_DIR)/ansi/$(1).colored.txt: | $(dir $(OUT_DIR)/ansi/$(1))
|
|
|
|
$(OUT_DIR)/ansi/$(1).colored.txt: $(call find_deps, $(1))
|
|
|
|
$(OUT_DIR)/ansi/$(1).colored.txt: $(PONY_DIR)/$(1)
|
|
|
|
$(SCRIPT) $(PONY_DIR)/$(1) >$(OUT_DIR)/ansi/$(1).colored.txt
|
2013-11-08 17:07:35 +01:00
|
|
|
|
2013-11-09 08:58:29 +01:00
|
|
|
$(PONY_DIR)/$(1).txt: $(call find_deps, $(1))
|
2013-11-09 10:23:42 +01:00
|
|
|
$(PONY_DIR)/$(1).txt: $(PONY_DIR)/$(1)
|
2013-11-09 08:58:29 +01:00
|
|
|
$(SCRIPT) $(PONY_DIR)/$(1) >$(PONY_DIR)/$(1).txt nocolor
|
2013-11-08 19:48:53 +01:00
|
|
|
|
2014-04-21 19:22:10 +02:00
|
|
|
$(OUT_DIR)/svg/$(1).svg: | $(dir $(OUT_DIR)/svg/$(1))
|
|
|
|
$(OUT_DIR)/svg/$(1).svg: $(call find_deps, $(1))
|
|
|
|
$(OUT_DIR)/svg/$(1).svg: $(PONY_DIR)/$(1)
|
|
|
|
$(SCRIPT) $(PONY_DIR)/$(1) >$(OUT_DIR)/svg/$(1).svg svg
|
2013-11-09 08:58:29 +01:00
|
|
|
|
2014-04-21 19:22:10 +02:00
|
|
|
$(OUT_DIR)/sh/$(1).sh: | $(dir $(OUT_DIR)/sh/$(1))
|
|
|
|
$(OUT_DIR)/sh/$(1).sh: $(call find_deps, $(1))
|
|
|
|
$(OUT_DIR)/sh/$(1).sh: $(PONY_DIR)/$(1)
|
|
|
|
$(SCRIPT) $(PONY_DIR)/$(1) >$(OUT_DIR)/sh/$(1).sh bash
|
|
|
|
chmod a+x $(OUT_DIR)/sh/$(1).sh
|
2014-01-20 17:36:50 +01:00
|
|
|
|
|
|
|
|
2014-04-21 19:22:10 +02:00
|
|
|
$(OUT_DIR)/irc/$(1).irc.txt: | $(dir $(OUT_DIR)/irc/$(1))
|
|
|
|
$(OUT_DIR)/irc/$(1).irc.txt: $(call find_deps, $(1))
|
|
|
|
$(OUT_DIR)/irc/$(1).irc.txt: $(PONY_DIR)/$(1)
|
|
|
|
$(SCRIPT) $(PONY_DIR)/$(1) >$(OUT_DIR)/irc/$(1).irc.txt irc
|
|
|
|
|
|
|
|
$(OUT_DIR)/png/$(1).png : $(dir $(OUT_DIR)/png/$(1))
|
|
|
|
$(OUT_DIR)/png/$(1).png : $(OUT_DIR)/svg/$(1).svg
|
|
|
|
inkscape $(OUT_DIR)/svg/$(1).svg -e $(OUT_DIR)/png/$(1).png
|
2014-04-21 19:01:11 +02:00
|
|
|
|
|
|
|
.PHONY: $(1)
|
2014-04-21 19:22:10 +02:00
|
|
|
$(1) : $(OUT_DIR)/ansi/$(1).colored.txt
|
2014-04-21 19:01:11 +02:00
|
|
|
$(1) : $(PONY_DIR)/$(1).txt
|
2014-04-21 19:22:10 +02:00
|
|
|
$(1) : $(OUT_DIR)/svg/$(1).svg
|
|
|
|
$(1) : $(OUT_DIR)/sh/$(1).sh
|
|
|
|
$(1) : $(OUT_DIR)/irc/$(1).irc.txt
|
|
|
|
$(1) : $(OUT_DIR)/png/$(1).png
|
|
|
|
@cat $(OUT_DIR)/ansi/$(1).colored.txt
|
2014-04-21 19:01:11 +02:00
|
|
|
|
2013-11-08 22:28:04 +01:00
|
|
|
endef
|
|
|
|
define dir_rule_template
|
|
|
|
$(1) :
|
|
|
|
mkdir -p $(1)
|
2013-11-08 18:42:21 +01:00
|
|
|
endef
|
2013-11-08 17:07:35 +01:00
|
|
|
|
2013-11-08 18:42:21 +01:00
|
|
|
$(foreach pony,$(PONIES),$(eval $(call rule_template,$(pony))))
|
2013-11-08 22:28:04 +01:00
|
|
|
$(foreach directory,$(OUT_DIRS),$(eval $(call dir_rule_template,$(directory))))
|
2013-11-08 17:36:09 +01:00
|
|
|
|
2014-04-21 19:22:10 +02:00
|
|
|
show: $(OUT_DIR)/ansi/$(PONY).colored.txt
|
|
|
|
@cat $(OUT_DIR)/ansi/$(PONY).colored.txt
|
2013-11-08 18:42:21 +01:00
|
|
|
|
|
|
|
show_deps:
|
2013-11-08 22:28:04 +01:00
|
|
|
@$(foreach d,$(call find_deps,$(PONY)), echo $(d);)
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -f $(OUT_ALL)
|
|
|
|
rmdir --ignore-fail-on-non-empty $(OUT_DIRS) $(OUT_DIR)
|
2013-11-12 16:02:03 +01:00
|
|
|
|
|
|
|
list:
|
|
|
|
@$(foreach pony,$(PONIES), echo $(pony);)
|
|
|
|
|
|
|
|
random: PONY=$(shell make -f $(MAKEFILE) list | shuf | head -n 1)
|
|
|
|
random:
|
2014-04-21 19:01:11 +02:00
|
|
|
@make --no-print-directory -f $(MAKEFILE) show PONY=$(PONY)
|