build.mk (1342B)
1 miniroon_tool_names:=read verify test 2 3 tools:=$(patsubst %,$(build_dir)/miniroon-%,$(miniroon_tool_names)) 4 tools: $(tools) 5 .PHONY: tools 6 7 define miniroon_autolink = 8 include $$(build_dir)/cmd_$(1).c.deps.mk 9 $$(build_dir)/miniroon-$(1): $$(LINKDEP_cmd_$(1)__c) $$(build_scripts)/link $$(build_dir)/cmd_$(1).c.deps.mk 10 $$(build_scripts)/link -o '$$@' $$(LINKDEP_cmd_$(1)__c) 11 endef 12 $(foreach var,$(miniroon_tool_names),$(eval $(call miniroon_autolink,$(var)))) 13 14 clean: 15 rm -r $(tools) $(build_dir) 16 .PHONY: clean 17 18 test: $(build_dir)/miniroon-test 19 env TEST_DIR='$(test_dir)' $(build_dir)/miniroon-test -v 20 21 .PHONY: test 22 23 ## pattern rules: 24 25 $(src_dir)/%_perfhash.c $(src_dir)/%_perfhash.h: $(src_dir)/%_perfhash.txt $(build_scripts)/genhash 26 cd '$(src_dir)' && '$(abspath $(build_scripts))/genhash' '$*_perfhash' '$<' 27 28 $(build_dir)/%.c.i: $(src_dir)/%.c $(build_scripts)/cc $(build_dir)/.exists 29 cd '$(src_dir)' && '$(abspath $(build_scripts))/cc' -E -C -o '$(abspath $@)' './$*.c' 30 31 $(build_dir)/%.o: $(build_dir)/%.c.i $(build_scripts)/cc 32 $(build_scripts)/cc -fpreprocessed -c -o '$@' '$(build_dir)/$*.c.i' 33 34 $(build_dir)/%.c.deps.mk: $(build_dir)/%.c.i $(build_scripts)/codedeps.awk 35 awk -v srcname='$*.c' -v target='$*.c.i' -f $(build_scripts)/codedeps.awk '$(build_dir)/$*.c.i' >'$@.new' 36 mv '$@.new' '$@' 37 38 %/.exists: 39 mkdir -p '$*' 40 touch '$@'