Magellan Linux

Contents of /trunk/core/ncurses/ncurses-5.9-r3.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 11803 - (show annotations) (download)
Tue Apr 17 09:30:14 2012 UTC (12 years, 1 month ago) by niro
File size: 6710 byte(s)
-better multilib approach
1 # $Id$
2
3 PNAME="ncurses"
4 PVER="5.9"
5 PBUILD="r3"
6
7 SPLIT_PACKAGES="ncurses ncurses-term"
8
9 PCAT="sys-libs"
10 HOMEPAGE="http://www.gnu.org/software/ncurses/ncurses.html"
11
12 DEPEND_x86_64=">= sys-apps/multiarch-wrapper-1"
13 SPECIAL_VARS="DEPEND_x86_64"
14
15 DEPEND="$(marchdepend)"
16 SDEPEND=">= virtual/glibc"
17
18 SRCFILE="${PNAME}-${PVER}.tar.gz"
19 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
20
21 sminclude mtools multilib cleanutils
22 msetfeature "!check"
23
24 SRC_URI=(
25 gnu://${PNAME}/${SRCFILE}
26 mirror://${PNAME}/${SRCFILE}
27 )
28
29 UP2DATE="updatecmd_gnu ${PNAME} gz"
30
31 split_info_ncurses()
32 {
33 DESCRIPTION="Linux console display library."
34 DEPEND=">= virtual/glibc"
35 }
36
37 split_info_ncurses-term()
38 {
39 DESCRIPTION="Additional terminal descriptions for ncurses."
40 DEPEND="== sys-libs/ncurses-${PVER}"
41 }
42
43 src_prepare()
44 {
45 # non widec
46 munpack ${SRCFILE} || die
47 for abi in ${MULTILIB_ABIS}
48 do
49 mv ${SRCDIR}{,-non-widec}-${abi} || die
50 done
51
52 # widec
53 munpack ${SRCFILE} || die
54 }
55
56 src_compile()
57 {
58 # fixes build issues on multilib; do not export any ABI_LDFLAGS
59 EXPORT_ABI_LDFLAGS=false
60
61 # widec
62 # -hashed-db needs Berkeley DB
63 mconfigure --with-shared --without-debug --without-ada --without-hashed-db --enable-widec || die
64 # fix parallel make builds
65 mmake -j1 sources || die
66 mmake || die
67
68 # non-widec
69 # -hashed-db needs Berkeley DB
70 SRCDIR="${SRCDIR}-non-widec" mconfigure --with-shared --without-debug --without-ada --without-hashed-db || die
71 # fix parallel make builds
72 SRCDIR="${SRCDIR}-non-widec" mmake -j1 sources || die
73 SRCDIR="${SRCDIR}-non-widec" mmake || die
74 }
75
76 src_install_ncurses()
77 {
78 # needed directories
79 minstalldir /$(mlibdir) || die
80
81 mmake DESTDIR=${BINDIR} install || die
82
83 mchmod 755 /usr/$(mlibdir)/\*.${PVER} || die
84 mchmod 644 /usr/$(mlibdir)/libncurses++w.a || die
85 mv ${BINDIR}/usr/$(mlibdir)/libncursesw.so.5* ${BINDIR}/$(mlibdir) || die
86 mlink ../../$(mlibdir)/libncursesw.so.5 /usr/$(mlibdir)/libncursesw.so || die
87 mlink libncursesw.so /usr/$(mlibdir)/libcursesw.so || die
88
89 # install multlib-lib compat curses/curses-widec config
90 if [[ $(mlibdir) != lib ]]
91 then
92 all-abis minstallexec misc/ncurses-config /usr/bin/ncursesw5-config-$(mabi) || die
93 all-abis mlink ncursesw5-config-$(mabi) /usr/bin/ncurses5-config-$(mabi) || die
94 mlink multiarch-wrapper /usr/bin/ncursesw5-config || die
95 mlink ncursesw5-config /usr/bin/ncurses5-config || die
96 fi
97
98 # non-widec compat
99 for lib in curses ncurses form panel menu
100 do
101 echo "INPUT(-l${lib}w)" > ${BINDIR}/usr/$(mlibdir)/lib${lib}.so || die
102 mlink lib${lib}w.a /usr/$(mlibdir)/lib${lib}.a || die
103 done
104 mlink libcurses.so /usr/$(mlibdir)/libcursesw.so || die
105 mlink libncurses.so /usr/$(mlibdir)/libcurses.so || die
106 mlink libncursesw.a /usr/$(mlibdir)/libcursesw.a || die
107 mlink libncurses.a /usr/$(mlibdir)/libcurses.a || die
108 mlink libncurses++w.a /usr/$(mlibdir)/libncurses++.a || die
109
110 # move the -m32 libs also to the right place (multilib)
111 if [[ $(mlibdir) != lib ]]
112 then
113 minstalldir /lib || die
114 mchmod 755 /usr/lib/\*.${PVER} || die
115 mchmod 644 /usr/lib/libncurses++w.a || die
116 mv ${BINDIR}/usr/lib/libncursesw.so.5* ${BINDIR}/lib || die
117 mlink ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so || die
118 mlink libncursesw.so /usr/lib/libcursesw.so || die
119
120 # non-widec compat
121 for lib in curses ncurses form panel menu
122 do
123 echo "INPUT(-l${lib}w)" > ${BINDIR}/usr/lib/lib${lib}.so || die
124 mlink lib${lib}w.a /usr/lib/lib${lib}.a || die
125 done
126 mlink libcurses.so /usr/lib/libcursesw.so || die
127 mlink libncurses.so /usr/lib/libcurses.so || die
128 mlink libncursesw.a /usr/lib/libcursesw.a || die
129 mlink libncurses.a /usr/lib/libcurses.a || die
130 mlink libncurses++w.a /usr/lib/libncurses++.a || die
131 fi
132
133 # install non-widec runtime compat library (do not use minstalllib,
134 # we need libcnurses.so with loader hint for libncursesw and not a plain symlink!
135 all-abis minstallexec ${SRCDIR}-non-widec-'$abi'/lib/libncurses.so.${PVER} /usr/'$(mlibdir)' || die
136 all-abis mlink libncurses.so.${PVER} /usr/'$(mlibdir)'/libncurses.so.${PVER%%.*} || die
137
138 # fixes a small man issue
139 if [ -e ${BINDIR}/usr/share/man/tack.1 ]
140 then
141 mv ${BINDIR}/usr/share/man/tack.1 \
142 ${BINDIR}/usr/share/man/man1 || die
143 fi
144
145 # fix to enable colors in the default xterm
146 mv ${BINDIR}/usr/share/terminfo/x/xterm \
147 ${BINDIR}/usr/share/terminfo/x/xterm.orig || die
148 mlink xterm-color /usr/share/terminfo/x/xterm || die
149
150 # zapmost uncommon terminfo
151 zapmost ${BINDIR}/usr/share/terminfo \
152 E/Eterm\* a/aterm a/ansi b/bterm c/cons25 c/cygwin d/dumb e/eterm\* g/gnome g/gnome-256color \
153 h/hurd j/jfbterm k/konsole k/konsole-256color l/linux\* m/mach\* m/mlterm m/mrxvt n/nsterm \
154 p/putty\* p/pcansi r/rxvt r/rxvt-\* s/screen s/screen-\*color s/screen.\* s/sun t/teraterm t/teraterm2.3 \
155 v/vt100 v/vt100-nav v/vt102 v/vt220 v/vt52 v/vte v/vte-256color v/vwmterm w/wsvt25\* \
156 x/xfce x/xterm x/xterm-\* \
157 || die
158
159 minstalldocs ANNOUNCE MANIFEST NEWS README* TO-DO || die
160 }
161
162 src_install_ncurses-term()
163 {
164 # needed directories
165 minstalldir /$(mlibdir) || die
166
167 mmake DESTDIR=${BINDIR} install || die
168
169 # fix to enable colors in the default xterm
170 mv ${BINDIR}/usr/share/terminfo/x/xterm \
171 ${BINDIR}/usr/share/terminfo/x/xterm.orig || die
172 mlink xterm-color /usr/share/terminfo/x/xterm || die
173
174 # zap all but terminfo dir
175 zapmost ${BINDIR} usr/share/terminfo || die
176 # search terminals which are included in other packages
177 local i
178 for i in E/Eterm\* a/aterm a/ansi b/bterm c/cons25 c/cygwin d/dumb e/eterm\* g/gnome g/gnome-256color \
179 h/hurd j/jfbterm k/konsole k/konsole-256color l/linux\* m/mach\* m/mlterm m/mrxvt n/nsterm \
180 p/putty\* p/pcansi r/rxvt r/rxvt-\* s/screen s/screen-\*color s/screen.\* s/sun t/teraterm t/teraterm2.3 \
181 v/vt100 v/vt100-nav v/vt102 v/vt220 v/vt52 v/vte v/vte-256color v/vwmterm w/wsvt25\* \
182 x/xfce x/xterm x/xterm-\*
183 do
184 rm ${BINDIR}/usr/share/terminfo/${i} || die "${i}"
185 done
186 }
187
188 preinstall_ncurses()
189 {
190 if [ -L ${MROOT}/usr/$(mlibdir)/libncurses.so ]
191 then
192 rm ${MROOT}/usr/$(mlibdir)/libncurses.so || die
193 fi
194
195 if [ -L ${MROOT}/usr/$(mlibdir)/libncurses.so.5 ]
196 then
197 rm ${MROOT}/usr/$(mlibdir)/libncurses.so.5 || die
198 fi
199
200 if [ -L ${MROOT}/usr/$(mlibdir)/libcurses.so.5 ]
201 then
202 rm ${MROOT}/usr/$(mlibdir)/libcurses.so.5 || die
203 fi
204
205 if [[ $(mlibdir) != lib ]]
206 then
207 if [ -L ${MROOT}/usr/lib/libncurses.so ]
208 then
209 rm ${MROOT}/usr/lib/libncurses.so || die
210 fi
211
212 if [ -L ${MROOT}/usr/lib/libncurses.so.5 ]
213 then
214 rm ${MROOT}/usr/lib/libncurses.so.5 || die
215 fi
216
217 if [ -L ${MROOT}/usr/lib/libcurses.so.5 ]
218 then
219 rm ${MROOT}/usr/lib/libcurses.so.5 || die
220 fi
221 fi
222 }
223
224 postinstall_ncurses()
225 {
226 # force ldconfig here
227 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
228 then
229 /sbin/ldconfig
230 fi
231 }