1LOCAL_PATH := $(call my-dir)
2
3cvd_host_package_tar := $(HOST_OUT)/cvd-host_package.tar.gz
4
5.PHONY: hosttar
6hosttar: $(cvd_host_package_tar)
7
8# Build this by default when a developer types make
9droidcore: $(cvd_host_package_tar)
10
11# Build and store them on the build server.
12$(call dist-for-goals, dist_files, $(cvd_host_package_tar))
13
14bin_path := $(notdir $(HOST_OUT_EXECUTABLES))
15lib_path := $(notdir $(HOST_OUT_SHARED_LIBRARIES))
16tests_path := $(notdir $(HOST_OUT_NATIVE_TESTS))
17webrtc_files_path := usr/share/webrtc
18x86_64_seccomp_files_path := usr/share/cuttlefish/x86_64-linux-gnu/seccomp
19aarch64_seccomp_files_path := usr/share/cuttlefish/aarch64-linux-gnu/seccomp
20modem_simulator_path := etc/modem_simulator
21
22cvd_host_executables := \
23    adb \
24    adbshell \
25    launch_cvd \
26    lpmake \
27    lpunpack \
28    socket_vsock_proxy \
29    adb_connector \
30    stop_cvd \
31    vnc_server \
32    kernel_log_monitor \
33    extract-vmlinux \
34    crosvm \
35    aarch64-linux-gnu/crosvm \
36    aarch64-linux-gnu/libepoxy.so.0 \
37    aarch64-linux-gnu/libgbm.so.1 \
38    aarch64-linux-gnu/libminijail.so \
39    aarch64-linux-gnu/libvirglrenderer.so.1 \
40    x86_64-linux-gnu/crosvm \
41    x86_64-linux-gnu/libepoxy.so.0 \
42    x86_64-linux-gnu/libgbm.so.1 \
43    x86_64-linux-gnu/libminijail.so \
44    x86_64-linux-gnu/libvirglrenderer.so.1 \
45    x86_64-linux-gnu/libc++.so.1 \
46    x86_64-linux-gnu/libandroid-emu-shared.so \
47    x86_64-linux-gnu/libemugl_common.so \
48    x86_64-linux-gnu/libOpenglRender.so \
49    x86_64-linux-gnu/libgfxstream_backend.so \
50    logcat_receiver \
51    config_server \
52    tombstone_receiver \
53    console_forwarder \
54    assemble_cvd \
55    run_cvd \
56    cvd_status \
57    powerwash_cvd \
58    webRTC \
59    webrtc_sig_server \
60    metrics \
61    fsck.f2fs \
62    resize.f2fs \
63    make_f2fs \
64    tpm_simulator_manager \
65    vtpm_passthrough \
66    ms-tpm-20-ref \
67    lz4 \
68    mkenvimage \
69    tapsetiff \
70    newfs_msdos \
71    secure_env \
72    log_tee \
73    modem_simulator \
74
75cvd_host_tests := \
76    monotonic_time_test \
77    cuttlefish_net_tests \
78    modem_simulator_test \
79
80cvd_host_shared_libraries := \
81    libbase.so \
82    libcuttlefish_fs.so \
83    libcuttlefish_utils.so \
84    cuttlefish_tcp_socket.so \
85    cuttlefish_net.so \
86    liblog.so \
87    libnl.so \
88    libc++.so \
89    libcutils.so \
90    libpuresoftkeymasterdevice_host.so \
91    liblp.so \
92    libsparse-host.so \
93    libcrypto-host.so \
94    libcrypto_utils.so \
95    libext4_utils.so \
96    libz-host.so \
97    libicuuc-host.so \
98    libicui18n-host.so \
99    libandroidicu-host.so \
100    libcuttlefish_device_config.so \
101    cdisk_spec.so \
102    libprotobuf-cpp-full.so \
103    libziparchive.so \
104    libvpx.so \
105    libssl-host.so \
106    libopus.so \
107    libyuv.so \
108    libjpeg.so \
109    libkeymaster_messages.so \
110    libkeymaster_portable.so \
111    libsoft_attestation_cert.so \
112    libcuttlefish_security.so \
113    tpm2-tss2-esys.so \
114    tpm2-tss2-mu.so \
115    tpm2-tss2-rc.so \
116    tpm2-tss2-sys.so \
117    tpm2-tss2-tcti.so \
118    tpm2-tss2-util.so \
119    libgatekeeper.so \
120    ms-tpm-20-ref-lib.so \
121
122webrtc_assets := \
123    index.html \
124    style.css \
125    js/logcat.js \
126    js/app.js \
127    js/cf_webrtc.js \
128
129webrtc_certs := \
130    server.crt \
131    server.key \
132    server.p12 \
133    trusted.pem \
134
135x86_64_seccomp_files := \
136    9p_device.policy \
137    balloon_device.policy \
138    block_device.policy \
139    common_device.policy \
140    cras_audio_device.policy \
141    fs_device.policy \
142    gpu_device.policy \
143    input_device.policy \
144    net_device.policy \
145    null_audio_device.policy \
146    pmem_device.policy \
147    rng_device.policy \
148    serial.policy \
149    tpm_device.policy \
150    vfio_device.policy \
151    vhost_net_device.policy \
152    vhost_vsock_device.policy \
153    wl_device.policy \
154    xhci.policy \
155
156aarch64_seccomp_files := \
157    9p_device.policy \
158    balloon_device.policy \
159    block_device.policy \
160    common_device.policy \
161    cras_audio_device.policy \
162    fs_device.policy \
163    gpu_device.policy \
164    input_device.policy \
165    net_device.policy \
166    null_audio_device.policy \
167    pmem_device.policy \
168    rng_device.policy \
169    serial.policy \
170    tpm_device.policy \
171    vhost_net_device.policy \
172    vhost_vsock_device.policy \
173    wl_device.policy \
174    xhci.policy \
175
176cvd_host_webrtc_files := \
177    $(addprefix assets/,$(webrtc_assets)) \
178    $(addprefix certs/,$(webrtc_certs)) \
179
180modem_simulator_files := \
181     iccprofile_for_sim0.xml \
182     numeric_operator.xml \
183
184cvd_host_package_files := \
185     $(addprefix $(bin_path)/,$(cvd_host_executables)) \
186     $(addprefix $(lib_path)/,$(cvd_host_shared_libraries)) \
187     $(foreach test,$(cvd_host_tests), ${tests_path}/$(test)/$(test)) \
188     $(addprefix $(webrtc_files_path)/,$(cvd_host_webrtc_files)) \
189     $(addprefix $(x86_64_seccomp_files_path)/,$(x86_64_seccomp_files)) \
190     $(addprefix $(aarch64_seccomp_files_path)/,$(aarch64_seccomp_files)) \
191     $(addprefix $(modem_simulator_path)/files/,$(modem_simulator_files)) \
192
193$(cvd_host_package_tar): PRIVATE_FILES := $(cvd_host_package_files)
194$(cvd_host_package_tar): $(addprefix $(HOST_OUT)/,$(cvd_host_package_files))
195	$(hide) rm -rf $@ && tar Scfz $@.tmp -C $(HOST_OUT) $(PRIVATE_FILES)
196	$(hide) mv $@.tmp $@
197