mystuff/devel/adb/Makefile
2026-03-21 23:43:54 +01:00

89 lines
3.2 KiB
Makefile

COMMENT = Android debugging tools
V = 35.0.1
DISTNAME = android-tools-${V}
PKGNAME = adb-${V}
CATEGORIES = devel
HOMEPAGE = https://developer.android.com/tools/help/adb.html
SITES = https://github.com/nmeum/android-tools/releases/download/${V}/
EXTRACT_SUFX = .tar.xz
# Apache License v2.0
PERMIT_PACKAGE = Yes
WANTLIB += c brotlicommon brotlidec brotlienc lz4 pcre2-8
WANTLIB += pthread protobuf usb-1.0 z zstd
LIB_DEPENDS = archivers/brotli \
archivers/lz4 \
archivers/zstd \
devel/libusb1 \
devel/pcre2 \
devel/protobuf
MODULES = devel/cmake
BUILD_DEPENDS = lang/go
RUN_DEPENDS = lang/python/3
CONFIGURE_ARGS = -DANDROID_TOOLS_PATCH_VENDOR=OFF \
-DCMAKE_INSTALL_PREFIX=${PREFIX}
# Go (boringssl err_data_generate.go) needs a writable cache dir
MAKE_ENV += GOCACHE=/tmp/adb-gocache
NO_TEST = Yes
# Create OpenBSD compat stubs for Linux-specific headers not in the tarball.
post-patch:
mkdir -p ${WRKSRC}/vendor/compat/sys ${WRKSRC}/vendor/compat/linux
printf '/* OpenBSD stub: major/minor/makedev are in sys/types.h */\n' \
> ${WRKSRC}/vendor/compat/sys/sysmacros.h
printf '#pragma once\n#include <sys/types.h>\n' \
>> ${WRKSRC}/vendor/compat/sys/sysmacros.h
printf '/* OpenBSD stub for linux/capability.h */\n#pragma once\n' \
> ${WRKSRC}/vendor/compat/linux/capability.h
printf '#include <stdint.h>\ntypedef uint32_t __u32;\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf '#define _LINUX_CAPABILITY_VERSION_3 0x20080522\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf '#define _LINUX_CAPABILITY_U32S_3 2\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf '#define VFS_CAP_REVISION_1 0x01000000\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf '#define VFS_CAP_REVISION_2 0x02000000\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf '#define VFS_CAP_REVISION_3 0x03000000\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf '#define VFS_CAP_REVISION_MASK 0xff000000\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf '#define VFS_CAP_FLAGS_EFFECTIVE 0x000001\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf 'struct vfs_cap_data { __u32 magic_etc; struct { __u32 permitted, inheritable; } data[2]; };\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf 'struct vfs_ns_cap_data { __u32 magic_etc; struct { __u32 permitted, inheritable; } data[2]; __u32 rootid; };\n' \
>> ${WRKSRC}/vendor/compat/linux/capability.h
printf '/* OpenBSD compat: add mempcpy (GNU extension) via #include_next wrapper */\n' \
> ${WRKSRC}/vendor/compat/string.h
printf '#pragma once\n#include_next <string.h>\n' \
>> ${WRKSRC}/vendor/compat/string.h
printf '#ifndef mempcpy\n' \
>> ${WRKSRC}/vendor/compat/string.h
printf 'static inline void *mempcpy(void *dst, const void *src, size_t n) {\n' \
>> ${WRKSRC}/vendor/compat/string.h
printf '\treturn (char *)memcpy(dst, src, n) + n;\n' \
>> ${WRKSRC}/vendor/compat/string.h
printf '}\n#endif\n' \
>> ${WRKSRC}/vendor/compat/string.h
cp ${FILESDIR}/fastboot_usb_libusb.cpp \
${WRKSRC}/vendor/core/fastboot/usb_libusb.cpp
cp ${FILESDIR}/adb_usb_openbsd.cpp \
${WRKSRC}/vendor/adb/client/usb_openbsd.cpp
.include <bsd.port.mk>