mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
91573ac145
The file contains the the /usr/lib path from the toolchain directory and not from the target directory. The /usr/lib directory for the toolchain is empty and the shared library is not in the specified paths. On RISCV the linker of util-linux was finding the libncursesw.so in my host system, tried to link against it and failed. Fix the .pc file. Fixes: #15942 Co-authored-by: Thomas Weißschuh <thomas@t-8ch.de> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Link: https://github.com/openwrt/openwrt/pull/16018 Signed-off-by: Robert Marko <robimarko@gmail.com>
197 lines
4.6 KiB
Makefile
197 lines
4.6 KiB
Makefile
#
|
|
# Copyright (C) 2006-2015 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=ncurses
|
|
PKG_CPE_ID:=cpe:/a:gnu:ncurses
|
|
PKG_VERSION:=6.4
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
|
|
PKG_HASH:=6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159
|
|
|
|
PKG_LICENSE:=MIT
|
|
PKG_LICENSE_FILES:=README
|
|
|
|
PKG_INSTALL:=1
|
|
PKG_BUILD_PARALLEL:=1
|
|
|
|
PKG_BUILD_DEPENDS:=ncurses/host
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
|
|
define Package/terminfo
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=Terminal Info Database (ncurses)
|
|
URL:=http://www.gnu.org/software/ncurses/
|
|
endef
|
|
|
|
define Package/libncurses
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=Terminal handling library (Unicode)
|
|
URL:=http://www.gnu.org/software/ncurses/
|
|
PROVIDES:=libncursesw
|
|
DEPENDS:= +terminfo
|
|
ABI_VERSION:=6
|
|
endef
|
|
|
|
define Package/libncurses-dev
|
|
SECTION:=devel
|
|
CATEGORY:=Development
|
|
SUBMENU:=Libraries
|
|
DEPENDS:=zlib
|
|
TITLE:=Development files for the ncurses library
|
|
endef
|
|
|
|
TARGET_CFLAGS += $(FPIC)
|
|
|
|
CONFIGURE_ARGS += \
|
|
--enable-echo \
|
|
--enable-const \
|
|
--enable-overwrite \
|
|
--enable-pc-files \
|
|
--disable-rpath \
|
|
--without-ada \
|
|
--without-debug \
|
|
--without-manpages \
|
|
--without-profile \
|
|
--without-progs \
|
|
--without-tests \
|
|
--disable-big-core \
|
|
--disable-home-terminfo \
|
|
--with-normal \
|
|
--with-shared \
|
|
--with-terminfo-dirs=/usr/share/terminfo \
|
|
--with-default-terminfo-dir=/usr/share/terminfo \
|
|
--with-pkg-config-libdir=/usr/lib/pkgconfig \
|
|
--enable-widec \
|
|
--with-build-cppflags=-D_GNU_SOURCE
|
|
|
|
CONFIGURE_VARS += \
|
|
cf_try_fPIC=no
|
|
|
|
HOST_CFLAGS += $(HOST_FPIC)
|
|
|
|
HOST_CONFIGURE_ARGS += \
|
|
--enable-pc-files \
|
|
--without-cxx \
|
|
--without-cxx-binding \
|
|
--without-ada \
|
|
--without-debug \
|
|
--without-manpages \
|
|
--without-profile \
|
|
--without-tests \
|
|
--without-curses-h
|
|
|
|
|
|
ifeq ($(HOST_OS),FreeBSD)
|
|
CONFIGURE_ARGS +=
|
|
--with-terminfo=/usr/share/terminfo.db
|
|
endif
|
|
|
|
MAKE_FLAGS += \
|
|
BUILD_CC="$(HOSTCC)" \
|
|
HOSTCC="$(HOSTCC)" \
|
|
HOSTCCFLAGS="" \
|
|
PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig \
|
|
libs
|
|
|
|
define Build/Install/Default
|
|
$(MAKE_VARS) \
|
|
$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
|
|
$(MAKE_INSTALL_FLAGS) \
|
|
$(1) install.libs install.data;
|
|
endef
|
|
|
|
define Package/terminfo/install
|
|
echo ""
|
|
ifneq ($(HOST_OS),FreeBSD)
|
|
$(INSTALL_DIR) $(1)/usr/share/terminfo
|
|
(cd $(PKG_INSTALL_DIR)/usr/share/terminfo; \
|
|
for dir in ??; do \
|
|
[ -d "$$$$dir" ] || continue; \
|
|
mv $$$$dir $$$$(echo -ne "\x$$$$dir"); \
|
|
done \
|
|
)
|
|
for file in \
|
|
a/ansi \
|
|
a/alacritty \
|
|
d/dumb \
|
|
f/foot \
|
|
l/linux \
|
|
r/rxvt \
|
|
r/rxvt-unicode \
|
|
s/screen \
|
|
s/screen-256color \
|
|
t/tmux \
|
|
t/tmux-256color \
|
|
v/vt100 \
|
|
v/vt102 \
|
|
x/xterm \
|
|
x/xterm-color \
|
|
x/xterm-256color; do \
|
|
$(INSTALL_DIR) $(1)/usr/share/terminfo/`dirname $$$$file`; \
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/share/terminfo/$$$$file \
|
|
$(1)/usr/share/terminfo/$$$$file; \
|
|
done
|
|
endif
|
|
endef
|
|
|
|
define Package/libncurses/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
for lib in ncurses panel menu form; do \
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$$$${lib}w.so.* $(1)/usr/lib/; \
|
|
for so in $(1)/usr/lib/lib$$$${lib}w.so.*; do \
|
|
ln -s $$$${so##*/} $$$${so%w.so*}.so$$$${so##*w.so}; \
|
|
done; \
|
|
done
|
|
endef
|
|
|
|
define Package/libncurses-dev/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.a $(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(CP) $(PKG_INSTALL_DIR)/* $(1)
|
|
for lib in ncurses panel menu form; do \
|
|
for so in $(1)/usr/lib/lib$$$${lib}w.so*; do \
|
|
ln -s $$$${so##*/} $$$${so%w.so*}.so$$$${so##*w.so}; \
|
|
done; \
|
|
done
|
|
ln -s . $(1)/usr/include/ncursesw
|
|
$(TARGET_CROSS)ar rc $(1)/usr/lib/libtinfo.a
|
|
$(INSTALL_DIR) $(2)/bin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/ncursesw6-config $(2)/bin/
|
|
$(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' -e 's/$$$$INCS //g' \
|
|
$(2)/bin/ncursesw6-config
|
|
ln -sf $(STAGING_DIR)/host/bin/ncursesw6-config $(1)/usr/bin/ncursesw6-config
|
|
$(SED) 's,$(TOOLCHAIN_DIR),$(STAGING_DIR),g' \
|
|
$(1)/usr/lib/pkgconfig/ncursesw.pc
|
|
endef
|
|
|
|
define Host/Compile
|
|
$(MAKE) -C $(HOST_BUILD_DIR) libs
|
|
$(MAKE) -C $(HOST_BUILD_DIR)/progs tic
|
|
endef
|
|
|
|
$(eval $(call HostBuild))
|
|
$(eval $(call BuildPackage,terminfo))
|
|
$(eval $(call BuildPackage,libncurses))
|
|
$(eval $(call BuildPackage,libncurses-dev))
|