drgn: add new recipe

drgn is a debugger with an emphasis on programmability
drgn exposes the types and variables in a program
for easy, expressive scripting in Python.

Drgn depends on:
1. python3
2. elfutils
3. openmp
a. clang toolchain should use libomp(openmp)
   from meta-clang
b. gnu gcc toolchain should use libgomp(gcc-runtime)
   from openembedded-core

The build requires:
1. setuptools
2. automake
3. autoconf
4. libtool
5. pkgconf

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Jamin Lin 2024-08-22 17:19:40 +08:00 committed by Khem Raj
parent 83c6d886f4
commit c42a0fb650
No known key found for this signature in database
GPG Key ID: BB053355919D3314

View File

@ -0,0 +1,80 @@
SUMMARY = "drgn (pronounced dragon) is a debugger with an emphasis on \
programmability. drgn exposes the types and variables in a program for easy, \
expressive scripting in Python."
HOMEPAGE = "https://github.com/osandov/drgn"
LICENSE = " LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=7c83d30e99508d6b790eacdd3abab846"
SRC_URI = "git://github.com/osandov/drgn.git;protocol=https;branch=main"
SRCREV = "a8dfc9e31f551d4b3c3d4307fa19ab6b3bfafb1c"
S = "${WORKDIR}/git"
DEPENDS = "\
autoconf-native \
automake-native \
libtool-native \
elfutils \
"
DEPENDS:append:toolchain-clang:class-target ="\
openmp \
"
OPENMP_LIB = "libgomp"
OPENMP_LIB:toolchain-clang:class-target = "openmp"
RDEPENDS:${PN} = "\
python3-crypt \
python3-io \
python3-logging \
python3-math \
python3-pickle \
python3-stringold \
python3-compression \
"
RDEPENDS:${PN}:append:class-target = "\
libdw \
libelf \
${OPENMP_LIB} \
"
RDEPENDS:${PN}:append:class-native = "\
elfutils-native \
"
RDEPENDS:${PN}:append:class-nativesdk = "\
nativesdk-elfutils \
"
OPENMP_LIB_NAME = "gomp"
OPENMP_LIB_NAME:toolchain-clang:class-target = "omp"
export CONFIGURE_FLAGS = "\
--build=${BUILD_SYS}, \
--host=${HOST_SYS}, \
--target=${TARGET_SYS}, \
--prefix=${prefix}, \
--exec_prefix=${exec_prefix}, \
--bindir=${bindir}, \
--sbindir=${sbindir}, \
--libexecdir=${libexecdir}, \
--datadir=${datadir}, \
--sysconfdir=${sysconfdir}, \
--sharedstatedir=${sharedstatedir}, \
--localstatedir=${localstatedir}, \
--libdir=${libdir}, \
--includedir=${includedir}, \
--oldincludedir=${includedir}, \
--infodir=${infodir}, \
--mandir=${mandir}, \
--enable-openmp=${OPENMP_LIB_NAME} \
"
export PYTHON_CPPFLAGS = "-I${STAGING_INCDIR}/${PYTHON_DIR}"
inherit python3native pkgconfig setuptools3
BBCLASSEXTEND = "native nativesdk"