tools/elfutils: organize gnulib import build stage
[openwrt/staging/pepe2k.git] / tools / elfutils / Makefile
index 4461e45b6868750d5bb407d6d9f76bfdaf819aaa..c7d94d2a4762e15f2d99d4d5fa13e3ea71ab5756 100644 (file)
@@ -3,12 +3,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=elfutils
-PKG_VERSION:=0.188
+PKG_VERSION:=0.191
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
-PKG_HASH:=fb8b0e8d0802005b9a309c60c1d8de32dd2951b56f0c3a3cb56d21ce01595dff
+PKG_HASH:=df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871
 
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_LICENSE_FILES:=COPYING COPYING-GPLV2 COPYING-LGPLV3
@@ -17,18 +17,73 @@ PKG_CPE_ID:=cpe:/a:elfutils_project:elfutils
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
+PKG_SUBDIRS := \
+       libgnu \
+       config \
+       lib \
+       libelf \
+       libcpu \
+       backends \
+       libebl \
+       libdwelf \
+       libdwfl \
+       libdw
+
+PKG_GNULIB_BASE:=libgnu
+
+PKG_GNULIB_ARGS = \
+       --dir=$(HOST_BUILD_DIR) \
+       --local-dir=$(STAGING_DIR_HOST)/share/gnulib \
+       --source-base=$(PKG_GNULIB_BASE) \
+       --libtool \
+       --import
+
+PKG_GNULIB_MODS = \
+       argp \
+       dirname \
+       fts \
+       obstack \
+       progname \
+       strchrnul \
+       tsearch
+
 include $(INCLUDE_DIR)/host-build.mk
 
+ifeq ($(HOST_OS),Darwin)
+  HOST_CFLAGS += -I/opt/homebrew/include
+endif
+
+HOST_CFLAGS += -Wno-error -fPIC
+
 HOST_CONFIGURE_ARGS += \
+       --without-libintl-prefix \
+       --without-libiconv-prefix \
        --disable-debuginfod \
        --disable-libdebuginfod \
        --disable-nls \
        --disable-shared \
+       --enable-static \
        --without-lzma \
+       --without-bzlib \
        --without-zstd
 
-HOST_MAKE_FLAGS += \
-       SUBDIRS="lib libelf libcpu backends libebl libdwelf libdwfl libdw"
+ifeq ($(HOST_OS),Darwin)
+  HOST_CONFIGURE_ARGS += --disable-symbol-versioning
+endif
+
+Hooks/HostConfigure/Pre := Host/Gnulib $(Hooks/HostConfigure/Pre)
+define Host/Gnulib
+       $(STAGING_DIR_HOST)/bin/gnulib-tool $(PKG_GNULIB_ARGS) $(PKG_GNULIB_MODS);
+       ln -sf ../lib/eu-config.h $(HOST_BUILD_DIR)/libgnu/;
+endef
+
+define Host/Compile
+       $(call Host/Compile/Default,SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))')
+endef
+
+define Host/Install
+       $(call Host/Compile/Default,install SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))')
+endef
 
 define Host/Uninstall
        -$(call Host/Compile/Default,uninstall)