Date: Thursday, July 25, 2019 @ 02:08:41 Author: anatolik Revision: 492752
archrelease: copy trunk to community-testing-x86_64 Added: android-tools/repos/community-testing-x86_64/ android-tools/repos/community-testing-x86_64/PKGBUILD (from rev 492751, android-tools/trunk/PKGBUILD) android-tools/repos/community-testing-x86_64/bash_completion.fastboot (from rev 492751, android-tools/trunk/bash_completion.fastboot) android-tools/repos/community-testing-x86_64/fix_build_core.patch (from rev 492751, android-tools/trunk/fix_build_core.patch) android-tools/repos/community-testing-x86_64/fix_build_e2fsprogs.patch (from rev 492751, android-tools/trunk/fix_build_e2fsprogs.patch) android-tools/repos/community-testing-x86_64/fix_build_selinux.patch (from rev 492751, android-tools/trunk/fix_build_selinux.patch) android-tools/repos/community-testing-x86_64/generate_build.rb (from rev 492751, android-tools/trunk/generate_build.rb) ---------------------------+ PKGBUILD | 73 +++++++ bash_completion.fastboot | 90 +++++++++ fix_build_core.patch | 206 ++++++++++++++++++++++ fix_build_e2fsprogs.patch | 43 ++++ fix_build_selinux.patch | 26 ++ generate_build.rb | 411 ++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 849 insertions(+) Copied: android-tools/repos/community-testing-x86_64/PKGBUILD (from rev 492751, android-tools/trunk/PKGBUILD) =================================================================== --- community-testing-x86_64/PKGBUILD (rev 0) +++ community-testing-x86_64/PKGBUILD 2019-07-25 02:08:41 UTC (rev 492752) @@ -0,0 +1,73 @@ +# Maintainer: Anatol Pomozov +# Contributor: 謝致邦 <yek...@red54.com> +# Contributor: Alucryd <alucryd at gmail dot com> + +pkgname=android-tools +pkgver=29.0.1 +pkgrel=1 +tag=platform-tools-$pkgver +pkgdesc='Android platform tools' +arch=(x86_64) +url='http://tools.android.com/' +license=(Apache MIT) +depends=(pcre2 libusb) +optdepends=('python: for mkbootimg script') +makedepends=(git clang gtest ruby cmake ninja go-pie) +provides=(fastboot adb) +conflicts=(fastboot adb) +_boringssl_commit=`curl https://android.googlesource.com/platform/external/boringssl/+/refs/tags/$tag/BORINGSSL_REVISION?format=TEXT | base64 -d` +source=(git+https://android.googlesource.com/platform/system/core#tag=$tag + git+https://android.googlesource.com/platform/system/extras#tag=$tag + git+https://android.googlesource.com/platform/external/selinux#tag=$tag + git+https://android.googlesource.com/platform/external/f2fs-tools#tag=$tag + git+https://android.googlesource.com/platform/external/e2fsprogs#tag=$tag + git+https://android.googlesource.com/platform/external/avb#tag=$tag + git+https://boringssl.googlesource.com/boringssl#commit=$_boringssl_commit + generate_build.rb + fix_build_core.patch + fix_build_selinux.patch + fix_build_e2fsprogs.patch + bash_completion.fastboot) + # Bash completion file was taken from https://github.com/mbrubeck/android-completion +sha1sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + '8510f5031c386c855f9be15cd8055237db290a33' + '16cf92e7ddbec79a672152a07837474ad8ad6356' + 'b2ccf6dac3577d230f910e668ae70af6051fee46' + 'bcebdf1e706a3c3da175234840c6ee4e13652012' + '7004dbd0c193668827174880de6f8434de8ceaee') + +prepare() { + PLATFORM_TOOLS_VERSION="$pkgver" LDFLAGS='-Wl,-z,relro,-z,now' ./generate_build.rb > build.ninja + + cd $srcdir/core + patch -p1 < ../fix_build_core.patch + + cd $srcdir/selinux + patch -p1 < ../fix_build_selinux.patch + + cd $srcdir/e2fsprogs + patch -p1 < ../fix_build_e2fsprogs.patch + + cd $srcdir/avb + sed -i 's|/usr/bin/env python$|/usr/bin/env python2|g' avbtool + + mkdir -p $srcdir/boringssl/build && cd $srcdir/boringssl/build && cmake -GNinja ..; ninja +} + +build() { + ninja +} + +package(){ + install -m755 -d "$pkgdir"/usr/bin + install -m755 -t "$pkgdir"/usr/bin fastboot adb mke2fs.android e2fsdroid ext2simg avb/avbtool + install -Dm 755 core/mkbootimg/mkbootimg.py "$pkgdir"/usr/bin/mkbootimg + install -Dm 755 core/mkbootimg/unpack_bootimg.py "$pkgdir"/usr/bin/unpack_bootimg + install -Dm 644 bash_completion.fastboot "$pkgdir"/usr/share/bash-completion/completions/fastboot +} Copied: android-tools/repos/community-testing-x86_64/bash_completion.fastboot (from rev 492751, android-tools/trunk/bash_completion.fastboot) =================================================================== --- community-testing-x86_64/bash_completion.fastboot (rev 0) +++ community-testing-x86_64/bash_completion.fastboot 2019-07-25 02:08:41 UTC (rev 492752) @@ -0,0 +1,90 @@ +## Bash completion for the Android SDK tools. +## +## Copyright (c) 2009 Matt Brubeck +## +## Permission is hereby granted, free of charge, to any person obtaining a copy +## of this software and associated documentation files (the "Software"), to deal +## in the Software without restriction, including without limitation the rights +## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +## copies of the Software, and to permit persons to whom the Software is +## furnished to do so, subject to the following conditions: +## +## The above copyright notice and this permission notice shall be included in +## all copies or substantial portions of the Software. +## +## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +## THE SOFTWARE. + + +function _fastboot() +{ + local cur prev opts cmds c subcommand device_selected + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + opts="-w -s -p -c -i -b -n" + cmds="update flashall flash erase getvar boot devices \ + reboot reboot-bootloader oem continue" + subcommand="" + partition_list="boot recovery system userdata bootloader radio" + device_selected="" + + # Look for the subcommand. + c=1 + while [ $c -lt $COMP_CWORD ]; do + word="${COMP_WORDS[c]}" + if [ "$word" = "-s" ]; then + device_selected=true + fi + for cmd in $cmds; do + if [ "$cmd" = "$word" ]; then + subcommand="$word" + fi + done + c=$((++c)) + done + + case "${subcommand}" in + '') + case "${prev}" in + -s) + # Use 'fastboot devices' to list serial numbers. + COMPREPLY=( $(compgen -W "$(fastboot devices|cut -f1)" -- ${cur} ) ) + return 0 + ;; + esac + case "${cur}" in + -*) + COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) + return 0 + ;; + esac + if [ -z "$device_selected" ]; then + local num_devices=$(( $(fastboot devices 2>/dev/null|wc -l) )) + if [ "$num_devices" -gt "1" ]; then + # With multiple devices, you must choose a device first. + COMPREPLY=( $(compgen -W "-s" -- ${cur}) ) + return 0 + fi + fi + COMPREPLY=( $(compgen -W "${cmds}" -- ${cur}) ) + return 0 + ;; + flash) + # partition name + COMPREPLY=( $(compgen -W "${partition_list}" -- ${cur}) ) + return 0 + ;; + erase) + # partition name + COMPREPLY=( $(compgen -W "${partition_list}" -- ${cur}) ) + return 0 + ;; + esac +} +complete -o default -F _fastboot fastboot Copied: android-tools/repos/community-testing-x86_64/fix_build_core.patch (from rev 492751, android-tools/trunk/fix_build_core.patch) =================================================================== --- community-testing-x86_64/fix_build_core.patch (rev 0) +++ community-testing-x86_64/fix_build_core.patch 2019-07-25 02:08:41 UTC (rev 492752) @@ -0,0 +1,206 @@ +diff --git a/adb/adb.cpp b/adb/adb.cpp +index 24d4292d02..e4ad76b7c3 100644 +--- a/adb/adb.cpp ++++ b/adb/adb.cpp +@@ -44,8 +44,6 @@ + #include <android-base/parsenetaddress.h> + #include <android-base/stringprintf.h> + #include <android-base/strings.h> +-#include <build/version.h> +-#include <platform_tools_version.h> + + #include "adb_auth.h" + #include "adb_io.h" +@@ -66,10 +64,10 @@ std::string adb_version() { + // Don't change the format of this --- it's parsed by ddmlib. + return android::base::StringPrintf( + "Android Debug Bridge version %d.%d.%d\n" +- "Version %s-%s\n" ++ "Version %s-ArchLinux\n" + "Installed as %s\n", + ADB_VERSION_MAJOR, ADB_VERSION_MINOR, ADB_SERVER_VERSION, +- PLATFORM_TOOLS_VERSION, android::build::GetBuildNumber().c_str(), ++ PLATFORM_TOOLS_VERSION, + android::base::GetExecutablePath().c_str()); + } + +diff --git a/adb/client/main.cpp b/adb/client/main.cpp +index 0c5c28f1b3..b6a1281521 100644 +--- a/adb/client/main.cpp ++++ b/adb/client/main.cpp +@@ -118,10 +118,6 @@ int adb_server_main(int is_daemon, const std::string& socket_spec, int ack_reply + init_transport_registration(); + init_reconnect_handler(); + +- if (!getenv("ADB_MDNS") || strcmp(getenv("ADB_MDNS"), "0") != 0) { +- init_mdns_transport_discovery(); +- } +- + if (!getenv("ADB_USB") || strcmp(getenv("ADB_USB"), "0") != 0) { + usb_init(); + } else { +diff --git a/adb/client/usb_libusb.cpp b/adb/client/usb_libusb.cpp +index 53f01a0ce5..5be0d91085 100644 +--- a/adb/client/usb_libusb.cpp ++++ b/adb/client/usb_libusb.cpp +@@ -22,6 +22,7 @@ + #include <stdlib.h> + + #include <atomic> ++#include <condition_variable> + #include <chrono> + #include <condition_variable> + #include <memory> +@@ -30,7 +31,7 @@ + #include <thread> + #include <unordered_map> + +-#include <libusb/libusb.h> ++#include <libusb-1.0/libusb.h> + + #include <android-base/file.h> + #include <android-base/logging.h> +diff --git a/adb/client/usb_linux.cpp b/adb/client/usb_linux.cpp +index 81b8306436..b4f09caab8 100644 +--- a/adb/client/usb_linux.cpp ++++ b/adb/client/usb_linux.cpp +@@ -29,6 +29,7 @@ + #include <stdlib.h> + #include <string.h> + #include <sys/ioctl.h> ++#include <sys/sysmacros.h> + #include <sys/time.h> + #include <sys/sysmacros.h> + #include <sys/types.h> +diff --git a/adb/sysdeps/posix/network.cpp b/adb/sysdeps/posix/network.cpp +index c5c227568f..99686f15fb 100644 +--- a/adb/sysdeps/posix/network.cpp ++++ b/adb/sysdeps/posix/network.cpp +@@ -22,6 +22,7 @@ + #include <sys/socket.h> + + #include <string> ++#include <string.h> + + #include <android-base/logging.h> + #include <android-base/stringprintf.h> +diff --git a/adb/types.h b/adb/types.h +index cd1366dfbe..1eb7e4b6d7 100644 +--- a/adb/types.h ++++ b/adb/types.h +@@ -22,6 +22,7 @@ + #include <type_traits> + #include <utility> + #include <vector> ++#include <cstring> + + #include <android-base/logging.h> + +diff --git a/base/errors_unix.cpp b/base/errors_unix.cpp +index 296995efe2..48269b6750 100644 +--- a/base/errors_unix.cpp ++++ b/base/errors_unix.cpp +@@ -17,6 +17,7 @@ + #include "android-base/errors.h" + + #include <errno.h> ++#include <string.h> + + namespace android { + namespace base { +diff --git a/base/file.cpp b/base/file.cpp +index 3dfcfbb7ec..1b5c0203f0 100644 +--- a/base/file.cpp ++++ b/base/file.cpp +@@ -26,6 +26,7 @@ + #include <sys/stat.h> + #include <sys/types.h> + #include <unistd.h> ++#include <string.h> + + #include <memory> + #include <mutex> +diff --git a/base/logging.cpp b/base/logging.cpp +index f89168c0fc..da522019dc 100644 +--- a/base/logging.cpp ++++ b/base/logging.cpp +@@ -24,6 +24,7 @@ + #include <inttypes.h> + #include <libgen.h> + #include <time.h> ++#include <string.h> + + // For getprogname(3) or program_invocation_short_name. + #if defined(__ANDROID__) || defined(__APPLE__) +diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp +index 39abc4a3b1..4bea3bc84b 100644 +--- a/fastboot/fastboot.cpp ++++ b/fastboot/fastboot.cpp +@@ -58,9 +58,7 @@ + #include <android-base/stringprintf.h> + #include <android-base/strings.h> + #include <android-base/unique_fd.h> +-#include <build/version.h> + #include <liblp/liblp.h> +-#include <platform_tools_version.h> + #include <sparse/sparse.h> + #include <ziparchive/zip_archive.h> + +@@ -1678,7 +1676,7 @@ int FastBootTool::Main(int argc, char* argv[]) { + setvbuf(stdout, nullptr, _IONBF, 0); + setvbuf(stderr, nullptr, _IONBF, 0); + } else if (name == "version") { +- fprintf(stdout, "fastboot version %s-%s\n", PLATFORM_TOOLS_VERSION, android::build::GetBuildNumber().c_str()); ++ fprintf(stdout, "fastboot version %s-ArchLinux\n", PLATFORM_TOOLS_VERSION); + fprintf(stdout, "Installed as %s\n", android::base::GetExecutablePath().c_str()); + return 0; + #if !defined(_WIN32) +diff --git a/fastboot/fs.cpp b/fastboot/fs.cpp +index 8c0aa6bf4e..3ad5b53568 100644 +--- a/fastboot/fs.cpp ++++ b/fastboot/fs.cpp +@@ -117,7 +117,7 @@ static int generate_ext4_image(const char* fileName, long long partSize, + static constexpr int block_size = 4096; + const std::string exec_dir = android::base::GetExecutableDirectory(); + +- const std::string mke2fs_path = exec_dir + "/mke2fs"; ++ const std::string mke2fs_path = exec_dir + "/mke2fs.android"; + std::vector<const char*> mke2fs_args = {mke2fs_path.c_str(), "-t", "ext4", "-b"}; + + std::string block_size_str = std::to_string(block_size); +diff --git a/fs_mgr/liblp/reader.cpp b/fs_mgr/liblp/reader.cpp +index dcee6d2d86..6fcd613ab6 100644 +--- a/fs_mgr/liblp/reader.cpp ++++ b/fs_mgr/liblp/reader.cpp +@@ -19,6 +19,7 @@ + #include <stddef.h> + #include <stdlib.h> + #include <unistd.h> ++#include <cstring> + + #include <functional> + +diff --git a/fs_mgr/liblp/writer.cpp b/fs_mgr/liblp/writer.cpp +index bffcb7e6e1..6b36a641a6 100644 +--- a/fs_mgr/liblp/writer.cpp ++++ b/fs_mgr/liblp/writer.cpp +@@ -20,6 +20,7 @@ + #include <unistd.h> + + #include <string> ++#include <cstring> + + #include <android-base/file.h> + #include <android-base/unique_fd.h> +diff --git a/libziparchive/zip_archive.cc b/libziparchive/zip_archive.cc +index f4b6c74f8c..6b3610cfe3 100644 +--- a/libziparchive/zip_archive.cc ++++ b/libziparchive/zip_archive.cc +@@ -30,6 +30,7 @@ + #include <string.h> + #include <time.h> + #include <unistd.h> ++#include <string_view> + + #include <memory> + #include <vector> Copied: android-tools/repos/community-testing-x86_64/fix_build_e2fsprogs.patch (from rev 492751, android-tools/trunk/fix_build_e2fsprogs.patch) =================================================================== --- community-testing-x86_64/fix_build_e2fsprogs.patch (rev 0) +++ community-testing-x86_64/fix_build_e2fsprogs.patch 2019-07-25 02:08:41 UTC (rev 492752) @@ -0,0 +1,43 @@ +diff --git a/contrib/android/perms.c b/contrib/android/perms.c +index 9c5ec05b..865cc907 100644 +--- a/contrib/android/perms.c ++++ b/contrib/android/perms.c +@@ -5,6 +5,7 @@ + #include "support/nls-enable.h" + #include <time.h> + #include <sys/stat.h> ++#include "private/android_filesystem_capability.h" + + #ifndef XATTR_SELINUX_SUFFIX + # define XATTR_SELINUX_SUFFIX "selinux" +diff --git a/lib/ext2fs/bitops.h b/lib/ext2fs/bitops.h +index 505b3c9c..7be5105f 100644 +--- a/lib/ext2fs/bitops.h ++++ b/lib/ext2fs/bitops.h +@@ -233,11 +233,11 @@ extern errcode_t ext2fs_find_first_set_generic_bmap(ext2fs_generic_bitmap bitmap + #if (__STDC_VERSION__ >= 199901L) + #define _INLINE_ extern inline + #else +-#define _INLINE_ inline ++#define _INLINE_ static inline + #endif + #else /* !INCLUDE_INLINE FUNCS */ + #if (__STDC_VERSION__ >= 199901L) +-#define _INLINE_ inline ++#define _INLINE_ static inline + #else /* not C99 */ + #ifdef __GNUC__ + #define _INLINE_ extern __inline__ +diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h +index 185be5df..833d9d87 100644 +--- a/lib/ext2fs/ext2fs.h ++++ b/lib/ext2fs/ext2fs.h +@@ -1767,7 +1767,7 @@ extern const struct ext2_inode *ext2fs_const_inode(const struct ext2_inode_large + #define _INLINE_ extern + #else + #if (__STDC_VERSION__ >= 199901L) +-#define _INLINE_ inline ++#define _INLINE_ static inline + #else + #ifdef __GNUC__ + #define _INLINE_ extern __inline__ Copied: android-tools/repos/community-testing-x86_64/fix_build_selinux.patch (from rev 492751, android-tools/trunk/fix_build_selinux.patch) =================================================================== --- community-testing-x86_64/fix_build_selinux.patch (rev 0) +++ community-testing-x86_64/fix_build_selinux.patch 2019-07-25 02:08:41 UTC (rev 492752) @@ -0,0 +1,26 @@ +diff --git a/libsepol/src/private.h b/libsepol/src/private.h +index b884c23b..447fa64b 100644 +--- a/libsepol/src/private.h ++++ b/libsepol/src/private.h +@@ -14,7 +14,7 @@ + #endif + + #include <errno.h> +-#include <dso.h> ++#include "dso.h" + + #ifdef __APPLE__ + #define __BYTE_ORDER BYTE_ORDER +diff --git a/libsepol/src/util.c b/libsepol/src/util.c +index a4008882..d79a8335 100644 +--- a/libsepol/src/util.c ++++ b/libsepol/src/util.c +@@ -27,7 +27,7 @@ + #include <sepol/policydb/flask_types.h> + #include <sepol/policydb/policydb.h> + #include <sepol/policydb/util.h> +-#include <dso.h> ++#include "dso.h" + + struct val_to_name { + unsigned int val; Copied: android-tools/repos/community-testing-x86_64/generate_build.rb (from rev 492751, android-tools/trunk/generate_build.rb) =================================================================== --- community-testing-x86_64/generate_build.rb (rev 0) +++ community-testing-x86_64/generate_build.rb 2019-07-25 02:08:41 UTC (rev 492752) @@ -0,0 +1,411 @@ +#!/usr/bin/ruby + +# Android build system is complicated and does not allow to build +# separate parts easily. +# This script tries to mimic Android build rules. + +def expand(dir, files) + files.map { |f| File.join(dir, f) } +end + +# Compiles sources to *.o files. +# Returns array of output *.o filenames +def compile(sources, cflags) + outputs = [] + for s in sources + ext = File.extname(s) + + case ext + when ".c" + cc = "cc" + lang_flags = "-std=gnu11 $CFLAGS $CPPFLAGS" + when ".cpp", ".cc" + cc = "cxx" + lang_flags = "-std=gnu++2a $CXXFLAGS $CPPFLAGS" + else + raise "Unknown extension #{ext}" + end + + output = s + ".o" + outputs << output + puts "build #{output}: #{cc} #{s}\n cflags = #{lang_flags} #{cflags}" + end + + return outputs +end + +# dir - directory where ninja file is located +# lib - static library path relative to dir +def subninja(dir, lib) + puts "subninja #{dir}build.ninja" + return lib.each { |l| dir + l } +end + +# Links object files +def link(output, objects, ldflags) + puts "build #{output}: link #{objects.join(" ")}\n ldflags = #{ldflags} $LDFLAGS" +end + +puts "# This set of commands generated by generate_build.rb script\n\n" +puts "CC = #{ENV["CC"] || "clang"}" +puts "CXX = #{ENV["CXX"] || "clang++"}\n\n" +puts "CFLAGS = #{ENV["CFLAGS"]}" +puts "CXXFLAGS = #{ENV["CXXFLAGS"]}" +puts "LDFLAGS = #{ENV["LDFLAGS"]}" +puts "PLATFORM_TOOLS_VERSION = #{ENV["PLATFORM_TOOLS_VERSION"]}\n\n" + +puts "" " +rule cc + command = $CC $cflags -c $in -o $out + +rule cxx + command = $CXX $cflags -c $in -o $out + +rule link + command = $CXX $ldflags $LDFLAGS $in -o $out + + +" "" + +adbdfiles = %w( + adb.cpp + adb_io.cpp + adb_listeners.cpp + adb_trace.cpp + adb_utils.cpp + sockets.cpp + transport.cpp + transport_local.cpp + transport_usb.cpp + fdevent.cpp + shell_service_protocol.cpp +) +libadbd = compile(expand("core/adb", adbdfiles), '-DPLATFORM_TOOLS_VERSION="\"$PLATFORM_TOOLS_VERSION\"" -DADB_HOST=1 -Icore/include -Icore/base/include -Icore/adb -Icore/libcrypto_utils/include -Iboringssl/include -Icore/diagnose_usb/include') + +adbfiles = %w( + socket_spec.cpp + services.cpp + sysdeps_unix.cpp + sysdeps/errno.cpp + client/main.cpp + client/adb_client.cpp + client/auth.cpp + client/commandline.cpp + client/usb_dispatch.cpp + client/usb_linux.cpp + client/usb_libusb.cpp + client/bugreport.cpp + client/file_sync_client.cpp + client/line_printer.cpp + client/adb_install.cpp + client/console.cpp + sysdeps/posix/network.cpp +) +libadb = compile(expand("core/adb", adbfiles), "-D_GNU_SOURCE -DADB_HOST=1 -Icore/include -Icore/base/include -Icore/adb -Icore/libcrypto_utils/include -Iboringssl/include") + +basefiles = %w( + file.cpp + logging.cpp + threads.cpp + mapped_file.cpp + parsenetaddress.cpp + stringprintf.cpp + strings.cpp + errors_unix.cpp + test_utils.cpp + chrono_utils.cpp +) +libbase = compile(expand("core/base", basefiles), "-DADB_HOST=1 -Icore/base/include -Icore/include") + +logfiles = %w( + log_event_write.cpp + fake_log_device.cpp + log_event_list.cpp + logger_write.cpp + config_write.cpp + config_read.cpp + logger_lock.cpp + fake_writer.cpp + logger_name.cpp + stderr_write.cpp + logprint.cpp +) +liblog = compile(expand("core/liblog", logfiles), "-DLIBLOG_LOG_TAG=1006 -D_XOPEN_SOURCE=700 -DFAKE_LOG_DEVICE=1 -Icore/log/include -Icore/include") + +cutilsfiles = %w( + load_file.cpp + socket_local_client_unix.cpp + socket_network_client_unix.cpp + socket_local_server_unix.cpp + sockets_unix.cpp + socket_inaddr_any_server_unix.cpp + sockets.cpp + android_get_control_file.cpp + threads.cpp + fs_config.cpp + canned_fs_config.cpp +) +libcutils = compile(expand("core/libcutils", cutilsfiles), "-D_GNU_SOURCE -Icore/libcutils/include -Icore/include -Icore/base/include") + +diagnoseusbfiles = %w( + diagnose_usb.cpp +) +libdiagnoseusb = compile(expand("core/diagnose_usb", diagnoseusbfiles), "-Icore/include -Icore/base/include -Icore/diagnose_usb/include") + +libcryptofiles = %w( + android_pubkey.c +) +libcrypto = compile(expand("core/libcrypto_utils", libcryptofiles), "-Icore/libcrypto_utils/include -Iboringssl/include") + +# TODO: make subninja working +#boringssl = subninja('boringssl/build/', ['crypto/libcrypto.a']) +boringssl = ["boringssl/build/crypto/libcrypto.a"] + +link("adb", libbase + liblog + libcutils + libadbd + libadb + libdiagnoseusb + libcrypto + boringssl, "-lpthread -lusb-1.0") + +fastbootfiles = %w( + bootimg_utils.cpp + fastboot.cpp + util.cpp + fs.cpp + usb_linux.cpp + socket.cpp + tcp.cpp + udp.cpp + main.cpp + fastboot_driver.cpp +) +libfastboot = compile(expand("core/fastboot", fastbootfiles), '-DPLATFORM_TOOLS_VERSION="\"$PLATFORM_TOOLS_VERSION\"" -D_GNU_SOURCE -D_XOPEN_SOURCE=700 -DUSE_F2FS -Icore/base/include -Icore/include -Icore/adb -Icore/libsparse/include -Icore/mkbootimg -Iextras/ext4_utils/include -Iextras/f2fs_utils -Icore/libziparchive/include -Icore/mkbootimg/include/bootimg -Icore/fs_mgr/liblp/include -Icore/diagnose_usb/include') + +fsmgrfiles = %w( + liblp/reader.cpp + liblp/writer.cpp + liblp/utility.cpp + liblp/partition_opener.cpp + liblp/images.cpp +) +libfsmgr = compile(expand("core/fs_mgr", fsmgrfiles), '-Icore/fs_mgr/liblp/include -Icore/base/include -Iextras/ext4_utils/include -Icore/libsparse/include') + +sparsefiles = %w( + backed_block.cpp + output_file.cpp + sparse.cpp + sparse_crc32.cpp + sparse_err.cpp + sparse_read.cpp +) +libsparse = compile(expand("core/libsparse", sparsefiles), "-Icore/libsparse/include -Icore/base/include") + +f2fsfiles = %w( +) +f2fs = compile(expand("extras/f2fs_utils", f2fsfiles), "-DHAVE_LINUX_TYPES_H -If2fs-tools/include -Icore/liblog/include") + +zipfiles = %w( + zip_archive.cc +) +libzip = compile(expand("core/libziparchive", zipfiles), "-Icore/base/include -Icore/include -Icore/libziparchive/include") + +utilfiles = %w( + FileMap.cpp +) +libutil = compile(expand("core/libutils", utilfiles), "-Icore/include") + +ext4files = %w( + ext4_utils.cpp + wipe.cpp + ext4_sb.cpp +) +libext4 = compile(expand("extras/ext4_utils", ext4files), "-D_GNU_SOURCE -Icore/libsparse/include -Icore/include -Iselinux/libselinux/include -Iextras/ext4_utils/include -Icore/base/include") + +selinuxfiles = %w( + callbacks.c + check_context.c + freecon.c + init.c + label.c + label_file.c + label_support.c + setrans_client.c + regex.c + matchpathcon.c + selinux_config.c + label_backends_android.c + canonicalize_context.c + lsetfilecon.c + policyvers.c + lgetfilecon.c + load_policy.c + seusers.c + sha1.c + booleans.c + disable.c + enabled.c + getenforce.c + setenforce.c +) +libselinux = compile(expand("selinux/libselinux/src", selinuxfiles), "-DAUDITD_LOG_TAG=1003 -D_GNU_SOURCE -DHOST -DUSE_PCRE2 -DNO_PERSISTENTLY_STORED_PATTERNS -DDISABLE_SETRANS -DDISABLE_BOOL -DNO_MEDIA_BACKEND -DNO_X_BACKEND -DNO_DB_BACKEND -DPCRE2_CODE_UNIT_WIDTH=8 -Iselinux/libselinux/include -Iselinux/libsepol/include") + +libsepolfiles = %w( + policydb_public.c + genbools.c + debug.c + policydb.c + conditional.c + services.c + ebitmap.c + util.c + assertion.c + avtab.c + hashtab.c + sidtab.c + context.c + genusers.c + context_record.c + mls.c + avrule_block.c + symtab.c + policydb_convert.c + write.c + constraint.c + expand.c + hierarchy.c + kernel_to_common.c +) +libsepol = compile(expand("selinux/libsepol/src", libsepolfiles), "-Iselinux/libsepol/include") + +link("fastboot", libfsmgr + libsparse + libzip + libcutils + liblog + libutil + libbase + libext4 + f2fs + libselinux + libsepol + libfastboot + libdiagnoseusb + boringssl, "-lz -lpcre2-8 -lpthread -ldl") + +# mke2fs.android - a ustom version of mke2fs that supports --android_sparse (FS#56955) +libext2fsfiles = %w( + lib/blkid/cache.c + lib/blkid/dev.c + lib/blkid/devname.c + lib/blkid/devno.c + lib/blkid/getsize.c + lib/blkid/llseek.c + lib/blkid/probe.c + lib/blkid/read.c + lib/blkid/resolve.c + lib/blkid/save.c + lib/blkid/tag.c + lib/e2p/feature.c + lib/e2p/hashstr.c + lib/e2p/mntopts.c + lib/e2p/ostype.c + lib/e2p/parse_num.c + lib/e2p/uuid.c + lib/et/com_err.c + lib/et/error_message.c + lib/et/et_name.c + lib/ext2fs/alloc.c + lib/ext2fs/alloc_sb.c + lib/ext2fs/alloc_stats.c + lib/ext2fs/alloc_tables.c + lib/ext2fs/atexit.c + lib/ext2fs/badblocks.c + lib/ext2fs/bb_inode.c + lib/ext2fs/bitmaps.c + lib/ext2fs/bitops.c + lib/ext2fs/blkmap64_ba.c + lib/ext2fs/blkmap64_rb.c + lib/ext2fs/blknum.c + lib/ext2fs/block.c + lib/ext2fs/bmap.c + lib/ext2fs/closefs.c + lib/ext2fs/crc16.c + lib/ext2fs/crc32c.c + lib/ext2fs/csum.c + lib/ext2fs/dirblock.c + lib/ext2fs/dir_iterate.c + lib/ext2fs/expanddir.c + lib/ext2fs/ext2_err.c + lib/ext2fs/ext_attr.c + lib/ext2fs/extent.c + lib/ext2fs/fallocate.c + lib/ext2fs/fileio.c + lib/ext2fs/freefs.c + lib/ext2fs/gen_bitmap64.c + lib/ext2fs/gen_bitmap.c + lib/ext2fs/get_num_dirs.c + lib/ext2fs/getsectsize.c + lib/ext2fs/getsize.c + lib/ext2fs/hashmap.c + lib/ext2fs/i_block.c + lib/ext2fs/ind_block.c + lib/ext2fs/initialize.c + lib/ext2fs/inline.c + lib/ext2fs/inline_data.c + lib/ext2fs/inode.c + lib/ext2fs/io_manager.c + lib/ext2fs/ismounted.c + lib/ext2fs/link.c + lib/ext2fs/llseek.c + lib/ext2fs/lookup.c + lib/ext2fs/mkdir.c + lib/ext2fs/mkjournal.c + lib/ext2fs/mmp.c + lib/ext2fs/namei.c + lib/ext2fs/newdir.c + lib/ext2fs/openfs.c + lib/ext2fs/progress.c + lib/ext2fs/punch.c + lib/ext2fs/rbtree.c + lib/ext2fs/read_bb.c + lib/ext2fs/read_bb_file.c + lib/ext2fs/res_gdt.c + lib/ext2fs/rw_bitmaps.c + lib/ext2fs/sha512.c + lib/ext2fs/sparse_io.c + lib/ext2fs/symlink.c + lib/ext2fs/undo_io.c + lib/ext2fs/unix_io.c + lib/ext2fs/valid_blk.c + lib/support/dict.c + lib/support/mkquota.c + lib/support/parse_qtype.c + lib/support/plausible.c + lib/support/prof_err.c + lib/support/profile.c + lib/support/quotaio.c + lib/support/quotaio_tree.c + lib/support/quotaio_v2.c + lib/uuid/clear.c + lib/uuid/gen_uuid.c + lib/uuid/isnull.c + lib/uuid/pack.c + lib/uuid/parse.c + lib/uuid/unpack.c + lib/uuid/unparse.c + misc/create_inode.c +) +libext2fs = compile(expand("e2fsprogs", libext2fsfiles), "-Ie2fsprogs/lib -Ie2fsprogs/lib/ext2fs -Icore/libsparse/include") + +mke2fsfiles = %w( + misc/default_profile.c + misc/mke2fs.c + misc/mk_hugefiles.c + misc/util.c +) +mke2fs = compile(expand("e2fsprogs", mke2fsfiles), "-Ie2fsprogs/lib") + +link("mke2fs.android", mke2fs + libext2fs + libsparse + libbase + libzip + liblog + libutil, "-lpthread -lz") + +e2fsdroidfiles = %w( + contrib/android/e2fsdroid.c + contrib/android/basefs_allocator.c + contrib/android/block_range.c + contrib/android/base_fs.c + contrib/android/fsmap.c + contrib/android/block_list.c + contrib/android/perms.c +) +e2fsdroid = compile(expand("e2fsprogs", e2fsdroidfiles), "-Ie2fsprogs/lib -Ie2fsprogs/lib/ext2fs -Iselinux/libselinux/include -Icore/libcutils/include -Ie2fsprogs/misc") + +link("e2fsdroid", e2fsdroid + libext2fs + libsparse + libbase + libzip + liblog + libutil + libselinux + libsepol + libcutils, "-lz -lpthread -lpcre2-8") + +ext2simgfiles = %w( + contrib/android/ext2simg.c +) +ext2simg = compile(expand("e2fsprogs", ext2simgfiles), "-Ie2fsprogs/lib -Icore/libsparse/include") + +link("ext2simg", ext2simg + libext2fs + libsparse + libbase + libzip + liblog + libutil, "-lz -lpthread")