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
8include $(TOPDIR)/rules.mk
9
10PKG_NAME:=ncurses
11PKG_VERSION:=5.9
12PKG_RELEASE:=3
13
14PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
15PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
16PKG_SOURCE_URL:=@GNU/ncurses
17PKG_MD5SUM:=8cb9c412e5f2d96bc6f459aa8c6282a1
18
19PKG_LICENSE:=MIT
20PKG_LICENSE_FILES:=README
21
22PKG_INSTALL:=1
23PKG_BUILD_PARALLEL:=1
24
25PKG_BUILD_DEPENDS:=ncurses/host
26
27include $(INCLUDE_DIR)/package.mk
28include $(INCLUDE_DIR)/host-build.mk
29
30define Package/terminfo
31  SECTION:=libs
32  CATEGORY:=Libraries
33  TITLE:=Terminal Info Database (ncurses)
34  URL:=http://www.gnu.org/software/ncurses/
35endef
36
37define Package/libncursesw
38  SECTION:=libs
39  CATEGORY:=Libraries
40  TITLE:=Terminal handling library (Unicode)
41  URL:=http://www.gnu.org/software/ncurses/
42  PROVIDES:=libncurses
43  DEPENDS:= +terminfo
44endef
45
46TARGET_CFLAGS += $(FPIC)
47
48CONFIGURE_ARGS += \
49	--enable-echo \
50	--enable-const \
51	--enable-overwrite \
52	--enable-pc-files \
53	--disable-rpath \
54	--without-ada \
55	--without-debug \
56	--without-manpages \
57	--without-profile \
58	--without-progs \
59	--without-tests \
60	--disable-big-core \
61	--disable-home-terminfo \
62	--with-normal \
63	--with-shared \
64	--with-terminfo-dirs=/usr/share/terminfo \
65	--with-default-terminfo-dir=/usr/share/terminfo \
66	--enable-widec \
67	--with-build-cppflags=-D_GNU_SOURCE
68
69HOST_CONFIGURE_ARGS += \
70	--without-cxx \
71	--without-cxx-binding \
72	--without-ada \
73	--without-debug \
74	--without-manpages \
75	--without-profile \
76	--without-tests \
77	--without-curses-h
78
79
80ifeq ($(HOST_OS),FreeBSD)
81	CONFIGURE_ARGS +=
82		--with-terminfo=/usr/share/terminfo.db 
83endif
84
85MAKE_FLAGS += \
86	BUILD_CC="$(HOSTCC)" \
87	HOSTCC="$(HOSTCC)" \
88	HOSTCCFLAGS="" \
89	PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig \
90	libs
91
92define Build/Install/Default
93	$(MAKE_VARS) \
94	$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
95		$(MAKE_INSTALL_FLAGS) \
96		$(1) install.libs install.data;
97endef
98
99define Package/terminfo/install
100	echo ""
101ifneq ($(HOST_OS),FreeBSD)
102	$(INSTALL_DIR) $(1)/usr/share/terminfo
103	(cd $(PKG_INSTALL_DIR)/usr/share/terminfo; \
104		for dir in ??; do \
105			[ -d "$$$$dir" ] || continue; \
106			mv $$$$dir $$$$(echo -ne "\x$$$$dir"); \
107		done \
108	)
109	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 \
110		$(INSTALL_DIR) $(1)/usr/share/terminfo/`dirname $$$$file`; \
111		$(CP) $(PKG_INSTALL_DIR)/usr/share/terminfo/$$$$file \
112			$(1)/usr/share/terminfo/$$$$file; \
113	done
114endif
115endef
116
117define Package/libncursesw/install
118	$(INSTALL_DIR) $(1)/usr/lib
119	for lib in ncurses panel menu form; do \
120		$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$$$${lib}w.so* $(1)/usr/lib/; \
121		ln -s lib$$$${lib}w.so $(1)/usr/lib/lib$$$${lib}.so; \
122	done
123endef
124
125define Build/InstallDev
126	$(CP) $(PKG_INSTALL_DIR)/* $(1)
127	for lib in ncurses panel menu form; do \
128		ln -s lib$$$${lib}w.so $(1)/usr/lib/lib$$$${lib}.so; \
129	done
130	$(TARGET_CROSS)ar rc $(1)/usr/lib/libtinfo.a
131	$(INSTALL_DIR) $(2)/bin
132	$(CP) $(PKG_INSTALL_DIR)/usr/bin/ncursesw5-config $(2)/bin/
133	$(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' -e 's/$$$$INCS //g' \
134		$(2)/bin/ncursesw5-config
135	ln -sf $(STAGING_DIR)/host/bin/ncursesw5-config $(1)/usr/bin/ncursesw5-config
136endef
137
138define Host/Compile
139	$(MAKE) -C $(HOST_BUILD_DIR) libs
140	$(MAKE) -C $(HOST_BUILD_DIR)/progs tic
141endef
142
143define Host/Install
144	$(INSTALL_BIN) $(HOST_BUILD_DIR)/progs/tic $(STAGING_DIR_HOST)/bin/tic
145endef
146
147$(eval $(call HostBuild))
148$(eval $(call BuildPackage,terminfo))
149$(eval $(call BuildPackage,libncursesw))
150