Annotation of /smage/branches/alx-0_9_0/include/alx.sminc
Parent Directory
|
Revision Log
Revision 1271 -
(hide annotations)
(download)
Tue Dec 29 12:48:37 2009 UTC (14 years, 5 months ago) by niro
File size: 8301 byte(s)
Tue Dec 29 12:48:37 2009 UTC (14 years, 5 months ago) by niro
File size: 8301 byte(s)
renamed branch_0.9.0 to alx-0_9_0
1 | niro | 3 | # $Header: /alx-cvs/smage-eglibc/include/alx.sminc,v 1.4 2008/06/24 11:18:19 niro Exp $ |
2 | # alx functions | ||
3 | |||
4 | |||
5 | # some global includes | ||
6 | sminclude cleanutils mtools | ||
7 | |||
8 | # always include alx in mage files | ||
9 | INHERITS="${INHERITS} alx" | ||
10 | |||
11 | # to build a stripped down package version | ||
12 | # you must call 'package_all_targets' in src_install(). | ||
13 | # be sure you have the strip-target-alx() function defined, | ||
14 | # get stuff stripped from the package. | ||
15 | # | ||
16 | # the dev version will be always build when including this file | ||
17 | # | ||
18 | # The only way to change the behavior is to set ALX_PKGTYPE | ||
19 | # ALX_PKGTYPE=only-alx-dev -> means that *only* the alx-dev package gets build | ||
20 | # ALX_PKGTYPE=only-alx -> means that *only* the stripped alx package gets build | ||
21 | # | ||
22 | |||
23 | # all targets for alx | ||
24 | MAGE_TARGETS="alx_dev alx" | ||
25 | |||
26 | # dummy functions, should be overrided in smage | ||
27 | alx_dev_pkgbuild() { return 0; } | ||
28 | alx_pkgbuild() { return 0; } | ||
29 | |||
30 | |||
31 | # checks if compilation should be against alx | ||
32 | target_alx_dev() | ||
33 | { | ||
34 | local i | ||
35 | |||
36 | if [ -n "${MAGE_TARGETS}" ] | ||
37 | then | ||
38 | for i in ${MAGE_TARGETS} | ||
39 | do | ||
40 | [[ ${i} = alx_dev ]] && return 0 | ||
41 | |||
42 | # alx-dev will always build when building target alx, | ||
43 | # so target alx ist also allowed to be alx-dev | ||
44 | [[ ${i} = alx ]] && return 0 | ||
45 | |||
46 | # same for alx_livecd | ||
47 | [[ ${i} = alx_livecd ]] && return 0 | ||
48 | done | ||
49 | fi | ||
50 | |||
51 | # nothing match, we are *not* on alx linux | ||
52 | return 1 | ||
53 | } | ||
54 | |||
55 | # check if compilation should be against stripped down alx | ||
56 | target_alx() | ||
57 | { | ||
58 | if [ -n "${MAGE_TARGETS}" ] | ||
59 | then | ||
60 | for i in ${MAGE_TARGETS} | ||
61 | do | ||
62 | [[ ${i} = alx ]] && return 0 | ||
63 | done | ||
64 | fi | ||
65 | |||
66 | # nothing match, we are *not* on alx linux | ||
67 | return 1 | ||
68 | } | ||
69 | |||
70 | |||
71 | # | ||
72 | # file injections: | ||
73 | # | ||
74 | # injects files to given path (defaults to /usr/bin) | ||
75 | # alxinjectfile file {/path/to/dest} | ||
76 | alxinjectfile() | ||
77 | { | ||
78 | local file | ||
79 | local dest | ||
80 | |||
81 | [[ -z $1 ]] && die "No etc file given" | ||
82 | |||
83 | file="${SMAGESCRIPTSDIR}/${PNAME}/alx/files/$1" | ||
84 | dest="$2" | ||
85 | if [[ -z $2 ]] | ||
86 | then | ||
87 | dest=/usr/bin | ||
88 | install -d ${BINDIR}/${dest} || die | ||
89 | fi | ||
90 | |||
91 | # install our configfile | ||
92 | install -m 0644 -o root -g root ${file} ${BINDIR}/${dest} || die | ||
93 | } | ||
94 | |||
95 | # injects executables to given path | ||
96 | # alxinjectexec exec {/path/to/dest} | ||
97 | alxinjectexec() | ||
98 | { | ||
99 | local file | ||
100 | local dest | ||
101 | |||
102 | [[ -z $1 ]] && die "No etc file given" | ||
103 | |||
104 | file="${SMAGESCRIPTSDIR}/${PNAME}/alx/files/$1" | ||
105 | dest="$2" | ||
106 | if [[ -z $2 ]] | ||
107 | then | ||
108 | dest=/usr/bin | ||
109 | install -d ${BINDIR}/${dest} || die | ||
110 | fi | ||
111 | |||
112 | # install our configfile | ||
113 | install -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die | ||
114 | } | ||
115 | |||
116 | # injects a patch to the sourcecode | ||
117 | # - basically the same like mpatch() but uses patches from ${SMAGESCRIPTSDIR}/${PNAME}/alx/files | ||
118 | # alxinjectpatch patch | ||
119 | alxinjectpatch() | ||
120 | { | ||
121 | local PATCHOPTS | ||
122 | local PATCHFILE | ||
123 | local i | ||
124 | |||
125 | PATCHOPTS=$1 | ||
126 | PATCHFILE=$2 | ||
127 | |||
128 | if [[ -z $2 ]] | ||
129 | then | ||
130 | PATCHFILE=$1 | ||
131 | |||
132 | ## patch level auto-detection, get patch level | ||
133 | for ((i=0; i < 10; i++)) | ||
134 | do | ||
135 | patch --dry-run -Np${i} -i ${SMAGESCRIPTSDIR}/${PNAME}/alx/files/${PATCHFILE} > /dev/null | ||
136 | if [[ $? = 0 ]] | ||
137 | then | ||
138 | PATCHOPTS="-Np${i}" | ||
139 | break | ||
140 | fi | ||
141 | done | ||
142 | fi | ||
143 | |||
144 | echo -e "${COLBLUE}*** ${COLGREEN}Applying ALX patch '${PATCHFILE}'${COLDEFAULT}" | ||
145 | patch "${PATCHOPTS}" -i ${SMAGESCRIPTSDIR}/${PNAME}/alx/files/${PATCHFILE} | ||
146 | } | ||
147 | |||
148 | ############################# | ||
149 | ##### compile functions #### | ||
150 | ############################# | ||
151 | |||
152 | # respect multilib! | ||
153 | if [[ -z $(typeset -f oldconfigure) ]] | ||
154 | then | ||
155 | alx_old_mconfigure=alx_old$(typeset -f mconfigure) | ||
156 | else | ||
157 | alx_old_mconfigure=alx_old$(typeset -f oldmconfigure) | ||
158 | fi | ||
159 | eval ${alx_old_mconfigure} | ||
160 | mconfigure() | ||
161 | { | ||
162 | local myconf | ||
163 | local configurefile | ||
164 | |||
165 | # get configure instructions from smage dir | ||
166 | if [[ -f ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.cfg ]] | ||
167 | then | ||
168 | # version specific configure files | ||
169 | configurefile=${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.cfg | ||
170 | elif [[ -f ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.cfg ]] | ||
171 | then | ||
172 | # generic configure files for a package | ||
173 | configurefile=${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.cfg | ||
174 | else | ||
175 | configurefile="" | ||
176 | fi | ||
177 | |||
178 | # now read the content | ||
179 | if [[ -f ${configurefile} ]] | ||
180 | then | ||
181 | echo -e "${COLBLUE}*** ${COLGREEN}Using configure info from ${configurefile}${COLDEFAULT}" | ||
182 | local line | ||
183 | while read line | ||
184 | do | ||
185 | # ignore empty and commeted lines | ||
186 | case "${line}" in | ||
187 | \#*|"") continue ;; | ||
188 | esac | ||
189 | |||
190 | echo -e " adding ${COLGREEN}${line}${COLDEFAULT} to ALX_CONFIGURE_OPTS" | ||
191 | ALX_CONFIGURE_OPTS="${ALX_CONFIGURE_OPTS} ${line}" | ||
192 | done < ${configurefile} | ||
193 | fi | ||
194 | |||
195 | alx_oldmconfigure --disable-nls ${myconf} $@ ${ALX_CONFIGURE_OPTS} || die | ||
196 | } | ||
197 | |||
198 | alx_pkgbuild() | ||
199 | { | ||
200 | local ALX_ZAPMOST | ||
201 | local zapmostfile | ||
202 | local ALX_REMOVE | ||
203 | local removefile | ||
204 | local i | ||
205 | |||
206 | if [[ -d ${BINDIR}/usr/$(mlibdir) ]] | ||
207 | then | ||
208 | find ${BINDIR}/usr/$(mlibdir) -name '*'.a -exec rm '{}' ';' | ||
209 | find ${BINDIR}/usr/$(mlibdir) -name '*'.la -exec rm '{}' ';' | ||
210 | fi | ||
211 | |||
212 | [[ -d ${BINDIR}/usr/include ]] && rm -rf ${BINDIR}/usr/include | ||
213 | [[ -d ${BINDIR}/usr/$(mlibdir)/pkgconfig ]] && rm -rf ${BINDIR}/usr/$(mlibdir)/pkgconfig | ||
214 | [[ -d ${BINDIR}/usr/share/aclocal ]] && rm -rf ${BINDIR}/usr/share/aclocal | ||
215 | [[ -d ${BINDIR}/usr/share/doc ]] && rm -rf ${BINDIR}/usr/share/doc | ||
216 | [[ -d ${BINDIR}/usr/share/info ]] && rm -rf ${BINDIR}/usr/share/info | ||
217 | [[ -d ${BINDIR}/usr/share/man ]] && rm -rf ${BINDIR}/usr/share/man | ||
218 | #[[ -d ${BINDIR}/usr/lib/X11/locale ]] && rm -rf ${BINDIR}/usr/lib/X11/locale | ||
219 | |||
220 | # get zapmost instructions from smage dir | ||
221 | if [[ -f ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.zap ]] | ||
222 | then | ||
223 | # version specific zap files | ||
224 | zapmostfile=${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.zap | ||
225 | elif [[ -f ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.zap ]] | ||
226 | then | ||
227 | # generic zapmost files for a package | ||
228 | zapmostfile=${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.zap | ||
229 | else | ||
230 | zapmostfile="" | ||
231 | fi | ||
232 | |||
233 | # now read the content | ||
234 | if [[ -f ${zapmostfile} ]] | ||
235 | then | ||
236 | echo -e "${COLBLUE}*** ${COLGREEN}Using zapmost info from ${zapmostfile}${COLDEFAULT}" | ||
237 | local line | ||
238 | while read line | ||
239 | do | ||
240 | # ignore empty and commeted lines | ||
241 | case "${line}" in | ||
242 | \#*|"") continue ;; | ||
243 | esac | ||
244 | |||
245 | ALX_ZAPMOST="${ALX_ZAPMOST} ${line}" | ||
246 | done < ${zapmostfile} | ||
247 | fi | ||
248 | |||
249 | # finally run zapmost | ||
250 | if [[ -n ${ALX_ZAPMOST} ]] | ||
251 | then | ||
252 | echo -e "${COLBLUE}*** ${COLGREEN}Running zapmost() ...${COLDEFAULT}" | ||
253 | zapmost ${BINDIR} ${ALX_ZAPMOST} || die | ||
254 | fi | ||
255 | |||
256 | |||
257 | # same goes for the remove file | ||
258 | # get remove instructions from smage dir | ||
259 | if [[ -f ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.rm ]] | ||
260 | then | ||
261 | # version specific remove files | ||
262 | removefile=${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.rm | ||
263 | elif [[ -f ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.rm ]] | ||
264 | then | ||
265 | # generic remove files for a package | ||
266 | removefile=${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.rm | ||
267 | else | ||
268 | removefile="" | ||
269 | fi | ||
270 | |||
271 | # now read the content | ||
272 | if [[ -f ${removefile} ]] | ||
273 | then | ||
274 | echo -e "${COLBLUE}*** ${COLGREEN}Using remove info from ${removefile}${COLDEFAULT}" | ||
275 | local line | ||
276 | while read line | ||
277 | do | ||
278 | # ignore empty and commeted lines | ||
279 | case "${line}" in | ||
280 | \#*|"") continue ;; | ||
281 | esac | ||
282 | |||
283 | ALX_REMOVE="${ALX_REMOVE} ${line}" | ||
284 | done < ${removefile} | ||
285 | fi | ||
286 | |||
287 | # finally run zapmost | ||
288 | if [[ -n ${ALX_REMOVE} ]] | ||
289 | then | ||
290 | echo -e "${COLBLUE}*** ${COLGREEN}Running remove() ...${COLDEFAULT}" | ||
291 | for i in ${ALX_REMOVE} | ||
292 | do | ||
293 | if [[ -e ${BINDIR}/${i} ]] | ||
294 | then | ||
295 | echo -e " ${COLGREEN}<<<${COLDEFAULT} removing ${BINDIR}/${i}" | ||
296 | rm -rf ${BINDIR}/${i} | ||
297 | fi | ||
298 | done | ||
299 | fi | ||
300 | |||
301 | |||
302 | # check if /usr/share is empty | ||
303 | if [[ -d ${BINDIR}/usr/share ]] && ! rmdir ${BINDIR}/usr/share &> /dev/null | ||
304 | then | ||
305 | echo -e "${COLBLUE}*** ${COLRED}WARNING: ${BINDIR}/usr/share is *not* empty. Please check!${COLDEFAULT}" | ||
306 | fi | ||
307 | } | ||
308 | |||
309 | alx_livecd_pkgbuild() | ||
310 | { | ||
311 | alx_pkgbuild || die | ||
312 | } | ||
313 | |||
314 | # get custom alx functions | ||
315 | if [[ -f ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.custom ]] | ||
316 | then | ||
317 | echo -e "${COLBLUE}*** ${COLGREEN}Using custom build info from ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.custom${COLDEFAULT}" | ||
318 | source ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}-${PVER}-${PBUILD}.custom | ||
319 | elif [[ -f ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.custom ]] | ||
320 | then | ||
321 | echo -e "${COLBLUE}*** ${COLGREEN}Using custom build info from ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.custom${COLDEFAULT}" | ||
322 | source ${SMAGESCRIPTSDIR}/${PNAME}/alx/${PNAME}.custom | ||
323 | fi | ||
324 | |||
325 | # overrides | ||
326 | [[ ${ALX_PKGTYPE} = only-alx-dev ]] && MAGE_TARGETS="alx_dev" | ||
327 | [[ ${ALX_PKGTYPE} = only-alx-livecd ]] && MAGE_TARGETS="alx_livecd" | ||
328 | [[ ${ALX_PKGTYPE} = only-alx ]] && MAGE_TARGETS="alx" |