Magellan Linux

Annotation of /trunk/mage/usr/lib/mage/smage2.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1784 - (hide annotations) (download) (as text)
Mon Mar 12 23:27:53 2012 UTC (12 years, 2 months ago) by niro
File MIME type: application/x-sh
File size: 19075 byte(s)
-honor !pkgbuild with split_packages and respect variables set in split_info too
1 niro 24 #!/bin/bash
2 niro 1571 # $Id$
3 niro 24
4     # compiles/installs .smage2 source install scripts
5     # needs pkgbuild_dir (mage)
6    
7 niro 1571 # TODO: record dynlib, gz | xz database
8 niro 24
9    
10 niro 419 # set default user mage.rc
11     : ${MAGERC="/etc/mage.rc"}
12    
13 niro 169 # export default C locale
14     export LC_ALL=C
15    
16 niro 439 source /etc/mage.rc.global
17 niro 419 source ${MAGERC}
18 niro 1273 source ${MLIBDIR}/mage4.functions.sh
19 niro 1640 source ${MLIBDIR}/smage2.functions.sh
20 niro 24
21 niro 1589 ## setup ##
22     SMAGENAME="$1"
23     SMAGEVERSION="$(< ${MLIBDIR}/version)"
24    
25 niro 1639 # expand PKGDIR, BUILDDIR and BINDIR with MROOT
26 niro 347 if [[ -n ${MROOT} ]]
27     then
28     export PKGDIR=${MROOT}/${PKGDIR}
29     export BUILDDIR=${MROOT}/${BUILDDIR}
30     export BINDIR=${MROOT}/${BINDIR}
31     fi
32    
33 niro 59 # print out our version
34     showversion
35     echo
36    
37 niro 1641 if [[ -z ${SMAGENAME} ]]
38 niro 24 then
39     echo "No .smage2 file given. Exiting."
40     echo
41     exit 1
42     fi
43    
44 niro 1584 # load supported mage features
45     load_mage_features
46    
47 niro 192 # updating smage2-scripts
48 niro 306 if [[ $1 = update ]]
49 niro 24 then
50 niro 59 if [ ! -d ${SOURCEDIR} ]
51     then
52     install -d ${SOURCEDIR}
53     fi
54     syncsmage2
55     exit 0
56     fi
57    
58 niro 192 # creates md5sums for smages to given dir
59 niro 306 if [[ $1 = calcmd5 ]]
60 niro 59 then
61 niro 1207 if [ $# -ge 2 ]
62 niro 59 then
63     SMAGENAME="$2"
64     MD5DIR="$3"
65 niro 1207 [[ -z ${MD5DIR} ]] && MD5DIR="$(dirname ${SMAGENAME})/md5"
66    
67 niro 1346 smagesource ${SMAGENAME} || die "download source failed"
68 niro 59
69 niro 66 # overridable sourcedir; must be declared after source of the smage2
70     CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
71    
72 niro 59 [ -z "${SRC_URI}" ] && die "Nothing declared to calculate."
73    
74     # end of array
75     EOA=${#SRC_URI[*]}
76    
77     [ ! -d ${MD5DIR} ] && install -d ${MD5DIR}
78    
79     # clear md5sum file
80     MY_MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
81     echo -n > ${MY_MD5_FILE}
82    
83     for ((i=0; i < EOA; i++))
84     do
85 niro 66 # url to file
86     my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
87    
88     # subdir in sources dir; the my_SRCI_URI file goes to there
89     my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
90    
91     # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
92     if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
93     then
94     MY_SRC_FILE="${my_SRC_URI_DEST}/$(basename ${SRC_URI[${i}]})"
95     else
96     MY_SRC_FILE="$(basename ${SRC_URI[${i}]})"
97     fi
98    
99 niro 59 if [ -e "${CALC_SOURCEDIR}/${MY_SRC_FILE}" ]
100     then
101     echo "calculating $(basename ${MY_SRC_FILE}) ..."
102     ( cd ${CALC_SOURCEDIR}; md5sum "${MY_SRC_FILE}" ) >> ${MY_MD5_FILE}
103     else
104     echo "WARNING: File '$(basename ${MY_SRC_FILE}) not found in ${CALC_SOURCEDIR}."
105     fi
106 niro 66
107     # unset them to be shure
108     unset my_SRC_URI
109     unset my_SRC_URI_DEST
110     unset my_SRC_URI_MIRROR
111     unset my_SOURCEDIR
112 niro 59 done
113 niro 306
114 niro 59 echo
115     echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
116     echo
117     else
118     echo "Usage: Calculating MD5 Sums:"
119 niro 1207 echo " $(basename $0) calcmd5 /path/to/SMAGENAME [/path/to/MD5DIR]"
120 niro 59 echo
121     echo
122     echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."
123     echo
124     exit 1
125     fi
126 niro 306
127 niro 59 exit 0
128     fi
129    
130 niro 192 # download sources
131 niro 59 if [ "$1" == "download" -a -n "$2" ]
132     then
133 niro 24 if [ ! -d ${SMAGESCRIPTSDIR} ]
134     then
135     install -d ${SMAGESCRIPTSDIR}
136     fi
137 niro 59
138     # get smage
139     SMAGENAME="$2"
140     MD5DIR="$(dirname ${SMAGENAME})/md5"
141 niro 1346 smagesource ${SMAGENAME} || die "download source failed"
142 niro 59
143     download_sources
144 niro 24 exit 0
145     fi
146    
147 niro 202 # regen-mage-tree
148     if [ "$1" == "only-regen-tree" -a -n "$2" ]
149     then
150     # set correct SMAGENAME
151     SMAGENAME="$2"
152     MD5DIR="$(dirname ${SMAGENAME})/md5"
153 niro 1346 smagesource ${SMAGENAME} || die "regen: smage2 not found"
154 niro 202
155     regen_mage_tree
156 niro 255
157 niro 890 # build several targets
158 niro 943 if [[ -n ${MAGE_TARGETS} ]]
159 niro 890 then
160     for target in ${MAGE_TARGETS}
161     do
162     # build md5sum for existing packages
163     generate_package_md5sum \
164 niro 1641 --pcat "${PCAT}" \
165 niro 890 --pname "${PNAME}" \
166     --pver "${PVER}" \
167     --pbuild "${PBUILD}" \
168     --parch "${ARCH}" \
169     --target "${target}"
170     done
171 niro 943
172     # build several subpackages
173     elif [[ -n ${SPLIT_PACKAGES} ]]
174     then
175     split_save_variables
176 niro 964 for subpackage in ${SPLIT_PACKAGES}
177 niro 943 do
178     # get the right variables for the split
179     export PNAME="${subpackage}"
180     split_info_${subpackage}
181 niro 1659 # fix PCATEGORIE -> PCAT
182     if [[ ! -z ${PCATEGORIE} ]]
183     then
184     PCAT="${PCATEGORIE}"
185     unset PCATEGORIE
186     fi
187 niro 943 # build md5sum for existing packages
188     generate_package_md5sum \
189 niro 1641 --pcat "${PCAT}" \
190 niro 943 --pname "${PNAME}" \
191     --pver "${PVER}" \
192     --pbuild "${PBUILD}" \
193     --parch "${ARCH}"
194 niro 951 # restore smage environment
195     split_restore_variables
196 niro 943 done
197 niro 951 # unset all saved smage variables
198     split_unset_variables
199 niro 943
200 niro 890 else
201     # build md5sum for existing packages
202     generate_package_md5sum \
203 niro 1641 --pcat "${PCAT}" \
204 niro 890 --pname "${PNAME}" \
205     --pver "${PVER}" \
206     --pbuild "${PBUILD}" \
207 niro 943 --parch "${ARCH}"
208 niro 890 fi
209 niro 255
210 niro 202 exit 0
211     fi
212    
213 niro 412 if [ "$1" == "--create-src-tarball" -a -n "$2" ]
214 niro 403 then
215     # set correct SMAGENAME
216     SMAGENAME="$2"
217     MD5DIR="$(dirname ${SMAGENAME})/md5"
218    
219 niro 412 echo -e "${COLGREEN}create-src-tarball called for ${COLBLUE}${SMAGENAME}${COLGREEN} ...${COLDEFAULT}"
220 niro 403
221 niro 1346 smagesource ${SMAGENAME} || die "regen: smage2 not found"
222 niro 403
223     if [[ -d ${SOURCEDIR}/${PNAME} ]]
224     then
225     echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
226     rm -rf ${SOURCEDIR}/${PKGNAME}
227     fi
228    
229     download_sources
230     source_pkg_build ${SMAGENAME}
231     exit 0
232     fi
233    
234 niro 406 if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
235 niro 403 then
236 niro 412 SRCPKGTARBALL="${2}"
237 niro 1584 msetfeature "srcpkgtarball"
238 niro 403
239 niro 412 # abort if given file is not a source pkg
240     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
241    
242     # set correct SMAGENAME; use the one that the src_pkg provide
243     # /path/to/SOURCEDIR/PNAME/SMAGENAME
244     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
245    
246 niro 403 echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
247    
248     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
249    
250     # unpack srctarball
251     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
252    
253     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die "Error unpackung src-tarball ${SRCPKGTARBALL}"
254 niro 412
255     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
256 niro 403 fi
257    
258 niro 1617 if [ "$1" == "--resume" -a -n "$2" ]
259     then
260     msetfeature "resume"
261     SMAGENAME="$2"
262     fi
263 niro 403
264 niro 306 [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
265     [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
266     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
267 niro 419 [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
268     [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
269     [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
270     [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
271     [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
272     [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
273     [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
274 niro 24
275 niro 1346 smagesource ${SMAGENAME} || die "source failed"
276 niro 1649 PKGNAME="${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}"
277 niro 59 MD5DIR="$(dirname ${SMAGENAME})/md5"
278 niro 941 SMAGE_LOG_CMD="tee -a /var/log/smage/${PKGNAME}.log"
279 niro 24
280     xtitle "Compiling ${PKGNAME}"
281 niro 439 echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
282 niro 59
283 niro 191 # auto regen mage tree if requested
284     regen_mage_tree
285    
286 niro 1635 if mqueryfeature "srcpkgbuild"
287 niro 403 then
288     if [[ -d ${SOURCEDIR}/${PNAME} ]]
289     then
290 niro 441 echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
291 niro 408 rm -rf ${SOURCEDIR}/${PNAME}
292 niro 403 fi
293     fi
294    
295 niro 192 # download sources
296 niro 1584 mqueryfeature "srcpkgtarball" || download_sources
297 niro 59
298 niro 192 # fixes some issues with these functions
299 niro 24 export -f src_prepare || die "src_prepare export failed"
300     export -f src_compile || die "src_compile export failed"
301 niro 1575 export -f src_check || die "src_check export failed"
302 niro 24 export -f src_install || die "src_install export failed"
303    
304 niro 192 # fixes some compile issues
305 niro 24 export CHOST="${CHOST}" || die "CHOST export failed"
306     export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
307 niro 1616 if [[ -z ${CXXFLAGS} ]]
308     then
309     export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
310     else
311     export CXXFLAGS="${CXXFLAGS}" || die "CXXFLAGS export failed"
312     fi
313     export LDFLAGS="${LDFLAGS}" || die "LDFLAGS export failed"
314 niro 24 export BINDIR="${BINDIR}" || die "BINDIR export failed"
315     export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
316    
317 niro 192 # setup distcc
318 niro 351 # setup for distcc goes *before* ccache, so ccache comes before distcc in path
319 niro 1584 mqueryfeature "distcc" && setup_distcc_environment
320 niro 24
321 niro 192 # setup ccache
322 niro 1584 mqueryfeature "ccache" && setup_ccache_environment
323 niro 24
324 niro 1617 if mqueryfeature "resume"
325 niro 24 then
326 niro 1617 echo -e "${COLMAGENTA}Resume requested; continuing previous build${COLDEFAULT}"
327 niro 24
328 niro 1617 # setup build logging
329     [[ ! -d /var/log/smage ]] && install -d /var/log/smage
330     if [[ -f /var/log/smage/${PKGNAME}.log.bz2 ]]
331     then
332     bunzip2 -f /var/log/smage/${PKGNAME}.log.bz2
333     fi
334     echo -e "### Resume started on $(date) ###\n" >> /var/log/smage/${PKGNAME}.log
335 niro 24
336 niro 1617 else
337     # clean up builddir if a previously one exist
338     if [ -d ${BUILDDIR} ]
339     then
340     rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
341     fi
342     install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
343 niro 24
344 niro 1617 # clean up srcdir if a previously unpacked one exist
345     if [ -d ${SRCDIR} ]
346     then
347     rm -rf ${SRCDIR}
348     fi
349    
350     # clean up bindir if a previous build exist or create a new one
351     if [ -d ${BINDIR} ]
352     then
353     rm -rf ${BINDIR}
354     fi
355     install -d ${BINDIR} || die "couldn't create \$BINDIR."
356    
357     # clean up package temp dir if a previous build exist
358     if [ -d ${BUILDDIR}/${PKGNAME} ]
359     then
360     rm -rf ${BUILDDIR}/${PKGNAME}
361     fi
362    
363 niro 1621 # clean up stamps dir
364     if [ -d ${BUILDDIR}/.stamps ]
365     then
366     rm -rf ${BUILDDIR}/.stamps
367     fi
368    
369 niro 1617 # setup build logging
370     [[ ! -d /var/log/smage ]] && install -d /var/log/smage
371     echo -e "### Build started on $(date) ###\n" > /var/log/smage/${PKGNAME}.log
372 niro 24 fi
373    
374 niro 1593 if [[ ${PKGTYPE} = virtual ]]
375 niro 1575 then
376 niro 1593 echo "virtual package detected; nothing will be build ..."
377     # automatically set !pkgbuild here too
378     msetfeature "!pkgbuild"
379 niro 1575 else
380 niro 1617 ( run_resume src_prepare || src_prepare ) | ${SMAGE_LOG_CMD}
381 niro 1593 die_pipestatus 0 "src_prepare failed"
382 niro 1617 resume_stamp src_prepare
383     step_by_step src_prepare
384 niro 1575
385 niro 1617 ( run_resume src_compile || src_compile ) | ${SMAGE_LOG_CMD}
386 niro 1593 die_pipestatus 0 "src_compile failed"
387 niro 1617 resume_stamp src_compile
388     step_by_step src_compile
389 niro 945
390 niro 1593 # only run checks if requested
391     if mqueryfeature "!check"
392     then
393     echo "!check detected; src_check() will not be run!" | ${SMAGE_LOG_CMD}
394     else
395 niro 1617 ( run_resume src_check || src_check ) | ${SMAGE_LOG_CMD}
396 niro 1593 die_pipestatus 0 "src_check failed"
397 niro 1617 resume_stamp src_check
398 niro 1593 fi
399 niro 1617 step_by_step src_check
400 niro 945
401 niro 1593 # build several subpackages
402     if [[ -n ${SPLIT_PACKAGES} ]]
403     then
404     # save bindir & pname
405     split_save_variables
406     export SAVED_BINDIR="${BINDIR}"
407     for subpackage in ${SPLIT_PACKAGES}
408     do
409 niro 1784 split_info_${subpackage}
410     if [[ ${PKGTYPE} = virtual ]]
411 niro 1593 then
412 niro 1784 echo "virtual package detected; nothing will be build ..."
413     # automatically set !pkgbuild here too
414     msetfeature "!pkgbuild"
415     else
416     if typeset -f src_install_${subpackage} > /dev/null
417     then
418     # export subpackage bindir
419     export BINDIR="${SAVED_BINDIR}_${subpackage}"
420     # export PNAME, several internal function and include
421     # rely on this variable
422     export PNAME="${subpackage}"
423 niro 1593
424 niro 1784 echo
425     echo -en "${COLBLUE}*** ${COLDEFAULT}"
426     echo -en " Running ${COLGREEN}split src_install()${COLDEFAULT}"
427     echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
428     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
429 niro 1593
430 niro 1784 ( run_resume src_install_${subpackage} || src_install_${subpackage} ) | ${SMAGE_LOG_CMD}
431     die_pipestatus 0 "src_install_${subpackage} failed"
432     resume_stamp src_install_${subpackage}
433     step_by_step src_install_${subpackage}
434     fi
435 niro 1593 fi
436     done
437     # restore bindir & pname
438     split_restore_variables
439     # unset all saved smage variables
440     split_unset_variables
441     else
442 niro 1617 ( run_resume src_install || src_install ) | ${SMAGE_LOG_CMD}
443 niro 1593 die_pipestatus 0 "src_install failed"
444 niro 1617 resume_stamp src_install
445     step_by_step src_install
446 niro 1593 fi
447 niro 943 fi
448 niro 24
449 niro 1593 # echo for sake of good-looking
450     echo
451    
452 niro 1584 if mqueryfeature "!compressdoc"
453 niro 24 then
454 niro 1584 echo -e "!compressdoc detected; documentation will not be compressed ..."
455 niro 1595 elif mqueryfeature "!pkgbuild"
456     then
457     echo "!pkgbuild detected; skipping documentation compression..."
458 niro 943 else
459 niro 1584 # compressing doc, info & man files
460     if [[ -n ${SPLIT_PACKAGES} ]]
461     then
462     for subpackage in ${SPLIT_PACKAGES}
463     do
464 niro 1636 run_resume post-mcompressdoc_${subpackage} || mcompressdocs ${BINDIR}_${subpackage}
465     resume_stamp post-mcompressdoc_${subpackage}
466 niro 1584 done
467     else
468 niro 1636 run_resume post-mcompressdoc || mcompressdocs ${BINDIR}
469     resume_stamp post-mcompressdoc
470 niro 1584 fi
471 niro 24 fi
472    
473 niro 1584 if mqueryfeature "!libtool"
474 niro 1580 then
475 niro 1595 if mqueryfeature "!pkgbuild"
476     then
477     echo "!pkgbuild detected; skipping libtool archive stripping ..."
478     else
479 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
480     then
481     for subpackage in ${SPLIT_PACKAGES}
482     do
483     echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives for '${subpackage}' ...${COLDEFAULT}"
484 niro 1636 run_resume post-mstriplibtoolarchive_${subpackage} || mstriplibtoolarchive ${BINDIR}_${subpackage}
485     resume_stamp post-mstriplibtoolarchive_${subpackage}
486 niro 1580 done
487     else
488 niro 1617 echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives ...${COLDEFAULT}"
489 niro 1636 run_resume post-mstriplibtoolarchive || mstriplibtoolarchive ${BINDIR}
490     resume_stamp post-mstriplibtoolarchive
491 niro 1580 fi
492 niro 1595 fi
493 niro 1580 fi
494 niro 24
495 niro 1584 if mqueryfeature "purge"
496 niro 1580 then
497 niro 1595 if mqueryfeature "!pkgbuild"
498     then
499     echo "!pkgbuild detected; skipping file purgation..."
500     else
501 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
502     then
503     for subpackage in ${SPLIT_PACKAGES}
504     do
505     echo -e "${COLBLUE}===${COLGREEN} purging all purge targets in '${subpackage}' ...${COLDEFAULT}"
506 niro 1636 run_resume post-mpurgetargets_${subpackage} || mpurgetargets ${BINDIR}_${subpackage}
507     resume_stamp post-mpurgetargets_${subpackage}
508 niro 1580 done
509     else
510 niro 1617 echo -e "${COLBLUE}===${COLGREEN} purging all purge targets ...${COLDEFAULT}"
511 niro 1636 run_resume post-mpurgetargets || mpurgetargets ${BINDIR}
512     resume_stamp post-mpurgetargets
513 niro 1580 fi
514 niro 1595 fi
515 niro 1580 fi
516    
517 niro 79 # stripping all bins and libs
518 niro 1584 if mqueryfeature "!strip"
519     then
520     echo -e "!strip detected; Package will not be stripped ..."
521 niro 1595 elif mqueryfeature "!pkgbuild"
522     then
523     echo "!pkgbuild detected; skipping stripping of the package ..."
524 niro 1584 else
525 niro 1595 if [[ -n ${SPLIT_PACKAGES} ]]
526     then
527     for subpackage in ${SPLIT_PACKAGES}
528     do
529     echo -e "${COLBLUE}===${COLGREEN} stripping binaries for '${subpackage}' ...${COLDEFAULT}"
530 niro 1636 run_resume post-mstripbins_${subpackage} || mstripbins ${BINDIR}_${subpackage}
531     resume_stamp post-mstripbins_${subpackage}
532 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries for '${subpackage}' ...${COLDEFAULT}"
533 niro 1636 run_resume post-mstriplibs_${subpackage} || mstriplibs ${BINDIR}_${subpackage}
534     resume_stamp post-mstriplibs_${subpackage}
535 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping static libraries for '${subpackage}' ...${COLDEFAULT}"
536 niro 1636 run_resume post-mstripstatic_${subpackage} || mstripstatic ${BINDIR}_${subpackage}
537     resume_stamp post-mstripstatic_${subpackage}
538 niro 1595 done
539     else
540     echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
541 niro 1636 run_resume post-mstripbins || mstripbins ${BINDIR}
542     resume_stamp post-mstripbins
543 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries ...${COLDEFAULT}"
544 niro 1636 run_resume post-mstriplibs || mstriplibs ${BINDIR}
545     resume_stamp post-mstriplibs
546 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping static libraries ...${COLDEFAULT}"
547 niro 1636 run_resume post-mstripstatic || mstripstatic ${BINDIR}
548     resume_stamp post-mstripstatic
549 niro 1595 fi
550 niro 1584 fi
551 niro 79
552 niro 1595 if mqueryfeature "!pkgbuild"
553 niro 1584 then
554 niro 1595 echo -e "!pkgbuild detected; Package will not be build ..."
555 niro 1584 else
556 niro 306 # build several targets
557 niro 943 if [[ -n ${MAGE_TARGETS} ]]
558 niro 192 then
559     for target in ${MAGE_TARGETS}
560     do
561 niro 1573 # check if a special target_pkgbuild exists
562 niro 192 if typeset -f ${target}_pkgbuild > /dev/null
563     then
564     # run it
565 niro 1636 run_resume post-${target}_pkgbuild || ${target}_pkgbuild
566     resume_stamp post-${target}_pkgbuild
567 niro 192 fi
568     # now create the target package
569 niro 1636 run_resume post-pkg_builddir_${target} || ${MLIBDIR}/pkgbuild_dir.sh \
570 niro 1649 "${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \
571 niro 192 ${BINDIR} || die "target: ${target} package-build failed"
572 niro 1636 resume_stamp post-pkg_builddir_${target}
573 niro 255
574     # build pkg-md5-sum if requested
575 niro 1636 run_resume post-md5sum_${target} || generate_package_md5sum \
576 niro 1641 --pcat "${PCAT}" \
577 niro 255 --pname "${PNAME}" \
578     --pver "${PVER}" \
579     --pbuild "${PBUILD}" \
580     --parch "${ARCH}" \
581     --target "${target}"
582 niro 1636 resume_stamp post-md5sum_${target}
583 niro 255
584 niro 1649 echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"
585 niro 192 done
586 niro 943
587     # build several subpackages
588     elif [[ -n ${SPLIT_PACKAGES} ]]
589     then
590     split_save_variables
591     for subpackage in ${SPLIT_PACKAGES}
592     do
593     # get the right variables for the split
594     export PNAME="${subpackage}"
595     split_info_${PNAME}
596 niro 1659 # fix PCATEGORIE -> PCAT
597     if [[ ! -z ${PCATEGORIE} ]]
598     then
599     PCAT="${PCATEGORIE}"
600     unset PCATEGORIE
601     fi
602 niro 943
603 niro 1595 # jump to next one if !pkgbuild is set in split_info
604     mqueryfeature "!pkgbuild" && continue
605 niro 947
606 niro 943 # check if an special subpackage_pkgbuild exists
607     if typeset -f ${PNAME}_pkgbuild > /dev/null
608     then
609     # run it
610 niro 1636 run_resume post-${PNAME}_pkgbuild || ${PNAME}_pkgbuild
611     resume_stamp post-${PNAME}_pkgbuild
612 niro 943 fi
613     # now create the target package
614 niro 1636 run_resume post-pkg_builddir_${PNAME} || ${MLIBDIR}/pkgbuild_dir.sh \
615 niro 1649 "${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \
616 niro 943 "${BINDIR}_${PNAME}" || die "split_package: ${PNAME} package-build failed"
617 niro 1636 resume_stamp post-pkg_builddir_${PNAME}
618 niro 943
619     # build pkg-md5-sum if requested
620 niro 1636 run_resume post-md5sum_${PNAME} || generate_package_md5sum \
621 niro 1641 --pcat "${PCAT}" \
622 niro 943 --pname "${PNAME}" \
623     --pver "${PVER}" \
624     --pbuild "${PBUILD}" \
625     --parch "${ARCH}"
626 niro 1636 resume_stamp post-md5sum_${PNAME}
627 niro 943
628 niro 1649 echo -e "${COLGREEN}\nPackage ${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"
629 niro 951
630     # restore smage environment
631     split_restore_variables
632 niro 943 done
633 niro 951 # unset all saved smage variables
634     split_unset_variables
635 niro 943
636 niro 192 else
637 niro 1636 run_resume post-pkg_builddir || ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
638     resume_stamp post-pkg_builddir
639 niro 255
640     # build pkg-md5-sum if requested
641 niro 1636 run_resume post-md5sum || generate_package_md5sum \
642 niro 1641 --pcat "${PCAT}" \
643 niro 255 --pname "${PNAME}" \
644     --pver "${PVER}" \
645     --pbuild "${PBUILD}" \
646     --parch "${ARCH}"
647 niro 1636 resume_stamp post-md5sum
648 niro 255
649 niro 439 echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
650 niro 192 fi
651 niro 403
652     # build src-pkg-tarball if requested
653 niro 1635 if mqueryfeature "srcpkgbuild"
654 niro 1617 then
655 niro 1636 run_resume post-srcpkgbuild || source_pkg_build ${SMAGENAME}
656     resume_stamp post-srcpkgbuild
657 niro 1617 fi
658 niro 1584 fi
659 niro 24
660 niro 1584 if mqueryfeature "buildlog"
661 niro 875 then
662     bzip2 -9f /var/log/smage/${PKGNAME}.log
663     else
664     [[ -f /var/log/smage/${PKGNAME}.log ]] && rm /var/log/smage/${PKGNAME}.log
665     fi
666    
667 niro 24 xtitleclean

Properties

Name Value
svn:executable *