| # Copyright 2018 The Fuchsia Authors |
| # Copyright (c) 2008-2015 Travis Geiselbrecht |
| # |
| # Use of this source code is governed by a MIT-style |
| # license that can be found in the LICENSE file or at |
| # https://opensource.org/licenses/MIT |
| |
| MODULE_FIDLSRCS := $(filter %.fidl,$(MODULE_SRCS)) |
| |
| MODULE_FIDL_RSP := $(MODULE_GENDIR)/fidl.rsp |
| MODULE_FIDL_LIB_PATH := $(subst .,/,$(MODULE_FIDL_LIBRARY)) |
| MODULE_FIDL_H := $(MODULE_GENDIR)/include/$(MODULE_FIDL_LIB_PATH)/c/fidl.h |
| MODULE_FIDL_CPP := $(MODULE_GENDIR)/src/tables.cpp |
| MODULE_FIDL_OBJ := $(MODULE_GENDIR)/obj/tables.cpp.o |
| |
| MODULE_SRCDEPS += $(MODULE_FIDL_H) $(MODULE_FIDL_CPP) |
| MODULE_GEN_HDR += $(MODULE_FIDL_H) |
| |
| #$(info MODULE_FIDLSRCS = $(MODULE_FIDLSRCS)) |
| |
| $(MODULE_FIDL_OBJ): MODULE_OPTFLAGS:=$(MODULE_OPTFLAGS) |
| $(MODULE_FIDL_OBJ): MODULE_COMPILEFLAGS:=$(MODULE_COMPILEFLAGS) -Isystem/ulib/fidl/include |
| $(MODULE_FIDL_OBJ): MODULE_CPPFLAGS:=$(MODULE_CPPFLAGS) |
| $(MODULE_FIDL_OBJ): MODULE_SRCDEPS:=$(MODULE_SRCDEPS) |
| |
| $(MODULE_FIDL_OBJ): $(MODULE_GENDIR)/obj/%.cpp.o: $(MODULE_GENDIR)/src/%.cpp $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| $(call BUILDECHO, compiling $<) |
| $(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 $@ |
| |
| $(MODULE_FIDL_RSP): FIDL_NAME:=$(MODULE_FIDL_LIBRARY) |
| $(MODULE_FIDL_RSP): FIDL_H:=$(MODULE_FIDL_H) |
| $(MODULE_FIDL_RSP): FIDL_CPP:=$(MODULE_FIDL_CPP) |
| $(MODULE_FIDL_RSP): FIDL_SRCS:=$(MODULE_FIDLSRCS) |
| $(MODULE_FIDL_RSP): FIDL_DEPS:=$(foreach dep,$(MODULE_FIDL_DEPS),--files $(MODULE_FIDL_SRCS_$(dep))) |
| $(MODULE_FIDL_RSP): $(MODULE_FIDLSRCS) |
| @$(MKDIR) |
| $(NOECHO)echo --name $(FIDL_NAME) --c-header $(FIDL_H) --tables $(FIDL_CPP) $(FIDL_DEPS) --files $(FIDL_SRCS) > $@ |
| |
| # $@ only lists one of the multiple targets, so we use $< (first dep) to |
| # compute the (related) destination directories to create |
| %/gen/include/$(MODULE_FIDL_LIB_PATH)/c/fidl.h %/gen/src/tables.cpp: %/gen/fidl.rsp $(FIDL) |
| $(call BUILDECHO, generating fidl from $<) |
| @mkdir -p $(<D)/include $(<D)/src |
| $(NOECHO)$(FIDL) @$< |
| |
| GENERATED += $(MODULE_FIDL_H) $(MODULE_FIDL_CPP) |
| |
| # clear some variables we set here |
| MODULE_FIDLSRCS := |
| MODULE_FIDL_LIB_PATH := |
| MODULE_FIDL_H := |
| MODULE_FIDL_CPP := |
| MODULE_FIDL_RSP := |
| |
| # MODULE_FIDL_OBJ is passed back |
| #MODULE_FIDL_OBJ := |