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