# Copyright 2017 The Fuchsia Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Three copies of libtrace-engine are built: # 1) Shared library for use by userspace tracing. # 2) Static library for use by userspace tracing. # 3) Static library to be linked into libdriver.so for use by driver tracing. # # N.B. Please DO NOT use (2) unless you KNOW you need to. Generally you do not. # If in doubt, ask. (2) is for very special circumstances where # libtrace-engine.so is not available. LOCAL_DIR := $(GET_LOCAL_DIR) # Common pieces. LOCAL_SRCS := \ $(LOCAL_DIR)/context.cpp \ $(LOCAL_DIR)/context_api.cpp \ $(LOCAL_DIR)/engine.cpp \ $(LOCAL_DIR)/nonce.cpp LOCAL_STATIC_LIBS := \ system/ulib/async \ system/ulib/async.cpp \ system/ulib/fbl \ system/ulib/zx \ system/ulib/zxcpp LOCAL_LIBS := \ system/ulib/c \ system/ulib/zircon # The default version for the normal case. MODULE := $(LOCAL_DIR) MODULE_TYPE := userlib MODULE_COMPILEFLAGS += -fvisibility=hidden MODULE_SRCS := $(LOCAL_SRCS) MODULE_EXPORT := so MODULE_SO_NAME := trace-engine MODULE_STATIC_LIBS := $(LOCAL_STATIC_LIBS) MODULE_LIBS := $(LOCAL_LIBS) include make/module.mk # A special version for programs and shared libraries that can't use # libtrace-engine.so, e.g., because it is unavailable. # N.B. Please verify that you really need this before using it. # Generally you DO NOT want to use this. MODULE := $(LOCAL_DIR).static MODULE_NAME := trace-engine-static MODULE_TYPE := userlib MODULE_COMPILEFLAGS += -fvisibility=hidden MODULE_COMPILEFLAGS += -DSTATIC_LIBRARY MODULE_SRCS := $(LOCAL_SRCS) MODULE_STATIC_LIBS := $(LOCAL_STATIC_LIBS) MODULE_LIBS := $(LOCAL_LIBS) MODULE_PACKAGE := static include make/module.mk # And again, but this time for drivers. # This gets linked into libdriver.so. MODULE := $(LOCAL_DIR).driver MODULE_NAME := trace-engine-driver MODULE_TYPE := userlib MODULE_COMPILEFLAGS += -fvisibility=hidden MODULE_COMPILEFLAGS += -DDDK_TRACING # trace_generate_nonce() exists even when driver tracing is disabled MODULE_SRCS := \ $(LOCAL_DIR)/nonce.cpp MODULE_STATIC_LIBS := \ system/ulib/fbl ifeq ($(call TOBOOL,$(ENABLE_DRIVER_TRACING)),true) MODULE_SRCS += \ $(LOCAL_DIR)/context.cpp \ $(LOCAL_DIR)/context_api.cpp \ $(LOCAL_DIR)/engine.cpp MODULE_STATIC_LIBS += \ system/ulib/async.cpp \ system/ulib/async \ system/ulib/zx \ system/ulib/zxcpp endif MODULE_LIBS := $(LOCAL_LIBS) include make/module.mk # Header-only src package for use by exported trace-reader package. MODULE := $(LOCAL_DIR).headers-for-reader MODULE_NAME := trace-engine-headers-for-reader MODULE_TYPE := userlib MODULE_COMPILEFLAGS += -fvisibility=hidden MODULE_PACKAGE_SRCS := none MODULE_PACKAGE_INCS := \ $(LOCAL_DIR)/include/trace-engine/fields.h \ $(LOCAL_DIR)/include/trace-engine/types.h MODULE_STATIC_LIBS := \ system/ulib/fbl MODULE_LIBS := MODULE_PACKAGE := src include make/module.mk