ebe93069f8ddbdacdbe520c0126898afedc3ee91
[protos/libecoli.git] / mk / ecoli-objcopy-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-objcopy-hex,$(all-objcopy-hex))
7 $(foreach objcopy,$(all-objcopy-hex),\
8         $(info,out-$(objcopy): $(out-$(objcopy))) \
9         $(call disp_list,pre-$(objcopy),$(pre-$(objcopy))) \
10 )
11 $(call disp_list,------ all-objcopy-bin,$(all-objcopy-bin))
12 $(foreach objcopy,$(all-objcopy-bin),\
13         $(info,out-$(objcopy): $(out-$(objcopy))) \
14         $(call disp_list,pre-$(objcopy),$(pre-$(objcopy))) \
15 )
16 endif
17
18 # include dependencies and commands files if they exist
19 $(foreach objcopy,$(all-objcopy-hex) $(all-objcopy-bin),\
20         $(eval -include $(call depfile,$(objcopy))) \
21         $(eval -include $(call cmdfile,$(objcopy))) \
22 )
23
24 # remove duplicates
25 filtered-all-objcopy-hex := $(sort $(all-objcopy-hex))
26
27 # convert format of executable
28 $(filtered-all-objcopy-hex): $$(pre-$$@) $$(wildcard $$(dep-$$@)) FORCE
29         @[ -d $(dir $@) ] || mkdir -p $(dir $@)
30         @$(call display_deps,$(pre-$(@)),$@,\
31                 $(call objcopy_hex_cmd,$(pre-$(@)),$@),$?)
32         @$(if $(call check_deps,$@,$(call objcopy_hex_cmd,$(pre-$(@)),$@),$?),\
33                 $(call objcopy_print_cmd,$(pre-$(@)),$@) && \
34                 $(call objcopy_hex_cmd,$(pre-$(@)),$@) && \
35                 $(call save_cmd,$(call objcopy_hex_cmd,$(pre-$(@)),$@),$@) && \
36                 $(call create_empty_depfile,$@))
37
38 # remove duplicates
39 filtered-all-objcopy-bin := $(sort $(all-objcopy-bin))
40
41 # convert format of executable
42 $(filtered-all-objcopy-bin): $$(pre-$$@) $$(wildcard $$(dep-$$@)) FORCE
43         @[ -d $(dir $@) ] || mkdir -p $(dir $@)
44         @$(call display_deps,$(pre-$(@)),$@,\
45                 $(call objcopy_bin_cmd,$(pre-$(@)),$@),$?)
46         @$(if $(call check_deps,$@,$(call objcopy_bin_cmd,$(pre-$(@)),$@),$?),\
47                 $(call objcopy_print_cmd,$(pre-$(@)),$@) && \
48                 $(call objcopy_bin_cmd,$(pre-$(@)),$@) && \
49                 $(call save_cmd,$(call objcopy_bin_cmd,$(pre-$(@)),$@),$@) && \
50                 $(call create_empty_depfile,$@))