xref: /aosp_15_r20/external/f2fs-tools/Android.bp (revision 59bfda1f02d633cd6b8b69f31eee485d40f6eef6)
1// Copyright 2017 The Android Open Source Project
2
3package {
4    default_applicable_licenses: ["external_f2fs-tools_license"],
5}
6
7// Added automatically by a large-scale-change that took the approach of
8// 'apply every license found to every target'. While this makes sure we respect
9// every license restriction, it may not be entirely correct.
10//
11// e.g. GPL in an MIT project might only apply to the contrib/ directory.
12//
13// Please consider splitting the single license below into multiple licenses,
14// taking care not to lose any license_kind information, and overriding the
15// default license using the 'licenses: [...]' property on targets as needed.
16//
17// For unused files, consider creating a 'fileGroup' with "//visibility:private"
18// to attach the license to, and including a comment whether the files may be
19// used in the current project.
20//
21// large-scale-change included anything that looked like it might be a license
22// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
23//
24// Please consider removing redundant or irrelevant files from 'license_text:'.
25// See: http://go/android-license-faq
26license {
27    name: "external_f2fs-tools_license",
28    visibility: [":__subpackages__"],
29    license_kinds: [
30        "SPDX-license-identifier-BSD",
31        "SPDX-license-identifier-GPL",
32        "SPDX-license-identifier-GPL-2.0",
33        "SPDX-license-identifier-LGPL",
34        "SPDX-license-identifier-LGPL-2.1",
35    ],
36    license_text: [
37        "COPYING",
38        "NOTICE",
39    ],
40}
41
42cc_defaults {
43    name: "f2fs-tools-defaults",
44    cflags: [
45        "-DF2FS_MAJOR_VERSION=1",
46        "-DF2FS_MINOR_VERSION=16",
47        "-DF2FS_TOOLS_VERSION=\"1.16.0\"",
48        "-DF2FS_TOOLS_DATE=\"2023-04-11\"",
49        "-DWITH_ANDROID",
50        "-D_FILE_OFFSET_BITS=64",
51        "-Wall",
52        "-Werror",
53        "-Wno-macro-redefined",
54        "-Wno-missing-field-initializers",
55        "-Wno-pointer-arith",
56        "-Wno-sign-compare",
57    ],
58    local_include_dirs: [
59        "include",
60        "mkfs",
61        "fsck",
62    ],
63    target: {
64        windows: {
65            enabled: false,
66        },
67    },
68}
69
70cc_defaults {
71    name: "libf2fs_src_files",
72    cflags: ["-DWITH_BLKDISCARD"],
73    srcs: [
74        "lib/libf2fs.c",
75        "mkfs/f2fs_format.c",
76        "mkfs/f2fs_format_utils.c",
77        "lib/libf2fs_zoned.c",
78        "lib/nls_utf8.c",
79    ],
80    static_libs: [
81        "libext2_uuid",
82    ],
83}
84
85cc_defaults {
86    name: "make_f2fs_src_files",
87    srcs: [
88        "lib/libf2fs_io.c",
89        "mkfs/f2fs_format_main.c",
90    ],
91}
92
93cc_defaults {
94    name: "fsck_main_src_files",
95    srcs: [
96        "fsck/dir.c",
97        "fsck/dict.c",
98        "fsck/mkquota.c",
99        "fsck/quotaio.c",
100        "fsck/quotaio_tree.c",
101        "fsck/quotaio_v2.c",
102        "fsck/node.c",
103        "fsck/segment.c",
104        "fsck/xattr.c",
105        "fsck/main.c",
106        "fsck/mount.c",
107        "lib/libf2fs.c",
108        "lib/libf2fs_io.c",
109        "lib/libf2fs_zoned.c",
110        "lib/nls_utf8.c",
111        "fsck/dump.c",
112    ],
113}
114
115cc_library_static {
116    name: "libf2fs_fmt",
117    recovery_available: true,
118    defaults: [
119        "f2fs-tools-defaults",
120        "libf2fs_src_files"
121    ],
122}
123
124cc_library_host_static {
125    name: "libf2fs_fmt_host",
126    defaults: [
127        "f2fs-tools-defaults",
128        "libf2fs_src_files"
129    ],
130    target: {
131        windows: {
132            include_dirs: [ "external/e2fsprogs/include/mingw" ],
133            cflags: [
134                "-DANDROID_WINDOWS_HOST",
135                "-Wno-typedef-redefinition",
136                "-Wno-unused-parameter",
137            ],
138            enabled: true
139        },
140    },
141}
142
143cc_defaults {
144    name: "make_f2fs_defaults",
145    defaults: [
146        "f2fs-tools-defaults",
147        "make_f2fs_src_files",
148    ],
149    target: {
150        android: {
151            static_libs: [
152                "libf2fs_fmt",
153            ],
154            shared_libs: [
155                "libext2_uuid",
156                "libsparse",
157                "libbase",
158            ],
159        },
160    },
161}
162
163cc_defaults {
164    name: "make_f2fs_host_defaults",
165    defaults: [
166        "make_f2fs_defaults",
167    ],
168    host_supported: true,
169    target: {
170        host: {
171            static_libs: [
172                "libf2fs_fmt_host",
173                "libext2_uuid",
174                "libsparse",
175                "libbase",
176                "libz",
177            ],
178        },
179        windows: {
180            include_dirs: [ "external/e2fsprogs/include/mingw" ],
181            cflags: ["-DANDROID_WINDOWS_HOST"],
182            ldflags: ["-static"],
183            host_ldlibs: ["-lws2_32"],
184            enabled: true
185        },
186    },
187}
188
189cc_binary {
190    name: "make_f2fs",
191    defaults: [
192        "make_f2fs_host_defaults",
193    ],
194}
195
196cc_binary {
197    name: "make_f2fs.recovery",
198    defaults: [
199        "make_f2fs_defaults",
200    ],
201    recovery: true,
202    stem: "make_f2fs",
203}
204
205cc_binary_host {
206    name: "make_f2fs_casefold",
207    defaults: [
208        "make_f2fs_host_defaults",
209    ],
210    recovery_available: true,
211    target: {
212        host: {
213            cflags: ["-DCONF_CASEFOLD", "-DCONF_PROJID"],
214        },
215        windows: {
216            cflags: ["-DCONF_CASEFOLD", "-DCONF_PROJID"],
217        },
218    },
219}
220
221cc_binary_host {
222    name: "make_f2fs.static",
223    defaults: [
224        "make_f2fs_host_defaults",
225    ],
226    recovery_available: true,
227    static_executable: true,
228    stl: "libc++_static",
229}
230
231cc_defaults {
232    name: "fsck.f2fs_defaults",
233    defaults: [
234        "f2fs-tools-defaults",
235        "fsck_main_src_files",
236    ],
237    cflags: ["-DWITH_RESIZE", "-DWITH_DEFRAG", "-DWITH_DUMP"],
238    srcs: ["fsck/fsck.c", "fsck/resize.c", "fsck/defrag.c"],
239}
240
241cc_defaults {
242    name: "fsck.f2fs_partition_common_defaults",
243    defaults: [
244        "f2fs-tools-defaults",
245        "fsck_main_src_files",
246        "fsck.f2fs_defaults",
247    ],
248    symlinks: ["resize.f2fs", "defrag.f2fs", "dump.f2fs"],
249    shared_libs: [
250        "libext2_uuid",
251        "libsparse",
252        "libbase",
253    ],
254    bootstrap: true,
255}
256
257cc_binary {
258    name: "fsck.f2fs",
259    defaults: [
260        "fsck.f2fs_partition_common_defaults",
261    ],
262    host_supported: true,
263    vendor_available: true,
264    vendor_ramdisk_available: true,
265    bootstrap: true,
266}
267
268cc_binary {
269    name: "fsck.f2fs.recovery",
270    defaults: [
271        "fsck.f2fs_partition_common_defaults",
272    ],
273    recovery: true,
274    bootstrap: true,
275    stem: "fsck.f2fs",
276}
277
278cc_binary {
279    name: "fsck.f2fs_ramdisk",
280    stem: "fsck.f2fs",
281    defaults: [
282        "f2fs-tools-defaults",
283        "fsck_main_src_files",
284        "fsck.f2fs_defaults",
285    ],
286    static_executable: true,
287    ramdisk: true,
288    static_libs: [
289        "libbase",
290        "libext2_uuid",
291        "libsparse",
292        "libz",
293    ],
294}
295
296cc_defaults {
297    name: "sload_f2fs_defaults",
298    defaults: [
299        "f2fs-tools-defaults",
300        "fsck_main_src_files",
301    ],
302    cflags: ["-DWITH_SLOAD"],
303    srcs: [
304        "fsck/fsck.c",
305        "fsck/sload.c",
306        "fsck/compress.c",
307        ],
308    target: {
309        android: {
310            shared_libs: [
311                "libext2_uuid",
312                "libsparse",
313                "libbase",
314                "libcrypto",
315                "libselinux",
316                "libcutils",
317                "liblog",
318                "liblz4",
319            ],
320        },
321    },
322}
323
324cc_binary {
325    name: "sload_f2fs",
326    defaults: [
327        "sload_f2fs_defaults",
328    ],
329    host_supported: true,
330    target: {
331        host: {
332            static_libs: [
333                "libext2_uuid",
334                "libsparse",
335                "libbase",
336                "libcrypto",
337                "libselinux",
338                "libcutils",
339                "liblog",
340                "libz",
341                "liblz4",
342            ],
343        },
344    },
345}
346
347cc_binary {
348    name: "sload_f2fs.recovery",
349    defaults: [
350        "sload_f2fs_defaults",
351    ],
352    recovery: true,
353    stem: "sload_f2fs",
354}
355
356cc_binary {
357    name: "check_f2fs",
358    host_supported: false,
359    cflags: [
360        "--static",
361        "-U_FORTIFY_SOURCE",
362	"-Wall",
363	"-Werror",
364    ],
365    srcs: ["tools/check_f2fs.c"],
366    product_specific: true,
367}
368
369cc_defaults {
370    name: "tools-defaults",
371    cflags: [
372	"-Wall",
373	"-Werror",
374    ],
375    local_include_dirs: [
376        "include",
377    ],
378    target: {
379        windows: {
380            enabled: false,
381        },
382        darwin: {
383            enabled: false,
384        },
385    },
386    product_specific: true,
387}
388
389cc_binary {
390    name: "f2fscrypt",
391    defaults: [
392        "tools-defaults",
393    ],
394    shared_libs: [
395        "libext2_uuid",
396    ],
397    srcs: [
398        "tools/f2fscrypt.c",
399        "tools/sha512.c",
400    ],
401}
402
403cc_binary {
404    name: "f2fs.fibmap",
405    defaults: [
406        "tools-defaults",
407    ],
408    srcs: [
409        "tools/fibmap.c",
410    ],
411}
412