Magellan Linux

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

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

revision 66 by niro, Wed Feb 16 17:50:54 2005 UTC revision 441 by niro, Mon Mar 19 19:21:40 2007 UTC
# Line 4  Line 4 
4  # needs pkgbuild_dir (mage)  # needs pkgbuild_dir (mage)
5    
6  # SMAGE2  # SMAGE2
7  # version: 0.3.6-r15  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.54 2007-03-19 19:21:40 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-r15  
17  PKGSUFFIX="mpk"  PKGSUFFIX="mpk"
18    SRCPKGSUFFIX="mpks"
19  SMAGENAME="$1"  SMAGENAME="$1"
20  SMAGESUFFIX="smage2"  SMAGESUFFIX="smage2"
 #SOURCEDIR="/bootstrap/sources"  
 #SMAGESCRIPTSDIR="/bootstrap/smage2-install-scripts"  
 #SMAGE2RSYNC="rsync://192.168.0.2/smage2-scripts"  
21  MLIBDIR=/usr/lib/mage  MLIBDIR=/usr/lib/mage
22    SMAGEVERSION="$( < ${MLIBDIR}/version)"
23    
24  source /etc/mage.rc  ## only for tests -> normally in /etc/rc.d/init.d/functions
25    COLRED="\033[1;6m\033[31m"
26    COLGREEN="\033[1;6m\033[32m"
27    COLYELLOW="\033[1;6m\033[33m"
28    COLBLUE="\033[1;6m\033[34m"
29    COLMAGENTA="\033[1;6m\033[35m"
30    COLWHITE="\033[1;6m\033[37m"
31    COLGRAY="\033[0;6m\033[37m"
32    COLBOLD="\033[1m"
33    COLDEFAULT="\033[0m"
34    
35    if [[ ${NOCOLORS} = true ]]
36    then
37     COLRED=""
38     COLGREEN=""
39     COLYELLOW=""
40     COLBLUE=""
41     COLMAGENTA=""
42     COLWHITE=""
43     COLGRAY=""
44     COLBOLD=""
45     COLDEFAULT=""
46    fi
47    
48    # export default C locale
49    export LC_ALL=C
50    
51    source /etc/mage.rc.global
52    source ${MAGERC}
53    
54    # set PKGDIR and BUILDDIR and BINDIR to MROOT
55    if [[ -n ${MROOT} ]]
56    then
57     export PKGDIR=${MROOT}/${PKGDIR}
58     export BUILDDIR=${MROOT}/${BUILDDIR}
59     export BINDIR=${MROOT}/${BINDIR}
60    fi
61    
62  showversion() {  showversion()
63    {
64   echo -en "Magellan Source Install v${SMAGEVERSION} "   echo -en "Magellan Source Install v${SMAGEVERSION} "
65   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"
66  }  }
67    
68  die() {  die()
69    {
70   xtitleclean   xtitleclean
71     echo -e ${COLRED}"Exited ${BASH_SOURCE} at line no ${BASH_LINENO}."${COLDEFAULT}
72   echo "SMAGE failed: $@"   echo "SMAGE failed: $@"
73   exit 1   exit 1
74  }  }
75    
76  xtitle() {  xtitle()
77   if [ ${TERM} == "xterm" ]  {
78     if [[ ${TERM} = xterm ]]
79   then   then
80   echo -ne "\033]0;[sMage: $@]\007"   echo -ne "\033]0;[sMage: $@]\007"
81   fi   fi
82   return 0   return 0
83  }  }
84    
85  xtitleclean() {  xtitleclean()
86   if [ ${TERM} == "xterm" ]  {
87     if [[ ${TERM} = xterm ]]
88   then   then
89   echo -ne "\033]0;\007"   echo -ne "\033]0;\007"
90   fi   fi
91   return 0   return 0
92  }  }
93    
94  syncsmage2() {  syncsmage2()
95    {
96   xtitle "Updating smage2-script tree ..."   xtitle "Updating smage2-script tree ..."
97   local i   local i
98   for i in ${SMAGE2RSYNC}   for i in ${SMAGE2RSYNC}
99   do   do
100   rsync \   rsync ${RSYNC_FETCH_OPTIONS} ${i} ${SMAGESCRIPTSDIR}
101   --recursive \   if [[ $? = 0 ]]
  --links \  
  --perms \  
  --times \  
  --devices \  
  --timeout=600 \  
  --verbose \  
  --compress \  
  --progress \  
  --stats \  
  --delete \  
  --delete-after \  
  ${i} ${SMAGESCRIPTSDIR}  
   
  if [ "$?" == "0" ]  
102   then   then
103   break   break
104   else   else
105   continue   continue
106   fi   fi
   
107   done   done
108    
109   #clean up backup files (foo~)   # clean up backup files (foo~)
110   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'
111    
112   xtitleclean   xtitleclean
113  }  }
114    
115  # $1 filename  # $1 filename
116  get_db_md5_sum() {  get_db_md5_sum()
117    {
118   local DB_FILE   local DB_FILE
119   local MD5_FILE   local MD5_FILE
120   local i   local i
# Line 98  get_db_md5_sum() { Line 127  get_db_md5_sum() {
127   echo "${i}"   echo "${i}"
128  }  }
129    
130  download_sources() {  download_sources()
131    {
132    
133   [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0   [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0
134    
# Line 110  download_sources() { Line 140  download_sources() {
140   local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"   local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
141   local FETCHING   local FETCHING
142   local i mirror   local i mirror
   
143    
144   #install SRCDIR/PNAME if not exist  
145     # install SRCDIR/PNAME if not exist
146   [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}   [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}
147    
148   # check if FETCHING is needed   # check if FETCHING is needed
149   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )
150   if [[ $? == 0 ]]   if [[ $? = 0 ]]
151   then   then
152   # md5's ok, not fetching needed   # md5's ok, no fetching needed
153   FETCHING=false   FETCHING=false
154   else   else
155   FETCHING=true   FETCHING=true
156   fi   fi
157    
158   for ((i=0; i < EOA; i++))   for ((i=0; i < EOA; i++))
159   do   do
160   # url to file   # url to file
# Line 142  download_sources() { Line 172  download_sources() {
172   fi   fi
173    
174   # if an mirrored file than replace first the mirror uri   # if an mirrored file than replace first the mirror uri
175   if [ -n "$(echo ${my_SRC_URI} | grep 'mirror://')" ]   if [[ -n $(echo ${my_SRC_URI} | grep 'mirror://') ]]
176   then   then
177   for mirror in ${MIRRORS}   for mirror in ${MIRRORS}
178   do   do
179   my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"   my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"
180    
181   #echo "DEBUG: ${MY_SRC_URI}"   if [[ ${FETCHING} = true ]]
182   if [[ ${FETCHING} == true ]]   then
183     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
184     wget \
185     --passive-ftp \
186     --tries 3 \
187     --continue \
188     --progress bar \
189     --directory-prefix="${my_SOURCEDIR}" \
190     "${my_SRC_URI_MIRROR}"
191     if [[ $? = 0 ]]
192     then
193     break
194     else
195     continue
196     fi
197     fi
198     done
199     elif [[ -n $(echo ${my_SRC_URI} | grep 'sourceforge://') ]]
200     then
201     for mirror in ${SOURCEFORGE_MIRRORS}
202     do
203     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|sourceforge:/|${mirror}|g")"
204    
205     if [[ ${FETCHING} = true ]]
206   then   then
207   echo "==> fetching ${my_SRC_URI_MIRROR}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
208   wget \   wget \
209   --passive-ftp \   --passive-ftp \
210   --tries 3 \   --tries 3 \
# Line 159  download_sources() { Line 212  download_sources() {
212   --progress bar \   --progress bar \
213   --directory-prefix="${my_SOURCEDIR}" \   --directory-prefix="${my_SOURCEDIR}" \
214   "${my_SRC_URI_MIRROR}"   "${my_SRC_URI_MIRROR}"
215   if [ "$?" == "0" ]   if [[ $? = 0 ]]
216     then
217     break
218     else
219     continue
220     fi
221     fi
222     done
223     elif [[ -n $(echo ${my_SRC_URI} | grep 'gnu://') ]]
224     then
225     for mirror in ${GNU_MIRRORS}
226     do
227     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|gnu:/|${mirror}|g")"
228    
229     if [[ ${FETCHING} = true ]]
230     then
231     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
232     wget \
233     --passive-ftp \
234     --tries 3 \
235     --continue \
236     --progress bar \
237     --directory-prefix="${my_SOURCEDIR}" \
238     "${my_SRC_URI_MIRROR}"
239     if [[ $? = 0 ]]
240   then   then
241   break   break
242   else   else
# Line 168  download_sources() { Line 245  download_sources() {
245   fi   fi
246   done   done
247   else   else
248   #echo "DEBUG: ${SRC_URI[${i}]}"   if [[ ${FETCHING} = true ]]
  if [[ ${FETCHING} == true ]]  
249   then   then
250   echo "==> fetching ${my_SRC_URI}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI}${COLDEFAULT}"
251   wget \   wget \
252   --passive-ftp \   --passive-ftp \
253   --tries 3 \   --tries 3 \
# Line 179  download_sources() { Line 255  download_sources() {
255   --progress bar \   --progress bar \
256   --directory-prefix="${my_SOURCEDIR}" \   --directory-prefix="${my_SOURCEDIR}" \
257   "${my_SRC_URI}"   "${my_SRC_URI}"
  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 197  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 206  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 293  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 310  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 339  minstalldocs() { Line 426  minstalldocs() {
426   done   done
427  }  }
428    
429  setup_distcc_environment(){  mstriplibs()
430   if [ -x /usr/bin/distcc ]  {
431     local stripdir="$@"
432    
433     [ -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
435    }
436    
437    mstripbins()
438    {
439     local stripdir="$@"
440    
441     [ -z "${stripdir}" ] && stripdir=${BINDIR}
442     find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
443    }
444    
445    sminclude()
446    {
447     local i
448    
449     if [[ -n "$@" ]]
450   then   then
451   echo "Using DistCC for compilation ..."   for i in $@
452   export PATH=/usr/lib/distcc/bin:${PATH} || die "distcc: could not export new $PATH"   do
453     echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
454     source ${SMAGESCRIPTSDIR}/include/${i}.sminc
455     done
456     echo
457     fi
458    }
459    
460   #export distcc as compiler  setup_distcc_environment()
461  # export CC="distcc"  {
462  # export CXX=distcc   if [ -x /usr/bin/distcc ]
463     then
464     echo -e "${COLBLUE}---${COLGREEN} Using DistCC for compilation ...${COLDEFAULT}"
465     export PATH=/usr/$(mlibdir)/distcc/bin:${PATH} || die "distcc: could not export new $PATH"
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
470     install -o distcc -g daemon -d ${DISTCC_DIR}
471     chmod 1777 ${DISTCC_DIR}
472     fi
473    }
474    
475   #ccache + distcc together  setup_ccache_environment()
476   if [ "${SMAGE_USE_CCACHE}" == "true" ]  {
477   then   if [ -x /usr/bin/ccache ]
478   if [ -x /usr/bin/ccache ]   then
479     echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}"
480     export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
481     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   then
510   echo "Preparing DistCC to work together with CCache ..."   pname="$(basename ${dep})"
511   #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"   else
512  # export CC="ccache distcc"   # fix pver to target-pver
513  # export CXX="ccache distcc"   # 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   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
537    
538     echo "${depend}"
539    }
540    
541    # build_mage_script(): helper functions for regen_mage_tree()
542    # generates an mage file with given information in smage file
543    # needs at least:
544    #   PNAME                 name of pkg
545    #   PVER                  version
546    #   PBUILD                revision
547    #   PCATEGORIE            categorie of the pkg
548    #   STATE                 state of pkg stable|unstable|old
549    #   DESCRIPTION           va short description (opt)
550    #   HOMEPAGE              homepage (opt)
551    #   DEPEND                runtime dependencies (opt)
552    #   SDEPEND               add. needed deps to build the pkg (opt)
553    #   PROVIDE               provides a virtual (opt)
554    #
555    # special tags:
556    #   PKGTYPE               type of pkg
557    #   INHERITS              which functions get included
558    #   SPECIAL_FUNCTIONS     special functions wich should also be added
559    #                         warning: they get killed before the build starts !
560    #
561    #   MAGE_TREE_DEST        target destination of the generated tree
562    #   REGEN_MAGE_TREE       set to 'true' to enable this
563    #
564    # gets called with build_mage_script target
565    build_mage_script()
566    {
567     local magefile
568     local dest
569     local target
570     local sym
571     local depname
572    
573     # if MAGE_TREE_DEST not set use BUILDDIR
574     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
575    
576     # determinate which suffix this mage file should get, if any
577     [ -n "$1" ] && target="-$1"
578    
579     # name of magefile
580     magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
581    
582     # destination to magefile
583     dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
584    
585     # show what we are doing
586     echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}"
587     echo "${dest}"
588    
589     install -d "$(dirname ${dest})"
590     # now build the mage file
591     > ${dest}
592    
593     # header
594     echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.54 2007-03-19 19:21:40 niro Exp $' >> ${dest}
595     echo  >> ${dest}
596    
597     # pgkname and state
598     echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
599     echo "STATE=\"${STATE}\"" >> ${dest}
600     echo >> ${dest}
601    
602     # description and homepage
603     echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
604     echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
605     echo >> ${dest}
606    
607     # special tags and vars
608     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}" ]
628     then
629     echo -n "minclude"  >> ${dest}
630     local i
631     for i in ${INHERITS}
632     do
633     echo -n " ${i}"  >> ${dest}
634     done
635     echo  >> ${dest}
636     fi
637     echo >> ${dest}
638    
639     # deps and provides
640     echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
641     echo >> ${dest}
642     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
643     echo >> ${dest}
644     echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
645     echo >> ${dest}
646    
647     # add special functions
648     if [ -n "${SPECIAL_FUNCTIONS}" ]
649     then
650     local i
651     for i in ${SPECIAL_FUNCTIONS}
652     do
653     # add to mage (quotes needed !)
654     typeset -f "${i}" >> ${dest}
655     echo >> ${dest}
656     # unset to be safe (quotes needed !)
657     #unset "${i}" <-- later to get every target built
658     done
659     echo  >> ${dest}
660     fi
661    
662     # pre|post-install|removes
663     typeset -f preinstall >> ${dest}
664     echo  >> ${dest}
665     typeset -f postinstall >> ${dest}
666     echo  >> ${dest}
667     typeset -f preremove >> ${dest}
668     echo  >> ${dest}
669     typeset -f postremove >> ${dest}
670     echo  >> ${dest}
671    }
672    
673    regen_mage_tree()
674    {
675     local i
676    
677     # build them only if requested
678     if [[ ${REGEN_MAGE_TREE} = true ]]
679     then
680     # run it without targets
681     if [ -z "${MAGE_TARGETS}" ]
682     then
683     echo
684     build_mage_script
685     echo
686     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   fi
697     fi
698    
699   #creating distcc tempdir   # now unset all uneeded vars to be safe
700   install -o distcc -g daemon -d ${DISTCC_DIR}   # unset PKGNAME <-- don't do that; smage needs this var
701   chmod 1777 ${DISTCC_DIR}   # 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
713     unset DESCRIPTION
714     unset HOMEPAGE
715     unset PKGTYPE
716     unset INHERITS
717     unset DEPEND
718     unset SDEPEND
719     unset PROVIDE
720     unset preinstall
721     unset postinstall
722     unset preremove
723     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   fi
814  }  }
815    
816  setup_ccache_environment(){  source_pkg_build()
817   if [ -x /usr/bin/ccache ]  {
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   then
826   echo "Using CCache for compilation ..."   echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
827   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   return 0
  #unset CC CXX  
828   fi   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 390  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 401  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 454  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 467  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
  showversion  
940   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
941   then   then
942   install -d ${SMAGESCRIPTSDIR}   install -d ${SMAGESCRIPTSDIR}
# Line 489  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  #download sources  # auto regen mage tree if requested
1041  download_sources  regen_mage_tree
1042    
1043  #fixes some issues with these functions  if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
1044    then
1045     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1046     then
1047     echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1048     rm -rf ${SOURCEDIR}/${PNAME}
1049     fi
1050    fi
1051    
1052    # 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 559  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 624  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    
1128  #the new buildpkg command  # stripping all bins and libs
1129    case ${NOSTRIP} in
1130     true|TRUE|yes|y)
1131     echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1132     ;;
1133     *)
1134     echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
1135     mstripbins ${BINDIR}
1136     echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}"
1137     mstriplibs ${BINDIR}
1138     ;;
1139    esac
1140    
1141    # 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
1196    
1197  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.66  
changed lines
  Added in v.441