Magellan Linux

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

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

revision 186 by niro, Tue Aug 16 23:23:33 2005 UTC revision 833 by niro, Wed Apr 29 20:20:46 2009 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.21 2005-08-16 23:23:26 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.62 2007-11-28 10:47:50 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 ##
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)"  SMAGEVERSION="$( < ${MLIBDIR}/version)"
23    
24    ## 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  # export default C locale
49  export LC_ALL=C  export LC_ALL=C
50    
51  source /etc/mage.rc  source /etc/mage.rc.global
52    source ${MAGERC}
53    
54  showversion() {  # 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()
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 101  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 113  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 145  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 162  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 171  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 182  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 201  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 210  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 \   --build=${CHOST} \
366   --infodir=/usr/share/info \   --mandir=/usr/share/man \
367   --datadir=/usr/share \   --infodir=/usr/share/info \
368   --sysconfdir=/etc \   --datadir=/usr/share \
369   --localstatedir=/var/lib \   --sysconfdir=/etc \
370   "$@" || die "mconfigure failed"   --localstatedir=/var/lib \
371     --libdir=/usr/$(mlibdir) \
372     "$@" || die "mconfigure failed"
373   else   else
374   echo "configure is not an executable ..."   echo "configure is not an executable ..."
375   exit 1   exit 1
376   fi   fi
377  }  }
378    
379  minstall() {  minstall()
380   if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then  {
381     if [ -f ./[mM]akefile -o -f ./GNUmakefile ]
382     then
383   make prefix=${BINDIR}/usr \   make prefix=${BINDIR}/usr \
384   datadir=${BINDIR}/usr/share \   datadir=${BINDIR}/usr/share \
385   infodir=${BINDIR}/usr/share/info \   infodir=${BINDIR}/usr/share/info \
386   localstatedir=${BINDIR}/var/lib \   localstatedir=${BINDIR}/var/lib \
387   mandir=${BINDIR}/usr/share/man \   mandir=${BINDIR}/usr/share/man \
388   sysconfdir=${BINDIR}/etc \   sysconfdir=${BINDIR}/etc \
389     libdir=${BINDIR}/usr/$(mlibdir) \
390   "$@" install || die "minstall failed"   "$@" install || die "minstall failed"
391          else          else
392                  die "no Makefile found"                  die "no Makefile found"
393          fi          fi
394  }  }
395    
396  mmake() {  mmake()
397    {
398   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"
399  }  }
400    
401  munpack() {  munpack()
402    {
403   local SRCFILE   local SRCFILE
404   local IFTAR   local IFTAR
405   local DEST   local DEST
406    
407   SRCFILE=$1   SRCFILE=$1
408    
409   if [ -z "$2" ]   if [[ -z $2 ]]
410   then   then
411   DEST=${BUILDDIR}   DEST=${BUILDDIR}
412   else   else
413   DEST=$2   DEST=$2
414   fi   fi
415    
416     [[ ! -d ${DEST} ]] && install -d ${DEST}
417    
418   case "${SRCFILE##*.}" in   case "${SRCFILE##*.}" in
419   bz2)   bz2)
420   IFTAR="$(basename $SRCFILE .bz2)"   IFTAR="$(basename $SRCFILE .bz2)"
421   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
422   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
423   then   then
424   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tar.bz2 unpack failed."
425     else
426     pushd ${DEST} > /dev/null
427     bzcat ${SOURCEDIR}/${PNAME}/${SRCFILE} > ${DEST}/$(basename ${SRCFILE} .bz2) || die ".bz2 unpack failed."
428     popd > /dev/null
429   fi   fi
430   ;;   ;;
431   gz)   gz)
432   IFTAR="$(basename $SRCFILE .gz)"   IFTAR="$(basename $SRCFILE .gz)"
433   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
434   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
435   then   then
436   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tar.gz unpack failed."
437     else
438     pushd ${DEST} > /dev/null
439     zcat ${SOURCEDIR}/${PNAME}/${SRCFILE} > ${DEST}/$(basename ${SRCFILE} .gz) || die ".gz unpack failed."
440     popd > /dev/null
441   fi   fi
442   ;;   ;;
443   tbz2)   tbz2|mpks|mpk)
444   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tbz2 unpack failed."
445   ;;   ;;
446   tgz)   tgz)
447   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tgz unpack failed."
448     ;;
449     rar)
450     unrar x ${SOURCEDIR}/${PNAME}/${SRCFILE} ${DEST}  || die ".rar unpack failed."
451     ;;
452     zip|xpi)
453     unzip ${SOURCEDIR}/${PNAME}/${SRCFILE} -d ${DEST} || die ".zip unpack failed."
454     ;;
455     rpm)
456     pushd ${DEST} > /dev/null
457     rpm2targz ${SOURCEDIR}/${PNAME}/${SRCFILE} || die "rpm2targz: .rpm unpack failed."
458     tar --no-same-owner -xvzf ${SRCFILE/.rpm/.tar.gz} || die "tar: .rpm unpack failed."
459     if [[ -f ${DEST}/${SRCFILE/.rpm/.tar.gz} ]]
460     then
461     rm ${DEST}/${SRCFILE/.rpm/.tar.gz}
462     fi
463   ;;   ;;
464   *)   *)
465   die "munpack failed"   die "munpack failed"
# Line 314  munpack() { Line 467  munpack() {
467   esac   esac
468  }  }
469    
470  mpatch() {  mpatch()
471    {
472   local PATCHOPTS   local PATCHOPTS
473   local PATCHFILE   local PATCHFILE
474     local i
475    
476   PATCHOPTS=$1   PATCHOPTS=$1
477   PATCHFILE=$2   PATCHFILE=$2
478    
479     if [[ -z $2 ]]
480     then
481     PATCHFILE=$1
482    
483     ## patch level auto-detection, get patch level
484     for ((i=0; i < 10; i++))
485     do
486     patch --dry-run -Np${i} -i ${SOURCEDIR}/${PNAME}/${PATCHFILE} > /dev/null
487     if [[ $? = 0 ]]
488     then
489     PATCHOPTS="-Np${i}"
490     break
491     fi
492     done
493     fi
494    
495     echo -e "${COLBLUE}*** ${COLGREEN}Applying patch '${PATCHFILE}'${COLDEFAULT}"
496   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}
497  }  }
498    
499    mlibtoolize()
500    {
501     local opts="$@"
502     [[ -z ${opts} ]] && opts="--copy --force"
503    
504     libtoolize ${opts} || die "running: mlibtoolize ${opts}"
505    }
506    
507  minstalldocs() {  minstalldocs()
508    {
509   local docfiles   local docfiles
   
510   docfiles="$@"   docfiles="$@"
511    
512   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
513   then   then
514   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
515   fi   fi
516    
517   for i in ${docfiles}   for i in ${docfiles}
518   do   do
519   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
# Line 343  minstalldocs() { Line 522  minstalldocs() {
522   done   done
523  }  }
524    
525  mstriplibs() {  mstriplibs()
526    {
527   local stripdir="$@"   local stripdir="$@"
528    
529   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
530   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
531  }  }
532    
533  mstripbins() {  mstripbins()
534    {
535   local stripdir="$@"   local stripdir="$@"
536    
537   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
538   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
539  }  }
540    
541  sminclude() {  sminclude()
542    {
543   local i   local i
544    
545   if [[ -n "$@" ]]   if [[ -n "$@" ]]
# Line 371  sminclude() { Line 553  sminclude() {
553   fi   fi
554  }  }
555    
556  setup_distcc_environment(){  setup_distcc_environment()
557    {
558   if [ -x /usr/bin/distcc ]   if [ -x /usr/bin/distcc ]
559   then   then
560   echo "Using DistCC for compilation ..."   echo -e "${COLBLUE}---${COLGREEN} Using DistCC for compilation ...${COLDEFAULT}"
561   export PATH=/usr/lib/distcc/bin:${PATH} || die "distcc: could not export new $PATH"   export PATH=/usr/$(mlibdir)/distcc/bin:${PATH} || die "distcc: could not export new $PATH"
   
  #export distcc as compiler  
 # export CC="distcc"  
 # export CXX=distcc  
562    
563   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
564    
565     # creating distcc tempdir
566     install -o distcc -g daemon -d ${DISTCC_DIR}
567     chmod 1777 ${DISTCC_DIR}
568     fi
569    }
570    
571   #ccache + distcc together  setup_ccache_environment()
572   if [ "${SMAGE_USE_CCACHE}" == "true" ]  {
573   then   if [ -x /usr/bin/ccache ]
574   if [ -x /usr/bin/ccache ]   then
575     echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}"
576     export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
577     fi
578    }
579    
580    
581    # fixes given dependencies to match a MAGE_TARGET
582    # fix_mage_deps -target s/depend # <-- note -target !
583    fix_mage_deps()
584    {
585     local target="$1"
586     local depend="$2"
587     local NDEPEND
588     local sym dep cat pver pname
589    
590     # deps and provides are special
591     # they must be fixed to match the target
592    
593     # run this only if target and depend is not empty
594     if [ -n "${target}" ] && [ -n "${depend}" ]
595     then
596     # fix DEPEND
597     while read sym dep
598     do
599     # ignore empty lines
600     [[ -z ${dep} ]] && continue
601    
602     cat="$(dirname ${dep})"
603     # change if not virtual
604     if [[ ${cat} = virtual ]]
605   then   then
606   echo "Preparing DistCC to work together with CCache ..."   pname="$(basename ${dep})"
607   #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"   else
608  # export CC="ccache distcc"   # fix pver to target-pver
609  # export CXX="ccache distcc"   # to get pname-target-pver
610    
611     # doing it backwards !
612     pver="${dep##*-}"
613     # full pver
614     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
615   fi   fi
616    
617     # do not add empty lines
618     if [ -z "${NDEPEND}" ]
619     then
620     NDEPEND="${sym} ${cat}/${pname}"
621     else
622     NDEPEND="${NDEPEND}
623     ${sym} ${cat}/${pname}"
624     fi
625    
626     unset cat pname pver
627     done << EOF
628    ${depend}
629    EOF
630     # set NDEPEND to DEPEND
631     depend="${NDEPEND}"
632     fi
633    
634     echo "${depend}"
635    }
636    
637    # build_mage_script(): helper functions for regen_mage_tree()
638    # generates an mage file with given information in smage file
639    # needs at least:
640    #   PNAME                 name of pkg
641    #   PVER                  version
642    #   PBUILD                revision
643    #   PCATEGORIE            categorie of the pkg
644    #   STATE                 state of pkg stable|unstable|old
645    #   DESCRIPTION           va short description (opt)
646    #   HOMEPAGE              homepage (opt)
647    #   DEPEND                runtime dependencies (opt)
648    #   SDEPEND               add. needed deps to build the pkg (opt)
649    #   PROVIDE               provides a virtual (opt)
650    #
651    # special tags:
652    #   PKGTYPE               type of pkg
653    #   INHERITS              which functions get included
654    #   SPECIAL_FUNCTIONS     special functions which should also be added
655    #                         warning: they get killed before the build starts !
656    #
657    #   MAGE_TREE_DEST        target destination of the generated tree
658    #   REGEN_MAGE_TREE       set to 'true' to enable this
659    #
660    # gets called with build_mage_script target
661    build_mage_script()
662    {
663     local magefile
664     local dest
665     local target
666     local sym
667     local depname
668    
669     # if MAGE_TREE_DEST not set use BUILDDIR
670     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
671    
672     # determinate which suffix this mage file should get, if any
673     [ -n "$1" ] && target="-$1"
674    
675     # name of magefile
676     magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
677    
678     # destination to magefile
679     dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
680    
681     # show what we are doing
682     echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}"
683     echo "${dest}"
684    
685     install -d "$(dirname ${dest})"
686     # now build the mage file
687     > ${dest}
688    
689     # header
690     echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.62 2007-11-28 10:47:50 niro Exp $' >> ${dest}
691     echo  >> ${dest}
692    
693     # pgkname and state
694     echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
695     echo "STATE=\"${STATE}\"" >> ${dest}
696     echo >> ${dest}
697    
698     # description and homepage
699     echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
700     echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
701     echo >> ${dest}
702    
703     # special tags and vars
704     echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
705    
706     # echo MAGE_TARGETS ## note -target is needed !
707     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
708     echo >> ${dest}
709    
710     # add special vars
711     if [ -n "${SPECIAL_VARS}" ]
712     then
713     local i
714     for i in ${SPECIAL_VARS}
715     do
716     # being tricky here :)
717     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
718     done
719     echo  >> ${dest}
720     fi
721    
722     # add at least all includes
723     if [ -n "${INHERITS}" ]
724     then
725     echo -n "minclude"  >> ${dest}
726     local i
727     for i in ${INHERITS}
728     do
729     echo -n " ${i}"  >> ${dest}
730     done
731     echo  >> ${dest}
732     fi
733     echo >> ${dest}
734    
735     # deps and provides
736     echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
737     echo >> ${dest}
738     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
739     echo >> ${dest}
740     echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
741     echo >> ${dest}
742    
743     # add special functions
744     if [ -n "${SPECIAL_FUNCTIONS}" ]
745     then
746     local i
747     for i in ${SPECIAL_FUNCTIONS}
748     do
749     # add to mage (quotes needed !)
750     typeset -f "${i}" >> ${dest}
751     echo >> ${dest}
752     # unset to be safe (quotes needed !)
753     #unset "${i}" <-- later to get every target built
754     done
755     echo  >> ${dest}
756     fi
757    
758     # pre|post-install|removes
759     typeset -f preinstall >> ${dest}
760     echo  >> ${dest}
761     typeset -f postinstall >> ${dest}
762     echo  >> ${dest}
763     typeset -f preremove >> ${dest}
764     echo  >> ${dest}
765     typeset -f postremove >> ${dest}
766     echo  >> ${dest}
767    }
768    
769    regen_mage_tree()
770    {
771     local i
772    
773     # build them only if requested
774     if [[ ${REGEN_MAGE_TREE} = true ]]
775     then
776     # run it without targets
777     if [ -z "${MAGE_TARGETS}" ]
778     then
779     echo
780     build_mage_script
781     echo
782     else
783    
784     # build for each target an mage file
785     # run it with several targets
786     for i in ${MAGE_TARGETS}
787     do
788     echo
789     build_mage_script "${i}"
790     echo
791     done
792   fi   fi
793     fi
794    
795   #creating distcc tempdir   # now unset all uneeded vars to be safe
796   install -o distcc -g daemon -d ${DISTCC_DIR}   # unset PKGNAME <-- don't do that; smage needs this var
797   chmod 1777 ${DISTCC_DIR}   # unset to be safe (quotes needed !)
798    # for i in ${SPECIAL_FUNCTIONS}
799    # do
800    # unset "${i}"
801    # done
802     unset SPECIAL_FUNCTIONS
803    # for i in ${SPECIAL_VARS}
804    # do
805    # unset "${i}"
806    # done
807     unset SPECIAL_VARS
808     unset STATE
809     unset DESCRIPTION
810     unset HOMEPAGE
811     unset PKGTYPE
812     unset INHERITS
813     unset DEPEND
814     unset SDEPEND
815     unset PROVIDE
816     unset preinstall
817     unset postinstall
818     unset preremove
819     unset postremove
820    }
821    
822    export_inherits()
823    {
824     local include="$1"
825     shift
826    
827     while [ "$1" ]
828     do
829     local functions="$1"
830    
831     # sanity checks
832     [ -z "${include}" ] && die "export_inherits(): \$include not given."
833     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
834    
835     eval "${functions}() { ${include}_${functions} ; }"
836    
837     # debug
838     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
839    
840     shift
841     done
842    }
843    
844    generate_package_md5sum()
845    {
846     local dest
847     local pcat
848     local pname
849     local pver
850     local pbuild
851     local parch
852     local target
853     local pkgname
854    
855     # very basic getops
856     for i in $*
857     do
858     case $1 in
859     --pcat|-c) shift; pcat="$1" ;;
860     --pname|-n) shift; pname="$1" ;;
861     --pver|-v) shift; pver="$1" ;;
862     --pbuild|-b) shift; pbuild="$1" ;;
863     --parch|a) shift; parch="$1" ;;
864     --target|t) shift; target="$1" ;;
865     esac
866     shift
867     done
868    
869     # sanity checks; abort if not given
870     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
871     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
872     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
873     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
874     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
875    
876     # check needed global vars
877     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
878     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
879    
880     # fix target as it may be empty !
881     [ -n "${target}" ] && target="-${target}"
882    
883     # build pkgname
884     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
885    
886     # build pkg-md5-sum only if requested
887     if [[ ${REGEN_MAGE_TREE} = true ]]
888     then
889     echo -ne "${COLBLUE}===${COLGREEN} generating md5's for ${pkgname}.${PKGSUFFIX} ... ${COLDEFAULT}"
890    
891     # abort if not exist
892     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
893     then
894     echo -e "${COLRED}! exists${COLDEFAULT}"
895     return 0
896     fi
897    
898     # if MAGE_TREE_DEST not set use BUILDDIR
899     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
900    
901     # setup md5 dir
902     dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5"
903     install -d ${dest}
904    
905     # gen md5sum
906     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
907     > ${dest}/${pkgname}.md5
908     echo -e "${COLGREEN}done${COLDEFAULT}"
909   fi   fi
910  }  }
911    
912  setup_ccache_environment(){  source_pkg_build()
913   if [ -x /usr/bin/ccache ]  {
914     if [[ ${PKGTYPE} = virtual ]]
915   then   then
916   echo "Using CCache for compilation ..."   echo "Virtual package detected; src-pkg-tarball not necessary ..."
917   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   return 0
  #unset CC CXX  
918   fi   fi
919    
920     if [[ ! -d ${SOURCEDIR}/${PNAME} ]]
921     then
922     echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
923     return 0
924     fi
925    
926     [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your ${MAGERC} correctly."
927    
928     echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}"
929    
930     # include the smage2 file
931     cp ${SMAGENAME} ${SOURCEDIR}/${PNAME}
932    
933     ( cd ${SOURCEDIR}; tar cvjf ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${PNAME}; )
934     [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR}
935     mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}
936    
937     echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}"
938  }  }
939    
940    
941  # print out our version  # print out our version
942  showversion  showversion
943  echo  echo
# Line 422  then Line 949  then
949   exit 1   exit 1
950  fi  fi
951    
952  #updating smage2-scripts  # updating smage2-scripts
953  if [ "$1" == "update" ]  if [[ $1 = update ]]
954  then  then
955   if [ ! -d ${SOURCEDIR} ]   if [ ! -d ${SOURCEDIR} ]
956   then   then
# Line 433  then Line 960  then
960   exit 0   exit 0
961  fi  fi
962    
963  #creates md5sums for smages to given dir  # creates md5sums for smages to given dir
964  if [ "$1" == "calcmd5" ]  if [[ $1 = calcmd5 ]]
965  then  then
966   if [ $# -ge 3 ]   if [ $# -ge 3 ]
967   then   then
# Line 486  then Line 1013  then
1013   unset my_SRC_URI_MIRROR   unset my_SRC_URI_MIRROR
1014   unset my_SOURCEDIR   unset my_SOURCEDIR
1015   done   done
1016    
1017   echo   echo
1018   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
1019   echo   echo
# Line 499  then Line 1026  then
1026   echo   echo
1027   exit 1   exit 1
1028   fi   fi
1029    
1030   exit 0   exit 0
1031  fi  fi
1032    
1033  #download sources  # download sources
1034  if [ "$1" == "download" -a -n "$2" ]  if [ "$1" == "download" -a -n "$2" ]
1035  then  then
1036   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
# Line 520  then Line 1047  then
1047   exit 0   exit 0
1048  fi  fi
1049    
1050  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  # regen-mage-tree
1051    if [ "$1" == "only-regen-tree" -a -n "$2" ]
1052  then  then
1053   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   # set correct SMAGENAME
1054  fi   SMAGENAME="$2"
1055     MD5DIR="$(dirname ${SMAGENAME})/md5"
1056     source ${SMAGENAME} || die "regen: smage2 not found"
1057    
1058  if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]   regen_mage_tree
 then  
  die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."  
 fi  
1059    
1060  if [ -z "${SOURCEDIR}" ]   # build md5sum for existing packages
1061  then   generate_package_md5sum \
1062   die "\$SOURCEDIR not found. Please setup your mage.rc correctly."   --pcat "${PCATEGORIE}" \
1063  fi   --pname "${PNAME}" \
1064     --pver "${PVER}" \
1065     --pbuild "${PBUILD}" \
1066     --parch "${ARCH}" \
1067     --target "${target}"
1068    
1069  if [ -z "${SMAGESCRIPTSDIR}" ]   exit 0
 then  
  die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."  
1070  fi  fi
1071    
1072  if [ -z "${SMAGE2RSYNC}" ]  if [ "$1" == "--create-src-tarball" -a -n "$2" ]
1073  then  then
1074   echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."   # set correct SMAGENAME
1075   exit 1   SMAGENAME="$2"
1076  fi   MD5DIR="$(dirname ${SMAGENAME})/md5"
1077    
1078  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  
1079    
1080  if [ -z "${CHOST}" ]   source ${SMAGENAME} || die "regen: smage2 not found"
 then  
  die "no CHOST variable found in /etc/mage.rc"  
 fi  
1081    
1082  if [ -z "${CFLAGS}" ]   if [[ -d ${SOURCEDIR}/${PNAME} ]]
1083  then   then
1084   die "no CFLAGS variable found in /etc/mage.rc"   echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1085     rm -rf ${SOURCEDIR}/${PKGNAME}
1086     fi
1087    
1088     download_sources
1089     source_pkg_build ${SMAGENAME}
1090     exit 0
1091  fi  fi
1092    
1093  if [ -z "${CXXFLAGS}" ]  if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
1094  then  then
1095   die "no CXXFLAGS variable found in /etc/mage.rc"   SRCPKGTARBALL="${2}"
1096     USE_SRC_PKG_TARBALL=true
1097    
1098     # abort if given file is not a source pkg
1099     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
1100    
1101     # set correct SMAGENAME; use the one that the src_pkg provide
1102     # /path/to/SOURCEDIR/PNAME/SMAGENAME
1103     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
1104    
1105     echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
1106    
1107     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
1108    
1109     # unpack srctarball
1110     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
1111    
1112     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die  "Error unpackung src-tarball ${SRCPKGTARBALL}"
1113    
1114     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
1115  fi  fi
1116    
1117    
1118    [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
1119    [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
1120     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
1121    [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
1122    [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
1123    [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
1124    [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
1125    [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
1126    [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
1127    [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
1128    
1129  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
1130  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
1131  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
1132    
1133  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
1134  echo "Compiling ${PKGNAME}"  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
1135    
1136  #download sources  # auto regen mage tree if requested
1137  download_sources  regen_mage_tree
1138    
1139  #fixes some issues with these functions  if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
1140    then
1141     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1142     then
1143     echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1144     rm -rf ${SOURCEDIR}/${PNAME}
1145     fi
1146    fi
1147    
1148    # download sources
1149    [[ ${USE_SRC_PKG_TARBALL} != true ]] && download_sources
1150    
1151    # fixes some issues with these functions
1152  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
1153  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
1154  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
1155    
1156  #fixes some compile issues  # fixes some compile issues
1157  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
1158  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
1159  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 590  export BINDIR="${BINDIR}" || die "BINDIR Line 1161  export BINDIR="${BINDIR}" || die "BINDIR
1161  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
1162    
1163    
1164  #setup distcc  # setup distcc
1165  #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
1166  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  
1167    
1168    # setup ccache
1169    [[ ${SMAGE_USE_CCACHE} = true ]] && setup_ccache_environment
1170    
1171  # small sleep to show our settings  # small sleep to show our settings
1172  sleep 1  sleep 1
1173    
1174  #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  
1175  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
1176  then  then
1177   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
1178  fi  fi
1179  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
1180    
1181  #cleans up srcdir if a previously unpacked one exists  # cleans up srcdir if a previously unpacked one exists
1182  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
1183  then  then
1184   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
1185  fi  fi
1186    
1187  #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
1188  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
1189  then  then
1190   rm -rf ${BINDIR}   rm -rf ${BINDIR}
1191  fi  fi
1192  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
1193    
1194  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
1195  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
1196  then  then
1197   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
1198  fi  fi
1199    
1200  #cleans up timestamp if one exists  # cleans up timestamp if one exists
1201  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
1202  then  then
1203   mage rmstamp   mage rmstamp
# Line 655  src_compile || die "src_compile failed" Line 1208  src_compile || die "src_compile failed"
1208  src_install || die "src_install failed"  src_install || die "src_install failed"
1209    
1210    
1211  #compressing doc, info & man files  # compressing doc, info & man files
 echo -e "Compressing man-pages ..."  
1212  if [ -d ${BUILDDIR}/builded/usr/share/man ]  if [ -d ${BUILDDIR}/builded/usr/share/man ]
1213  then  then
1214     echo -e "${COLBLUE}===${COLGREEN} compressing man-pages ...${COLDEFAULT}"
1215   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man
1216  fi  fi
1217    
 echo -e "Compressing info-pages ..."  
1218  if [ -d ${BUILDDIR}/builded/usr/share/info ]  if [ -d ${BUILDDIR}/builded/usr/share/info ]
1219  then  then
1220     echo -e "${COLBLUE}===${COLGREEN} compressing info-pages ...${COLDEFAULT}"
1221   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
1222  fi  fi
1223    
# Line 674  case ${NOSTRIP} in Line 1227  case ${NOSTRIP} in
1227   echo -e "NOSTRIP=true detected; Package will not be stripped ..."   echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1228   ;;   ;;
1229   *)   *)
1230   echo -e "Stripping binaries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
1231   mstripbins ${BINDIR}   mstripbins ${BINDIR}
1232   echo -e "Stripping libraries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}"
1233   mstriplibs ${BINDIR}   mstriplibs ${BINDIR}
1234   ;;   ;;
1235  esac  esac
1236    
1237  #the new buildpkg command  # the new buildpkg command
1238  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
1239   true|TRUE|yes|y)   true|TRUE|yes|y)
1240   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
1241   ;;   ;;
1242   *)   *)
1243   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build several targets
1244   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [ -n "${MAGE_TARGETS}" ]
1245     then
1246     for target in ${MAGE_TARGETS}
1247     do
1248     # check if an special target_pkgbuild exists
1249     if typeset -f ${target}_pkgbuild > /dev/null
1250     then
1251     # run it
1252     ${target}_pkgbuild
1253     fi
1254     # now create the target package
1255     ${MLIBDIR}/pkgbuild_dir.sh \
1256     "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1257     ${BINDIR} || die "target: ${target} package-build failed"
1258    
1259     # build pkg-md5-sum if requested
1260     generate_package_md5sum \
1261     --pcat "${PCATEGORIE}" \
1262     --pname "${PNAME}" \
1263     --pver "${PVER}" \
1264     --pbuild "${PBUILD}" \
1265     --parch "${ARCH}" \
1266     --target "${target}"
1267    
1268     echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}"
1269     done
1270     else
1271     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1272    
1273     # build pkg-md5-sum if requested
1274     generate_package_md5sum \
1275     --pcat "${PCATEGORIE}" \
1276     --pname "${PNAME}" \
1277     --pver "${PVER}" \
1278     --pbuild "${PBUILD}" \
1279     --parch "${ARCH}"
1280    
1281     echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
1282     fi
1283    
1284     # build src-pkg-tarball if requested
1285     [[ ${CREATE_SRC_PKG_TARBALL} = true ]] && source_pkg_build ${SMAGENAME}
1286   ;;   ;;
1287  esac  esac
1288    
1289  #for sure  # for sure
1290  unset NOPKGBUILD  unset NOPKGBUILD
1291  unset NOSTRIP  unset NOSTRIP
1292    
1293  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.186  
changed lines
  Added in v.833