1# Copyright 2016 The Fuchsia Authors
2# Copyright (c) 2008-2015 Travis Geiselbrecht
3#
4# Use of this source code is governed by a MIT-style
5# license that can be found in the LICENSE file or at
6# https://opensource.org/licenses/MIT
7
8
9# create a separate list of objects per source type
10MODULE_CSRCS := $(filter %.c,$(MODULE_SRCS))
11MODULE_CPPSRCS := $(filter %.cpp,$(MODULE_SRCS))
12MODULE_ASMSRCS := $(filter %.S,$(MODULE_SRCS))
13
14MODULE_COBJS := $(call TOMODULEDIR,$(patsubst %.c,%.c.o,$(MODULE_CSRCS)))
15MODULE_CPPOBJS := $(call TOMODULEDIR,$(patsubst %.cpp,%.cpp.o,$(MODULE_CPPSRCS)))
16MODULE_ASMOBJS := $(call TOMODULEDIR,$(patsubst %.S,%.S.o,$(MODULE_ASMSRCS)))
17
18MODULE_OBJS := $(MODULE_COBJS) $(MODULE_CPPOBJS) $(MODULE_ASMOBJS) $(MODULE_ASMOBJS2)
19
20#$(info MODULE_SRCS = $(MODULE_SRCS))
21#$(info MODULE_CSRCS = $(MODULE_CSRCS))
22#$(info MODULE_CPPSRCS = $(MODULE_CPPSRCS))
23#$(info MODULE_ASMSRCS = $(MODULE_ASMSRCS))
24
25#$(info MODULE_OBJS = $(MODULE_OBJS))
26#$(info MODULE_COBJS = $(MODULE_COBJS))
27#$(info MODULE_CPPOBJS = $(MODULE_CPPOBJS))
28#$(info MODULE_ASMOBJS = $(MODULE_ASMOBJS))
29
30$(MODULE_OBJS): MODULE_OPTFLAGS:=$(MODULE_OPTFLAGS)
31$(MODULE_OBJS): MODULE_COMPILEFLAGS:=$(MODULE_COMPILEFLAGS)
32$(MODULE_OBJS): MODULE_CFLAGS:=$(MODULE_CFLAGS)
33$(MODULE_OBJS): MODULE_CPPFLAGS:=$(MODULE_CPPFLAGS)
34$(MODULE_OBJS): MODULE_ASMFLAGS:=$(MODULE_ASMFLAGS)
35$(MODULE_OBJS): MODULE_SRCDEPS:=$(MODULE_SRCDEPS)
36
37$(MODULE_COBJS): $(MODULE_BUILDDIR)/%.c.o: %.c $(MODULE_SRCDEPS)
38	@$(MKDIR)
39	$(call BUILDECHO, compiling $<)
40	$(NOECHO)$(CC) $(GLOBAL_COMPILEFLAGS) $(KERNEL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CFLAGS) $(KERNEL_CFLAGS) $(ARCH_CFLAGS) $(MODULE_CFLAGS) $(GLOBAL_INCLUDES) $(KERNEL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@
41
42$(MODULE_CPPOBJS): $(MODULE_BUILDDIR)/%.cpp.o: %.cpp $(MODULE_SRCDEPS)
43	@$(MKDIR)
44	$(call BUILDECHO, compiling $<)
45	$(NOECHO)$(CC) $(GLOBAL_COMPILEFLAGS) $(KERNEL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(KERNEL_CPPFLAGS) $(ARCH_CPPFLAGS) $(MODULE_CPPFLAGS) $(GLOBAL_INCLUDES) $(KERNEL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@
46
47$(MODULE_ASMOBJS): $(MODULE_BUILDDIR)/%.S.o: %.S $(MODULE_SRCDEPS)
48	@$(MKDIR)
49	$(call BUILDECHO, compiling $<)
50	$(NOECHO)$(CC) $(GLOBAL_COMPILEFLAGS) $(KERNEL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_ASMFLAGS) $(KERNEL_ASMFLAGS) $(ARCH_ASMFLAGS) $(MODULE_ASMFLAGS) $(GLOBAL_INCLUDES) $(KERNEL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@
51
52# clear some variables we set here
53MODULE_CSRCS :=
54MODULE_CPPSRCS :=
55MODULE_ASMSRCS :=
56MODULE_COBJS :=
57MODULE_CPPOBJS :=
58MODULE_ASMOBJS :=
59
60# MODULE_OBJS is passed back
61#MODULE_OBJS :=
62
63