Magellan Linux

Diff of /branches/mage-next/src/smage2.sh

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

revision 90 by niro, Tue Jun 28 20:39:35 2005 UTC revision 459 by niro, Tue Apr 10 09:22:22 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.13 2005-06-28 20:39:35 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.56 2007-04-10 09:22:22 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-r17  
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
207     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
208     wget \
209     --passive-ftp \
210     --tries 3 \
211     --continue \
212     --progress bar \
213     --directory-prefix="${my_SOURCEDIR}" \
214     "${my_SRC_URI_MIRROR}"
215     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
241     break
242     else
243     continue
244     fi
245     fi
246     done
247     elif [[ -n $(echo ${my_SRC_URI} | grep 'kde://') ]]
248     then
249     for mirror in ${KDE_MIRRORS}
250     do
251     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|kde:/|${mirror}|g")"
252    
253     if [[ ${FETCHING} = true ]]
254     then
255     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
256     wget \
257     --passive-ftp \
258     --tries 3 \
259     --continue \
260     --progress bar \
261     --directory-prefix="${my_SOURCEDIR}" \
262     "${my_SRC_URI_MIRROR}"
263     if [[ $? = 0 ]]
264     then
265     break
266     else
267     continue
268     fi
269     fi
270     done
271     elif [[ -n $(echo ${my_SRC_URI} | grep 'gnome://') ]]
272     then
273     for mirror in ${GNOME_MIRRORS}
274     do
275     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|gnome:/|${mirror}|g")"
276    
277     if [[ ${FETCHING} = true ]]
278   then   then
279   echo "==> fetching ${my_SRC_URI_MIRROR}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
280   wget \   wget \
281   --passive-ftp \   --passive-ftp \
282   --tries 3 \   --tries 3 \
# Line 159  download_sources() { Line 284  download_sources() {
284   --progress bar \   --progress bar \
285   --directory-prefix="${my_SOURCEDIR}" \   --directory-prefix="${my_SOURCEDIR}" \
286   "${my_SRC_URI_MIRROR}"   "${my_SRC_URI_MIRROR}"
287   if [ "$?" == "0" ]   if [[ $? = 0 ]]
288   then   then
289   break   break
290   else   else
# Line 168  download_sources() { Line 293  download_sources() {
293   fi   fi
294   done   done
295   else   else
296   #echo "DEBUG: ${SRC_URI[${i}]}"   if [[ ${FETCHING} = true ]]
  if [[ ${FETCHING} == true ]]  
297   then   then
298   echo "==> fetching ${my_SRC_URI}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI}${COLDEFAULT}"
299   wget \   wget \
300   --passive-ftp \   --passive-ftp \
301   --tries 3 \   --tries 3 \
# Line 179  download_sources() { Line 303  download_sources() {
303   --progress bar \   --progress bar \
304   --directory-prefix="${my_SOURCEDIR}" \   --directory-prefix="${my_SOURCEDIR}" \
305   "${my_SRC_URI}"   "${my_SRC_URI}"
 # only needed to run through a list of mirrors  
 # if [ "$?" == "0" ]  
 # then  
 # break  
 # else  
 # continue  
 # fi  
306   fi   fi
307   fi   fi
308    
309   # unset them to be shure   # unset them to be shure
310   unset my_SRC_URI   unset my_SRC_URI
311   unset my_SRC_URI_DEST   unset my_SRC_URI_DEST
# Line 198  download_sources() { Line 315  download_sources() {
315    
316   # recheck md5 sums   # recheck md5 sums
317   echo   echo
318   echo ">== Checking MD5 sums:"   echo -e "${COLBLUE}===${COLGREEN} Checking MD5 sums:${COLDEFAULT}"
319   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"
320   echo   echo
321    
# Line 207  download_sources() { Line 324  download_sources() {
324  }  }
325    
326  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
327  src_prepare() {  src_prepare()
328    {
329   echo "no src_prepare defined"   echo "no src_prepare defined"
330   sleep 2   sleep 2
331   return 0   return 0
332  }  }
333    
334  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
335  src_compile() {  src_compile()
336    {
337   echo "no src_compile defined"   echo "no src_compile defined"
338   sleep 2   sleep 2
339   return 0   return 0
340  }  }
341    
342  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
343  src_install() {  src_install()
344    {
345   echo "no src_install defined"   echo "no src_install defined"
346   sleep 2   sleep 2
347   return 0   return 0
348  }  }
349    
350    mlibdir()
351    {
352     local libdir=lib
353     [[ ${ARCH} = x86_64 ]] && libdir=lib64
354    
355  build_mage_script() {   echo "${libdir}"
  return 0  
356  }  }
357    
358  mconfigure() {  mconfigure()
359    {
360   if [ -x ./configure ]   if [ -x ./configure ]
361   then   then
362   ./configure \   ./configure \
363   --prefix=/usr \   --prefix=/usr \
364   --host=${CHOST} \   --host=${CHOST} \
365   --mandir=/usr/share/man \   --mandir=/usr/share/man \
366   --infodir=/usr/share/info \   --infodir=/usr/share/info \
367   --datadir=/usr/share \   --datadir=/usr/share \
368   --sysconfdir=/etc \   --sysconfdir=/etc \
369   --localstatedir=/var/lib \   --localstatedir=/var/lib \
370   "$@" || die "mconfigure failed"   --libdir=/usr/$(mlibdir) \
371     "$@" || die "mconfigure failed"
372   else   else
373   echo "configure is not an executable ..."   echo "configure is not an executable ..."
374   exit 1   exit 1
375   fi   fi
376  }  }
377    
378  minstall() {  minstall()
379   if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then  {
380     if [ -f ./[mM]akefile -o -f ./GNUmakefile ]
381     then
382   make prefix=${BINDIR}/usr \   make prefix=${BINDIR}/usr \
383   datadir=${BINDIR}/usr/share \   datadir=${BINDIR}/usr/share \
384   infodir=${BINDIR}/usr/share/info \   infodir=${BINDIR}/usr/share/info \
385   localstatedir=${BINDIR}/var/lib \   localstatedir=${BINDIR}/var/lib \
386   mandir=${BINDIR}/usr/share/man \   mandir=${BINDIR}/usr/share/man \
387   sysconfdir=${BINDIR}/etc \   sysconfdir=${BINDIR}/etc \
388     libdir=${BINDIR}/usr/$(mlibdir) \
389   "$@" install || die "minstall failed"   "$@" install || die "minstall failed"
390          else          else
391                  die "no Makefile found"                  die "no Makefile found"
392          fi          fi
393  }  }
394    
395  mmake() {  mmake()
396    {
397   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"
398  }  }
399    
400  munpack() {  munpack()
401    {
402   local SRCFILE   local SRCFILE
403   local IFTAR   local IFTAR
404   local DEST   local DEST
405    
406   SRCFILE=$1   SRCFILE=$1
407    
408   if [ -z "$2" ]   if [ -z "$2" ]
409   then   then
410   DEST=${BUILDDIR}   DEST=${BUILDDIR}
411   else   else
412   DEST=$2   DEST=$2
413   fi   fi
414    
415     [[ ! -d ${DEST} ]] && install -d ${DEST}
416    
417   case "${SRCFILE##*.}" in   case "${SRCFILE##*.}" in
418   bz2)   bz2)
419   IFTAR="$(basename $SRCFILE .bz2)"   IFTAR="$(basename $SRCFILE .bz2)"
420   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
421   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
422   then   then
423   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
424   fi   fi
# Line 294  munpack() { Line 426  munpack() {
426   gz)   gz)
427   IFTAR="$(basename $SRCFILE .gz)"   IFTAR="$(basename $SRCFILE .gz)"
428   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
429   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
430   then   then
431   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
432   fi   fi
# Line 311  munpack() { Line 443  munpack() {
443   esac   esac
444  }  }
445    
446  mpatch() {  mpatch()
447    {
448   local PATCHOPTS   local PATCHOPTS
449   local PATCHFILE   local PATCHFILE
450     local i
451    
452   PATCHOPTS=$1   PATCHOPTS=$1
453   PATCHFILE=$2   PATCHFILE=$2
454    
455     if [[ -z $2 ]]
456     then
457     PATCHFILE=$1
458    
459     ## patch level auto-detection, get patch level
460     for ((i=0; i < 10; i++))
461     do
462     patch --dry-run -Np${i} -i ${SOURCEDIR}/${PNAME}/${PATCHFILE} > /dev/null
463     if [[ $? = 0 ]]
464     then
465     PATCHOPTS="-Np${i}"
466     break
467     fi
468     done
469     fi
470    
471     echo -e "${COLBLUE}*** ${COLGREEN}Applying patch '${PATCHFILE}'${COLDEFAULT}"
472   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}
473  }  }
474    
475    
476  minstalldocs() {  minstalldocs()
477    {
478   local docfiles   local docfiles
   
479   docfiles="$@"   docfiles="$@"
480    
481   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
482   then   then
483   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
484   fi   fi
485    
486   for i in ${docfiles}   for i in ${docfiles}
487   do   do
488   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
# Line 340  minstalldocs() { Line 491  minstalldocs() {
491   done   done
492  }  }
493    
494  mstriplibs() {  mstriplibs()
495    {
496   local stripdir="$@"   local stripdir="$@"
497    
498   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
499   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
500  }  }
501    
502  mstripbins() {  mstripbins()
503    {
504   local stripdir="$@"   local stripdir="$@"
505    
506   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
507   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
508  }  }
509    
510  setup_distcc_environment(){  sminclude()
511   if [ -x /usr/bin/distcc ]  {
512     local i
513    
514     if [[ -n "$@" ]]
515   then   then
516   echo "Using DistCC for compilation ..."   for i in $@
517   export PATH=/usr/lib/distcc/bin:${PATH} || die "distcc: could not export new $PATH"   do
518     echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
519     source ${SMAGESCRIPTSDIR}/include/${i}.sminc
520     done
521     echo
522     fi
523    }
524    
525   #export distcc as compiler  setup_distcc_environment()
526  # export CC="distcc"  {
527  # export CXX=distcc   if [ -x /usr/bin/distcc ]
528     then
529     echo -e "${COLBLUE}---${COLGREEN} Using DistCC for compilation ...${COLDEFAULT}"
530     export PATH=/usr/$(mlibdir)/distcc/bin:${PATH} || die "distcc: could not export new $PATH"
531    
532   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
533    
534     # creating distcc tempdir
535     install -o distcc -g daemon -d ${DISTCC_DIR}
536     chmod 1777 ${DISTCC_DIR}
537     fi
538    }
539    
540   #ccache + distcc together  setup_ccache_environment()
541   if [ "${SMAGE_USE_CCACHE}" == "true" ]  {
542   then   if [ -x /usr/bin/ccache ]
543   if [ -x /usr/bin/ccache ]   then
544     echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}"
545     export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
546     fi
547    }
548    
549    
550    # fixes given dependencies to match a MAGE_TARGET
551    # fix_mage_deps -target s/depend # <-- note -target !
552    fix_mage_deps()
553    {
554     local target="$1"
555     local depend="$2"
556     local NDEPEND
557     local sym dep cat pver pname
558    
559     # deps and provides are special
560     # they must be fixed to match the target
561    
562     # run this only if target and depend is not empty
563     if [ -n "${target}" ] && [ -n "${depend}" ]
564     then
565     # fix DEPEND
566     while read sym dep
567     do
568     # ignore empty lines
569     [[ -z ${dep} ]] && continue
570    
571     cat="$(dirname ${dep})"
572     # change if not virtual
573     if [[ ${cat} = virtual ]]
574   then   then
575   echo "Preparing DistCC to work together with CCache ..."   pname="$(basename ${dep})"
576   #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"   else
577  # export CC="ccache distcc"   # fix pver to target-pver
578  # export CXX="ccache distcc"   # to get pname-target-pver
579    
580     # doing it backwards !
581     pver="${dep##*-}"
582     # full pver
583     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
584   fi   fi
585    
586     # do not add empty lines
587     if [ -z "${NDEPEND}" ]
588     then
589     NDEPEND="${sym} ${cat}/${pname}"
590     else
591     NDEPEND="${NDEPEND}
592     ${sym} ${cat}/${pname}"
593     fi
594    
595     unset cat pname pver
596     done << EOF
597    ${depend}
598    EOF
599     # set NDEPEND to DEPEND
600     depend="${NDEPEND}"
601     fi
602    
603     echo "${depend}"
604    }
605    
606    # build_mage_script(): helper functions for regen_mage_tree()
607    # generates an mage file with given information in smage file
608    # needs at least:
609    #   PNAME                 name of pkg
610    #   PVER                  version
611    #   PBUILD                revision
612    #   PCATEGORIE            categorie of the pkg
613    #   STATE                 state of pkg stable|unstable|old
614    #   DESCRIPTION           va short description (opt)
615    #   HOMEPAGE              homepage (opt)
616    #   DEPEND                runtime dependencies (opt)
617    #   SDEPEND               add. needed deps to build the pkg (opt)
618    #   PROVIDE               provides a virtual (opt)
619    #
620    # special tags:
621    #   PKGTYPE               type of pkg
622    #   INHERITS              which functions get included
623    #   SPECIAL_FUNCTIONS     special functions wich should also be added
624    #                         warning: they get killed before the build starts !
625    #
626    #   MAGE_TREE_DEST        target destination of the generated tree
627    #   REGEN_MAGE_TREE       set to 'true' to enable this
628    #
629    # gets called with build_mage_script target
630    build_mage_script()
631    {
632     local magefile
633     local dest
634     local target
635     local sym
636     local depname
637    
638     # if MAGE_TREE_DEST not set use BUILDDIR
639     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
640    
641     # determinate which suffix this mage file should get, if any
642     [ -n "$1" ] && target="-$1"
643    
644     # name of magefile
645     magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
646    
647     # destination to magefile
648     dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
649    
650     # show what we are doing
651     echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}"
652     echo "${dest}"
653    
654     install -d "$(dirname ${dest})"
655     # now build the mage file
656     > ${dest}
657    
658     # header
659     echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.56 2007-04-10 09:22:22 niro Exp $' >> ${dest}
660     echo  >> ${dest}
661    
662     # pgkname and state
663     echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
664     echo "STATE=\"${STATE}\"" >> ${dest}
665     echo >> ${dest}
666    
667     # description and homepage
668     echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
669     echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
670     echo >> ${dest}
671    
672     # special tags and vars
673     echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
674    
675     # echo MAGE_TARGETS ## note -target is needed !
676     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
677     echo >> ${dest}
678    
679     # add special vars
680     if [ -n "${SPECIAL_VARS}" ]
681     then
682     local i
683     for i in ${SPECIAL_VARS}
684     do
685     # being tricky here :)
686     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
687     done
688     echo  >> ${dest}
689     fi
690    
691     # add at least all includes
692     if [ -n "${INHERITS}" ]
693     then
694     echo -n "minclude"  >> ${dest}
695     local i
696     for i in ${INHERITS}
697     do
698     echo -n " ${i}"  >> ${dest}
699     done
700     echo  >> ${dest}
701     fi
702     echo >> ${dest}
703    
704     # deps and provides
705     echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
706     echo >> ${dest}
707     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
708     echo >> ${dest}
709     echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
710     echo >> ${dest}
711    
712     # add special functions
713     if [ -n "${SPECIAL_FUNCTIONS}" ]
714     then
715     local i
716     for i in ${SPECIAL_FUNCTIONS}
717     do
718     # add to mage (quotes needed !)
719     typeset -f "${i}" >> ${dest}
720     echo >> ${dest}
721     # unset to be safe (quotes needed !)
722     #unset "${i}" <-- later to get every target built
723     done
724     echo  >> ${dest}
725     fi
726    
727     # pre|post-install|removes
728     typeset -f preinstall >> ${dest}
729     echo  >> ${dest}
730     typeset -f postinstall >> ${dest}
731     echo  >> ${dest}
732     typeset -f preremove >> ${dest}
733     echo  >> ${dest}
734     typeset -f postremove >> ${dest}
735     echo  >> ${dest}
736    }
737    
738    regen_mage_tree()
739    {
740     local i
741    
742     # build them only if requested
743     if [[ ${REGEN_MAGE_TREE} = true ]]
744     then
745     # run it without targets
746     if [ -z "${MAGE_TARGETS}" ]
747     then
748     echo
749     build_mage_script
750     echo
751     else
752    
753     # build for each target an mage file
754     # run it with several targets
755     for i in ${MAGE_TARGETS}
756     do
757     echo
758     build_mage_script "${i}"
759     echo
760     done
761   fi   fi
762     fi
763    
764   #creating distcc tempdir   # now unset all uneeded vars to be safe
765   install -o distcc -g daemon -d ${DISTCC_DIR}   # unset PKGNAME <-- don't do that; smage needs this var
766   chmod 1777 ${DISTCC_DIR}   # unset to be safe (quotes needed !)
767     for i in ${SPECIAL_FUNCTIONS}
768     do
769     unset "${i}"
770     done
771     unset SPECIAL_FUNCTIONS
772     for i in ${SPECIAL_VARS}
773     do
774     unset "${i}"
775     done
776     unset SPECIAL_VARS
777     unset STATE
778     unset DESCRIPTION
779     unset HOMEPAGE
780     unset PKGTYPE
781     unset INHERITS
782     unset DEPEND
783     unset SDEPEND
784     unset PROVIDE
785     unset preinstall
786     unset postinstall
787     unset preremove
788     unset postremove
789    }
790    
791    export_inherits()
792    {
793     local include="$1"
794     shift
795    
796     while [ "$1" ]
797     do
798     local functions="$1"
799    
800     # sanity checks
801     [ -z "${include}" ] && die "export_inherits(): \$include not given."
802     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
803    
804     eval "${functions}() { ${include}_${functions} ; }"
805    
806     # debug
807     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
808    
809     shift
810     done
811    }
812    
813    generate_package_md5sum()
814    {
815     local dest
816     local pcat
817     local pname
818     local pver
819     local pbuild
820     local parch
821     local target
822     local pkgname
823    
824     # very basic getops
825     for i in $*
826     do
827     case $1 in
828     --pcat|-c) shift; pcat="$1" ;;
829     --pname|-n) shift; pname="$1" ;;
830     --pver|-v) shift; pver="$1" ;;
831     --pbuild|-b) shift; pbuild="$1" ;;
832     --parch|a) shift; parch="$1" ;;
833     --target|t) shift; target="$1" ;;
834     esac
835     shift
836     done
837    
838     # sanity checks; abort if not given
839     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
840     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
841     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
842     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
843     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
844    
845     # check needed global vars
846     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
847     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
848    
849     # fix target as it may be empty !
850     [ -n "${target}" ] && target="-${target}"
851    
852     # build pkgname
853     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
854    
855     # build pkg-md5-sum only if requested
856     if [[ ${REGEN_MAGE_TREE} = true ]]
857     then
858     echo -ne "${COLBLUE}===${COLGREEN} generating md5's for ${pkgname}.${PKGSUFFIX} ... ${COLDEFAULT}"
859    
860     # abort if not exist
861     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
862     then
863     echo -e "${COLRED}! exists${COLDEFAULT}"
864     return 0
865     fi
866    
867     # if MAGE_TREE_DEST not set use BUILDDIR
868     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
869    
870     # setup md5 dir
871     dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5"
872     install -d ${dest}
873    
874     # gen md5sum
875     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
876     > ${dest}/${pkgname}.md5
877     echo -e "${COLGREEN}done${COLDEFAULT}"
878   fi   fi
879  }  }
880    
881  setup_ccache_environment(){  source_pkg_build()
882   if [ -x /usr/bin/ccache ]  {
883     if [[ ${PKGTYPE} = virtual ]]
884   then   then
885   echo "Using CCache for compilation ..."   echo "Virtual package detected; src-pkg-tarball not necessary ..."
886   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   return 0
  #unset CC CXX  
887   fi   fi
888    
889     if [[ ! -d ${SOURCEDIR}/${PNAME} ]]
890     then
891     echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
892     return 0
893     fi
894    
895     [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your ${MAGERC} correctly."
896    
897     echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}"
898    
899     # include the smage2 file
900     cp ${SMAGENAME} ${SOURCEDIR}/${PNAME}
901    
902     ( cd ${SOURCEDIR}; tar cvjf ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${PNAME}; )
903     [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR}
904     mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}
905    
906     echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}"
907  }  }
908    
909    
910  # print out our version  # print out our version
911  showversion  showversion
912  echo  echo
# Line 405  then Line 918  then
918   exit 1   exit 1
919  fi  fi
920    
921  #updating smage2-scripts  # updating smage2-scripts
922  if [ "$1" == "update" ]  if [[ $1 = update ]]
923  then  then
924   if [ ! -d ${SOURCEDIR} ]   if [ ! -d ${SOURCEDIR} ]
925   then   then
# Line 416  then Line 929  then
929   exit 0   exit 0
930  fi  fi
931    
932  #creates md5sums for smages to given dir  # creates md5sums for smages to given dir
933  if [ "$1" == "calcmd5" ]  if [[ $1 = calcmd5 ]]
934  then  then
935   if [ $# -ge 3 ]   if [ $# -ge 3 ]
936   then   then
# Line 469  then Line 982  then
982   unset my_SRC_URI_MIRROR   unset my_SRC_URI_MIRROR
983   unset my_SOURCEDIR   unset my_SOURCEDIR
984   done   done
985    
986   echo   echo
987   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
988   echo   echo
# Line 482  then Line 995  then
995   echo   echo
996   exit 1   exit 1
997   fi   fi
998    
999   exit 0   exit 0
1000  fi  fi
1001    
1002  #download sources  # download sources
1003  if [ "$1" == "download" -a -n "$2" ]  if [ "$1" == "download" -a -n "$2" ]
1004  then  then
  showversion  
1005   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
1006   then   then
1007   install -d ${SMAGESCRIPTSDIR}   install -d ${SMAGESCRIPTSDIR}
# Line 504  then Line 1016  then
1016   exit 0   exit 0
1017  fi  fi
1018    
1019  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  # regen-mage-tree
1020    if [ "$1" == "only-regen-tree" -a -n "$2" ]
1021  then  then
1022   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   # set correct SMAGENAME
1023  fi   SMAGENAME="$2"
1024     MD5DIR="$(dirname ${SMAGENAME})/md5"
1025     source ${SMAGENAME} || die "regen: smage2 not found"
1026    
1027  if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]   regen_mage_tree
 then  
  die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."  
 fi  
1028    
1029  if [ -z "${SOURCEDIR}" ]   # build md5sum for existing packages
1030  then   generate_package_md5sum \
1031   die "\$SOURCEDIR not found. Please setup your mage.rc correctly."   --pcat "${PCATEGORIE}" \
1032  fi   --pname "${PNAME}" \
1033     --pver "${PVER}" \
1034     --pbuild "${PBUILD}" \
1035     --parch "${ARCH}" \
1036     --target "${target}"
1037    
1038  if [ -z "${SMAGESCRIPTSDIR}" ]   exit 0
 then  
  die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."  
1039  fi  fi
1040    
1041  if [ -z "${SMAGE2RSYNC}" ]  if [ "$1" == "--create-src-tarball" -a -n "$2" ]
1042  then  then
1043   echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."   # set correct SMAGENAME
1044   exit 1   SMAGENAME="$2"
1045  fi   MD5DIR="$(dirname ${SMAGENAME})/md5"
1046    
1047  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  
1048    
1049  if [ -z "${CHOST}" ]   source ${SMAGENAME} || die "regen: smage2 not found"
 then  
  die "no CHOST variable found in /etc/mage.rc"  
 fi  
1050    
1051  if [ -z "${CFLAGS}" ]   if [[ -d ${SOURCEDIR}/${PNAME} ]]
1052  then   then
1053   die "no CFLAGS variable found in /etc/mage.rc"   echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1054     rm -rf ${SOURCEDIR}/${PKGNAME}
1055     fi
1056    
1057     download_sources
1058     source_pkg_build ${SMAGENAME}
1059     exit 0
1060  fi  fi
1061    
1062  if [ -z "${CXXFLAGS}" ]  if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
1063  then  then
1064   die "no CXXFLAGS variable found in /etc/mage.rc"   SRCPKGTARBALL="${2}"
1065     USE_SRC_PKG_TARBALL=true
1066    
1067     # abort if given file is not a source pkg
1068     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
1069    
1070     # set correct SMAGENAME; use the one that the src_pkg provide
1071     # /path/to/SOURCEDIR/PNAME/SMAGENAME
1072     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
1073    
1074     echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
1075    
1076     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
1077    
1078     # unpack srctarball
1079     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
1080    
1081     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die  "Error unpackung src-tarball ${SRCPKGTARBALL}"
1082    
1083     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
1084  fi  fi
1085    
1086    
1087    [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
1088    [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
1089     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
1090    [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
1091    [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
1092    [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
1093    [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
1094    [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
1095    [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
1096    [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
1097    
1098  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
1099  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
1100  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
1101    
1102  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
1103  echo "Compiling ${PKGNAME}"  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
1104    
1105  #download sources  # auto regen mage tree if requested
1106  download_sources  regen_mage_tree
1107    
1108  #fixes some issues with these functions  if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
1109    then
1110     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1111     then
1112     echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1113     rm -rf ${SOURCEDIR}/${PNAME}
1114     fi
1115    fi
1116    
1117    # download sources
1118    [[ ${USE_SRC_PKG_TARBALL} != true ]] && download_sources
1119    
1120    # fixes some issues with these functions
1121  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
1122  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
1123  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
1124    
1125  #fixes some compile issues  # fixes some compile issues
1126  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
1127  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
1128  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 574  export BINDIR="${BINDIR}" || die "BINDIR Line 1130  export BINDIR="${BINDIR}" || die "BINDIR
1130  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
1131    
1132    
1133  #setup distcc  # setup distcc
1134  #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
1135  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  
1136    
1137    # setup ccache
1138    [[ ${SMAGE_USE_CCACHE} = true ]] && setup_ccache_environment
1139    
1140  # small sleep to show our settings  # small sleep to show our settings
1141  sleep 1  sleep 1
1142    
1143  #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  
1144  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
1145  then  then
1146   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
1147  fi  fi
1148  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
1149    
1150  #cleans up srcdir if a previously unpacked one exists  # cleans up srcdir if a previously unpacked one exists
1151  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
1152  then  then
1153   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
1154  fi  fi
1155    
1156  #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
1157  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
1158  then  then
1159   rm -rf ${BINDIR}   rm -rf ${BINDIR}
1160  fi  fi
1161  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
1162    
1163  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
1164  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
1165  then  then
1166   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
1167  fi  fi
1168    
1169  #cleans up timestamp if one exists  # cleans up timestamp if one exists
1170  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
1171  then  then
1172   mage rmstamp   mage rmstamp
# Line 639  src_compile || die "src_compile failed" Line 1177  src_compile || die "src_compile failed"
1177  src_install || die "src_install failed"  src_install || die "src_install failed"
1178    
1179    
1180  #compressing doc, info & man files  # compressing doc, info & man files
 echo -e "Compressing man-pages ..."  
1181  if [ -d ${BUILDDIR}/builded/usr/share/man ]  if [ -d ${BUILDDIR}/builded/usr/share/man ]
1182  then  then
1183     echo -e "${COLBLUE}===${COLGREEN} compressing man-pages ...${COLDEFAULT}"
1184   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man
1185  fi  fi
1186    
 echo -e "Compressing info-pages ..."  
1187  if [ -d ${BUILDDIR}/builded/usr/share/info ]  if [ -d ${BUILDDIR}/builded/usr/share/info ]
1188  then  then
1189     echo -e "${COLBLUE}===${COLGREEN} compressing info-pages ...${COLDEFAULT}"
1190   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
1191  fi  fi
1192    
# Line 658  case ${NOSTRIP} in Line 1196  case ${NOSTRIP} in
1196   echo -e "NOSTRIP=true detected; Package will not be stripped ..."   echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1197   ;;   ;;
1198   *)   *)
1199   echo -e "Stripping binaries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
1200   mstripbins ${BINDIR}   mstripbins ${BINDIR}
1201   echo -e "Stripping libraries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}"
1202   mstriplibs ${BINDIR}   mstriplibs ${BINDIR}
1203   ;;   ;;
1204  esac  esac
1205    
1206  #the new buildpkg command  # the new buildpkg command
1207  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
1208   true|TRUE|yes|y)   true|TRUE|yes|y)
1209   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
1210   ;;   ;;
1211   *)   *)
1212   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build several targets
1213   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [ -n "${MAGE_TARGETS}" ]
1214     then
1215     for target in ${MAGE_TARGETS}
1216     do
1217     # check if an special target_pkgbuild exists
1218     if typeset -f ${target}_pkgbuild > /dev/null
1219     then
1220     # run it
1221     ${target}_pkgbuild
1222     fi
1223     # now create the target package
1224     ${MLIBDIR}/pkgbuild_dir.sh \
1225     "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1226     ${BINDIR} || die "target: ${target} package-build failed"
1227    
1228     # build pkg-md5-sum if requested
1229     generate_package_md5sum \
1230     --pcat "${PCATEGORIE}" \
1231     --pname "${PNAME}" \
1232     --pver "${PVER}" \
1233     --pbuild "${PBUILD}" \
1234     --parch "${ARCH}" \
1235     --target "${target}"
1236    
1237     echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}"
1238     done
1239     else
1240     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1241    
1242     # build pkg-md5-sum if requested
1243     generate_package_md5sum \
1244     --pcat "${PCATEGORIE}" \
1245     --pname "${PNAME}" \
1246     --pver "${PVER}" \
1247     --pbuild "${PBUILD}" \
1248     --parch "${ARCH}"
1249    
1250     echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
1251     fi
1252    
1253     # build src-pkg-tarball if requested
1254     [[ ${CREATE_SRC_PKG_TARBALL} = true ]] && source_pkg_build ${SMAGENAME}
1255   ;;   ;;
1256  esac  esac
1257    
1258  #for sure  # for sure
1259  unset NOPKGBUILD  unset NOPKGBUILD
1260  unset NOSTRIP  unset NOSTRIP
1261    
1262  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.90  
changed lines
  Added in v.459