xref: /OK3568_Linux_fs/buildroot/package/elfutils/elfutils.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# elfutils
4#
5################################################################################
6
7ELFUTILS_VERSION = 0.184
8ELFUTILS_SOURCE = elfutils-$(ELFUTILS_VERSION).tar.bz2
9ELFUTILS_SITE = https://sourceware.org/elfutils/ftp/$(ELFUTILS_VERSION)
10ELFUTILS_INSTALL_STAGING = YES
11ELFUTILS_LICENSE = GPL-2.0+ or LGPL-3.0+ (library)
12ELFUTILS_LICENSE_FILES = COPYING COPYING-GPLV2 COPYING-LGPLV3
13ELFUTILS_CPE_ID_VENDOR = elfutils_project
14ELFUTILS_DEPENDENCIES = host-pkgconf zlib $(TARGET_NLS_DEPENDENCIES)
15HOST_ELFUTILS_DEPENDENCIES = host-pkgconf host-zlib host-bzip2 host-xz
16
17# We patch configure.ac
18ELFUTILS_AUTORECONF = YES
19HOST_ELFUTILS_AUTORECONF = YES
20
21# Pass a custom program prefix to avoid a naming conflict between
22# elfutils binaries and binutils binaries.
23ELFUTILS_CONF_OPTS += \
24	--program-prefix="eu-"
25
26HOST_ELFUTILS_CONF_OPTS = \
27	--with-bzlib \
28	--with-lzma \
29	--without-zstd \
30	--disable-progs
31
32# elfutils gets confused when lfs mode is forced, so don't
33ELFUTILS_CFLAGS = $(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS))
34ELFUTILS_CPPFLAGS = $(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CPPFLAGS))
35
36# sparc64 needs -fPIC instead of -fpic
37ifeq ($(BR2_sparc64),y)
38ELFUTILS_CFLAGS += -fPIC
39endif
40
41ELFUTILS_CONF_ENV += \
42	CFLAGS="$(ELFUTILS_CFLAGS)" \
43	CPPFLAGS="$(ELFUTILS_CPPFLAGS)"
44
45ELFUTILS_LDFLAGS = $(TARGET_LDFLAGS) \
46	$(TARGET_NLS_LIBS)
47
48ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
49ELFUTILS_LDFLAGS += -latomic
50endif
51
52ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),)
53ELFUTILS_DEPENDENCIES += musl-fts
54ELFUTILS_LDFLAGS += -lfts
55endif
56
57# disable for now, needs "distro" support
58ELFUTILS_CONF_OPTS += --disable-libdebuginfod --disable-debuginfod
59HOST_ELFUTILS_CONF_OPTS += --disable-libdebuginfod --disable-debuginfod
60
61ELFUTILS_CONF_ENV += \
62	LDFLAGS="$(ELFUTILS_LDFLAGS)"
63
64ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
65ELFUTILS_DEPENDENCIES += argp-standalone
66ELFUTILS_CONF_OPTS += --disable-symbol-versioning
67endif
68
69ifeq ($(BR2_PACKAGE_BZIP2),y)
70ELFUTILS_DEPENDENCIES += bzip2
71ELFUTILS_CONF_OPTS += --with-bzlib
72else
73ELFUTILS_CONF_OPTS += --without-bzlib
74endif
75
76ifeq ($(BR2_PACKAGE_XZ),y)
77ELFUTILS_DEPENDENCIES += xz
78ELFUTILS_CONF_OPTS += --with-lzma
79else
80ELFUTILS_CONF_OPTS += --without-lzma
81endif
82
83ifeq ($(BR2_PACKAGE_ZSTD),y)
84ELFUTILS_DEPENDENCIES += zstd
85ELFUTILS_CONF_OPTS += --with-zstd
86else
87ELFUTILS_CONF_OPTS += --without-zstd
88endif
89
90ifeq ($(BR2_PACKAGE_ELFUTILS_PROGS),y)
91ELFUTILS_CONF_OPTS += --enable-progs
92ELFUTILS_LICENSE += , GPL-3.0+ (programs)
93ELFUTILS_LICENSE_FILES += COPYING
94else
95ELFUTILS_CONF_OPTS += --disable-progs
96endif
97
98define ELFUTILS_INSTALL_LIBEBL
99	$(INSTALL) -D -m 0755 $(@D)/libebl/libebl.a $(STAGING_DIR)/usr/lib/
100endef
101ELFUTILS_POST_INSTALL_STAGING_HOOKS += ELFUTILS_INSTALL_LIBEBL
102
103$(eval $(autotools-package))
104$(eval $(host-autotools-package))
105