miniroon

Simplistic macaroon-based authorization for Unix systems
git clone https://ccx.te2000.cz/git/miniroon
Log | Files | Refs | README

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 '$@'