2 # Copyright 2015, Olivier MATZ <zer0@droids-corp.org>
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are met:
7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above copyright
10 # notice, this list of conditions and the following disclaimer in the
11 # documentation and/or other materials provided with the distribution.
12 # * Neither the name of the University of California, Berkeley nor the
13 # names of its contributors may be used to endorse or promote products
14 # derived from this software without specific prior written permission.
16 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 # DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 # dump some infos if debug is enabled
30 $(call disp_list,------ all-objcopy-hex,$(all-objcopy-hex))
31 $(foreach objcopy,$(all-objcopy-hex),\
32 $(info,out-$(objcopy): $(out-$(objcopy))) \
33 $(call disp_list,pre-$(objcopy),$(pre-$(objcopy))) \
35 $(call disp_list,------ all-objcopy-bin,$(all-objcopy-bin))
36 $(foreach objcopy,$(all-objcopy-bin),\
37 $(info,out-$(objcopy): $(out-$(objcopy))) \
38 $(call disp_list,pre-$(objcopy),$(pre-$(objcopy))) \
42 # include dependencies and commands files if they exist
43 $(foreach objcopy,$(all-objcopy-hex) $(all-objcopy-bin),\
44 $(eval -include $(call depfile,$(objcopy))) \
45 $(eval -include $(call cmdfile,$(objcopy))) \
49 filtered-all-objcopy-hex := $(sort $(all-objcopy-hex))
51 # convert format of executable
52 $(filtered-all-objcopy-hex): $$(pre-$$@) $$(wildcard $$(dep-$$@)) FORCE
53 @[ -d $(dir $@) ] || mkdir -p $(dir $@)
54 @$(call display_deps,$(pre-$(@)),$@,\
55 $(call objcopy_hex_cmd,$(pre-$(@)),$@),$?)
56 @$(if $(call check_deps,$@,$(call objcopy_hex_cmd,$(pre-$(@)),$@),$?),\
57 $(call objcopy_print_cmd,$(pre-$(@)),$@) && \
58 $(call objcopy_hex_cmd,$(pre-$(@)),$@) && \
59 $(call save_cmd,$(call objcopy_hex_cmd,$(pre-$(@)),$@),$@) && \
60 $(call create_empty_depfile,$@))
63 filtered-all-objcopy-bin := $(sort $(all-objcopy-bin))
65 # convert format of executable
66 $(filtered-all-objcopy-bin): $$(pre-$$@) $$(wildcard $$(dep-$$@)) FORCE
67 @[ -d $(dir $@) ] || mkdir -p $(dir $@)
68 @$(call display_deps,$(pre-$(@)),$@,\
69 $(call objcopy_bin_cmd,$(pre-$(@)),$@),$?)
70 @$(if $(call check_deps,$@,$(call objcopy_bin_cmd,$(pre-$(@)),$@),$?),\
71 $(call objcopy_print_cmd,$(pre-$(@)),$@) && \
72 $(call objcopy_bin_cmd,$(pre-$(@)),$@) && \
73 $(call save_cmd,$(call objcopy_bin_cmd,$(pre-$(@)),$@),$@) && \
74 $(call create_empty_depfile,$@))