node_any: check attribute presence
[protos/libecoli.git] / mk / ecoli-exe-rules.mk
1 # SPDX-License-Identifier: BSD-3-Clause
2 # Copyright 2015, Olivier MATZ <zer0@droids-corp.org>
3
4 # dump some infos if debug is enabled
5 ifeq ($(D),1)
6 $(call disp_list,------ all-exe,$(all-exe))
7 $(foreach exe,$(all-exe),\
8         $(info,out-$(exe): $(out-$(exe))) \
9         $(call disp_list,pre-$(exe),$(pre-$(exe))) \
10 )
11 endif
12
13 # include dependencies and commands files if they exist
14 $(foreach exe,$(all-exe),\
15         $(eval -include $(call depfile,$(exe))) \
16         $(eval -include $(call cmdfile,$(exe))) \
17 )
18
19 # remove duplicates
20 filtered-all-exe := $(sort $(all-exe))
21
22 # link several objects files into one executable
23 $(filtered-all-exe): $$(pre-$$@) $$(wildcard $$(dep-$$@)) FORCE
24         @[ -d $(dir $@) ] || mkdir -p $(dir $@)
25         @$(call display_deps,$(pre-$(@)),$@,\
26                 $(call link_cmd,$(pre-$(@)),$@),$?)
27         @$(if $(call check_deps,$@,$(call link_cmd,$(pre-$(@)),$@),$?),\
28                 $(call link_print_cmd,$(pre-$(@)),$@) && \
29                 $(call link_cmd,$(pre-$(@)),$@) && \
30                 $(call save_cmd,$(call link_cmd,$(pre-$(@)),$@),$@) && \
31                 $(call create_empty_depfile,$@))