You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.8 KiB

# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit bash-completion-r1 eutils toolchain-funcs
MY_PV="${PV/_p/_r}"
MY_P=${PN}-${MY_PV}
DESCRIPTION="Android platform tools (adb, fastboot, and mkbootimg)"
HOMEPAGE="https://android.googlesource.com/platform/system/core.git/"
# Downloading git tarballs generated by android.googlesource.com
# Archlinux package contains patches and build script generation mechanism.
SRC_URI="https://git.archlinux.org/svntogit/community.git/snapshot/community-6a03c4736c9734f5ac3d6b5b912605690a6eaa5f.tar.gz -> ${MY_P}-arch.tar.gz
https://github.com/android/platform_system_core/archive/android-${MY_PV}.tar.gz -> ${MY_P}-core.tar.gz
mirror://gentoo/${MY_P}-extras.tar.gz
mirror://gentoo/${MY_P}-libselinux.tar.gz
mirror://gentoo/${MY_P}-f2fs-tools.tar.gz"
# The entire source code is Apache-2.0, except for fastboot which is BSD-2.
LICENSE="Apache-2.0 BSD-2"
SLOT="0"
KEYWORDS="amd64 x86 ~x86-linux"
IUSE="libressl"
RDEPEND="sys-libs/zlib:=
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
dev-libs/libpcre"
# dev-lang/ruby is necessary for build script generation.
DEPEND="${RDEPEND}
virtual/rubygems"
S=${WORKDIR}
src_unpack() {
local dir filename
for filename in ${A}; do
if [[ ${filename} =~ ^${MY_P}-(.*)\.tar\.gz$ ]]; then
dir=${BASH_REMATCH[1]}
mkdir -p "${dir}" || die
pushd "${dir}" >/dev/null
unpack "${filename}"
popd > /dev/null
else
die "unrecognized file in \${A}: ${filename}"
fi
done
}
src_prepare() {
mv core/*/* core/ || die
epatch arch/*/trunk/fix_build.patch
cp arch/*/trunk/generate_build.rb ./ || die
sed -i '1i#include <sys/sysmacros.h>' core/adb/usb_linux.cpp || die #616508
sed -e 's|^#include <sys/cdefs.h>$|/*\0*/|' \
-e 's|^__BEGIN_DECLS$|#ifdef __cplusplus\nextern "C" {\n#endif|' \
-e 's|^__END_DECLS$|#ifdef __cplusplus\n}\n#endif|' \
-i extras/ext4_utils/sha1.{c,h} || die #580686
default
}
src_compile() {
# Dynamically detect rubygems interpreter (bug 631398).
local ruby_bin=$(type -P ruby) ruby_error_log=${T}/generate_build.rb.log success=
for ruby_bin in "${ruby_bin}" "${ruby_bin}"[[:digit:]][[:digit:]]; do
"${ruby_bin}" ./generate_build.rb 1> build.sh 2> "${ruby_error_log}" && \
{ success=1; break; }
done
if [[ -z ${success} ]]; then
cat "${ruby_error_log}" >&2
die "${ruby_bin} ./generate_build.rb failed"
fi
sed -e 's:^gcc:${CC}:' -e 's:^g++:${CXX}:' -i build.sh || die
chmod +x build.sh || die
tc-export CC CXX
bash -e ./build.sh || die
}
src_install() {
dobin adb
dobin fastboot
dobin mkbootimg
# Omitting, app-shells/bash-completion contains completion for adb
#newbashcomp arch/*/trunk/bash_completion.adb adb
newbashcomp arch/*/trunk/bash_completion.fastboot fastboot
}