Magellan Linux

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

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

revision 191 by niro, Fri Aug 19 02:24:12 2005 UTC revision 439 by niro, Mon Mar 19 19:09:59 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.22 2005-08-19 02:24:12 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.53 2007-03-19 19:09:59 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    # 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 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 ]]
  if [[ ${FETCHING} == true ]]  
182   then   then
183   echo "==> fetching ${my_SRC_URI_MIRROR}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
184   wget \   wget \
185   --passive-ftp \   --passive-ftp \
186   --tries 3 \   --tries 3 \
# Line 162  download_sources() { Line 188  download_sources() {
188   --progress bar \   --progress bar \
189   --directory-prefix="${my_SOURCEDIR}" \   --directory-prefix="${my_SOURCEDIR}" \
190   "${my_SRC_URI_MIRROR}"   "${my_SRC_URI_MIRROR}"
191   if [ "$?" == "0" ]   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   then
241   break   break
242   else   else
# Line 171  download_sources() { Line 245  download_sources() {
245   fi   fi
246   done   done
247   else   else
248   #echo "DEBUG: ${SRC_URI[${i}]}"   if [[ ${FETCHING} = true ]]
  if [[ ${FETCHING} == true ]]  
249   then   then
250   echo "==> fetching ${my_SRC_URI}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI}${COLDEFAULT}"
251   wget \   wget \
252   --passive-ftp \   --passive-ftp \
253   --tries 3 \   --tries 3 \
# Line 182  download_sources() { Line 255  download_sources() {
255   --progress bar \   --progress bar \
256   --directory-prefix="${my_SOURCEDIR}" \   --directory-prefix="${my_SOURCEDIR}" \
257   "${my_SRC_URI}"   "${my_SRC_URI}"
 # only needed to run through a list of mirrors  
 # if [ "$?" == "0" ]  
 # then  
 # break  
 # else  
 # continue  
 # fi  
258   fi   fi
259   fi   fi
260    
261   # unset them to be shure   # unset them to be shure
262   unset my_SRC_URI   unset my_SRC_URI
263   unset my_SRC_URI_DEST   unset my_SRC_URI_DEST
# Line 201  download_sources() { Line 267  download_sources() {
267    
268   # recheck md5 sums   # recheck md5 sums
269   echo   echo
270   echo ">== Checking MD5 sums:"   echo -e "${COLBLUE}===${COLGREEN} Checking MD5 sums:${COLDEFAULT}"
271   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"
272   echo   echo
273    
# Line 210  download_sources() { Line 276  download_sources() {
276  }  }
277    
278  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
279  src_prepare() {  src_prepare()
280    {
281   echo "no src_prepare defined"   echo "no src_prepare defined"
282   sleep 2   sleep 2
283   return 0   return 0
284  }  }
285    
286  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
287  src_compile() {  src_compile()
288    {
289   echo "no src_compile defined"   echo "no src_compile defined"
290   sleep 2   sleep 2
291   return 0   return 0
292  }  }
293    
294  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
295  src_install() {  src_install()
296    {
297   echo "no src_install defined"   echo "no src_install defined"
298   sleep 2   sleep 2
299   return 0   return 0
300  }  }
301    
302    mlibdir()
303    {
304     local libdir=lib
305     [[ ${ARCH} = x86_64 ]] && libdir=lib64
306    
307  build_mage_script() {   echo "${libdir}"
  return 0  
308  }  }
309    
310  mconfigure() {  mconfigure()
311    {
312   if [ -x ./configure ]   if [ -x ./configure ]
313   then   then
314   ./configure \   ./configure \
315   --prefix=/usr \   --prefix=/usr \
316   --host=${CHOST} \   --host=${CHOST} \
317   --mandir=/usr/share/man \   --mandir=/usr/share/man \
318   --infodir=/usr/share/info \   --infodir=/usr/share/info \
319   --datadir=/usr/share \   --datadir=/usr/share \
320   --sysconfdir=/etc \   --sysconfdir=/etc \
321   --localstatedir=/var/lib \   --localstatedir=/var/lib \
322   "$@" || die "mconfigure failed"   --libdir=/usr/$(mlibdir) \
323     "$@" || die "mconfigure failed"
324   else   else
325   echo "configure is not an executable ..."   echo "configure is not an executable ..."
326   exit 1   exit 1
327   fi   fi
328  }  }
329    
330  minstall() {  minstall()
331   if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then  {
332     if [ -f ./[mM]akefile -o -f ./GNUmakefile ]
333     then
334   make prefix=${BINDIR}/usr \   make prefix=${BINDIR}/usr \
335   datadir=${BINDIR}/usr/share \   datadir=${BINDIR}/usr/share \
336   infodir=${BINDIR}/usr/share/info \   infodir=${BINDIR}/usr/share/info \
337   localstatedir=${BINDIR}/var/lib \   localstatedir=${BINDIR}/var/lib \
338   mandir=${BINDIR}/usr/share/man \   mandir=${BINDIR}/usr/share/man \
339   sysconfdir=${BINDIR}/etc \   sysconfdir=${BINDIR}/etc \
340     libdir=${BINDIR}/usr/$(mlibdir) \
341   "$@" install || die "minstall failed"   "$@" install || die "minstall failed"
342          else          else
343                  die "no Makefile found"                  die "no Makefile found"
344          fi          fi
345  }  }
346    
347  mmake() {  mmake()
348    {
349   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"
350  }  }
351    
352  munpack() {  munpack()
353    {
354   local SRCFILE   local SRCFILE
355   local IFTAR   local IFTAR
356   local DEST   local DEST
357    
358   SRCFILE=$1   SRCFILE=$1
359    
360   if [ -z "$2" ]   if [ -z "$2" ]
361   then   then
362   DEST=${BUILDDIR}   DEST=${BUILDDIR}
363   else   else
364   DEST=$2   DEST=$2
365   fi   fi
366    
367     [[ ! -d ${DEST} ]] && install -d ${DEST}
368    
369   case "${SRCFILE##*.}" in   case "${SRCFILE##*.}" in
370   bz2)   bz2)
371   IFTAR="$(basename $SRCFILE .bz2)"   IFTAR="$(basename $SRCFILE .bz2)"
372   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
373   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
374   then   then
375   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
376   fi   fi
# Line 297  munpack() { Line 378  munpack() {
378   gz)   gz)
379   IFTAR="$(basename $SRCFILE .gz)"   IFTAR="$(basename $SRCFILE .gz)"
380   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
381   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
382   then   then
383   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
384   fi   fi
# Line 314  munpack() { Line 395  munpack() {
395   esac   esac
396  }  }
397    
398  mpatch() {  mpatch()
399    {
400   local PATCHOPTS   local PATCHOPTS
401   local PATCHFILE   local PATCHFILE
402    
403   PATCHOPTS=$1   PATCHOPTS=$1
404   PATCHFILE=$2   PATCHFILE=$2
405    
406     echo -e "${COLBLUE}*** ${COLGREEN}Applying patch '${PATCHFILE}'${COLDEFAULT}"
407   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}
408  }  }
409    
410    
411  minstalldocs() {  minstalldocs()
412    {
413   local docfiles   local docfiles
   
414   docfiles="$@"   docfiles="$@"
415    
416   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
417   then   then
418   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
419   fi   fi
420    
421   for i in ${docfiles}   for i in ${docfiles}
422   do   do
423   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
# Line 343  minstalldocs() { Line 426  minstalldocs() {
426   done   done
427  }  }
428    
429  mstriplibs() {  mstriplibs()
430    {
431   local stripdir="$@"   local stripdir="$@"
432    
433   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
434   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
435  }  }
436    
437  mstripbins() {  mstripbins()
438    {
439   local stripdir="$@"   local stripdir="$@"
440    
441   [ -z "${stripdir}" ] && stripdir=${BINDIR}   [ -z "${stripdir}" ] && stripdir=${BINDIR}
442   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
443  }  }
444    
445  sminclude() {  sminclude()
446    {
447   local i   local i
448    
449   if [[ -n "$@" ]]   if [[ -n "$@" ]]
# Line 371  sminclude() { Line 457  sminclude() {
457   fi   fi
458  }  }
459    
460  setup_distcc_environment(){  setup_distcc_environment()
461    {
462   if [ -x /usr/bin/distcc ]   if [ -x /usr/bin/distcc ]
463   then   then
464   echo "Using DistCC for compilation ..."   echo "Using DistCC for compilation ..."
465   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  
466    
467   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
468    
469     # creating distcc tempdir
  #ccache + distcc together  
  if [ "${SMAGE_USE_CCACHE}" == "true" ]  
  then  
  if [ -x /usr/bin/ccache ]  
  then  
  echo "Preparing DistCC to work together with CCache ..."  
  #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"  
 # export CC="ccache distcc"  
 # export CXX="ccache distcc"  
  fi  
  fi  
   
  #creating distcc tempdir  
470   install -o distcc -g daemon -d ${DISTCC_DIR}   install -o distcc -g daemon -d ${DISTCC_DIR}
471   chmod 1777 ${DISTCC_DIR}   chmod 1777 ${DISTCC_DIR}
472   fi   fi
473  }  }
474    
475  setup_ccache_environment(){  setup_ccache_environment()
476    {
477   if [ -x /usr/bin/ccache ]   if [ -x /usr/bin/ccache ]
478   then   then
479   echo "Using CCache for compilation ..."   echo "Using CCache for compilation ..."
480   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
481   #unset CC CXX   fi
482    }
483    
484    
485    # fixes given dependencies to match a MAGE_TARGET
486    # fix_mage_deps -target s/depend # <-- note -target !
487    fix_mage_deps()
488    {
489     local target="$1"
490     local depend="$2"
491     local NDEPEND
492     local sym dep cat pver pname
493    
494     # deps and provides are special
495     # they must be fixed to match the target
496    
497     # run this only if target and depend is not empty
498     if [ -n "${target}" ] && [ -n "${depend}" ]
499     then
500     # fix DEPEND
501     while read sym dep
502     do
503     # ignore empty lines
504     [[ -z ${dep} ]] && continue
505    
506     cat="$(dirname ${dep})"
507     # change if not virtual
508     if [[ ${cat} = virtual ]]
509     then
510     pname="$(basename ${dep})"
511     else
512     # fix pver to target-pver
513     # to get pname-target-pver
514    
515     # doing it backwards !
516     pver="${dep##*-}"
517     # full pver
518     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
519     fi
520    
521     # do not add empty lines
522     if [ -z "${NDEPEND}" ]
523     then
524     NDEPEND="${sym} ${cat}/${pname}"
525     else
526     NDEPEND="${NDEPEND}
527     ${sym} ${cat}/${pname}"
528     fi
529    
530     unset cat pname pver
531     done << EOF
532    ${depend}
533    EOF
534     # set NDEPEND to DEPEND
535     depend="${NDEPEND}"
536   fi   fi
537    
538     echo "${depend}"
539  }  }
540    
541  # alx_create_mage_file: helper functions for regen_mage_tree()  # build_mage_script(): helper functions for regen_mage_tree()
542  # generates an mage file with given information in smage file  # generates an mage file with given information in smage file
543  # needs at least:  # needs at least:
544  #   PNAME                 name of pkg  #   PNAME                 name of pkg
# Line 433  setup_ccache_environment(){ Line 560  setup_ccache_environment(){
560  #  #
561  #   MAGE_TREE_DEST        target destination of the generated tree  #   MAGE_TREE_DEST        target destination of the generated tree
562  #   REGEN_MAGE_TREE       set to 'true' to enable this  #   REGEN_MAGE_TREE       set to 'true' to enable this
563  alx_create_mage_file()  #
564    # gets called with build_mage_script target
565    build_mage_script()
566  {  {
567   local magefile   local magefile
568   local dest   local dest
569   local suffix   local target
570   local sym   local sym
571   local depname   local depname
572    
# Line 445  alx_create_mage_file() Line 574  alx_create_mage_file()
574   : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}   : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
575    
576   # determinate which suffix this mage file should get, if any   # determinate which suffix this mage file should get, if any
577   suffix="$1"   [ -n "$1" ] && target="-$1"
578    
579   # name of magefile   # name of magefile
580   magefile="${PNAME}${suffix}-${PVER}-${PBUILD}.mage"   magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
581    
582   # destination to magefile   # destination to magefile
583   dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${suffix}/${magefile}"   dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
584    
585   # show what we are doing   # show what we are doing
586   echo "Generating Mage file:"   echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}"
587   echo "  ${dest}"   echo "${dest}"
588    
589   install -d "$(dirname ${dest})"   install -d "$(dirname ${dest})"
590   # now build the mage file   # now build the mage file
591   > ${dest}   > ${dest}
592    
593   # header   # header
594   echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.22 2005-08-19 02:24:12 niro Exp $' >> ${dest}   echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.53 2007-03-19 19:09:59 niro Exp $' >> ${dest}
595   echo  >> ${dest}   echo  >> ${dest}
596    
597   # pgkname and state   # pgkname and state
598   echo "PKGNAME=\"${PNAME}${suffix}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}   echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
599   echo "STATE=\"${STATE}\"" >> ${dest}   echo "STATE=\"${STATE}\"" >> ${dest}
600   echo >> ${dest}   echo >> ${dest}
601    
# Line 475  alx_create_mage_file() Line 604  alx_create_mage_file()
604   echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}   echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
605   echo >> ${dest}   echo >> ${dest}
606    
607   # special tags   # special tags and vars
608   echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}   echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
609    
610     # echo MAGE_TARGETS ## note -target is needed !
611     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
612     echo >> ${dest}
613    
614     # add special vars
615     if [ -n "${SPECIAL_VARS}" ]
616     then
617     local i
618     for i in ${SPECIAL_VARS}
619     do
620     # being tricky here :)
621     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
622     done
623     echo  >> ${dest}
624     fi
625    
626     # add at least all includes
627   if [ -n "${INHERITS}" ]   if [ -n "${INHERITS}" ]
628   then   then
629   echo -n "minclude"  >> ${dest}   echo -n "minclude"  >> ${dest}
# Line 490  alx_create_mage_file() Line 637  alx_create_mage_file()
637   echo >> ${dest}   echo >> ${dest}
638    
639   # deps and provides   # deps and provides
640   echo "DEPEND=\"${DEPEND}\"" >> ${dest}   echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
641   echo "SDEPEND=\"${SDEPEND}\"" >> ${dest}   echo >> ${dest}
642     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
643     echo >> ${dest}
644   echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}   echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
645   echo >> ${dest}   echo >> ${dest}
646    
# Line 503  alx_create_mage_file() Line 652  alx_create_mage_file()
652   do   do
653   # add to mage (quotes needed !)   # add to mage (quotes needed !)
654   typeset -f "${i}" >> ${dest}   typeset -f "${i}" >> ${dest}
655     echo >> ${dest}
656   # unset to be safe (quotes needed !)   # unset to be safe (quotes needed !)
657   unset "${i}"   #unset "${i}" <-- later to get every target built
658   done   done
659     echo  >> ${dest}
660   fi   fi
661    
662   # pre|post-install|removes   # pre|post-install|removes
# Line 526  regen_mage_tree() Line 677  regen_mage_tree()
677   # build them only if requested   # build them only if requested
678   if [[ ${REGEN_MAGE_TREE} = true ]]   if [[ ${REGEN_MAGE_TREE} = true ]]
679   then   then
680   # build for each target an mage file   # run it without targets
681   for i in ${MAGE_TARGETS}   if [ -z "${MAGE_TARGETS}" ]
682   do   then
683   echo   echo
684   alx_create_mage_file "${i}"   build_mage_script
685   echo   echo
686   done   else
687    
688     # build for each target an mage file
689     # run it with several targets
690     for i in ${MAGE_TARGETS}
691     do
692     echo
693     build_mage_script "${i}"
694     echo
695     done
696     fi
697   fi   fi
698    
699   # now unset all uneeded vars to be safe   # now unset all uneeded vars to be safe
700   unset PKGNAME   # unset PKGNAME <-- don't do that; smage needs this var
701     # unset to be safe (quotes needed !)
702     for i in ${SPECIAL_FUNCTIONS}
703     do
704     unset "${i}"
705     done
706     unset SPECIAL_FUNCTIONS
707     for i in ${SPECIAL_VARS}
708     do
709     unset "${i}"
710     done
711     unset SPECIAL_VARS
712   unset STATE   unset STATE
713   unset DESCRIPTION   unset DESCRIPTION
714   unset HOMEPAGE   unset HOMEPAGE
# Line 545  regen_mage_tree() Line 717  regen_mage_tree()
717   unset DEPEND   unset DEPEND
718   unset SDEPEND   unset SDEPEND
719   unset PROVIDE   unset PROVIDE
  unset SPECIAL_FUNCTIONS  
720   unset preinstall   unset preinstall
721   unset postinstall   unset postinstall
722   unset preremove   unset preremove
723   unset postremove   unset postremove
724  }  }
725    
726    export_inherits()
727    {
728     local include="$1"
729     shift
730    
731     while [ "$1" ]
732     do
733     local functions="$1"
734    
735     # sanity checks
736     [ -z "${include}" ] && die "export_inherits(): \$include not given."
737     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
738    
739     eval "${functions}() { ${include}_${functions} ; }"
740    
741     # debug
742     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
743    
744     shift
745     done
746    }
747    
748    generate_package_md5sum()
749    {
750     local dest
751     local pcat
752     local pname
753     local pver
754     local pbuild
755     local parch
756     local target
757     local pkgname
758    
759     # very basic getops
760     for i in $*
761     do
762     case $1 in
763     --pcat|-c) shift; pcat="$1" ;;
764     --pname|-n) shift; pname="$1" ;;
765     --pver|-v) shift; pver="$1" ;;
766     --pbuild|-b) shift; pbuild="$1" ;;
767     --parch|a) shift; parch="$1" ;;
768     --target|t) shift; target="$1" ;;
769     esac
770     shift
771     done
772    
773     # sanity checks; abort if not given
774     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
775     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
776     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
777     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
778     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
779    
780     # check needed global vars
781     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
782     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
783    
784     # fix target as it may be empty !
785     [ -n "${target}" ] && target="-${target}"
786    
787     # build pkgname
788     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
789    
790     # build pkg-md5-sum only if requested
791     if [[ ${REGEN_MAGE_TREE} = true ]]
792     then
793     echo -ne "${COLBLUE}===${COLGREEN} generating md5's for ${pkgname}.${PKGSUFFIX} ... ${COLDEFAULT}"
794    
795     # abort if not exist
796     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
797     then
798     echo -e "${COLRED}! exists${COLDEFAULT}"
799     return 0
800     fi
801    
802     # if MAGE_TREE_DEST not set use BUILDDIR
803     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
804    
805     # setup md5 dir
806     dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5"
807     install -d ${dest}
808    
809     # gen md5sum
810     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
811     > ${dest}/${pkgname}.md5
812     echo -e "${COLGREEN}done${COLDEFAULT}"
813     fi
814    }
815    
816    source_pkg_build()
817    {
818     if [[ ${PKGTYPE} = virtual ]]
819     then
820     echo "Virtual package detected; src-pkg-tarball not necessary ..."
821     return 0
822     fi
823    
824     if [[ ! -d ${SOURCEDIR}/${PNAME} ]]
825     then
826     echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
827     return 0
828     fi
829    
830     [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your ${MAGERC} correctly."
831    
832     echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}"
833    
834     # include the smage2 file
835     cp ${SMAGENAME} ${SOURCEDIR}/${PNAME}
836    
837     ( cd ${SOURCEDIR}; tar cvjf ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${PNAME}; )
838     [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR}
839     mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}
840    
841     echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}"
842    }
843    
844    
845  # print out our version  # print out our version
846  showversion  showversion
847  echo  echo
# Line 563  then Line 853  then
853   exit 1   exit 1
854  fi  fi
855    
856  #updating smage2-scripts  # updating smage2-scripts
857  if [ "$1" == "update" ]  if [[ $1 = update ]]
858  then  then
859   if [ ! -d ${SOURCEDIR} ]   if [ ! -d ${SOURCEDIR} ]
860   then   then
# Line 574  then Line 864  then
864   exit 0   exit 0
865  fi  fi
866    
867  #creates md5sums for smages to given dir  # creates md5sums for smages to given dir
868  if [ "$1" == "calcmd5" ]  if [[ $1 = calcmd5 ]]
869  then  then
870   if [ $# -ge 3 ]   if [ $# -ge 3 ]
871   then   then
# Line 627  then Line 917  then
917   unset my_SRC_URI_MIRROR   unset my_SRC_URI_MIRROR
918   unset my_SOURCEDIR   unset my_SOURCEDIR
919   done   done
920    
921   echo   echo
922   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
923   echo   echo
# Line 640  then Line 930  then
930   echo   echo
931   exit 1   exit 1
932   fi   fi
933    
934   exit 0   exit 0
935  fi  fi
936    
937  #download sources  # download sources
938  if [ "$1" == "download" -a -n "$2" ]  if [ "$1" == "download" -a -n "$2" ]
939  then  then
940   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
# Line 661  then Line 951  then
951   exit 0   exit 0
952  fi  fi
953    
954  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  # regen-mage-tree
955    if [ "$1" == "only-regen-tree" -a -n "$2" ]
956  then  then
957   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   # set correct SMAGENAME
958  fi   SMAGENAME="$2"
959     MD5DIR="$(dirname ${SMAGENAME})/md5"
960     source ${SMAGENAME} || die "regen: smage2 not found"
961    
962  if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]   regen_mage_tree
 then  
  die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."  
 fi  
963    
964  if [ -z "${SOURCEDIR}" ]   # build md5sum for existing packages
965  then   generate_package_md5sum \
966   die "\$SOURCEDIR not found. Please setup your mage.rc correctly."   --pcat "${PCATEGORIE}" \
967  fi   --pname "${PNAME}" \
968     --pver "${PVER}" \
969     --pbuild "${PBUILD}" \
970     --parch "${ARCH}" \
971     --target "${target}"
972    
973  if [ -z "${SMAGESCRIPTSDIR}" ]   exit 0
 then  
  die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."  
974  fi  fi
975    
976  if [ -z "${SMAGE2RSYNC}" ]  if [ "$1" == "--create-src-tarball" -a -n "$2" ]
977  then  then
978   echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."   # set correct SMAGENAME
979   exit 1   SMAGENAME="$2"
980  fi   MD5DIR="$(dirname ${SMAGENAME})/md5"
981    
982  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  
983    
984  if [ -z "${CHOST}" ]   source ${SMAGENAME} || die "regen: smage2 not found"
 then  
  die "no CHOST variable found in /etc/mage.rc"  
 fi  
985    
986  if [ -z "${CFLAGS}" ]   if [[ -d ${SOURCEDIR}/${PNAME} ]]
987  then   then
988   die "no CFLAGS variable found in /etc/mage.rc"   echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
989     rm -rf ${SOURCEDIR}/${PKGNAME}
990     fi
991    
992     download_sources
993     source_pkg_build ${SMAGENAME}
994     exit 0
995  fi  fi
996    
997  if [ -z "${CXXFLAGS}" ]  if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
998  then  then
999   die "no CXXFLAGS variable found in /etc/mage.rc"   SRCPKGTARBALL="${2}"
1000     USE_SRC_PKG_TARBALL=true
1001    
1002     # abort if given file is not a source pkg
1003     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
1004    
1005     # set correct SMAGENAME; use the one that the src_pkg provide
1006     # /path/to/SOURCEDIR/PNAME/SMAGENAME
1007     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
1008    
1009     echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
1010    
1011     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
1012    
1013     # unpack srctarball
1014     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
1015    
1016     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die  "Error unpackung src-tarball ${SRCPKGTARBALL}"
1017    
1018     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
1019  fi  fi
1020    
1021    
1022    [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
1023    [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
1024     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
1025    [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
1026    [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
1027    [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
1028    [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
1029    [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
1030    [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
1031    [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
1032    
1033  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
1034  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
1035  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
1036    
1037  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
1038  echo "Compiling ${PKGNAME}"  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
1039    
1040  # auto regen mage tree if requested  # auto regen mage tree if requested
1041  regen_mage_tree  regen_mage_tree
1042    
1043  #download sources  if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
1044  download_sources  then
1045     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1046     then
1047     echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1048     rm -rf ${SOURCEDIR}/${PNAME}
1049     fi
1050    fi
1051    
1052  #fixes some issues with these functions  # download sources
1053    [[ ${USE_SRC_PKG_TARBALL} != true ]] && download_sources
1054    
1055    # fixes some issues with these functions
1056  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
1057  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
1058  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
1059    
1060  #fixes some compile issues  # fixes some compile issues
1061  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
1062  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
1063  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 734  export BINDIR="${BINDIR}" || die "BINDIR Line 1065  export BINDIR="${BINDIR}" || die "BINDIR
1065  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
1066    
1067    
1068  #setup distcc  # setup distcc
1069  #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
1070  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  
1071    
1072    # setup ccache
1073    [[ ${SMAGE_USE_CCACHE} = true ]] && setup_ccache_environment
1074    
1075  # small sleep to show our settings  # small sleep to show our settings
1076  sleep 1  sleep 1
1077    
1078  #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  
1079  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
1080  then  then
1081   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
1082  fi  fi
1083  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
1084    
1085  #cleans up srcdir if a previously unpacked one exists  # cleans up srcdir if a previously unpacked one exists
1086  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
1087  then  then
1088   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
1089  fi  fi
1090    
1091  #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
1092  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
1093  then  then
1094   rm -rf ${BINDIR}   rm -rf ${BINDIR}
1095  fi  fi
1096  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
1097    
1098  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
1099  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
1100  then  then
1101   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
1102  fi  fi
1103    
1104  #cleans up timestamp if one exists  # cleans up timestamp if one exists
1105  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
1106  then  then
1107   mage rmstamp   mage rmstamp
# Line 799  src_compile || die "src_compile failed" Line 1112  src_compile || die "src_compile failed"
1112  src_install || die "src_install failed"  src_install || die "src_install failed"
1113    
1114    
1115  #compressing doc, info & man files  # compressing doc, info & man files
 echo -e "Compressing man-pages ..."  
1116  if [ -d ${BUILDDIR}/builded/usr/share/man ]  if [ -d ${BUILDDIR}/builded/usr/share/man ]
1117  then  then
1118     echo -e "${COLBLUE}===${COLGREEN} compressing man-pages ...${COLDEFAULT}"
1119   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man
1120  fi  fi
1121    
 echo -e "Compressing info-pages ..."  
1122  if [ -d ${BUILDDIR}/builded/usr/share/info ]  if [ -d ${BUILDDIR}/builded/usr/share/info ]
1123  then  then
1124     echo -e "${COLBLUE}===${COLGREEN} compressing info-pages ...${COLDEFAULT}"
1125   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
1126  fi  fi
1127    
# Line 818  case ${NOSTRIP} in Line 1131  case ${NOSTRIP} in
1131   echo -e "NOSTRIP=true detected; Package will not be stripped ..."   echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1132   ;;   ;;
1133   *)   *)
1134   echo -e "Stripping binaries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
1135   mstripbins ${BINDIR}   mstripbins ${BINDIR}
1136   echo -e "Stripping libraries ..."   echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}"
1137   mstriplibs ${BINDIR}   mstriplibs ${BINDIR}
1138   ;;   ;;
1139  esac  esac
1140    
1141  #the new buildpkg command  # the new buildpkg command
1142  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
1143   true|TRUE|yes|y)   true|TRUE|yes|y)
1144   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
1145   ;;   ;;
1146   *)   *)
1147   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build several targets
1148   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [ -n "${MAGE_TARGETS}" ]
1149     then
1150     for target in ${MAGE_TARGETS}
1151     do
1152     # check if an special target_pkgbuild exists
1153     if typeset -f ${target}_pkgbuild > /dev/null
1154     then
1155     # run it
1156     ${target}_pkgbuild
1157     fi
1158     # now create the target package
1159     ${MLIBDIR}/pkgbuild_dir.sh \
1160     "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1161     ${BINDIR} || die "target: ${target} package-build failed"
1162    
1163     # build pkg-md5-sum if requested
1164     generate_package_md5sum \
1165     --pcat "${PCATEGORIE}" \
1166     --pname "${PNAME}" \
1167     --pver "${PVER}" \
1168     --pbuild "${PBUILD}" \
1169     --parch "${ARCH}" \
1170     --target "${target}"
1171    
1172     echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}"
1173     done
1174     else
1175     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1176    
1177     # build pkg-md5-sum if requested
1178     generate_package_md5sum \
1179     --pcat "${PCATEGORIE}" \
1180     --pname "${PNAME}" \
1181     --pver "${PVER}" \
1182     --pbuild "${PBUILD}" \
1183     --parch "${ARCH}"
1184    
1185     echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
1186     fi
1187    
1188     # build src-pkg-tarball if requested
1189     [[ ${CREATE_SRC_PKG_TARBALL} = true ]] && source_pkg_build ${SMAGENAME}
1190   ;;   ;;
1191  esac  esac
1192    
1193  #for sure  # for sure
1194  unset NOPKGBUILD  unset NOPKGBUILD
1195  unset NOSTRIP  unset NOSTRIP
1196    
1197  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.191  
changed lines
  Added in v.439