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# create a separate list of objects per source type 9MODULE_CSRCS := $(filter %.c,$(MODULE_SRCS)) 10MODULE_CPPSRCS := $(filter %.cpp,$(MODULE_SRCS)) 11MODULE_ASMSRCS := $(filter %.S,$(MODULE_SRCS)) 12 13MODULE_COBJS := $(call TOMODULEDIR,$(patsubst %.c,%.c.o,$(MODULE_CSRCS))) 14MODULE_CPPOBJS := $(call TOMODULEDIR,$(patsubst %.cpp,%.cpp.o,$(MODULE_CPPSRCS))) 15MODULE_ASMOBJS := $(call TOMODULEDIR,$(patsubst %.S,%.S.o,$(MODULE_ASMSRCS))) 16 17MODULE_OBJS := $(MODULE_COBJS) $(MODULE_CPPOBJS) $(MODULE_ASMOBJS) 18 19#$(info MODULE_SRCS = $(MODULE_SRCS)) 20#$(info MODULE_CSRCS = $(MODULE_CSRCS)) 21#$(info MODULE_CPPSRCS = $(MODULE_CPPSRCS)) 22#$(info MODULE_ASMSRCS = $(MODULE_ASMSRCS)) 23 24#$(info MODULE_OBJS = $(MODULE_OBJS)) 25#$(info MODULE_COBJS = $(MODULE_COBJS)) 26#$(info MODULE_CPPOBJS = $(MODULE_CPPOBJS)) 27#$(info MODULE_ASMOBJS = $(MODULE_ASMOBJS)) 28 29ifneq (,$(filter src,$(MODULE_PACKAGE))) 30# Override the global -D from USER_COMPILEFLAGS so that we ensure this library 31# exported as source compiles in a default feature-test environment. 32MODULE_COMPILEFLAGS += -U_ALL_SOURCE 33endif 34 35$(MODULE_OBJS): MODULE_OPTFLAGS:=$(MODULE_OPTFLAGS) 36$(MODULE_OBJS): MODULE_COMPILEFLAGS:=$(MODULE_COMPILEFLAGS) 37$(MODULE_OBJS): MODULE_CFLAGS:=$(MODULE_CFLAGS) 38$(MODULE_OBJS): MODULE_CPPFLAGS:=$(MODULE_CPPFLAGS) 39$(MODULE_OBJS): MODULE_ASMFLAGS:=$(MODULE_ASMFLAGS) 40$(MODULE_OBJS): MODULE_SRCDEPS:=$(MODULE_SRCDEPS) 41 42$(MODULE_COBJS): $(MODULE_BUILDDIR)/%.c.o: %.c $(MODULE_SRCDEPS) 43 @$(MKDIR) 44 $(call BUILDECHO, compiling $<) 45 $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(USER_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CFLAGS) $(USER_CFLAGS) $(ARCH_CFLAGS) $(MODULE_OPTFLAGS) $(MODULE_CFLAGS) $(GLOBAL_INCLUDES) -c $< -MMD -MP -MT $@ -MF $(@:%o=%d) -o $@ 46 47$(MODULE_CPPOBJS): $(MODULE_BUILDDIR)/%.cpp.o: %.cpp $(MODULE_SRCDEPS) 48 @$(MKDIR) 49 $(call BUILDECHO, compiling $<) 50 $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(USER_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(USER_CPPFLAGS) $(ARCH_CPPFLAGS) $(MODULE_OPTFLAGS) $(MODULE_CPPFLAGS) $(GLOBAL_INCLUDES) -c $< -MMD -MP -MT $@ -MF $(@:%o=%d) -o $@ 51 52$(MODULE_ASMOBJS): $(MODULE_BUILDDIR)/%.S.o: %.S $(MODULE_SRCDEPS) 53 @$(MKDIR) 54 $(call BUILDECHO, compiling $<) 55 $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(USER_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_ASMFLAGS) $(USER_ASMFLAGS) $(ARCH_ASMFLAGS) $(MODULE_OPTFLAGS) $(MODULE_ASMFLAGS) $(GLOBAL_INCLUDES) -c $< -MMD -MP -MT $@ -MF $(@:%o=%d) -o $@ 56 57# clear some variables we set here 58MODULE_CSRCS := 59MODULE_CPPSRCS := 60MODULE_ASMSRCS := 61MODULE_COBJS := 62MODULE_CPPOBJS := 63MODULE_ASMOBJS := 64 65# MODULE_OBJS is passed back 66#MODULE_OBJS := 67