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