Created
December 17, 2020 07:14
-
-
Save Strykar/5cbcccdbb185d2689bb0d7f0c3c4abf7 to your computer and use it in GitHub Desktop.
Attempts at building Openwrt ncurses package with the tic and tput binaries to get htop to work with the kitty terminal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# 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_VERSION:=6.1 | |
PKG_RELEASE:=5 | |
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | |
PKG_SOURCE_URL:=@GNU/$(PKG_NAME) | |
PKG_HASH:=aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17 | |
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 \ | |
--with-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 += \ | |
--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 d/dumb l/linux r/rxvt r/rxvt-unicode s/screen 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 | |
endef | |
define Host/Compile | |
$(MAKE) -C $(HOST_BUILD_DIR) libs | |
$(MAKE) -C $(HOST_BUILD_DIR)/progs tic | |
endef | |
define Host/Install | |
$(call Host/Install/Default) | |
$(INSTALL_BIN) $(HOST_BUILD_DIR)/progs/tic $(STAGING_DIR_HOST)/bin/tic | |
endef | |
$(eval $(call HostBuild)) | |
$(eval $(call BuildPackage,terminfo)) | |
$(eval $(call BuildPackage,libncurses)) | |
$(eval $(call BuildPackage,libncurses-dev)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment