The layout of the pacakge direcotry has changed, as upstream has added
more than just trace-cmd in the repository (e.g. kernel-shark).
However, the buildsystem for trace-cmd is... unconventional:
- the top-level Makefile will recurse into the trace-cmd/
sub-directory, but does not pass any variable on the $(MAKE) command
line; instead, it exports them in the environment, e.g.:
export CFLAGS
- the top-level Makefile appends some definitions to CFLAGS et al.,
sometimes with a simple append-assignment, sometimes with an
overriden append-assignment, e.g.:
CFLAGS += -DVSOCK
override CFLAGS += -DNO_PTRACE
- the top-level Makefile does not export all the variables. For
example, LDFLAGS is not exported;
- the Makefile in the trace-cmd/ sub-directory expects some variables
to be set, which is done by the top-level Makefile.
As a consequence, we can no longer pass our variable definitions as make
variable defintions on the command line; we must pass them in the
environment. Note that for some, like CFLAGS, that would still work, but
it would not for others, like LDFLAGS; for consistency, we put all in
the environment.
We can however use the provided 'make install', that behaves as
expected. But we must repeat most environment variables; especially, we
duplicate TARGET_CONFIGURE_OPTS as it has PATH et al. which are needed
by the top-level Makefile to properly detect tools (e.g. swig), which it
uses to decide what it should install.
Drop upstreamed patch.
Update the licensing information: new license files have been added in a
sub-directory, and the top-level COPYING now only references those two
(rather than being the actual text of the GPL-2).
Use two spaces in hash file.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
[yann.morin.1998@free.fr:
- keep using a git clone
- unbreak the build:
- use the default make target rule, or the plugins and python
bindings be built at install time, with the host compiler
- use the default install target rule
- expand commit log:
- detail buildsystem issues
- add new license files and their hashes
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
56 lines
1.7 KiB
Makefile
56 lines
1.7 KiB
Makefile
################################################################################
|
|
#
|
|
# trace-cmd
|
|
#
|
|
################################################################################
|
|
|
|
TRACE_CMD_VERSION = trace-cmd-v2.9.1
|
|
TRACE_CMD_SITE = https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git
|
|
TRACE_CMD_SITE_METHOD = git
|
|
TRACE_CMD_INSTALL_STAGING = YES
|
|
TRACE_CMD_LICENSE = GPL-2.0, LGPL-2.1
|
|
TRACE_CMD_LICENSE_FILES = COPYING COPYING.LIB LICENSES/GPL-2.0 LICENSES/LGPL-2.1
|
|
|
|
TRACE_CMD_DEPENDENCIES = host-pkgconf
|
|
TRACE_CMD_MAKE_OPTS = prefix=/usr etcdir=/etc
|
|
|
|
ifeq ($(BR2_PACKAGE_AUDIT),y)
|
|
TRACE_CMD_DEPENDENCIES += audit
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_PYTHON),y)
|
|
TRACE_CMD_DEPENDENCIES += python host-swig
|
|
TRACE_CMD_MAKE_OPTS += PYTHON_VERS=python
|
|
else ifeq ($(BR2_PACKAGE_PYTHON3),y)
|
|
TRACE_CMD_DEPENDENCIES += python3 host-swig
|
|
TRACE_CMD_MAKE_OPTS += PYTHON_VERS=python3
|
|
else
|
|
TRACE_CMD_MAKE_OPTS += NO_PYTHON=1
|
|
endif
|
|
|
|
# trace-cmd already defines _LARGEFILE64_SOURCE when necessary,
|
|
# redefining it on the command line causes build problems.
|
|
TRACE_CMD_CFLAGS = $(filter-out -D_LARGEFILE64_SOURCE,$(TARGET_CFLAGS))
|
|
|
|
# trace-cmd use CPPFLAGS to add some extra flags.
|
|
# But like for CFLAGS, $(TARGET_CPPFLAGS) contains _LARGEFILE64_SOURCE
|
|
# that causes build problems.
|
|
TRACE_CMD_CPPFLAGS = $(filter-out -D_LARGEFILE64_SOURCE,$(TARGET_CPPFLAGS))
|
|
|
|
define TRACE_CMD_BUILD_CMDS
|
|
$(TARGET_CONFIGURE_OPTS) \
|
|
CFLAGS="$(TRACE_CMD_CFLAGS)" \
|
|
CPPFLAGS="$(TRACE_CMD_CPPFLAGS)" \
|
|
$(MAKE) $(TRACE_CMD_MAKE_OPTS) -C $(@D)
|
|
endef
|
|
|
|
define TRACE_CMD_INSTALL_TARGET_CMDS
|
|
$(TARGET_CONFIGURE_OPTS) \
|
|
CFLAGS="$(TRACE_CMD_CFLAGS)" \
|
|
CPPFLAGS="$(TRACE_CMD_CPPFLAGS)" \
|
|
DESTDIR=$(TARGET_DIR) \
|
|
$(MAKE) $(TRACE_CMD_MAKE_OPTS) -C $(@D) install
|
|
endef
|
|
|
|
$(eval $(generic-package))
|