Contents of /trunk/core/ncurses/ncurses-5.9-r3.smage2
Parent Directory | 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)
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 | } |