1# Copyright 2016 The Fuchsia Authors 2# 3# Use of this source code is governed by a MIT-style 4# license that can be found in the LICENSE file or at 5# https://opensource.org/licenses/MIT 6 7ifneq ($(MODULE_DEPS)$(MODULE_HOST_LIBS)$(MODULE_HOST_SYSLIBS),) 8$(error $(MODULE) $(MODULE_TYPE) fidl modules must use MODULE_FIDL_DEPS) 9endif 10 11# build static library 12$(MODULE_LIBNAME).a: $(MODULE_FIDL_OBJS) 13 @$(MKDIR) 14 $(call BUILDECHO,linking $@) 15 @rm -f -- "$@" 16 $(call BUILDCMD,$(AR),cr $@ $^) 17 18# always build all libraries 19EXTRA_BUILDDEPS += $(MODULE_LIBNAME).a make/module-fidl.mk 20GENERATED += $(MODULE_LIBNAME).a 21 22MODULE_RULESMK := $(MODULE_SRCDIR)/rules.mk 23 24ifeq ($(filter fidl,$(MODULE_EXPORT)),fidl) 25MODULE_PACKAGE += $(sort $(MODULE_PACKAGE) fidl) 26endif 27 28ifneq ($(strip $(MODULE_PACKAGE)),) 29 30MODULE_PKG_FILE := $(MODULE_BUILDDIR)/$(MODULE_NAME).pkg 31MODULE_EXP_FILE := $(BUILDDIR)/export/$(MODULE_NAME).pkg 32 33MODULE_PKG_SRCS := $(MODULE_SRCS) 34MODULE_PKG_DEPS := $(MODULE_FIDL_DEPS) 35 36ifneq ($(strip $(MODULE_PKG_DEPS)),) 37MODULE_PKG_DEPS := $(foreach dep,$(MODULE_FIDL_DEPS),$(patsubst system/fidl/%,%,$(dep))=SOURCE/$(dep)) 38endif 39 40ifneq ($(strip $(MODULE_PKG_SRCS)),) 41MODULE_PKG_SRCS := $(foreach src,$(MODULE_PKG_SRCS),$(patsubst $(MODULE_SRCDIR)/%,%,$(src))=SOURCE/$(src)) 42MODULE_PKG_TAG := "[fidl]" 43endif 44 45$(MODULE_PKG_FILE): _NAME := $(MODULE_NAME) 46$(MODULE_PKG_FILE): _LIBRARY := $(MODULE_FIDL_LIBRARY) 47$(MODULE_PKG_FILE): _SRCS := $(if $(MODULE_PKG_SRCS),$(MODULE_PKG_TAG) $(sort $(MODULE_PKG_SRCS))) 48$(MODULE_PKG_FILE): _DEPS := $(if $(MODULE_PKG_DEPS),"[fidl-deps]" $(sort $(MODULE_PKG_DEPS))) 49$(MODULE_PKG_FILE): $(MODULE_RULESMK) make/module-fidl.mk 50 @$(call BUILDECHO,creating fidl library package $@ ;)\ 51 $(MKDIR) ;\ 52 echo "[package]" > $@ ;\ 53 echo "name=$(_NAME)" >> $@ ;\ 54 echo "library=$(_LIBRARY)" >> $@ ;\ 55 echo "arch=fidl" >> $@ ;\ 56 echo "type=fidl" >> $@ ;\ 57 for i in $(_SRCS) ; do echo $$i >> $@ ; done ;\ 58 for i in $(_DEPS) ; do echo $$i >> $@ ; done 59 60 61$(MODULE_EXP_FILE): $(MODULE_PKG_FILE) 62 @$(MKDIR) ;\ 63 if [ -f "$@" ]; then \ 64 if ! cmp "$<" "$@" >/dev/null 2>&1; then \ 65 $(if $(BUILDECHO),echo installing $@ ;)\ 66 cp -f $< $@; \ 67 fi \ 68 else \ 69 $(if $(BUILDECHO),echo installing $@ ;)\ 70 cp -f $< $@; \ 71 fi 72GENERATED += $(MODULE_EXP_FILE) $(MODULE_PKG_FILE) 73ALLPKGS += $(MODULE_EXP_FILE) 74 75endif # // ifneq ($(strip $(MODULE_PACKAGE)),) 76