Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:executable *