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
7# devmgr - core userspace services process
8#
9MODULE := $(LOCAL_DIR)
10
11MODULE_NAME := devmgr
12MODULE_TYPE := userapp
13MODULE_GROUP := core
14
15MODULE_SRCS += \
16    $(LOCAL_DIR)/bootfs.cpp \
17    $(LOCAL_DIR)/devhost-shared.cpp \
18    $(LOCAL_DIR)/devmgr.cpp \
19    $(LOCAL_DIR)/devmgr-binding.cpp \
20    $(LOCAL_DIR)/devmgr-coordinator.cpp \
21    $(LOCAL_DIR)/devmgr-devfs.cpp \
22    $(LOCAL_DIR)/devmgr-drivers.cpp \
23    $(LOCAL_DIR)/devmgr-fdio.cpp
24
25# userboot supports loading via the dynamic linker, so libc (system/ulib/c)
26# can be linked dynamically.  But it doesn't support any means to look
27# up other shared libraries, so everything else must be linked statically.
28
29# We can avoid the fuchsia.crash dependency if crashsvc connects directly to the
30# analyzer.
31MODULE_FIDL_LIBS := \
32    system/fidl/fuchsia-crash \
33    system/fidl/fuchsia-io \
34    system/fidl/fuchsia-mem \
35
36# ddk is needed only for ddk/device.h
37MODULE_HEADER_DEPS := \
38    system/ulib/ddk \
39    system/ulib/zircon-internal
40
41MODULE_STATIC_LIBS := \
42    system/ulib/fidl \
43    system/ulib/bootdata \
44    system/ulib/loader-service \
45    system/ulib/async \
46    system/ulib/async-loop \
47    system/ulib/sync \
48    third_party/ulib/lz4 \
49    system/ulib/port \
50    system/ulib/driver-info \
51    system/ulib/memfs \
52    system/ulib/fs \
53    system/ulib/fbl \
54    system/ulib/zx \
55    system/ulib/zxcpp \
56
57MODULE_LIBS := \
58    system/ulib/async.default \
59    system/ulib/launchpad \
60    system/ulib/fdio \
61    system/ulib/zircon \
62    system/ulib/c
63
64include make/module.mk
65
66
67# fshost - container for filesystems
68
69MODULE := $(LOCAL_DIR).fshost
70
71MODULE_NAME := fshost
72MODULE_TYPE := userapp
73MODULE_GROUP := core
74
75MODULE_SRCS := \
76    $(LOCAL_DIR)/bootfs.cpp \
77    $(LOCAL_DIR)/block-watcher.cpp \
78    $(LOCAL_DIR)/devmgr-fdio.cpp \
79    $(LOCAL_DIR)/fshost.cpp \
80    $(LOCAL_DIR)/vfs-rpc.cpp
81
82MODULE_STATIC_LIBS := \
83    system/ulib/memfs.cpp \
84    system/ulib/memfs \
85    system/ulib/fs \
86    system/ulib/loader-service \
87    system/ulib/async.cpp \
88    system/ulib/async \
89    system/ulib/async-loop.cpp \
90    system/ulib/async-loop \
91    system/ulib/bootdata \
92    system/ulib/fbl \
93    system/ulib/gpt \
94    system/ulib/sync \
95    system/ulib/trace \
96    system/ulib/zx \
97    system/ulib/zxcpp \
98    third_party/ulib/cksum \
99    third_party/ulib/lz4 \
100
101MODULE_LIBS := \
102    system/ulib/async.default \
103    system/ulib/launchpad \
104    system/ulib/fdio \
105    system/ulib/fs-management \
106    system/ulib/trace-engine \
107    system/ulib/zircon \
108    system/ulib/c
109
110MODULE_FIDL_LIBS := \
111    system/fidl/fuchsia-io \
112
113include make/module.mk
114
115
116# devhost - container for drivers
117#
118# This is just a main() that calls device_host_main() which
119# is provided by libdriver, where all the other devhost-*.c
120# files get built.
121#
122MODULE := $(LOCAL_DIR).host
123
124# The ASanified devhost is installed as devhost.asan so that
125# devmgr can use the ASanified host for ASanified driver modules.
126# TODO(mcgrathr): One day, both devhost and devhost.asan can both go
127# into the same system image, independent of whether devmgr is ASanified.
128ifeq ($(call TOBOOL,$(USE_ASAN)),true)
129DEVHOST_SUFFIX := .asan
130else
131DEVHOST_SUFFIX :=
132endif
133
134MODULE_NAME := devhost$(DEVHOST_SUFFIX)
135
136MODULE_TYPE := userapp
137MODULE_GROUP := core
138
139MODULE_SRCS := \
140	$(LOCAL_DIR)/devhost-main.cpp
141
142MODULE_LIBS := system/ulib/driver system/ulib/fdio system/ulib/c
143
144include make/module.mk
145
146
147# dmctl - bridge between dm command and devmgr
148
149MODULE := $(LOCAL_DIR).dmctl
150
151MODULE_TYPE := driver
152
153MODULE_NAME := dmctl
154
155MODULE_SRCS := \
156	$(LOCAL_DIR)/dmctl.cpp \
157	$(LOCAL_DIR)/devhost-shared.cpp \
158
159MODULE_STATIC_LIBS := system/ulib/ddk system/ulib/port
160
161MODULE_LIBS := system/ulib/driver system/ulib/zircon system/ulib/c
162
163include make/module.mk
164