packages/utils/irqbalance/Makefile
Ian Cooper 88c25e87a1 irqbalance: fix compilation for USE_GLIBC and BUILD_NLS cases
The package Makefile was not taking into consideration that the build
may be using BUILD_NLS with libintl-full and libiconv-full and was
trying to link the wrong versions of these libraries in this case.

The necessary flags are added by nls.mk to TARGET_LDFLAGS and can be
passed to irqbalance's configure script for setting the GLIB2_LIBS
variable instead of the explicit static link to the libiconv stub.

The PKG_BUILD_DEPENDS line should be modified so as to add to and not
override the definition set by nls.mk, which will ensure the right
version of libiconv and libintl is built beforehand.

A DEPENDS:= line should be added to the package definition using the
variables defined in nls.mk, which will add the appropriate version
of libintl and libiconv (vanilla or -full versions)

If USE_GLIBC is true, then libpthread needs to be explicitly passed
to the configure script in the GLIB2_LIBS variable for linking.

Signed-off-by: Ian Cooper <iancooper@hotmail.com>
2020-04-28 06:37:50 +01:00

76 lines
1.9 KiB
Makefile

# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=irqbalance
PKG_VERSION:=1.6.0
PKG_RELEASE:=8
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/Irqbalance/irqbalance.git
PKG_SOURCE_VERSION:=b47eea84cbb93f533b0cba2f1aaf9ca4da8706b9
PKG_MIRROR_HASH:=ce1cd84cd315492d4260786735eae81e49515ec3eebe652920a7dc57b93c0c2c
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPLv2
PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=autogen.sh
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/package.mk
PKG_BUILD_DEPENDS += glib2
define Package/irqbalance
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=$(ICONV_DEPENDS) $(INTL_DEPENDS)
TITLE:=IRQ usage balancing for multi-core systems
URL:=https://github.com/Irqbalance/irqbalance
endef
define Package/irqbalance/description
The purpose of irqbalance is to distribute hardware interrupts across
processors/cores on a multiprocessor/multicore system in order to
increase performance.
endef
CONFIGURE_ARGS+= \
--disable-numa \
--with-libcap_ng=no \
--with-systemd=no \
--without-irqbalance-ui \
--enable-static=glib2
GLIB2_LIBS="$(STAGING_DIR)/usr/lib/libglib-2.0.a"
ifeq ($(CONFIG_BUILD_NLS),y)
GLIB2_LIBS += $(INTL_LDFLAGS) -lintl
endif
ifeq ($(CONFIG_USE_GLIBC),y)
GLIB2_LIBS += -lpthread
endif
CONFIGURE_VARS += \
GLIB2_LIBS="$(GLIB2_LIBS) \
$(ICONV_LDFLAGS) -liconv"
define Package/irqbalance/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/irqbalance $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/irqbalance.init $(1)/etc/init.d/irqbalance
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/irqbalance.config $(1)/etc/config/irqbalance
endef
$(eval $(call BuildPackage,irqbalance))