Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 191 - (show annotations) (download) (as text)
Fri Aug 19 02:24:12 2005 UTC (18 years, 8 months ago) by niro
File MIME type: application/x-sh
File size: 18098 byte(s)
- added very basic MAGE_TARGETS support (currently only for mage-tree regen)

- added possibility to regen the mage-tree with given informations in smage2 files

1 #!/bin/bash
2
3 # compiles/installs .smage2 source install scripts
4 # needs pkgbuild_dir (mage)
5
6 # SMAGE2
7 # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.22 2005-08-19 02:24:12 niro Exp $
8
9 #01.10.2004
10 # added ccache support
11 # added distcc support
12
13 ## setup ##
14 PKGSUFFIX="mpk"
15 SMAGENAME="$1"
16 SMAGESUFFIX="smage2"
17 #SOURCEDIR="/bootstrap/sources"
18 #SMAGESCRIPTSDIR="/bootstrap/smage2-install-scripts"
19 #SMAGE2RSYNC="rsync://192.168.0.2/smage2-scripts"
20 MLIBDIR=/usr/lib/mage
21 SMAGEVERSION="$( < ${MLIBDIR}/version)"
22
23 # export default C locale
24 export LC_ALL=C
25
26 source /etc/mage.rc
27
28 showversion() {
29 echo -en "Magellan Source Install v${SMAGEVERSION} "
30 echo -e "-- Niels Rogalla (niro@magellan-linux.de)"
31 }
32
33 die() {
34 xtitleclean
35 echo "SMAGE failed: $@"
36 exit 1
37 }
38
39 xtitle() {
40 if [ ${TERM} == "xterm" ]
41 then
42 echo -ne "\033]0;[sMage: $@]\007"
43 fi
44 return 0
45 }
46
47 xtitleclean() {
48 if [ ${TERM} == "xterm" ]
49 then
50 echo -ne "\033]0;\007"
51 fi
52 return 0
53 }
54
55 syncsmage2() {
56 xtitle "Updating smage2-script tree ..."
57 local i
58 for i in ${SMAGE2RSYNC}
59 do
60 rsync \
61 --recursive \
62 --links \
63 --perms \
64 --times \
65 --devices \
66 --timeout=600 \
67 --verbose \
68 --compress \
69 --progress \
70 --stats \
71 --delete \
72 --delete-after \
73 ${i} ${SMAGESCRIPTSDIR}
74
75 if [ "$?" == "0" ]
76 then
77 break
78 else
79 continue
80 fi
81
82 done
83
84 #clean up backup files (foo~)
85 find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'
86
87 xtitleclean
88 }
89
90 # $1 filename
91 get_db_md5_sum() {
92 local DB_FILE
93 local MD5_FILE
94 local i
95
96 DB_ENTRY="$(basename $1)"
97 MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} ${SMAGESUFFIX})"
98
99 i="$(cat ${MD5_FILE}| grep ${DB_ENTRY} | cut -d' ' -f1)"
100
101 echo "${i}"
102 }
103
104 download_sources() {
105
106 [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0
107
108 local EOA=${#SRC_URI[*]}
109 local my_SRC_URI
110 local my_SRC_URI_DEST
111 local my_SRC_URI_MIRROR
112 local my_SOURCEDIR
113 local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
114 local FETCHING
115 local i mirror
116
117
118 #install SRCDIR/PNAME if not exist
119 [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}
120
121 # check if FETCHING is needed
122 ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )
123 if [[ $? == 0 ]]
124 then
125 # md5's ok, not fetching needed
126 FETCHING=false
127 else
128 FETCHING=true
129 fi
130
131 for ((i=0; i < EOA; i++))
132 do
133 # url to file
134 my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
135
136 # subdir in sources dir; the my_SRCI_URI file goes to there
137 my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
138
139 # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
140 if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
141 then
142 my_SOURCEDIR="${SOURCEDIR}/${PNAME}/${my_SRC_URI_DEST}"
143 else
144 my_SOURCEDIR="${SOURCEDIR}/${PNAME}"
145 fi
146
147 # if an mirrored file than replace first the mirror uri
148 if [ -n "$(echo ${my_SRC_URI} | grep 'mirror://')" ]
149 then
150 for mirror in ${MIRRORS}
151 do
152 my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"
153
154 #echo "DEBUG: ${MY_SRC_URI}"
155 if [[ ${FETCHING} == true ]]
156 then
157 echo "==> fetching ${my_SRC_URI_MIRROR}"
158 wget \
159 --passive-ftp \
160 --tries 3 \
161 --continue \
162 --progress bar \
163 --directory-prefix="${my_SOURCEDIR}" \
164 "${my_SRC_URI_MIRROR}"
165 if [ "$?" == "0" ]
166 then
167 break
168 else
169 continue
170 fi
171 fi
172 done
173 else
174 #echo "DEBUG: ${SRC_URI[${i}]}"
175 if [[ ${FETCHING} == true ]]
176 then
177 echo "==> fetching ${my_SRC_URI}"
178 wget \
179 --passive-ftp \
180 --tries 3 \
181 --continue \
182 --progress bar \
183 --directory-prefix="${my_SOURCEDIR}" \
184 "${my_SRC_URI}"
185 # only needed to run through a list of mirrors
186 # if [ "$?" == "0" ]
187 # then
188 # break
189 # else
190 # continue
191 # fi
192 fi
193 fi
194
195 # unset them to be shure
196 unset my_SRC_URI
197 unset my_SRC_URI_DEST
198 unset my_SRC_URI_MIRROR
199 unset my_SOURCEDIR
200 done
201
202 # recheck md5 sums
203 echo
204 echo ">== Checking MD5 sums:"
205 ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"
206 echo
207
208 # not needed anymore
209 unset SRC_URI
210 }
211
212 # dummy function, used if that not exist in smage file
213 src_prepare() {
214 echo "no src_prepare defined"
215 sleep 2
216 return 0
217 }
218
219 # dummy function, used if that not exist in smage file
220 src_compile() {
221 echo "no src_compile defined"
222 sleep 2
223 return 0
224 }
225
226 # dummy function, used if that not exist in smage file
227 src_install() {
228 echo "no src_install defined"
229 sleep 2
230 return 0
231 }
232
233
234 build_mage_script() {
235 return 0
236 }
237
238 mconfigure() {
239 if [ -x ./configure ]
240 then
241 ./configure \
242 --prefix=/usr \
243 --host=${CHOST} \
244 --mandir=/usr/share/man \
245 --infodir=/usr/share/info \
246 --datadir=/usr/share \
247 --sysconfdir=/etc \
248 --localstatedir=/var/lib \
249 "$@" || die "mconfigure failed"
250 else
251 echo "configure is not an executable ..."
252 exit 1
253 fi
254 }
255
256 minstall() {
257 if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then
258 make prefix=${BINDIR}/usr \
259 datadir=${BINDIR}/usr/share \
260 infodir=${BINDIR}/usr/share/info \
261 localstatedir=${BINDIR}/var/lib \
262 mandir=${BINDIR}/usr/share/man \
263 sysconfdir=${BINDIR}/etc \
264 "$@" install || die "minstall failed"
265 else
266 die "no Makefile found"
267 fi
268 }
269
270 mmake() {
271 make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"
272 }
273
274 munpack() {
275 local SRCFILE
276 local IFTAR
277 local DEST
278
279 SRCFILE=$1
280
281 if [ -z "$2" ]
282 then
283 DEST=${BUILDDIR}
284 else
285 DEST=$2
286 fi
287
288 case "${SRCFILE##*.}" in
289 bz2)
290 IFTAR="$(basename $SRCFILE .bz2)"
291 IFTAR="${IFTAR##*.}"
292 if [ "${IFTAR}" == "tar" ]
293 then
294 tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
295 fi
296 ;;
297 gz)
298 IFTAR="$(basename $SRCFILE .gz)"
299 IFTAR="${IFTAR##*.}"
300 if [ "${IFTAR}" == "tar" ]
301 then
302 tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
303 fi
304 ;;
305 tbz2)
306 tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
307 ;;
308 tgz)
309 tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
310 ;;
311 *)
312 die "munpack failed"
313 ;;
314 esac
315 }
316
317 mpatch() {
318 local PATCHOPTS
319 local PATCHFILE
320
321 PATCHOPTS=$1
322 PATCHFILE=$2
323
324 patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}
325 }
326
327
328 minstalldocs() {
329 local docfiles
330
331 docfiles="$@"
332
333 if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
334 then
335 install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
336 fi
337
338 for i in ${docfiles}
339 do
340 cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
341 install -m 0644 ${SRCDIR}/${i}.gz \
342 ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "coping docs."
343 done
344 }
345
346 mstriplibs() {
347 local stripdir="$@"
348
349 [ -z "${stripdir}" ] && stripdir=${BINDIR}
350 find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
351 }
352
353 mstripbins() {
354 local stripdir="$@"
355
356 [ -z "${stripdir}" ] && stripdir=${BINDIR}
357 find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
358 }
359
360 sminclude() {
361 local i
362
363 if [[ -n "$@" ]]
364 then
365 for i in $@
366 do
367 echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
368 source ${SMAGESCRIPTSDIR}/include/${i}.sminc
369 done
370 echo
371 fi
372 }
373
374 setup_distcc_environment(){
375 if [ -x /usr/bin/distcc ]
376 then
377 echo "Using DistCC for compilation ..."
378 export PATH=/usr/lib/distcc/bin:${PATH} || die "distcc: could not export new $PATH"
379
380 #export distcc as compiler
381 # export CC="distcc"
382 # export CXX=distcc
383
384 export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
385
386
387 #ccache + distcc together
388 if [ "${SMAGE_USE_CCACHE}" == "true" ]
389 then
390 if [ -x /usr/bin/ccache ]
391 then
392 echo "Preparing DistCC to work together with CCache ..."
393 #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"
394 # export CC="ccache distcc"
395 # export CXX="ccache distcc"
396 fi
397 fi
398
399 #creating distcc tempdir
400 install -o distcc -g daemon -d ${DISTCC_DIR}
401 chmod 1777 ${DISTCC_DIR}
402 fi
403 }
404
405 setup_ccache_environment(){
406 if [ -x /usr/bin/ccache ]
407 then
408 echo "Using CCache for compilation ..."
409 export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
410 #unset CC CXX
411 fi
412 }
413
414 # alx_create_mage_file: helper functions for regen_mage_tree()
415 # generates an mage file with given information in smage file
416 # needs at least:
417 # PNAME name of pkg
418 # PVER version
419 # PBUILD revision
420 # PCATEGORIE categorie of the pkg
421 # STATE state of pkg stable|unstable|old
422 # DESCRIPTION va short description (opt)
423 # HOMEPAGE homepage (opt)
424 # DEPEND runtime dependencies (opt)
425 # SDEPEND add. needed deps to build the pkg (opt)
426 # PROVIDE provides a virtual (opt)
427 #
428 # special tags:
429 # PKGTYPE type of pkg
430 # INHERITS which functions get included
431 # SPECIAL_FUNCTIONS special functions wich should also be added
432 # warning: they get killed before the build starts !
433 #
434 # MAGE_TREE_DEST target destination of the generated tree
435 # REGEN_MAGE_TREE set to 'true' to enable this
436 alx_create_mage_file()
437 {
438 local magefile
439 local dest
440 local suffix
441 local sym
442 local depname
443
444 # if MAGE_TREE_DEST not set use BUILDDIR
445 : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
446
447 # determinate which suffix this mage file should get, if any
448 suffix="$1"
449
450 # name of magefile
451 magefile="${PNAME}${suffix}-${PVER}-${PBUILD}.mage"
452
453 # destination to magefile
454 dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${suffix}/${magefile}"
455
456 # show what we are doing
457 echo "Generating Mage file:"
458 echo " ${dest}"
459
460 install -d "$(dirname ${dest})"
461 # now build the mage file
462 > ${dest}
463
464 # header
465 echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.22 2005-08-19 02:24:12 niro Exp $' >> ${dest}
466 echo >> ${dest}
467
468 # pgkname and state
469 echo "PKGNAME=\"${PNAME}${suffix}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
470 echo "STATE=\"${STATE}\"" >> ${dest}
471 echo >> ${dest}
472
473 # description and homepage
474 echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
475 echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
476 echo >> ${dest}
477
478 # special tags
479 echo "PKGTYPE=\"${PKGTYPE}\"" >> ${dest}
480 if [ -n "${INHERITS}" ]
481 then
482 echo -n "minclude" >> ${dest}
483 local i
484 for i in ${INHERITS}
485 do
486 echo -n " ${i}" >> ${dest}
487 done
488 echo >> ${dest}
489 fi
490 echo >> ${dest}
491
492 # deps and provides
493 echo "DEPEND=\"${DEPEND}\"" >> ${dest}
494 echo "SDEPEND=\"${SDEPEND}\"" >> ${dest}
495 echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
496 echo >> ${dest}
497
498 # add special functions
499 if [ -n "${SPECIAL_FUNCTIONS}" ]
500 then
501 local i
502 for i in ${SPECIAL_FUNCTIONS}
503 do
504 # add to mage (quotes needed !)
505 typeset -f "${i}" >> ${dest}
506 # unset to be safe (quotes needed !)
507 unset "${i}"
508 done
509 fi
510
511 # pre|post-install|removes
512 typeset -f preinstall >> ${dest}
513 echo >> ${dest}
514 typeset -f postinstall >> ${dest}
515 echo >> ${dest}
516 typeset -f preremove >> ${dest}
517 echo >> ${dest}
518 typeset -f postremove >> ${dest}
519 echo >> ${dest}
520 }
521
522 regen_mage_tree()
523 {
524 local i
525
526 # build them only if requested
527 if [[ ${REGEN_MAGE_TREE} = true ]]
528 then
529 # build for each target an mage file
530 for i in ${MAGE_TARGETS}
531 do
532 echo
533 alx_create_mage_file "${i}"
534 echo
535 done
536 fi
537
538 # now unset all uneeded vars to be safe
539 unset PKGNAME
540 unset STATE
541 unset DESCRIPTION
542 unset HOMEPAGE
543 unset PKGTYPE
544 unset INHERITS
545 unset DEPEND
546 unset SDEPEND
547 unset PROVIDE
548 unset SPECIAL_FUNCTIONS
549 unset preinstall
550 unset postinstall
551 unset preremove
552 unset postremove
553 }
554
555 # print out our version
556 showversion
557 echo
558
559 if [ -z "$1" ]
560 then
561 echo "No .smage2 file given. Exiting."
562 echo
563 exit 1
564 fi
565
566 #updating smage2-scripts
567 if [ "$1" == "update" ]
568 then
569 if [ ! -d ${SOURCEDIR} ]
570 then
571 install -d ${SOURCEDIR}
572 fi
573 syncsmage2
574 exit 0
575 fi
576
577 #creates md5sums for smages to given dir
578 if [ "$1" == "calcmd5" ]
579 then
580 if [ $# -ge 3 ]
581 then
582 SMAGENAME="$2"
583 MD5DIR="$3"
584 source ${SMAGENAME} || die "download source failed"
585
586 # overridable sourcedir; must be declared after source of the smage2
587 CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
588
589 [ -z "${SRC_URI}" ] && die "Nothing declared to calculate."
590
591 # end of array
592 EOA=${#SRC_URI[*]}
593
594 [ ! -d ${MD5DIR} ] && install -d ${MD5DIR}
595
596 # clear md5sum file
597 MY_MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
598 echo -n > ${MY_MD5_FILE}
599
600 for ((i=0; i < EOA; i++))
601 do
602 # url to file
603 my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
604
605 # subdir in sources dir; the my_SRCI_URI file goes to there
606 my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
607
608 # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
609 if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
610 then
611 MY_SRC_FILE="${my_SRC_URI_DEST}/$(basename ${SRC_URI[${i}]})"
612 else
613 MY_SRC_FILE="$(basename ${SRC_URI[${i}]})"
614 fi
615
616 if [ -e "${CALC_SOURCEDIR}/${MY_SRC_FILE}" ]
617 then
618 echo "calculating $(basename ${MY_SRC_FILE}) ..."
619 ( cd ${CALC_SOURCEDIR}; md5sum "${MY_SRC_FILE}" ) >> ${MY_MD5_FILE}
620 else
621 echo "WARNING: File '$(basename ${MY_SRC_FILE}) not found in ${CALC_SOURCEDIR}."
622 fi
623
624 # unset them to be shure
625 unset my_SRC_URI
626 unset my_SRC_URI_DEST
627 unset my_SRC_URI_MIRROR
628 unset my_SOURCEDIR
629 done
630
631 echo
632 echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
633 echo
634 else
635 echo "Usage: Calculating MD5 Sums:"
636 echo " $(basename $0) calcmd5 /path/to/SMAGENAME /path/to/MD5DIR"
637 echo
638 echo
639 echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."
640 echo
641 exit 1
642 fi
643
644 exit 0
645 fi
646
647 #download sources
648 if [ "$1" == "download" -a -n "$2" ]
649 then
650 if [ ! -d ${SMAGESCRIPTSDIR} ]
651 then
652 install -d ${SMAGESCRIPTSDIR}
653 fi
654
655 # get smage
656 SMAGENAME="$2"
657 MD5DIR="$(dirname ${SMAGENAME})/md5"
658 source ${SMAGENAME} || die "download source failed"
659
660 download_sources
661 exit 0
662 fi
663
664 if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]
665 then
666 die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
667 fi
668
669 if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]
670 then
671 die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."
672 fi
673
674 if [ -z "${SOURCEDIR}" ]
675 then
676 die "\$SOURCEDIR not found. Please setup your mage.rc correctly."
677 fi
678
679 if [ -z "${SMAGESCRIPTSDIR}" ]
680 then
681 die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."
682 fi
683
684 if [ -z "${SMAGE2RSYNC}" ]
685 then
686 echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."
687 exit 1
688 fi
689
690 if [ -z "${BINDIR}" ]
691 then
692 die "no BINDIR variable found in /etc/mage.rc"
693 fi
694
695 if [ -z "${CHOST}" ]
696 then
697 die "no CHOST variable found in /etc/mage.rc"
698 fi
699
700 if [ -z "${CFLAGS}" ]
701 then
702 die "no CFLAGS variable found in /etc/mage.rc"
703 fi
704
705 if [ -z "${CXXFLAGS}" ]
706 then
707 die "no CXXFLAGS variable found in /etc/mage.rc"
708 fi
709
710
711 source ${SMAGENAME} || die "source failed"
712 PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"
713 MD5DIR="$(dirname ${SMAGENAME})/md5"
714
715 xtitle "Compiling ${PKGNAME}"
716 echo "Compiling ${PKGNAME}"
717
718 # auto regen mage tree if requested
719 regen_mage_tree
720
721 #download sources
722 download_sources
723
724 #fixes some issues with these functions
725 export -f src_prepare || die "src_prepare export failed"
726 export -f src_compile || die "src_compile export failed"
727 export -f src_install || die "src_install export failed"
728
729 #fixes some compile issues
730 export CHOST="${CHOST}" || die "CHOST export failed"
731 export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
732 export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
733 export BINDIR="${BINDIR}" || die "BINDIR export failed"
734 export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
735
736
737 #setup distcc
738 #distcc mus be setup *before* ccache, as ccache need to be before distcc in path
739 if [ "${SMAGE_USE_DISTCC}" == "true" ]
740 then
741 setup_distcc_environment
742 fi
743
744 #setup ccache
745 if [ "${SMAGE_USE_CCACHE}" == "true" ]
746 then
747 setup_ccache_environment
748 fi
749
750
751 # small sleep to show our settings
752 sleep 1
753
754 #debug
755 #echo "CC=${CC}"
756 #echo "CXX=${CXX}"
757 #echo "DISTCC_DIR=${DISTCC_DIR}"
758 #echo "PATH: ${PATH}"
759 #echo "--------------------------------------"
760 #env
761 #echo "--------------------------------------"
762 #read
763 #debug end
764
765 #cleans up build if a previously one exists
766 if [ -d ${BUILDDIR} ]
767 then
768 rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
769 fi
770 install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
771
772 #cleans up srcdir if a previously unpacked one exists
773 if [ -d ${SRCDIR} ]
774 then
775 rm -rf ${SRCDIR}
776 fi
777
778 #cleans up bindir if a previous build exists or creates a new one
779 if [ -d ${BINDIR} ]
780 then
781 rm -rf ${BINDIR}
782 fi
783 install -d ${BINDIR} || die "couldn't create \$BINDIR."
784
785 #cleans up package temp dir if a previous build exists
786 if [ -d ${BUILDDIR}/${PKGNAME} ]
787 then
788 rm -rf ${BUILDDIR}/${PKGNAME}
789 fi
790
791 #cleans up timestamp if one exists
792 if [ -f /var/tmp/timestamp ]
793 then
794 mage rmstamp
795 fi
796
797 src_prepare || die "src_prepare failed"
798 src_compile || die "src_compile failed"
799 src_install || die "src_install failed"
800
801
802 #compressing doc, info & man files
803 echo -e "Compressing man-pages ..."
804 if [ -d ${BUILDDIR}/builded/usr/share/man ]
805 then
806 ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man
807 fi
808
809 echo -e "Compressing info-pages ..."
810 if [ -d ${BUILDDIR}/builded/usr/share/info ]
811 then
812 ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
813 fi
814
815 # stripping all bins and libs
816 case ${NOSTRIP} in
817 true|TRUE|yes|y)
818 echo -e "NOSTRIP=true detected; Package will not be stripped ..."
819 ;;
820 *)
821 echo -e "Stripping binaries ..."
822 mstripbins ${BINDIR}
823 echo -e "Stripping libraries ..."
824 mstriplibs ${BINDIR}
825 ;;
826 esac
827
828 #the new buildpkg command
829 case ${NOPKGBUILD} in
830 true|TRUE|yes|y)
831 echo -e "NOPGKBUILD=true detected; Package will not be build ..."
832 ;;
833 *)
834 ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
835 echo -e "\nPackage ${PKGNAME} successfully builded.\n"
836 ;;
837 esac
838
839 #for sure
840 unset NOPKGBUILD
841 unset NOSTRIP
842
843 xtitleclean
844 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"

Properties

Name Value
svn:executable *