Magellan Linux

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

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

revision 85 by niro, Wed Jun 1 16:10:19 2005 UTC revision 497 by niro, Thu Jun 7 13:16:03 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.11 2005-06-01 16:10:19 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.58 2007-06-07 13:16:03 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-r16  
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}"
  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 197  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 206  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 293  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 310  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    mlibtoolize()
476    {
477     local opts="$@"
478     [[ -z ${opts} ]] && opts="--copy --force"
479    
480     libtoolize ${opts} || die "running: mlibtoolize ${opts}"
481    }
482    
483  minstalldocs() {  minstalldocs()
484    {
485   local docfiles   local docfiles
   
486   docfiles="$@"   docfiles="$@"
487    
488   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
489   then   then
490   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
491   fi   fi
492    
493   for i in ${docfiles}   for i in ${docfiles}
494   do   do
495   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
# Line 339  minstalldocs() { Line 498  minstalldocs() {
498   done   done
499  }  }
500    
501  mstriplibs() {  mstriplibs()
502    {
503   local stripdir="$@"   local stripdir="$@"
504    
505   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
506   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
507  }  }
508    
509  mstripbins() {  mstripbins()
510    {
511   local stripdir="$@"   local stripdir="$@"
512    
513   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
514   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
515  }  }
516    
517  setup_distcc_environment(){  sminclude()
518   if [ -x /usr/bin/distcc ]  {
519     local i
520    
521     if [[ -n "$@" ]]
522   then   then
523   echo "Using DistCC for compilation ..."   for i in $@
524   export PATH=/usr/lib/distcc/bin:${PATH} || die "distcc: could not export new $PATH"   do
525     echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
526     source ${SMAGESCRIPTSDIR}/include/${i}.sminc
527     done
528     echo
529     fi
530    }
531    
532   #export distcc as compiler  setup_distcc_environment()
533  # export CC="distcc"  {
534  # export CXX=distcc   if [ -x /usr/bin/distcc ]
535     then
536     echo -e "${COLBLUE}---${COLGREEN} Using DistCC for compilation ...${COLDEFAULT}"
537     export PATH=/usr/$(mlibdir)/distcc/bin:${PATH} || die "distcc: could not export new $PATH"
538    
539   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
540    
541     # creating distcc tempdir
542     install -o distcc -g daemon -d ${DISTCC_DIR}
543     chmod 1777 ${DISTCC_DIR}
544     fi
545    }
546    
547   #ccache + distcc together  setup_ccache_environment()
548   if [ "${SMAGE_USE_CCACHE}" == "true" ]  {
549   then   if [ -x /usr/bin/ccache ]
550   if [ -x /usr/bin/ccache ]   then
551     echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}"
552     export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
553     fi
554    }
555    
556    
557    # fixes given dependencies to match a MAGE_TARGET
558    # fix_mage_deps -target s/depend # <-- note -target !
559    fix_mage_deps()
560    {
561     local target="$1"
562     local depend="$2"
563     local NDEPEND
564     local sym dep cat pver pname
565    
566     # deps and provides are special
567     # they must be fixed to match the target
568    
569     # run this only if target and depend is not empty
570     if [ -n "${target}" ] && [ -n "${depend}" ]
571     then
572     # fix DEPEND
573     while read sym dep
574     do
575     # ignore empty lines
576     [[ -z ${dep} ]] && continue
577    
578     cat="$(dirname ${dep})"
579     # change if not virtual
580     if [[ ${cat} = virtual ]]
581   then   then
582   echo "Preparing DistCC to work together with CCache ..."   pname="$(basename ${dep})"
583   #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"   else
584  # export CC="ccache distcc"   # fix pver to target-pver
585  # export CXX="ccache distcc"   # to get pname-target-pver
586    
587     # doing it backwards !
588     pver="${dep##*-}"
589     # full pver
590     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
591   fi   fi
592    
593     # do not add empty lines
594     if [ -z "${NDEPEND}" ]
595     then
596     NDEPEND="${sym} ${cat}/${pname}"
597     else
598     NDEPEND="${NDEPEND}
599     ${sym} ${cat}/${pname}"
600     fi
601    
602     unset cat pname pver
603     done << EOF
604    ${depend}
605    EOF
606     # set NDEPEND to DEPEND
607     depend="${NDEPEND}"
608     fi
609    
610     echo "${depend}"
611    }
612    
613    # build_mage_script(): helper functions for regen_mage_tree()
614    # generates an mage file with given information in smage file
615    # needs at least:
616    #   PNAME                 name of pkg
617    #   PVER                  version
618    #   PBUILD                revision
619    #   PCATEGORIE            categorie of the pkg
620    #   STATE                 state of pkg stable|unstable|old
621    #   DESCRIPTION           va short description (opt)
622    #   HOMEPAGE              homepage (opt)
623    #   DEPEND                runtime dependencies (opt)
624    #   SDEPEND               add. needed deps to build the pkg (opt)
625    #   PROVIDE               provides a virtual (opt)
626    #
627    # special tags:
628    #   PKGTYPE               type of pkg
629    #   INHERITS              which functions get included
630    #   SPECIAL_FUNCTIONS     special functions wich should also be added
631    #                         warning: they get killed before the build starts !
632    #
633    #   MAGE_TREE_DEST        target destination of the generated tree
634    #   REGEN_MAGE_TREE       set to 'true' to enable this
635    #
636    # gets called with build_mage_script target
637    build_mage_script()
638    {
639     local magefile
640     local dest
641     local target
642     local sym
643     local depname
644    
645     # if MAGE_TREE_DEST not set use BUILDDIR
646     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
647    
648     # determinate which suffix this mage file should get, if any
649     [ -n "$1" ] && target="-$1"
650    
651     # name of magefile
652     magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
653    
654     # destination to magefile
655     dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
656    
657     # show what we are doing
658     echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}"
659     echo "${dest}"
660    
661     install -d "$(dirname ${dest})"
662     # now build the mage file
663     > ${dest}
664    
665     # header
666     echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.58 2007-06-07 13:16:03 niro Exp $' >> ${dest}
667     echo  >> ${dest}
668    
669     # pgkname and state
670     echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
671     echo "STATE=\"${STATE}\"" >> ${dest}
672     echo >> ${dest}
673    
674     # description and homepage
675     echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
676     echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
677     echo >> ${dest}
678    
679     # special tags and vars
680     echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
681    
682     # echo MAGE_TARGETS ## note -target is needed !
683     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
684     echo >> ${dest}
685    
686     # add special vars
687     if [ -n "${SPECIAL_VARS}" ]
688     then
689     local i
690     for i in ${SPECIAL_VARS}
691     do
692     # being tricky here :)
693     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
694     done
695     echo  >> ${dest}
696     fi
697    
698     # add at least all includes
699     if [ -n "${INHERITS}" ]
700     then
701     echo -n "minclude"  >> ${dest}
702     local i
703     for i in ${INHERITS}
704     do
705     echo -n " ${i}"  >> ${dest}
706     done
707     echo  >> ${dest}
708     fi
709     echo >> ${dest}
710    
711     # deps and provides
712     echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
713     echo >> ${dest}
714     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
715     echo >> ${dest}
716     echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
717     echo >> ${dest}
718    
719     # add special functions
720     if [ -n "${SPECIAL_FUNCTIONS}" ]
721     then
722     local i
723     for i in ${SPECIAL_FUNCTIONS}
724     do
725     # add to mage (quotes needed !)
726     typeset -f "${i}" >> ${dest}
727     echo >> ${dest}
728     # unset to be safe (quotes needed !)
729     #unset "${i}" <-- later to get every target built
730     done
731     echo  >> ${dest}
732     fi
733    
734     # pre|post-install|removes
735     typeset -f preinstall >> ${dest}
736     echo  >> ${dest}
737     typeset -f postinstall >> ${dest}
738     echo  >> ${dest}
739     typeset -f preremove >> ${dest}
740     echo  >> ${dest}
741     typeset -f postremove >> ${dest}
742     echo  >> ${dest}
743    }
744    
745    regen_mage_tree()
746    {
747     local i
748    
749     # build them only if requested
750     if [[ ${REGEN_MAGE_TREE} = true ]]
751     then
752     # run it without targets
753     if [ -z "${MAGE_TARGETS}" ]
754     then
755     echo
756     build_mage_script
757     echo
758     else
759    
760     # build for each target an mage file
761     # run it with several targets
762     for i in ${MAGE_TARGETS}
763     do
764     echo
765     build_mage_script "${i}"
766     echo
767     done
768   fi   fi
769     fi
770    
771   #creating distcc tempdir   # now unset all uneeded vars to be safe
772   install -o distcc -g daemon -d ${DISTCC_DIR}   # unset PKGNAME <-- don't do that; smage needs this var
773   chmod 1777 ${DISTCC_DIR}   # unset to be safe (quotes needed !)
774    # for i in ${SPECIAL_FUNCTIONS}
775    # do
776    # unset "${i}"
777    # done
778     unset SPECIAL_FUNCTIONS
779    # for i in ${SPECIAL_VARS}
780    # do
781    # unset "${i}"
782    # done
783     unset SPECIAL_VARS
784     unset STATE
785     unset DESCRIPTION
786     unset HOMEPAGE
787     unset PKGTYPE
788     unset INHERITS
789     unset DEPEND
790     unset SDEPEND
791     unset PROVIDE
792     unset preinstall
793     unset postinstall
794     unset preremove
795     unset postremove
796    }
797    
798    export_inherits()
799    {
800     local include="$1"
801     shift
802    
803     while [ "$1" ]
804     do
805     local functions="$1"
806    
807     # sanity checks
808     [ -z "${include}" ] && die "export_inherits(): \$include not given."
809     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
810    
811     eval "${functions}() { ${include}_${functions} ; }"
812    
813     # debug
814     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
815    
816     shift
817     done
818    }
819    
820    generate_package_md5sum()
821    {
822     local dest
823     local pcat
824     local pname
825     local pver
826     local pbuild
827     local parch
828     local target
829     local pkgname
830    
831     # very basic getops
832     for i in $*
833     do
834     case $1 in
835     --pcat|-c) shift; pcat="$1" ;;
836     --pname|-n) shift; pname="$1" ;;
837     --pver|-v) shift; pver="$1" ;;
838     --pbuild|-b) shift; pbuild="$1" ;;
839     --parch|a) shift; parch="$1" ;;
840     --target|t) shift; target="$1" ;;
841     esac
842     shift
843     done
844    
845     # sanity checks; abort if not given
846     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
847     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
848     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
849     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
850     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
851    
852     # check needed global vars
853     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
854     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
855    
856     # fix target as it may be empty !
857     [ -n "${target}" ] && target="-${target}"
858    
859     # build pkgname
860     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
861    
862     # build pkg-md5-sum only if requested
863     if [[ ${REGEN_MAGE_TREE} = true ]]
864     then
865     echo -ne "${COLBLUE}===${COLGREEN} generating md5's for ${pkgname}.${PKGSUFFIX} ... ${COLDEFAULT}"
866    
867     # abort if not exist
868     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
869     then
870     echo -e "${COLRED}! exists${COLDEFAULT}"
871     return 0
872     fi
873    
874     # if MAGE_TREE_DEST not set use BUILDDIR
875     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
876    
877     # setup md5 dir
878     dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5"
879     install -d ${dest}
880    
881     # gen md5sum
882     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
883     > ${dest}/${pkgname}.md5
884     echo -e "${COLGREEN}done${COLDEFAULT}"
885   fi   fi
886  }  }
887    
888  setup_ccache_environment(){  source_pkg_build()
889   if [ -x /usr/bin/ccache ]  {
890     if [[ ${PKGTYPE} = virtual ]]
891   then   then
892   echo "Using CCache for compilation ..."   echo "Virtual package detected; src-pkg-tarball not necessary ..."
893   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   return 0
  #unset CC CXX  
894   fi   fi
895    
896     if [[ ! -d ${SOURCEDIR}/${PNAME} ]]
897     then
898     echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
899     return 0
900     fi
901    
902     [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your ${MAGERC} correctly."
903    
904     echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}"
905    
906     # include the smage2 file
907     cp ${SMAGENAME} ${SOURCEDIR}/${PNAME}
908    
909     ( cd ${SOURCEDIR}; tar cvjf ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${PNAME}; )
910     [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR}
911     mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}
912    
913     echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}"
914  }  }
915    
916    
917  # print out our version  # print out our version
918  showversion  showversion
919  echo  echo
# Line 404  then Line 925  then
925   exit 1   exit 1
926  fi  fi
927    
928  #updating smage2-scripts  # updating smage2-scripts
929  if [ "$1" == "update" ]  if [[ $1 = update ]]
930  then  then
931   if [ ! -d ${SOURCEDIR} ]   if [ ! -d ${SOURCEDIR} ]
932   then   then
# Line 415  then Line 936  then
936   exit 0   exit 0
937  fi  fi
938    
939  #creates md5sums for smages to given dir  # creates md5sums for smages to given dir
940  if [ "$1" == "calcmd5" ]  if [[ $1 = calcmd5 ]]
941  then  then
942   if [ $# -ge 3 ]   if [ $# -ge 3 ]
943   then   then
# Line 468  then Line 989  then
989   unset my_SRC_URI_MIRROR   unset my_SRC_URI_MIRROR
990   unset my_SOURCEDIR   unset my_SOURCEDIR
991   done   done
992    
993   echo   echo
994   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
995   echo   echo
# Line 481  then Line 1002  then
1002   echo   echo
1003   exit 1   exit 1
1004   fi   fi
1005    
1006   exit 0   exit 0
1007  fi  fi
1008    
1009  #download sources  # download sources
1010  if [ "$1" == "download" -a -n "$2" ]  if [ "$1" == "download" -a -n "$2" ]
1011  then  then
  showversion  
1012   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
1013   then   then
1014   install -d ${SMAGESCRIPTSDIR}   install -d ${SMAGESCRIPTSDIR}
# Line 503  then Line 1023  then
1023   exit 0   exit 0
1024  fi  fi
1025    
1026  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  # regen-mage-tree
1027    if [ "$1" == "only-regen-tree" -a -n "$2" ]
1028  then  then
1029   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   # set correct SMAGENAME
1030  fi   SMAGENAME="$2"
1031     MD5DIR="$(dirname ${SMAGENAME})/md5"
1032     source ${SMAGENAME} || die "regen: smage2 not found"
1033    
1034  if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]   regen_mage_tree
 then  
  die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."  
 fi  
1035    
1036  if [ -z "${SOURCEDIR}" ]   # build md5sum for existing packages
1037  then   generate_package_md5sum \
1038   die "\$SOURCEDIR not found. Please setup your mage.rc correctly."   --pcat "${PCATEGORIE}" \
1039  fi   --pname "${PNAME}" \
1040     --pver "${PVER}" \
1041     --pbuild "${PBUILD}" \
1042     --parch "${ARCH}" \
1043     --target "${target}"
1044    
1045  if [ -z "${SMAGESCRIPTSDIR}" ]   exit 0
 then  
  die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."  
1046  fi  fi
1047    
1048  if [ -z "${SMAGE2RSYNC}" ]  if [ "$1" == "--create-src-tarball" -a -n "$2" ]
1049  then  then
1050   echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."   # set correct SMAGENAME
1051   exit 1   SMAGENAME="$2"
1052  fi   MD5DIR="$(dirname ${SMAGENAME})/md5"
1053    
1054  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  
1055    
1056  if [ -z "${CHOST}" ]   source ${SMAGENAME} || die "regen: smage2 not found"
 then  
  die "no CHOST variable found in /etc/mage.rc"  
 fi  
1057    
1058  if [ -z "${CFLAGS}" ]   if [[ -d ${SOURCEDIR}/${PNAME} ]]
1059  then   then
1060   die "no CFLAGS variable found in /etc/mage.rc"   echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1061     rm -rf ${SOURCEDIR}/${PKGNAME}
1062     fi
1063    
1064     download_sources
1065     source_pkg_build ${SMAGENAME}
1066     exit 0
1067  fi  fi
1068    
1069  if [ -z "${CXXFLAGS}" ]  if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
1070  then  then
1071   die "no CXXFLAGS variable found in /etc/mage.rc"   SRCPKGTARBALL="${2}"
1072     USE_SRC_PKG_TARBALL=true
1073    
1074     # abort if given file is not a source pkg
1075     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
1076    
1077     # set correct SMAGENAME; use the one that the src_pkg provide
1078     # /path/to/SOURCEDIR/PNAME/SMAGENAME
1079     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
1080    
1081     echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
1082    
1083     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
1084    
1085     # unpack srctarball
1086     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
1087    
1088     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die  "Error unpackung src-tarball ${SRCPKGTARBALL}"
1089    
1090     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
1091  fi  fi
1092    
1093    
1094    [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
1095    [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
1096     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
1097    [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
1098    [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
1099    [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
1100    [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
1101    [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
1102    [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
1103    [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
1104    
1105  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
1106  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
1107  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
1108    
1109  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
1110  echo "Compiling ${PKGNAME}"  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
1111    
1112  #download sources  # auto regen mage tree if requested
1113  download_sources  regen_mage_tree
1114    
1115  #fixes some issues with these functions  if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
1116    then
1117     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1118     then
1119     echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1120     rm -rf ${SOURCEDIR}/${PNAME}
1121     fi
1122    fi
1123    
1124    # download sources
1125    [[ ${USE_SRC_PKG_TARBALL} != true ]] && download_sources
1126    
1127    # fixes some issues with these functions
1128  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
1129  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
1130  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
1131    
1132  #fixes some compile issues  # fixes some compile issues
1133  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
1134  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
1135  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 573  export BINDIR="${BINDIR}" || die "BINDIR Line 1137  export BINDIR="${BINDIR}" || die "BINDIR
1137  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
1138    
1139    
1140  #setup distcc  # setup distcc
1141  #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
1142  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  
1143    
1144    # setup ccache
1145    [[ ${SMAGE_USE_CCACHE} = true ]] && setup_ccache_environment
1146    
1147  # small sleep to show our settings  # small sleep to show our settings
1148  sleep 1  sleep 1
1149    
1150  #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  
1151  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
1152  then  then
1153   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
1154  fi  fi
1155  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
1156    
1157  #cleans up srcdir if a previously unpacked one exists  # cleans up srcdir if a previously unpacked one exists
1158  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
1159  then  then
1160   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
1161  fi  fi
1162    
1163  #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
1164  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
1165  then  then
1166   rm -rf ${BINDIR}   rm -rf ${BINDIR}
1167  fi  fi
1168  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
1169    
1170  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
1171  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
1172  then  then
1173   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
1174  fi  fi
1175    
1176  #cleans up timestamp if one exists  # cleans up timestamp if one exists
1177  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
1178  then  then
1179   mage rmstamp   mage rmstamp
# Line 638  src_compile || die "src_compile failed" Line 1184  src_compile || die "src_compile failed"
1184  src_install || die "src_install failed"  src_install || die "src_install failed"
1185    
1186    
1187  #compressing doc, info & man files  # compressing doc, info & man files
 echo -e "Compressing man-pages ..."  
1188  if [ -d ${BUILDDIR}/builded/usr/share/man ]  if [ -d ${BUILDDIR}/builded/usr/share/man ]
1189  then  then
1190     echo -e "${COLBLUE}===${COLGREEN} compressing man-pages ...${COLDEFAULT}"
1191   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man
1192  fi  fi
1193    
 echo -e "Compressing info-pages ..."  
1194  if [ -d ${BUILDDIR}/builded/usr/share/info ]  if [ -d ${BUILDDIR}/builded/usr/share/info ]
1195  then  then
1196     echo -e "${COLBLUE}===${COLGREEN} compressing info-pages ...${COLDEFAULT}"
1197   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
1198  fi  fi
1199    
# Line 657  case ${NOSTRIP} in Line 1203  case ${NOSTRIP} in
1203   echo -e "NOSTRIP=true detected; Package will not be stripped ..."   echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1204   ;;   ;;
1205   *)   *)
1206   echo -e "Stripping binaries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
1207   mstripbins ${BINDIR}   mstripbins ${BINDIR}
1208   echo -e "Stripping libraries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}"
1209   mstriplibs ${BINDIR}   mstriplibs ${BINDIR}
1210   ;;   ;;
1211  esac  esac
1212    
1213  #the new buildpkg command  # the new buildpkg command
1214  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
1215   true|TRUE|yes|y)   true|TRUE|yes|y)
1216   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
1217   ;;   ;;
1218   *)   *)
1219   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build several targets
1220   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [ -n "${MAGE_TARGETS}" ]
1221     then
1222     for target in ${MAGE_TARGETS}
1223     do
1224     # check if an special target_pkgbuild exists
1225     if typeset -f ${target}_pkgbuild > /dev/null
1226     then
1227     # run it
1228     ${target}_pkgbuild
1229     fi
1230     # now create the target package
1231     ${MLIBDIR}/pkgbuild_dir.sh \
1232     "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1233     ${BINDIR} || die "target: ${target} package-build failed"
1234    
1235     # build pkg-md5-sum if requested
1236     generate_package_md5sum \
1237     --pcat "${PCATEGORIE}" \
1238     --pname "${PNAME}" \
1239     --pver "${PVER}" \
1240     --pbuild "${PBUILD}" \
1241     --parch "${ARCH}" \
1242     --target "${target}"
1243    
1244     echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}"
1245     done
1246     else
1247     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1248    
1249     # build pkg-md5-sum if requested
1250     generate_package_md5sum \
1251     --pcat "${PCATEGORIE}" \
1252     --pname "${PNAME}" \
1253     --pver "${PVER}" \
1254     --pbuild "${PBUILD}" \
1255     --parch "${ARCH}"
1256    
1257     echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
1258     fi
1259    
1260     # build src-pkg-tarball if requested
1261     [[ ${CREATE_SRC_PKG_TARBALL} = true ]] && source_pkg_build ${SMAGENAME}
1262   ;;   ;;
1263  esac  esac
1264    
1265  #for sure  # for sure
1266  unset NOPKGBUILD  unset NOPKGBUILD
1267  unset NOSTRIP  unset NOSTRIP
1268    
1269  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.85  
changed lines
  Added in v.497