Makefile 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. #
  2. # Copyright (C) 2006-2015 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. PKG_NAME:=ncurses
  9. PKG_CPE_ID:=cpe:/a:gnu:ncurses
  10. PKG_VERSION:=6.4
  11. PKG_RELEASE:=2
  12. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  13. PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
  14. PKG_HASH:=6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159
  15. PKG_LICENSE:=MIT
  16. PKG_LICENSE_FILES:=README
  17. PKG_INSTALL:=1
  18. PKG_BUILD_PARALLEL:=1
  19. PKG_BUILD_DEPENDS:=ncurses/host
  20. include $(INCLUDE_DIR)/package.mk
  21. include $(INCLUDE_DIR)/host-build.mk
  22. define Package/terminfo
  23. SECTION:=libs
  24. CATEGORY:=Libraries
  25. TITLE:=Terminal Info Database (ncurses)
  26. URL:=http://www.gnu.org/software/ncurses/
  27. endef
  28. define Package/libncurses
  29. SECTION:=libs
  30. CATEGORY:=Libraries
  31. TITLE:=Terminal handling library (Unicode)
  32. URL:=http://www.gnu.org/software/ncurses/
  33. PROVIDES:=libncursesw
  34. DEPENDS:= +terminfo
  35. ABI_VERSION:=6
  36. endef
  37. define Package/libncurses-dev
  38. SECTION:=devel
  39. CATEGORY:=Development
  40. SUBMENU:=Libraries
  41. DEPENDS:=zlib
  42. TITLE:=Development files for the ncurses library
  43. endef
  44. TARGET_CFLAGS += $(FPIC)
  45. CONFIGURE_ARGS += \
  46. --enable-echo \
  47. --enable-const \
  48. --enable-overwrite \
  49. --enable-pc-files \
  50. --disable-rpath \
  51. --without-ada \
  52. --without-debug \
  53. --without-manpages \
  54. --without-profile \
  55. --without-progs \
  56. --without-tests \
  57. --disable-big-core \
  58. --disable-home-terminfo \
  59. --with-normal \
  60. --with-shared \
  61. --with-terminfo-dirs=/usr/share/terminfo \
  62. --with-default-terminfo-dir=/usr/share/terminfo \
  63. --with-pkg-config-libdir=/usr/lib/pkgconfig \
  64. --enable-widec \
  65. --with-build-cppflags=-D_GNU_SOURCE
  66. CONFIGURE_VARS += \
  67. cf_try_fPIC=no
  68. HOST_CFLAGS += $(HOST_FPIC)
  69. HOST_CONFIGURE_ARGS += \
  70. --enable-pc-files \
  71. --without-cxx \
  72. --without-cxx-binding \
  73. --without-ada \
  74. --without-debug \
  75. --without-manpages \
  76. --without-profile \
  77. --without-tests \
  78. --without-curses-h
  79. ifeq ($(HOST_OS),FreeBSD)
  80. CONFIGURE_ARGS +=
  81. --with-terminfo=/usr/share/terminfo.db
  82. endif
  83. MAKE_FLAGS += \
  84. BUILD_CC="$(HOSTCC)" \
  85. HOSTCC="$(HOSTCC)" \
  86. HOSTCCFLAGS="" \
  87. PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig \
  88. libs
  89. define Build/Install/Default
  90. $(MAKE_VARS) \
  91. $(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
  92. $(MAKE_INSTALL_FLAGS) \
  93. $(1) install.libs install.data;
  94. endef
  95. define Package/terminfo/install
  96. echo ""
  97. ifneq ($(HOST_OS),FreeBSD)
  98. $(INSTALL_DIR) $(1)/usr/share/terminfo
  99. (cd $(PKG_INSTALL_DIR)/usr/share/terminfo; \
  100. for dir in ??; do \
  101. [ -d "$$$$dir" ] || continue; \
  102. mv $$$$dir $$$$(echo -ne "\x$$$$dir"); \
  103. done \
  104. )
  105. for file in \
  106. a/ansi \
  107. a/alacritty \
  108. d/dumb \
  109. f/foot \
  110. l/linux \
  111. r/rxvt \
  112. r/rxvt-unicode \
  113. s/screen \
  114. s/screen-256color \
  115. t/tmux \
  116. t/tmux-256color \
  117. v/vt100 \
  118. v/vt102 \
  119. x/xterm \
  120. x/xterm-color \
  121. x/xterm-256color; do \
  122. $(INSTALL_DIR) $(1)/usr/share/terminfo/`dirname $$$$file`; \
  123. $(CP) $(PKG_INSTALL_DIR)/usr/share/terminfo/$$$$file \
  124. $(1)/usr/share/terminfo/$$$$file; \
  125. done
  126. endif
  127. endef
  128. define Package/libncurses/install
  129. $(INSTALL_DIR) $(1)/usr/lib
  130. for lib in ncurses panel menu form; do \
  131. $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$$$${lib}w.so.* $(1)/usr/lib/; \
  132. for so in $(1)/usr/lib/lib$$$${lib}w.so.*; do \
  133. ln -s $$$${so##*/} $$$${so%w.so*}.so$$$${so##*w.so}; \
  134. done; \
  135. done
  136. endef
  137. define Package/libncurses-dev/install
  138. $(INSTALL_DIR) $(1)/usr/bin
  139. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
  140. $(INSTALL_DIR) $(1)/usr/include
  141. $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
  142. $(INSTALL_DIR) $(1)/usr/lib
  143. $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.a $(1)/usr/lib/
  144. $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
  145. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/
  146. endef
  147. define Build/InstallDev
  148. $(CP) $(PKG_INSTALL_DIR)/* $(1)
  149. for lib in ncurses panel menu form; do \
  150. for so in $(1)/usr/lib/lib$$$${lib}w.so*; do \
  151. ln -s $$$${so##*/} $$$${so%w.so*}.so$$$${so##*w.so}; \
  152. done; \
  153. done
  154. ln -s . $(1)/usr/include/ncursesw
  155. $(TARGET_CROSS)ar rc $(1)/usr/lib/libtinfo.a
  156. $(INSTALL_DIR) $(2)/bin
  157. $(CP) $(PKG_INSTALL_DIR)/usr/bin/ncursesw6-config $(2)/bin/
  158. $(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' -e 's/$$$$INCS //g' \
  159. $(2)/bin/ncursesw6-config
  160. ln -sf $(STAGING_DIR)/host/bin/ncursesw6-config $(1)/usr/bin/ncursesw6-config
  161. $(SED) 's,$(TOOLCHAIN_DIR),$(STAGING_DIR),g' \
  162. $(1)/usr/lib/pkgconfig/ncursesw.pc
  163. endef
  164. define Host/Compile
  165. $(MAKE) -C $(HOST_BUILD_DIR) libs
  166. $(MAKE) -C $(HOST_BUILD_DIR)/progs tic
  167. endef
  168. $(eval $(call HostBuild))
  169. $(eval $(call BuildPackage,terminfo))
  170. $(eval $(call BuildPackage,libncurses))
  171. $(eval $(call BuildPackage,libncurses-dev))