1# Copyright 2016 The Fuchsia Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5LOCAL_DIR := $(GET_LOCAL_DIR)
6
7LOCAL_DEVMGR_ROOT := system/core/devmgr
8LOCAL_DEVHOST_SRCS := $(LOCAL_DEVMGR_ROOT)/devhost
9
10MODULE := $(LOCAL_DIR)
11
12MODULE_NAME := driver
13
14MODULE_TYPE := userlib
15
16MODULE_EXPORT := so
17MODULE_SO_NAME := driver
18
19MODULE_COMPILEFLAGS := -fvisibility=hidden
20
21MODULE_SRCS := \
22	$(LOCAL_DEVHOST_SRCS)/devhost.cpp \
23	$(LOCAL_DEVHOST_SRCS)/api.cpp \
24	$(LOCAL_DEVHOST_SRCS)/core.cpp \
25	$(LOCAL_DEVHOST_SRCS)/rpc-server.cpp \
26	$(LOCAL_DEVHOST_SRCS)/zx-device.cpp \
27	$(LOCAL_DEVMGR_ROOT)/shared/env.cpp \
28
29ifeq ($(call TOBOOL,$(ENABLE_DRIVER_TRACING)),true)
30MODULE_SRCS += \
31    $(LOCAL_DEVHOST_SRCS)/tracing.cpp
32MODULE_HEADER_DEPS := \
33    system/ulib/trace-provider
34endif
35
36MODULE_FIDL_LIBS := \
37    system/fidl/fuchsia-device-manager \
38    system/fidl/fuchsia-io \
39
40MODULE_STATIC_LIBS := \
41    system/ulib/async \
42    system/ulib/async.cpp \
43    system/ulib/async.default \
44    system/ulib/async-loop \
45    system/ulib/async-loop.cpp \
46    system/ulib/ddk \
47    system/ulib/fbl \
48    system/ulib/fidl \
49    system/ulib/fs \
50    system/ulib/sync \
51    system/ulib/port \
52    system/ulib/zx \
53    system/ulib/zxcpp \
54    system/ulib/zxio \
55
56# There are pieces of the trace engine that are always present.
57# They don't provide tracing support, but the tracing API provides
58# them even if #define NTRACE.
59MODULE_STATIC_LIBS += \
60    system/ulib/trace-engine.driver
61
62ifeq ($(call TOBOOL,$(ENABLE_DRIVER_TRACING)),true)
63
64MODULE_STATIC_LIBS += \
65    system/ulib/trace.driver \
66    system/ulib/trace-provider
67
68# Since the tracing support is brought in via an archive, we need explicit
69# references to ensure everything is present.
70MODULE_EXTRA_OBJS := system/ulib/trace-engine/ddk-exports.ld
71
72else
73
74# Some symbols still need to be present even if tracing is disabled.
75# See the linker script for details.
76MODULE_EXTRA_OBJS := system/ulib/trace-engine/ddk-disabled-exports.ld
77
78endif
79
80MODULE_LIBS := system/ulib/fdio system/ulib/zircon system/ulib/c
81
82include make/module.mk
83