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)/devmgr/main.cpp \
17    $(LOCAL_DIR)/devmgr/binding.cpp \
18    $(LOCAL_DIR)/devmgr/coordinator.cpp \
19    $(LOCAL_DIR)/devmgr/devfs.cpp \
20    $(LOCAL_DIR)/devmgr/drivers.cpp \
21    $(LOCAL_DIR)/devmgr/fidl.cpp \
22    $(LOCAL_DIR)/shared/env.cpp \
23    $(LOCAL_DIR)/shared/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
29MODULE_FIDL_LIBS := \
30    system/fidl/fuchsia-device-manager \
31    system/fidl/fuchsia-io \
32    system/fidl/fuchsia-mem \
33
34# ddk is needed only for ddk/device.h
35MODULE_HEADER_DEPS := \
36    system/ulib/ddk \
37    system/ulib/bootsvc-protocol \
38    system/ulib/devmgr-launcher \
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.cpp \
47    system/ulib/async-loop \
48    system/ulib/async-loop.cpp \
49    system/ulib/sync \
50    third_party/ulib/lz4 \
51    system/ulib/driver-info \
52    system/ulib/memfs \
53    system/ulib/fs \
54    system/ulib/fbl \
55    system/ulib/fit \
56    system/ulib/zx \
57    system/ulib/zxcpp \
58
59MODULE_LIBS := \
60    system/ulib/async.default \
61    system/ulib/launchpad \
62    system/ulib/fdio \
63    system/ulib/zircon \
64    system/ulib/c
65
66include make/module.mk
67
68
69# fshost - container for filesystems
70
71MODULE := $(LOCAL_DIR).fshost
72
73MODULE_NAME := fshost
74MODULE_TYPE := userapp
75MODULE_GROUP := core
76
77MODULE_SRCS := \
78    $(LOCAL_DIR)/fshost/block-watcher.cpp \
79    $(LOCAL_DIR)/fshost/main.cpp \
80    $(LOCAL_DIR)/fshost/vfs-rpc.cpp \
81    $(LOCAL_DIR)/shared/env.cpp \
82    $(LOCAL_DIR)/shared/fdio.cpp \
83
84MODULE_STATIC_LIBS := \
85    system/ulib/memfs.cpp \
86    system/ulib/memfs \
87    system/ulib/fs \
88    system/ulib/loader-service \
89    system/ulib/async.cpp \
90    system/ulib/async \
91    system/ulib/async-loop.cpp \
92    system/ulib/async-loop \
93    system/ulib/bootdata \
94    system/ulib/bootfs \
95    system/ulib/fbl \
96    system/ulib/gpt \
97    system/ulib/sync \
98    system/ulib/trace \
99    system/ulib/zx \
100    system/ulib/zxcpp \
101    third_party/ulib/cksum \
102    third_party/ulib/lz4 \
103
104MODULE_LIBS := \
105    system/ulib/async.default \
106    system/ulib/launchpad \
107    system/ulib/fdio \
108    system/ulib/fs-management \
109    system/ulib/trace-engine \
110    system/ulib/zircon \
111    system/ulib/c
112
113MODULE_FIDL_LIBS := \
114    system/fidl/fuchsia-io \
115
116include make/module.mk
117
118
119# devhost - container for drivers
120#
121# This is just a main() that calls device_host_main() which
122# is provided by libdriver, where all the other devhost-*.c
123# files get built.
124#
125MODULE := $(LOCAL_DIR).host
126
127# The ASanified devhost is installed as devhost.asan so that
128# devmgr can use the ASanified host for ASanified driver modules.
129# TODO(mcgrathr): One day, both devhost and devhost.asan can both go
130# into the same system image, independent of whether devmgr is ASanified.
131ifeq ($(call TOBOOL,$(USE_ASAN)),true)
132DEVHOST_SUFFIX := .asan
133else
134DEVHOST_SUFFIX :=
135endif
136
137MODULE_NAME := devhost$(DEVHOST_SUFFIX)
138
139MODULE_TYPE := userapp
140MODULE_GROUP := core
141
142MODULE_SRCS := \
143	$(LOCAL_DIR)/devhost/main.cpp
144
145MODULE_LIBS := \
146    system/ulib/driver \
147    system/ulib/fdio \
148    system/ulib/c \
149
150include make/module.mk
151
152
153# dmctl - bridge between dm command and devmgr
154
155MODULE := $(LOCAL_DIR).dmctl
156
157MODULE_TYPE := driver
158
159MODULE_NAME := dmctl
160
161MODULE_SRCS := \
162	$(LOCAL_DIR)/dmctl/dmctl.cpp \
163
164MODULE_STATIC_LIBS := \
165    system/ulib/ddk \
166    system/ulib/ddktl \
167    system/ulib/fbl \
168    system/ulib/fidl \
169    system/ulib/zx \
170    system/ulib/zxcpp \
171
172MODULE_LIBS := system/ulib/driver system/ulib/zircon system/ulib/c
173
174MODULE_FIDL_LIBS := \
175    system/fidl/fuchsia-device-manager \
176
177include make/module.mk
178