Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 156 by niro, Sat Jul 23 16:34:29 2005 UTC revision 447 by niro, Tue Mar 20 01:15:31 2007 UTC
# Line 4  Line 4 
4  # needs pkgbuild_dir (mage)  # needs pkgbuild_dir (mage)
5    
6  # SMAGE2  # SMAGE2
7  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.14 2005-07-23 16:34:29 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.55 2007-03-20 01:15:31 niro Exp $
8    
9  #01.10.2004  #01.10.2004
10  # added ccache support  # added ccache support
11  # added distcc support  # added distcc support
12    
13    # set default user mage.rc
14    : ${MAGERC="/etc/mage.rc"}
15    
16  ## setup ##  ## setup ##
 SMAGEVERSION=0.3.6-r18  
17  PKGSUFFIX="mpk"  PKGSUFFIX="mpk"
18    SRCPKGSUFFIX="mpks"
19  SMAGENAME="$1"  SMAGENAME="$1"
20  SMAGESUFFIX="smage2"  SMAGESUFFIX="smage2"
 #SOURCEDIR="/bootstrap/sources"  
 #SMAGESCRIPTSDIR="/bootstrap/smage2-install-scripts"  
 #SMAGE2RSYNC="rsync://192.168.0.2/smage2-scripts"  
21  MLIBDIR=/usr/lib/mage  MLIBDIR=/usr/lib/mage
22    SMAGEVERSION="$( < ${MLIBDIR}/version)"
23    
24  source /etc/mage.rc  ## only for tests -> normally in /etc/rc.d/init.d/functions
25    COLRED="\033[1;6m\033[31m"
26    COLGREEN="\033[1;6m\033[32m"
27    COLYELLOW="\033[1;6m\033[33m"
28    COLBLUE="\033[1;6m\033[34m"
29    COLMAGENTA="\033[1;6m\033[35m"
30    COLWHITE="\033[1;6m\033[37m"
31    COLGRAY="\033[0;6m\033[37m"
32    COLBOLD="\033[1m"
33    COLDEFAULT="\033[0m"
34    
35    if [[ ${NOCOLORS} = true ]]
36    then
37     COLRED=""
38     COLGREEN=""
39     COLYELLOW=""
40     COLBLUE=""
41     COLMAGENTA=""
42     COLWHITE=""
43     COLGRAY=""
44     COLBOLD=""
45     COLDEFAULT=""
46    fi
47    
48    # export default C locale
49    export LC_ALL=C
50    
51    source /etc/mage.rc.global
52    source ${MAGERC}
53    
54    # set PKGDIR and BUILDDIR and BINDIR to MROOT
55    if [[ -n ${MROOT} ]]
56    then
57     export PKGDIR=${MROOT}/${PKGDIR}
58     export BUILDDIR=${MROOT}/${BUILDDIR}
59     export BINDIR=${MROOT}/${BINDIR}
60    fi
61    
62  showversion() {  showversion()
63    {
64   echo -en "Magellan Source Install v${SMAGEVERSION} "   echo -en "Magellan Source Install v${SMAGEVERSION} "
65   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"
66  }  }
67    
68  die() {  die()
69    {
70   xtitleclean   xtitleclean
71     echo -e ${COLRED}"Exited ${BASH_SOURCE} at line no ${BASH_LINENO}."${COLDEFAULT}
72   echo "SMAGE failed: $@"   echo "SMAGE failed: $@"
73   exit 1   exit 1
74  }  }
75    
76  xtitle() {  xtitle()
77   if [ ${TERM} == "xterm" ]  {
78     if [[ ${TERM} = xterm ]]
79   then   then
80   echo -ne "\033]0;[sMage: $@]\007"   echo -ne "\033]0;[sMage: $@]\007"
81   fi   fi
82   return 0   return 0
83  }  }
84    
85  xtitleclean() {  xtitleclean()
86   if [ ${TERM} == "xterm" ]  {
87     if [[ ${TERM} = xterm ]]
88   then   then
89   echo -ne "\033]0;\007"   echo -ne "\033]0;\007"
90   fi   fi
91   return 0   return 0
92  }  }
93    
94  syncsmage2() {  syncsmage2()
95    {
96   xtitle "Updating smage2-script tree ..."   xtitle "Updating smage2-script tree ..."
97   local i   local i
98   for i in ${SMAGE2RSYNC}   for i in ${SMAGE2RSYNC}
99   do   do
100   rsync \   rsync ${RSYNC_FETCH_OPTIONS} ${i} ${SMAGESCRIPTSDIR}
101   --recursive \   if [[ $? = 0 ]]
  --links \  
  --perms \  
  --times \  
  --devices \  
  --timeout=600 \  
  --verbose \  
  --compress \  
  --progress \  
  --stats \  
  --delete \  
  --delete-after \  
  ${i} ${SMAGESCRIPTSDIR}  
   
  if [ "$?" == "0" ]  
102   then   then
103   break   break
104   else   else
105   continue   continue
106   fi   fi
   
107   done   done
108    
109   #clean up backup files (foo~)   # clean up backup files (foo~)
110   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'
111    
112   xtitleclean   xtitleclean
113  }  }
114    
115  # $1 filename  # $1 filename
116  get_db_md5_sum() {  get_db_md5_sum()
117    {
118   local DB_FILE   local DB_FILE
119   local MD5_FILE   local MD5_FILE
120   local i   local i
# Line 98  get_db_md5_sum() { Line 127  get_db_md5_sum() {
127   echo "${i}"   echo "${i}"
128  }  }
129    
130  download_sources() {  download_sources()
131    {
132    
133   [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0   [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0
134    
# Line 110  download_sources() { Line 140  download_sources() {
140   local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"   local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
141   local FETCHING   local FETCHING
142   local i mirror   local i mirror
   
143    
144   #install SRCDIR/PNAME if not exist  
145     # install SRCDIR/PNAME if not exist
146   [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}   [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}
147    
148   # check if FETCHING is needed   # check if FETCHING is needed
149   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )
150   if [[ $? == 0 ]]   if [[ $? = 0 ]]
151   then   then
152   # md5's ok, not fetching needed   # md5's ok, no fetching needed
153   FETCHING=false   FETCHING=false
154   else   else
155   FETCHING=true   FETCHING=true
156   fi   fi
157    
158   for ((i=0; i < EOA; i++))   for ((i=0; i < EOA; i++))
159   do   do
160   # url to file   # url to file
# Line 142  download_sources() { Line 172  download_sources() {
172   fi   fi
173    
174   # if an mirrored file than replace first the mirror uri   # if an mirrored file than replace first the mirror uri
175   if [ -n "$(echo ${my_SRC_URI} | grep 'mirror://')" ]   if [[ -n $(echo ${my_SRC_URI} | grep 'mirror://') ]]
176   then   then
177   for mirror in ${MIRRORS}   for mirror in ${MIRRORS}
178   do   do
179   my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"   my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"
180    
181   #echo "DEBUG: ${MY_SRC_URI}"   if [[ ${FETCHING} = true ]]
182   if [[ ${FETCHING} == true ]]   then
183     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
184     wget \
185     --passive-ftp \
186     --tries 3 \
187     --continue \
188     --progress bar \
189     --directory-prefix="${my_SOURCEDIR}" \
190     "${my_SRC_URI_MIRROR}"
191     if [[ $? = 0 ]]
192     then
193     break
194     else
195     continue
196     fi
197     fi
198     done
199     elif [[ -n $(echo ${my_SRC_URI} | grep 'sourceforge://') ]]
200     then
201     for mirror in ${SOURCEFORGE_MIRRORS}
202     do
203     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|sourceforge:/|${mirror}|g")"
204    
205     if [[ ${FETCHING} = true ]]
206   then   then
207   echo "==> fetching ${my_SRC_URI_MIRROR}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
208   wget \   wget \
209   --passive-ftp \   --passive-ftp \
210   --tries 3 \   --tries 3 \
# Line 159  download_sources() { Line 212  download_sources() {
212   --progress bar \   --progress bar \
213   --directory-prefix="${my_SOURCEDIR}" \   --directory-prefix="${my_SOURCEDIR}" \
214   "${my_SRC_URI_MIRROR}"   "${my_SRC_URI_MIRROR}"
215   if [ "$?" == "0" ]   if [[ $? = 0 ]]
216     then
217     break
218     else
219     continue
220     fi
221     fi
222     done
223     elif [[ -n $(echo ${my_SRC_URI} | grep 'gnu://') ]]
224     then
225     for mirror in ${GNU_MIRRORS}
226     do
227     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|gnu:/|${mirror}|g")"
228    
229     if [[ ${FETCHING} = true ]]
230     then
231     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
232     wget \
233     --passive-ftp \
234     --tries 3 \
235     --continue \
236     --progress bar \
237     --directory-prefix="${my_SOURCEDIR}" \
238     "${my_SRC_URI_MIRROR}"
239     if [[ $? = 0 ]]
240   then   then
241   break   break
242   else   else
# Line 168  download_sources() { Line 245  download_sources() {
245   fi   fi
246   done   done
247   else   else
248   #echo "DEBUG: ${SRC_URI[${i}]}"   if [[ ${FETCHING} = true ]]
  if [[ ${FETCHING} == true ]]  
249   then   then
250   echo "==> fetching ${my_SRC_URI}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI}${COLDEFAULT}"
251   wget \   wget \
252   --passive-ftp \   --passive-ftp \
253   --tries 3 \   --tries 3 \
# Line 179  download_sources() { Line 255  download_sources() {
255   --progress bar \   --progress bar \
256   --directory-prefix="${my_SOURCEDIR}" \   --directory-prefix="${my_SOURCEDIR}" \
257   "${my_SRC_URI}"   "${my_SRC_URI}"
 # only needed to run through a list of mirrors  
 # if [ "$?" == "0" ]  
 # then  
 # break  
 # else  
 # continue  
 # fi  
258   fi   fi
259   fi   fi
260    
261   # unset them to be shure   # unset them to be shure
262   unset my_SRC_URI   unset my_SRC_URI
263   unset my_SRC_URI_DEST   unset my_SRC_URI_DEST
# Line 198  download_sources() { Line 267  download_sources() {
267    
268   # recheck md5 sums   # recheck md5 sums
269   echo   echo
270   echo ">== Checking MD5 sums:"   echo -e "${COLBLUE}===${COLGREEN} Checking MD5 sums:${COLDEFAULT}"
271   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"
272   echo   echo
273    
# Line 207  download_sources() { Line 276  download_sources() {
276  }  }
277    
278  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
279  src_prepare() {  src_prepare()
280    {
281   echo "no src_prepare defined"   echo "no src_prepare defined"
282   sleep 2   sleep 2
283   return 0   return 0
284  }  }
285    
286  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
287  src_compile() {  src_compile()
288    {
289   echo "no src_compile defined"   echo "no src_compile defined"
290   sleep 2   sleep 2
291   return 0   return 0
292  }  }
293    
294  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
295  src_install() {  src_install()
296    {
297   echo "no src_install defined"   echo "no src_install defined"
298   sleep 2   sleep 2
299   return 0   return 0
300  }  }
301    
302    mlibdir()
303    {
304     local libdir=lib
305     [[ ${ARCH} = x86_64 ]] && libdir=lib64
306    
307  build_mage_script() {   echo "${libdir}"
  return 0  
308  }  }
309    
310  mconfigure() {  mconfigure()
311    {
312   if [ -x ./configure ]   if [ -x ./configure ]
313   then   then
314   ./configure \   ./configure \
315   --prefix=/usr \   --prefix=/usr \
316   --host=${CHOST} \   --host=${CHOST} \
317   --mandir=/usr/share/man \   --mandir=/usr/share/man \
318   --infodir=/usr/share/info \   --infodir=/usr/share/info \
319   --datadir=/usr/share \   --datadir=/usr/share \
320   --sysconfdir=/etc \   --sysconfdir=/etc \
321   --localstatedir=/var/lib \   --localstatedir=/var/lib \
322   "$@" || die "mconfigure failed"   --libdir=/usr/$(mlibdir) \
323     "$@" || die "mconfigure failed"
324   else   else
325   echo "configure is not an executable ..."   echo "configure is not an executable ..."
326   exit 1   exit 1
327   fi   fi
328  }  }
329    
330  minstall() {  minstall()
331   if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then  {
332     if [ -f ./[mM]akefile -o -f ./GNUmakefile ]
333     then
334   make prefix=${BINDIR}/usr \   make prefix=${BINDIR}/usr \
335   datadir=${BINDIR}/usr/share \   datadir=${BINDIR}/usr/share \
336   infodir=${BINDIR}/usr/share/info \   infodir=${BINDIR}/usr/share/info \
337   localstatedir=${BINDIR}/var/lib \   localstatedir=${BINDIR}/var/lib \
338   mandir=${BINDIR}/usr/share/man \   mandir=${BINDIR}/usr/share/man \
339   sysconfdir=${BINDIR}/etc \   sysconfdir=${BINDIR}/etc \
340     libdir=${BINDIR}/usr/$(mlibdir) \
341   "$@" install || die "minstall failed"   "$@" install || die "minstall failed"
342          else          else
343                  die "no Makefile found"                  die "no Makefile found"
344          fi          fi
345  }  }
346    
347  mmake() {  mmake()
348    {
349   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"
350  }  }
351    
352  munpack() {  munpack()
353    {
354   local SRCFILE   local SRCFILE
355   local IFTAR   local IFTAR
356   local DEST   local DEST
357    
358   SRCFILE=$1   SRCFILE=$1
359    
360   if [ -z "$2" ]   if [ -z "$2" ]
361   then   then
362   DEST=${BUILDDIR}   DEST=${BUILDDIR}
363   else   else
364   DEST=$2   DEST=$2
365   fi   fi
366    
367     [[ ! -d ${DEST} ]] && install -d ${DEST}
368    
369   case "${SRCFILE##*.}" in   case "${SRCFILE##*.}" in
370   bz2)   bz2)
371   IFTAR="$(basename $SRCFILE .bz2)"   IFTAR="$(basename $SRCFILE .bz2)"
372   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
373   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
374   then   then
375   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
376   fi   fi
# Line 294  munpack() { Line 378  munpack() {
378   gz)   gz)
379   IFTAR="$(basename $SRCFILE .gz)"   IFTAR="$(basename $SRCFILE .gz)"
380   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
381   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
382   then   then
383   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
384   fi   fi
# Line 311  munpack() { Line 395  munpack() {
395   esac   esac
396  }  }
397    
398  mpatch() {  mpatch()
399    {
400   local PATCHOPTS   local PATCHOPTS
401   local PATCHFILE   local PATCHFILE
402     local i
403    
404   PATCHOPTS=$1   PATCHOPTS=$1
405   PATCHFILE=$2   PATCHFILE=$2
406    
407     if [[ -z $2 ]]
408     then
409     PATCHFILE=$1
410    
411     ## patch level auto-detection, get patch level
412     for ((i=0; i < 10; i++))
413     do
414     patch --dry-run -Np${i} -i ${SOURCEDIR}/${PNAME}/${PATCHFILE} > /dev/null
415     if [[ $? = 0 ]]
416     then
417     PATCHOPTS="-Np${i}"
418     break
419     fi
420     done
421     fi
422    
423     echo -e "${COLBLUE}*** ${COLGREEN}Applying patch '${PATCHFILE}'${COLDEFAULT}"
424   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}
425  }  }
426    
427    
428  minstalldocs() {  minstalldocs()
429    {
430   local docfiles   local docfiles
   
431   docfiles="$@"   docfiles="$@"
432    
433   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
434   then   then
435   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
436   fi   fi
437    
438   for i in ${docfiles}   for i in ${docfiles}
439   do   do
440   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
# Line 340  minstalldocs() { Line 443  minstalldocs() {
443   done   done
444  }  }
445    
446  mstriplibs() {  mstriplibs()
447    {
448   local stripdir="$@"   local stripdir="$@"
449    
450   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
451   find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null   find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
452  }  }
453    
454  mstripbins() {  mstripbins()
455    {
456   local stripdir="$@"   local stripdir="$@"
457    
458   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
459   find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null   find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
460  }  }
461    
462  setup_distcc_environment(){  sminclude()
463   if [ -x /usr/bin/distcc ]  {
464     local i
465    
466     if [[ -n "$@" ]]
467   then   then
468   echo "Using DistCC for compilation ..."   for i in $@
469   export PATH=/usr/lib/distcc/bin:${PATH} || die "distcc: could not export new $PATH"   do
470     echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
471     source ${SMAGESCRIPTSDIR}/include/${i}.sminc
472     done
473     echo
474     fi
475    }
476    
477   #export distcc as compiler  setup_distcc_environment()
478  # export CC="distcc"  {
479  # export CXX=distcc   if [ -x /usr/bin/distcc ]
480     then
481     echo -e "${COLBLUE}---${COLGREEN} Using DistCC for compilation ...${COLDEFAULT}"
482     export PATH=/usr/$(mlibdir)/distcc/bin:${PATH} || die "distcc: could not export new $PATH"
483    
484   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
485    
486     # creating distcc tempdir
487     install -o distcc -g daemon -d ${DISTCC_DIR}
488     chmod 1777 ${DISTCC_DIR}
489     fi
490    }
491    
492   #ccache + distcc together  setup_ccache_environment()
493   if [ "${SMAGE_USE_CCACHE}" == "true" ]  {
494   then   if [ -x /usr/bin/ccache ]
495   if [ -x /usr/bin/ccache ]   then
496     echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}"
497     export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
498     fi
499    }
500    
501    
502    # fixes given dependencies to match a MAGE_TARGET
503    # fix_mage_deps -target s/depend # <-- note -target !
504    fix_mage_deps()
505    {
506     local target="$1"
507     local depend="$2"
508     local NDEPEND
509     local sym dep cat pver pname
510    
511     # deps and provides are special
512     # they must be fixed to match the target
513    
514     # run this only if target and depend is not empty
515     if [ -n "${target}" ] && [ -n "${depend}" ]
516     then
517     # fix DEPEND
518     while read sym dep
519     do
520     # ignore empty lines
521     [[ -z ${dep} ]] && continue
522    
523     cat="$(dirname ${dep})"
524     # change if not virtual
525     if [[ ${cat} = virtual ]]
526   then   then
527   echo "Preparing DistCC to work together with CCache ..."   pname="$(basename ${dep})"
528   #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"   else
529  # export CC="ccache distcc"   # fix pver to target-pver
530  # export CXX="ccache distcc"   # to get pname-target-pver
531    
532     # doing it backwards !
533     pver="${dep##*-}"
534     # full pver
535     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
536   fi   fi
537    
538     # do not add empty lines
539     if [ -z "${NDEPEND}" ]
540     then
541     NDEPEND="${sym} ${cat}/${pname}"
542     else
543     NDEPEND="${NDEPEND}
544     ${sym} ${cat}/${pname}"
545     fi
546    
547     unset cat pname pver
548     done << EOF
549    ${depend}
550    EOF
551     # set NDEPEND to DEPEND
552     depend="${NDEPEND}"
553     fi
554    
555     echo "${depend}"
556    }
557    
558    # build_mage_script(): helper functions for regen_mage_tree()
559    # generates an mage file with given information in smage file
560    # needs at least:
561    #   PNAME                 name of pkg
562    #   PVER                  version
563    #   PBUILD                revision
564    #   PCATEGORIE            categorie of the pkg
565    #   STATE                 state of pkg stable|unstable|old
566    #   DESCRIPTION           va short description (opt)
567    #   HOMEPAGE              homepage (opt)
568    #   DEPEND                runtime dependencies (opt)
569    #   SDEPEND               add. needed deps to build the pkg (opt)
570    #   PROVIDE               provides a virtual (opt)
571    #
572    # special tags:
573    #   PKGTYPE               type of pkg
574    #   INHERITS              which functions get included
575    #   SPECIAL_FUNCTIONS     special functions wich should also be added
576    #                         warning: they get killed before the build starts !
577    #
578    #   MAGE_TREE_DEST        target destination of the generated tree
579    #   REGEN_MAGE_TREE       set to 'true' to enable this
580    #
581    # gets called with build_mage_script target
582    build_mage_script()
583    {
584     local magefile
585     local dest
586     local target
587     local sym
588     local depname
589    
590     # if MAGE_TREE_DEST not set use BUILDDIR
591     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
592    
593     # determinate which suffix this mage file should get, if any
594     [ -n "$1" ] && target="-$1"
595    
596     # name of magefile
597     magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
598    
599     # destination to magefile
600     dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
601    
602     # show what we are doing
603     echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}"
604     echo "${dest}"
605    
606     install -d "$(dirname ${dest})"
607     # now build the mage file
608     > ${dest}
609    
610     # header
611     echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.55 2007-03-20 01:15:31 niro Exp $' >> ${dest}
612     echo  >> ${dest}
613    
614     # pgkname and state
615     echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
616     echo "STATE=\"${STATE}\"" >> ${dest}
617     echo >> ${dest}
618    
619     # description and homepage
620     echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
621     echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
622     echo >> ${dest}
623    
624     # special tags and vars
625     echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
626    
627     # echo MAGE_TARGETS ## note -target is needed !
628     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
629     echo >> ${dest}
630    
631     # add special vars
632     if [ -n "${SPECIAL_VARS}" ]
633     then
634     local i
635     for i in ${SPECIAL_VARS}
636     do
637     # being tricky here :)
638     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
639     done
640     echo  >> ${dest}
641     fi
642    
643     # add at least all includes
644     if [ -n "${INHERITS}" ]
645     then
646     echo -n "minclude"  >> ${dest}
647     local i
648     for i in ${INHERITS}
649     do
650     echo -n " ${i}"  >> ${dest}
651     done
652     echo  >> ${dest}
653     fi
654     echo >> ${dest}
655    
656     # deps and provides
657     echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
658     echo >> ${dest}
659     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
660     echo >> ${dest}
661     echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
662     echo >> ${dest}
663    
664     # add special functions
665     if [ -n "${SPECIAL_FUNCTIONS}" ]
666     then
667     local i
668     for i in ${SPECIAL_FUNCTIONS}
669     do
670     # add to mage (quotes needed !)
671     typeset -f "${i}" >> ${dest}
672     echo >> ${dest}
673     # unset to be safe (quotes needed !)
674     #unset "${i}" <-- later to get every target built
675     done
676     echo  >> ${dest}
677     fi
678    
679     # pre|post-install|removes
680     typeset -f preinstall >> ${dest}
681     echo  >> ${dest}
682     typeset -f postinstall >> ${dest}
683     echo  >> ${dest}
684     typeset -f preremove >> ${dest}
685     echo  >> ${dest}
686     typeset -f postremove >> ${dest}
687     echo  >> ${dest}
688    }
689    
690    regen_mage_tree()
691    {
692     local i
693    
694     # build them only if requested
695     if [[ ${REGEN_MAGE_TREE} = true ]]
696     then
697     # run it without targets
698     if [ -z "${MAGE_TARGETS}" ]
699     then
700     echo
701     build_mage_script
702     echo
703     else
704    
705     # build for each target an mage file
706     # run it with several targets
707     for i in ${MAGE_TARGETS}
708     do
709     echo
710     build_mage_script "${i}"
711     echo
712     done
713   fi   fi
714     fi
715    
716   #creating distcc tempdir   # now unset all uneeded vars to be safe
717   install -o distcc -g daemon -d ${DISTCC_DIR}   # unset PKGNAME <-- don't do that; smage needs this var
718   chmod 1777 ${DISTCC_DIR}   # unset to be safe (quotes needed !)
719     for i in ${SPECIAL_FUNCTIONS}
720     do
721     unset "${i}"
722     done
723     unset SPECIAL_FUNCTIONS
724     for i in ${SPECIAL_VARS}
725     do
726     unset "${i}"
727     done
728     unset SPECIAL_VARS
729     unset STATE
730     unset DESCRIPTION
731     unset HOMEPAGE
732     unset PKGTYPE
733     unset INHERITS
734     unset DEPEND
735     unset SDEPEND
736     unset PROVIDE
737     unset preinstall
738     unset postinstall
739     unset preremove
740     unset postremove
741    }
742    
743    export_inherits()
744    {
745     local include="$1"
746     shift
747    
748     while [ "$1" ]
749     do
750     local functions="$1"
751    
752     # sanity checks
753     [ -z "${include}" ] && die "export_inherits(): \$include not given."
754     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
755    
756     eval "${functions}() { ${include}_${functions} ; }"
757    
758     # debug
759     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
760    
761     shift
762     done
763    }
764    
765    generate_package_md5sum()
766    {
767     local dest
768     local pcat
769     local pname
770     local pver
771     local pbuild
772     local parch
773     local target
774     local pkgname
775    
776     # very basic getops
777     for i in $*
778     do
779     case $1 in
780     --pcat|-c) shift; pcat="$1" ;;
781     --pname|-n) shift; pname="$1" ;;
782     --pver|-v) shift; pver="$1" ;;
783     --pbuild|-b) shift; pbuild="$1" ;;
784     --parch|a) shift; parch="$1" ;;
785     --target|t) shift; target="$1" ;;
786     esac
787     shift
788     done
789    
790     # sanity checks; abort if not given
791     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
792     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
793     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
794     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
795     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
796    
797     # check needed global vars
798     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
799     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
800    
801     # fix target as it may be empty !
802     [ -n "${target}" ] && target="-${target}"
803    
804     # build pkgname
805     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
806    
807     # build pkg-md5-sum only if requested
808     if [[ ${REGEN_MAGE_TREE} = true ]]
809     then
810     echo -ne "${COLBLUE}===${COLGREEN} generating md5's for ${pkgname}.${PKGSUFFIX} ... ${COLDEFAULT}"
811    
812     # abort if not exist
813     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
814     then
815     echo -e "${COLRED}! exists${COLDEFAULT}"
816     return 0
817     fi
818    
819     # if MAGE_TREE_DEST not set use BUILDDIR
820     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
821    
822     # setup md5 dir
823     dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5"
824     install -d ${dest}
825    
826     # gen md5sum
827     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
828     > ${dest}/${pkgname}.md5
829     echo -e "${COLGREEN}done${COLDEFAULT}"
830   fi   fi
831  }  }
832    
833  setup_ccache_environment(){  source_pkg_build()
834   if [ -x /usr/bin/ccache ]  {
835     if [[ ${PKGTYPE} = virtual ]]
836   then   then
837   echo "Using CCache for compilation ..."   echo "Virtual package detected; src-pkg-tarball not necessary ..."
838   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   return 0
  #unset CC CXX  
839   fi   fi
840    
841     if [[ ! -d ${SOURCEDIR}/${PNAME} ]]
842     then
843     echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
844     return 0
845     fi
846    
847     [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your ${MAGERC} correctly."
848    
849     echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}"
850    
851     # include the smage2 file
852     cp ${SMAGENAME} ${SOURCEDIR}/${PNAME}
853    
854     ( cd ${SOURCEDIR}; tar cvjf ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${PNAME}; )
855     [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR}
856     mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}
857    
858     echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}"
859  }  }
860    
861    
862  # print out our version  # print out our version
863  showversion  showversion
864  echo  echo
# Line 405  then Line 870  then
870   exit 1   exit 1
871  fi  fi
872    
873  #updating smage2-scripts  # updating smage2-scripts
874  if [ "$1" == "update" ]  if [[ $1 = update ]]
875  then  then
876   if [ ! -d ${SOURCEDIR} ]   if [ ! -d ${SOURCEDIR} ]
877   then   then
# Line 416  then Line 881  then
881   exit 0   exit 0
882  fi  fi
883    
884  #creates md5sums for smages to given dir  # creates md5sums for smages to given dir
885  if [ "$1" == "calcmd5" ]  if [[ $1 = calcmd5 ]]
886  then  then
887   if [ $# -ge 3 ]   if [ $# -ge 3 ]
888   then   then
# Line 469  then Line 934  then
934   unset my_SRC_URI_MIRROR   unset my_SRC_URI_MIRROR
935   unset my_SOURCEDIR   unset my_SOURCEDIR
936   done   done
937    
938   echo   echo
939   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
940   echo   echo
# Line 482  then Line 947  then
947   echo   echo
948   exit 1   exit 1
949   fi   fi
950    
951   exit 0   exit 0
952  fi  fi
953    
954  #download sources  # download sources
955  if [ "$1" == "download" -a -n "$2" ]  if [ "$1" == "download" -a -n "$2" ]
956  then  then
  showversion  
957   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
958   then   then
959   install -d ${SMAGESCRIPTSDIR}   install -d ${SMAGESCRIPTSDIR}
# Line 504  then Line 968  then
968   exit 0   exit 0
969  fi  fi
970    
971  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  # regen-mage-tree
972    if [ "$1" == "only-regen-tree" -a -n "$2" ]
973  then  then
974   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   # set correct SMAGENAME
975  fi   SMAGENAME="$2"
976     MD5DIR="$(dirname ${SMAGENAME})/md5"
977     source ${SMAGENAME} || die "regen: smage2 not found"
978    
979  if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]   regen_mage_tree
 then  
  die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."  
 fi  
980    
981  if [ -z "${SOURCEDIR}" ]   # build md5sum for existing packages
982  then   generate_package_md5sum \
983   die "\$SOURCEDIR not found. Please setup your mage.rc correctly."   --pcat "${PCATEGORIE}" \
984  fi   --pname "${PNAME}" \
985     --pver "${PVER}" \
986     --pbuild "${PBUILD}" \
987     --parch "${ARCH}" \
988     --target "${target}"
989    
990  if [ -z "${SMAGESCRIPTSDIR}" ]   exit 0
 then  
  die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."  
991  fi  fi
992    
993  if [ -z "${SMAGE2RSYNC}" ]  if [ "$1" == "--create-src-tarball" -a -n "$2" ]
994  then  then
995   echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."   # set correct SMAGENAME
996   exit 1   SMAGENAME="$2"
997  fi   MD5DIR="$(dirname ${SMAGENAME})/md5"
998    
999  if [ -z "${BINDIR}" ]   echo -e "${COLGREEN}create-src-tarball called for ${COLBLUE}${SMAGENAME}${COLGREEN} ...${COLDEFAULT}"
 then  
  die "no BINDIR variable found in /etc/mage.rc"  
 fi  
1000    
1001  if [ -z "${CHOST}" ]   source ${SMAGENAME} || die "regen: smage2 not found"
 then  
  die "no CHOST variable found in /etc/mage.rc"  
 fi  
1002    
1003  if [ -z "${CFLAGS}" ]   if [[ -d ${SOURCEDIR}/${PNAME} ]]
1004  then   then
1005   die "no CFLAGS variable found in /etc/mage.rc"   echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1006     rm -rf ${SOURCEDIR}/${PKGNAME}
1007     fi
1008    
1009     download_sources
1010     source_pkg_build ${SMAGENAME}
1011     exit 0
1012  fi  fi
1013    
1014  if [ -z "${CXXFLAGS}" ]  if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
1015  then  then
1016   die "no CXXFLAGS variable found in /etc/mage.rc"   SRCPKGTARBALL="${2}"
1017     USE_SRC_PKG_TARBALL=true
1018    
1019     # abort if given file is not a source pkg
1020     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
1021    
1022     # set correct SMAGENAME; use the one that the src_pkg provide
1023     # /path/to/SOURCEDIR/PNAME/SMAGENAME
1024     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
1025    
1026     echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
1027    
1028     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
1029    
1030     # unpack srctarball
1031     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
1032    
1033     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die  "Error unpackung src-tarball ${SRCPKGTARBALL}"
1034    
1035     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
1036  fi  fi
1037    
1038    
1039    [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
1040    [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
1041     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
1042    [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
1043    [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
1044    [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
1045    [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
1046    [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
1047    [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
1048    [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
1049    
1050  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
1051  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
1052  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
1053    
1054  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
1055  echo "Compiling ${PKGNAME}"  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
1056    
1057    # auto regen mage tree if requested
1058    regen_mage_tree
1059    
1060    if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
1061    then
1062     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1063     then
1064     echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1065     rm -rf ${SOURCEDIR}/${PNAME}
1066     fi
1067    fi
1068    
1069  #download sources  # download sources
1070  download_sources  [[ ${USE_SRC_PKG_TARBALL} != true ]] && download_sources
1071    
1072  #fixes some issues with these functions  # fixes some issues with these functions
1073  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
1074  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
1075  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
1076    
1077  #fixes some compile issues  # fixes some compile issues
1078  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
1079  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
1080  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 574  export BINDIR="${BINDIR}" || die "BINDIR Line 1082  export BINDIR="${BINDIR}" || die "BINDIR
1082  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
1083    
1084    
1085  #setup distcc  # setup distcc
1086  #distcc mus be setup *before* ccache, as ccache need to be before distcc in path  # setup for distcc goes *before* ccache, so ccache comes before distcc in path
1087  if [ "${SMAGE_USE_DISTCC}" == "true" ]  [[ ${SMAGE_USE_DISTCC} = true ]] && setup_distcc_environment
 then  
  setup_distcc_environment  
 fi  
   
 #setup ccache  
 if [ "${SMAGE_USE_CCACHE}" == "true" ]  
 then  
  setup_ccache_environment  
 fi  
1088    
1089    # setup ccache
1090    [[ ${SMAGE_USE_CCACHE} = true ]] && setup_ccache_environment
1091    
1092  # small sleep to show our settings  # small sleep to show our settings
1093  sleep 1  sleep 1
1094    
1095  #debug  # cleans up build if a previously one exists
 #echo "CC=${CC}"  
 #echo "CXX=${CXX}"  
 #echo "DISTCC_DIR=${DISTCC_DIR}"  
 #echo "PATH: ${PATH}"  
 #echo "--------------------------------------"  
 #env  
 #echo "--------------------------------------"  
 #read  
 #debug end  
   
 #cleans up build if a previously one exists  
1096  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
1097  then  then
1098   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
1099  fi  fi
1100  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
1101    
1102  #cleans up srcdir if a previously unpacked one exists  # cleans up srcdir if a previously unpacked one exists
1103  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
1104  then  then
1105   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
1106  fi  fi
1107    
1108  #cleans up bindir if a previous build exists or creates a new one  # cleans up bindir if a previous build exists or creates a new one
1109  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
1110  then  then
1111   rm -rf ${BINDIR}   rm -rf ${BINDIR}
1112  fi  fi
1113  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
1114    
1115  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
1116  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
1117  then  then
1118   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
1119  fi  fi
1120    
1121  #cleans up timestamp if one exists  # cleans up timestamp if one exists
1122  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
1123  then  then
1124   mage rmstamp   mage rmstamp
# Line 639  src_compile || die "src_compile failed" Line 1129  src_compile || die "src_compile failed"
1129  src_install || die "src_install failed"  src_install || die "src_install failed"
1130    
1131    
1132  #compressing doc, info & man files  # compressing doc, info & man files
 echo -e "Compressing man-pages ..."  
1133  if [ -d ${BUILDDIR}/builded/usr/share/man ]  if [ -d ${BUILDDIR}/builded/usr/share/man ]
1134  then  then
1135     echo -e "${COLBLUE}===${COLGREEN} compressing man-pages ...${COLDEFAULT}"
1136   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man
1137  fi  fi
1138    
 echo -e "Compressing info-pages ..."  
1139  if [ -d ${BUILDDIR}/builded/usr/share/info ]  if [ -d ${BUILDDIR}/builded/usr/share/info ]
1140  then  then
1141     echo -e "${COLBLUE}===${COLGREEN} compressing info-pages ...${COLDEFAULT}"
1142   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
1143  fi  fi
1144    
# Line 658  case ${NOSTRIP} in Line 1148  case ${NOSTRIP} in
1148   echo -e "NOSTRIP=true detected; Package will not be stripped ..."   echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1149   ;;   ;;
1150   *)   *)
1151   echo -e "Stripping binaries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
1152   mstripbins ${BINDIR}   mstripbins ${BINDIR}
1153   echo -e "Stripping libraries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}"
1154   mstriplibs ${BINDIR}   mstriplibs ${BINDIR}
1155   ;;   ;;
1156  esac  esac
1157    
1158  #the new buildpkg command  # the new buildpkg command
1159  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
1160   true|TRUE|yes|y)   true|TRUE|yes|y)
1161   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
1162   ;;   ;;
1163   *)   *)
1164   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build several targets
1165   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [ -n "${MAGE_TARGETS}" ]
1166     then
1167     for target in ${MAGE_TARGETS}
1168     do
1169     # check if an special target_pkgbuild exists
1170     if typeset -f ${target}_pkgbuild > /dev/null
1171     then
1172     # run it
1173     ${target}_pkgbuild
1174     fi
1175     # now create the target package
1176     ${MLIBDIR}/pkgbuild_dir.sh \
1177     "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1178     ${BINDIR} || die "target: ${target} package-build failed"
1179    
1180     # build pkg-md5-sum if requested
1181     generate_package_md5sum \
1182     --pcat "${PCATEGORIE}" \
1183     --pname "${PNAME}" \
1184     --pver "${PVER}" \
1185     --pbuild "${PBUILD}" \
1186     --parch "${ARCH}" \
1187     --target "${target}"
1188    
1189     echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}"
1190     done
1191     else
1192     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1193    
1194     # build pkg-md5-sum if requested
1195     generate_package_md5sum \
1196     --pcat "${PCATEGORIE}" \
1197     --pname "${PNAME}" \
1198     --pver "${PVER}" \
1199     --pbuild "${PBUILD}" \
1200     --parch "${ARCH}"
1201    
1202     echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
1203     fi
1204    
1205     # build src-pkg-tarball if requested
1206     [[ ${CREATE_SRC_PKG_TARBALL} = true ]] && source_pkg_build ${SMAGENAME}
1207   ;;   ;;
1208  esac  esac
1209    
1210  #for sure  # for sure
1211  unset NOPKGBUILD  unset NOPKGBUILD
1212  unset NOSTRIP  unset NOSTRIP
1213    
1214  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.156  
changed lines
  Added in v.447