Blame view

scripts/Makefile.host.tmp 2.12 KB
ad71fa997   Masahiro Yamada   Makefile.host.tmp...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  
  __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
  
  # C code
  # Executables compiled from a single .c file
  host-csingle	:= $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
  
  # C executables linked based on several .o files
  host-cmulti	:= $(foreach m,$(__hostprogs),$(if $($(m)-objs),$(m)))
  
  # Object (.o) files compiled from .c files
  host-cobjs	:= $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
  
  # output directory for programs/.o files
  # hostprogs-y := tools/build may have been specified. Retrieve directory
  host-objdirs := $(foreach f,$(__hostprogs), $(if $(dir $(f)),$(dir $(f))))
  # directory of .o files from prog-objs notation
  host-objdirs += $(foreach f,$(host-cmulti),                  \
                      $(foreach m,$($(f)-objs),                \
                          $(if $(dir $(m)),$(dir $(m)))))
  
  host-objdirs := $(strip $(sort $(filter-out ./,$(host-objdirs))))
9e4140329   Masahiro Yamada   kbuild: change ou...
23
24
25
26
27
  __hostprogs     := $(addprefix $(obj)/,$(__hostprogs))
  host-csingle	:= $(addprefix $(obj)/,$(host-csingle))
  host-cmulti	:= $(addprefix $(obj)/,$(host-cmulti))
  host-cobjs	:= $(addprefix $(obj)/,$(host-cobjs))
  host-objdirs    := $(addprefix $(obj)/,$(host-objdirs))
ad71fa997   Masahiro Yamada   Makefile.host.tmp...
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  
  obj-dirs += $(host-objdirs)
  
  #####
  # Handle options to gcc. Support building with separate output directory
  
  _hostc_flags   = $(HOSTCFLAGS)   $(HOST_EXTRACFLAGS)   \
                   $(HOSTCFLAGS_$(basetarget).o)
  
  # Find all -I options and call addtree
  flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o)))
  
  ifeq ($(OBJTREE),$(SRCTREE))
  __hostc_flags	= $(_hostc_flags)
  else
  __hostc_flags	= -I$(obj) $(call flags,_hostc_flags)
  endif
  
  hostc_flags    = $(__hostc_flags)
  
  #####
  # Compile programs on the host
9e4140329   Masahiro Yamada   kbuild: change ou...
50
  $(host-csingle): $(obj)/%: $(src)/%.c
ad71fa997   Masahiro Yamada   Makefile.host.tmp...
51
  	$(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(HOSTLDFLAGS) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $<
9e4140329   Masahiro Yamada   kbuild: change ou...
52
53
  $(host-cmulti): $(obj)/%: $(host-cobjs)
  	$(HOSTCC) $(HOSTLDFLAGS) -o $@ $(addprefix $(obj)/,$($(@F)-objs)) $(HOSTLOADLIBES_$(@F))
ad71fa997   Masahiro Yamada   Makefile.host.tmp...
54

9e4140329   Masahiro Yamada   kbuild: change ou...
55
  $(host-cobjs): $(obj)/%.o: $(src)/%.c
ad71fa997   Masahiro Yamada   Makefile.host.tmp...
56
57
58
  	$(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c
  
  targets += $(host-csingle)  $(host-cmulti) $(host-cobjs)