Makefile 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. include $(TOPDIR)/rules.mk
  3. PKG_NAME:=elfutils
  4. PKG_VERSION:=0.191
  5. PKG_RELEASE:=2
  6. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
  7. PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
  8. PKG_HASH:=df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871
  9. PKG_LICENSE:=GPL-3.0-or-later
  10. PKG_LICENSE_FILES:=COPYING COPYING-GPLV2 COPYING-LGPLV3
  11. PKG_CPE_ID:=cpe:/a:elfutils_project:elfutils
  12. PKG_FIXUP:=autoreconf
  13. PKG_INSTALL:=1
  14. PKG_PROGRAMS:=elflint findtextrel elfcmp unstrip stack elfcompress elfclassify srcfiles
  15. PKG_SUBDIRS := \
  16. libgnu \
  17. config \
  18. lib \
  19. libelf \
  20. libcpu \
  21. backends \
  22. libebl \
  23. libdwelf \
  24. libdwfl \
  25. libdw \
  26. src
  27. PKG_GNULIB_BASE:=libgnu
  28. PKG_GNULIB_ARGS = \
  29. --dir=$(HOST_BUILD_DIR) \
  30. --local-dir=$(STAGING_DIR_HOST)/share/gnulib \
  31. --source-base=$(PKG_GNULIB_BASE) \
  32. --libtool \
  33. --avoid=reallocarray \
  34. --import
  35. PKG_GNULIB_MODS = \
  36. argp \
  37. fnmatch-gnu \
  38. fts \
  39. obstack \
  40. progname \
  41. strchrnul \
  42. tsearch
  43. include $(INCLUDE_DIR)/host-build.mk
  44. export $(PKG_GNULIB_BASE)=$(HOST_BUILD_DIR)/$(PKG_GNULIB_BASE)/$(PKG_GNULIB_BASE).la
  45. export $(PKG_GNULIB_BASE)_tsearch=$(HOST_BUILD_DIR)/$(PKG_GNULIB_BASE)/$(PKG_GNULIB_BASE)_la-tsearch.lo
  46. HOST_MAKE_FLAGS += \
  47. AM_LDFLAGS='$$$$(STACK_USAGE_NO_ERROR)' \
  48. LIBS+='$$$$(if $$$$(findstring $(lastword $(PKG_SUBDIRS)),$$$$(subdir)), $$$$($(PKG_GNULIB_BASE)))' \
  49. LIBS+='$$$$(wildcard $$$$($(PKG_GNULIB_BASE)_tsearch))' \
  50. REPLACE_FCNTL=0 REPLACE_FREE=0 REPLACE_FSTAT=0 REPLACE_OPEN=0 \
  51. bin_PROGRAMS='$(PKG_PROGRAMS)' EXEEXT=
  52. ifeq ($(HOST_OS),Darwin)
  53. HOST_CFLAGS += -I/opt/homebrew/include
  54. endif
  55. HOST_CFLAGS += -Wno-error -fPIC
  56. HOST_CXXFLAGS += -O2
  57. HOST_CONFIGURE_ARGS += \
  58. --without-libintl-prefix \
  59. --without-libiconv-prefix \
  60. --disable-debuginfod \
  61. --disable-libdebuginfod \
  62. --disable-nls \
  63. --disable-shared \
  64. --enable-static \
  65. --without-lzma \
  66. --without-bzlib \
  67. --without-zstd
  68. ifeq ($(HOST_OS),Darwin)
  69. HOST_CONFIGURE_ARGS += --disable-symbol-versioning
  70. endif
  71. Hooks/HostConfigure/Pre := Host/Gnulib $(Hooks/HostConfigure/Pre)
  72. define Host/Gnulib
  73. $(STAGING_DIR_HOST)/bin/gnulib-tool $(PKG_GNULIB_ARGS) $(PKG_GNULIB_MODS);
  74. ln -sf ../lib/eu-config.h $(HOST_BUILD_DIR)/libgnu/;
  75. endef
  76. define Host/Compile
  77. $(call Host/Compile/Default,SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))')
  78. endef
  79. define Host/Install
  80. $(call Host/Compile/Default,install SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))')
  81. endef
  82. define Host/Uninstall
  83. -$(call Host/Compile/Default,uninstall)
  84. endef
  85. $(eval $(call HostBuild))