Magellan Linux

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

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

revision 63 by niro, Wed Feb 16 01:00:39 2005 UTC revision 412 by niro, Fri Jan 19 23:11:17 2007 UTC
# Line 4  Line 4 
4  # needs pkgbuild_dir (mage)  # needs pkgbuild_dir (mage)
5    
6  # SMAGE2  # SMAGE2
7  # version: 0.3.6-r14  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.49 2007-01-19 23:11:17 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  ## setup ##  ## setup ##
 SMAGEVERSION=0.3.6-r14  
14  PKGSUFFIX="mpk"  PKGSUFFIX="mpk"
15    SRCPKGSUFFIX="mpks"
16  SMAGENAME="$1"  SMAGENAME="$1"
17  SMAGESUFFIX="smage2"  SMAGESUFFIX="smage2"
 #SOURCEDIR="/bootstrap/sources"  
 #SMAGESCRIPTSDIR="/bootstrap/smage2-install-scripts"  
 #SMAGE2RSYNC="rsync://192.168.0.2/smage2-scripts"  
18  MLIBDIR=/usr/lib/mage  MLIBDIR=/usr/lib/mage
19    SMAGEVERSION="$( < ${MLIBDIR}/version)"
20    
21    ## only for tests -> normally in /etc/rc.d/init.d/functions
22    COLRED="\033[1;6m\033[31m"
23    COLGREEN="\033[1;6m\033[32m"
24    COLYELLOW="\033[1;6m\033[33m"
25    COLBLUE="\033[1;6m\033[34m"
26    COLMAGENTA="\033[1;6m\033[35m"
27    COLWHITE="\033[1;6m\033[37m"
28    COLGRAY="\033[0;6m\033[37m"
29    COLBOLD="\033[1m"
30    COLDEFAULT="\033[0m"
31    
32    if [[ ${NOCOLORS} = true ]]
33    then
34     COLRED=""
35     COLGREEN=""
36     COLYELLOW=""
37     COLBLUE=""
38     COLMAGENTA=""
39     COLWHITE=""
40     COLGRAY=""
41     COLBOLD=""
42     COLDEFAULT=""
43    fi
44    
45    # export default C locale
46    export LC_ALL=C
47    
48  source /etc/mage.rc  source /etc/mage.rc
49    
50  showversion() {  # set PKGDIR and BUILDDIR and BINDIR to MROOT
51    if [[ -n ${MROOT} ]]
52    then
53     export PKGDIR=${MROOT}/${PKGDIR}
54     export BUILDDIR=${MROOT}/${BUILDDIR}
55     export BINDIR=${MROOT}/${BINDIR}
56    fi
57    
58    showversion()
59    {
60   echo -en "Magellan Source Install v${SMAGEVERSION} "   echo -en "Magellan Source Install v${SMAGEVERSION} "
61   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"
62  }  }
63    
64  die() {  die()
65    {
66   xtitleclean   xtitleclean
67   echo "SMAGE failed: $@"   echo "SMAGE failed: $@"
68   exit 1   exit 1
69  }  }
70    
71  xtitle() {  xtitle()
72   if [ ${TERM} == "xterm" ]  {
73     if [[ ${TERM} = xterm ]]
74   then   then
75   echo -ne "\033]0;[sMage: $@]\007"   echo -ne "\033]0;[sMage: $@]\007"
76   fi   fi
77   return 0   return 0
78  }  }
79    
80  xtitleclean() {  xtitleclean()
81   if [ ${TERM} == "xterm" ]  {
82     if [[ ${TERM} = xterm ]]
83   then   then
84   echo -ne "\033]0;\007"   echo -ne "\033]0;\007"
85   fi   fi
86   return 0   return 0
87  }  }
88    
89  syncsmage2() {  syncsmage2()
90    {
91   xtitle "Updating smage2-script tree ..."   xtitle "Updating smage2-script tree ..."
92   local i   local i
93   for i in ${SMAGE2RSYNC}   for i in ${SMAGE2RSYNC}
94   do   do
95   rsync \   rsync ${RSYNC_FETCH_OPTIONS} ${i} ${SMAGESCRIPTSDIR}
96   --recursive \   if [[ $? = 0 ]]
  --links \  
  --perms \  
  --times \  
  --devices \  
  --timeout=600 \  
  --verbose \  
  --compress \  
  --progress \  
  --stats \  
  --delete \  
  --delete-after \  
  ${i} ${SMAGESCRIPTSDIR}  
   
  if [ "$?" == "0" ]  
97   then   then
98   break   break
99   else   else
100   continue   continue
101   fi   fi
   
102   done   done
103    
104   #clean up backup files (foo~)   # clean up backup files (foo~)
105   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'
106    
107   xtitleclean   xtitleclean
108  }  }
109    
110  # $1 filename  # $1 filename
111  get_db_md5_sum() {  get_db_md5_sum()
112    {
113   local DB_FILE   local DB_FILE
114   local MD5_FILE   local MD5_FILE
115   local i   local i
# Line 98  get_db_md5_sum() { Line 122  get_db_md5_sum() {
122   echo "${i}"   echo "${i}"
123  }  }
124    
125  download_sources() {  download_sources()
126    {
127    
128   [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0   [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0
129    
130   local EOA=${#SRC_URI[*]}   local EOA=${#SRC_URI[*]}
131   local MY_SRC_URI   local my_SRC_URI
132     local my_SRC_URI_DEST
133     local my_SRC_URI_MIRROR
134     local my_SOURCEDIR
135   local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"   local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
136   local FETCHING   local FETCHING
137   local i mirror   local i mirror
   
138    
139   #install SRCDIR/PNAME if not exist  
140     # install SRCDIR/PNAME if not exist
141   [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}   [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}
142    
143   # check if FETCHING is needed   # check if FETCHING is needed
144   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} > /dev/null )   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )
145   if [[ $? == 0 ]]   if [[ $? = 0 ]]
146   then   then
147   # md5's ok, not fetching needed   # md5's ok, not fetching needed
148   FETCHING=false   FETCHING=false
149   else   else
150   FETCHING=true   FETCHING=true
151   fi   fi
152    
153   for ((i=0; i < EOA; i++))   for ((i=0; i < EOA; i++))
154   do   do
155   # get MD5 sum from database   # url to file
156     my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
157    
158     # subdir in sources dir; the my_SRCI_URI file goes to there
159     my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
160    
161     # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
162     if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
163     then
164     my_SOURCEDIR="${SOURCEDIR}/${PNAME}/${my_SRC_URI_DEST}"
165     else
166     my_SOURCEDIR="${SOURCEDIR}/${PNAME}"
167     fi
168    
   
169   # if an mirrored file than replace first the mirror uri   # if an mirrored file than replace first the mirror uri
170   if [ -n "$(echo ${SRC_URI[${i}]} | grep 'mirror://')" ]   if [ -n "$(echo ${my_SRC_URI} | grep 'mirror://')" ]
171   then   then
172   for mirror in ${MIRRORS}   for mirror in ${MIRRORS}
173   do   do
174   MY_SRC_URI="$(echo ${SRC_URI[${i}]} | sed "s|mirror:/|${mirror}/sources|g")"   my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"
175    
176   #echo "DEBUG: ${MY_SRC_URI}"   if [[ ${FETCHING} = true ]]
  if [[ ${FETCHING} == true ]]  
177   then   then
178   echo "==> fetching ${MY_SRC_URI}"   echo "==> fetching ${my_SRC_URI_MIRROR}"
179   wget \   wget \
180   --passive-ftp \   --passive-ftp \
181   --tries 3 \   --tries 3 \
182   --continue \   --continue \
183   --progress bar \   --progress bar \
184   --directory-prefix="${SOURCEDIR}/${PNAME}" \   --directory-prefix="${my_SOURCEDIR}" \
185   "${MY_SRC_URI}"   "${my_SRC_URI_MIRROR}"
186   if [ "$?" == "0" ]   if [[ $? = 0 ]]
187   then   then
188   break   break
189   else   else
# Line 154  download_sources() { Line 192  download_sources() {
192   fi   fi
193   done   done
194   else   else
195   #echo "DEBUG: ${SRC_URI[${i}]}"   if [[ ${FETCHING} = true ]]
  if [[ ${FETCHING} == true ]]  
196   then   then
197   echo "==> fetching ${SRC_URI[${i}]}"   echo "==> fetching ${my_SRC_URI}"
198   wget \   wget \
199   --passive-ftp \   --passive-ftp \
200   --tries 3 \   --tries 3 \
201   --continue \   --continue \
202   --progress bar \   --progress bar \
203   --directory-prefix="${SOURCEDIR}/${PNAME}" \   --directory-prefix="${my_SOURCEDIR}" \
204   "${MY_SRC_URI}"   "${my_SRC_URI}"
  if [ "$?" == "0" ]  
  then  
  break  
  else  
  continue  
  fi  
205   fi   fi
206   fi   fi
207    
208     # unset them to be shure
209     unset my_SRC_URI
210     unset my_SRC_URI_DEST
211     unset my_SRC_URI_MIRROR
212     unset my_SOURCEDIR
213   done   done
214    
215   # recheck md5 sums   # recheck md5 sums
# Line 187  download_sources() { Line 223  download_sources() {
223  }  }
224    
225  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
226  src_prepare() {  src_prepare()
227    {
228   echo "no src_prepare defined"   echo "no src_prepare defined"
229   sleep 2   sleep 2
230   return 0   return 0
231  }  }
232    
233  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
234  src_compile() {  src_compile()
235    {
236   echo "no src_compile defined"   echo "no src_compile defined"
237   sleep 2   sleep 2
238   return 0   return 0
239  }  }
240    
241  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
242  src_install() {  src_install()
243    {
244   echo "no src_install defined"   echo "no src_install defined"
245   sleep 2   sleep 2
246   return 0   return 0
247  }  }
248    
249    mlibdir()
250    {
251     local libdir=lib
252     [[ ${ARCH} = x86_64 ]] && libdir=lib64
253    
254  build_mage_script() {   echo "${libdir}"
  return 0  
255  }  }
256    
257  mconfigure() {  mconfigure()
258    {
259   if [ -x ./configure ]   if [ -x ./configure ]
260   then   then
261   ./configure \   ./configure \
262   --prefix=/usr \   --prefix=/usr \
263   --host=${CHOST} \   --host=${CHOST} \
264   --mandir=/usr/share/man \   --mandir=/usr/share/man \
265   --infodir=/usr/share/info \   --infodir=/usr/share/info \
266   --datadir=/usr/share \   --datadir=/usr/share \
267   --sysconfdir=/etc \   --sysconfdir=/etc \
268   --localstatedir=/var/lib \   --localstatedir=/var/lib \
269   "$@" || die "mconfigure failed"   --libdir=/usr/$(mlibdir) \
270     "$@" || die "mconfigure failed"
271   else   else
272   echo "configure is not an executable ..."   echo "configure is not an executable ..."
273   exit 1   exit 1
274   fi   fi
275  }  }
276    
277  minstall() {  minstall()
278   if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then  {
279     if [ -f ./[mM]akefile -o -f ./GNUmakefile ]
280     then
281   make prefix=${BINDIR}/usr \   make prefix=${BINDIR}/usr \
282   datadir=${BINDIR}/usr/share \   datadir=${BINDIR}/usr/share \
283   infodir=${BINDIR}/usr/share/info \   infodir=${BINDIR}/usr/share/info \
284   localstatedir=${BINDIR}/var/lib \   localstatedir=${BINDIR}/var/lib \
285   mandir=${BINDIR}/usr/share/man \   mandir=${BINDIR}/usr/share/man \
286   sysconfdir=${BINDIR}/etc \   sysconfdir=${BINDIR}/etc \
287     libdir=${BINDIR}/usr/$(mlibdir) \
288   "$@" install || die "minstall failed"   "$@" install || die "minstall failed"
289          else          else
290                  die "no Makefile found"                  die "no Makefile found"
291          fi          fi
292  }  }
293    
294  mmake() {  mmake()
295    {
296   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"
297  }  }
298    
299  munpack() {  munpack()
300    {
301   local SRCFILE   local SRCFILE
302   local IFTAR   local IFTAR
303   local DEST   local DEST
304    
305   SRCFILE=$1   SRCFILE=$1
306    
307   if [ -z "$2" ]   if [ -z "$2" ]
308   then   then
309   DEST=${BUILDDIR}   DEST=${BUILDDIR}
310   else   else
311   DEST=$2   DEST=$2
312   fi   fi
313    
314     [[ ! -d ${DEST} ]] && install -d ${DEST}
315    
316   case "${SRCFILE##*.}" in   case "${SRCFILE##*.}" in
317   bz2)   bz2)
318   IFTAR="$(basename $SRCFILE .bz2)"   IFTAR="$(basename $SRCFILE .bz2)"
319   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
320   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
321   then   then
322   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
323   fi   fi
# Line 274  munpack() { Line 325  munpack() {
325   gz)   gz)
326   IFTAR="$(basename $SRCFILE .gz)"   IFTAR="$(basename $SRCFILE .gz)"
327   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
328   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
329   then   then
330   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
331   fi   fi
# Line 291  munpack() { Line 342  munpack() {
342   esac   esac
343  }  }
344    
345  mpatch() {  mpatch()
346    {
347   local PATCHOPTS   local PATCHOPTS
348   local PATCHFILE   local PATCHFILE
349    
350   PATCHOPTS=$1   PATCHOPTS=$1
351   PATCHFILE=$2   PATCHFILE=$2
352    
353     echo -e "${COLBLUE}*** ${COLGREEN}Applying patch '${PATCHFILE}'${COLDEFAULT}"
354   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}
355  }  }
356    
357    
358  minstalldocs() {  minstalldocs()
359    {
360   local docfiles   local docfiles
   
361   docfiles="$@"   docfiles="$@"
362    
363   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
364   then   then
365   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
366   fi   fi
367    
368   for i in ${docfiles}   for i in ${docfiles}
369   do   do
370   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
# Line 320  minstalldocs() { Line 373  minstalldocs() {
373   done   done
374  }  }
375    
376  setup_distcc_environment(){  mstriplibs()
377    {
378     local stripdir="$@"
379    
380     [ -z "${stripdir}" ] && stripdir=${BINDIR}
381     find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
382    }
383    
384    mstripbins()
385    {
386     local stripdir="$@"
387    
388     [ -z "${stripdir}" ] && stripdir=${BINDIR}
389     find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
390    }
391    
392    sminclude()
393    {
394     local i
395    
396     if [[ -n "$@" ]]
397     then
398     for i in $@
399     do
400     echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
401     source ${SMAGESCRIPTSDIR}/include/${i}.sminc
402     done
403     echo
404     fi
405    }
406    
407    setup_distcc_environment()
408    {
409   if [ -x /usr/bin/distcc ]   if [ -x /usr/bin/distcc ]
410   then   then
411   echo "Using DistCC for compilation ..."   echo "Using DistCC for compilation ..."
412   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  
413    
414   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
415    
416     # creating distcc tempdir
417     install -o distcc -g daemon -d ${DISTCC_DIR}
418     chmod 1777 ${DISTCC_DIR}
419     fi
420    }
421    
422   #ccache + distcc together  setup_ccache_environment()
423   if [ "${SMAGE_USE_CCACHE}" == "true" ]  {
424   then   if [ -x /usr/bin/ccache ]
425   if [ -x /usr/bin/ccache ]   then
426     echo "Using CCache for compilation ..."
427     export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
428     fi
429    }
430    
431    
432    # fixes given dependencies to match a MAGE_TARGET
433    # fix_mage_deps -target s/depend # <-- note -target !
434    fix_mage_deps()
435    {
436     local target="$1"
437     local depend="$2"
438     local NDEPEND
439     local sym dep cat pver pname
440    
441     # deps and provides are special
442     # they must be fixed to match the target
443    
444     # run this only if target and depend is not empty
445     if [ -n "${target}" ] && [ -n "${depend}" ]
446     then
447     # fix DEPEND
448     while read sym dep
449     do
450     cat="$(dirname ${dep})"
451     # change if not virtual
452     if [[ ${cat} = virtual ]]
453     then
454     pname="$(basename ${dep})"
455     else
456     # fix pver to target-pver
457     # to get pname-target-pver
458    
459     # doing it backwards !
460     pver="${dep##*-}"
461     # full pver
462     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
463     fi
464    
465     # do not add empty lines
466     if [ -z "${NDEPEND}" ]
467   then   then
468   echo "Preparing DistCC to work together with CCache ..."   NDEPEND="${sym} ${cat}/${pname}"
469   #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"   else
470  # export CC="ccache distcc"   NDEPEND="${NDEPEND}
471  # export CXX="ccache distcc"   ${sym} ${cat}/${pname}"
472   fi   fi
473    
474     unset cat pname pver
475     done << EOF
476    ${depend}
477    EOF
478     # set NDEPEND to DEPEND
479     depend="${NDEPEND}"
480     fi
481    
482     echo "${depend}"
483    }
484    
485    # build_mage_script(): helper functions for regen_mage_tree()
486    # generates an mage file with given information in smage file
487    # needs at least:
488    #   PNAME                 name of pkg
489    #   PVER                  version
490    #   PBUILD                revision
491    #   PCATEGORIE            categorie of the pkg
492    #   STATE                 state of pkg stable|unstable|old
493    #   DESCRIPTION           va short description (opt)
494    #   HOMEPAGE              homepage (opt)
495    #   DEPEND                runtime dependencies (opt)
496    #   SDEPEND               add. needed deps to build the pkg (opt)
497    #   PROVIDE               provides a virtual (opt)
498    #
499    # special tags:
500    #   PKGTYPE               type of pkg
501    #   INHERITS              which functions get included
502    #   SPECIAL_FUNCTIONS     special functions wich should also be added
503    #                         warning: they get killed before the build starts !
504    #
505    #   MAGE_TREE_DEST        target destination of the generated tree
506    #   REGEN_MAGE_TREE       set to 'true' to enable this
507    #
508    # gets called with build_mage_script target
509    build_mage_script()
510    {
511     local magefile
512     local dest
513     local target
514     local sym
515     local depname
516    
517     # if MAGE_TREE_DEST not set use BUILDDIR
518     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
519    
520     # determinate which suffix this mage file should get, if any
521     [ -n "$1" ] && target="-$1"
522    
523     # name of magefile
524     magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
525    
526     # destination to magefile
527     dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
528    
529     # show what we are doing
530     echo "Generating Mage file:"
531     echo "  ${dest}"
532    
533     install -d "$(dirname ${dest})"
534     # now build the mage file
535     > ${dest}
536    
537     # header
538     echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.49 2007-01-19 23:11:17 niro Exp $' >> ${dest}
539     echo  >> ${dest}
540    
541     # pgkname and state
542     echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
543     echo "STATE=\"${STATE}\"" >> ${dest}
544     echo >> ${dest}
545    
546     # description and homepage
547     echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
548     echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
549     echo >> ${dest}
550    
551     # special tags and vars
552     echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
553    
554     # echo MAGE_TARGETS ## note -target is needed !
555     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
556     echo >> ${dest}
557    
558     # add special vars
559     if [ -n "${SPECIAL_VARS}" ]
560     then
561     local i
562     for i in ${SPECIAL_VARS}
563     do
564     # being tricky here :)
565     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
566     done
567     echo  >> ${dest}
568     fi
569    
570     # add at least all includes
571     if [ -n "${INHERITS}" ]
572     then
573     echo -n "minclude"  >> ${dest}
574     local i
575     for i in ${INHERITS}
576     do
577     echo -n " ${i}"  >> ${dest}
578     done
579     echo  >> ${dest}
580     fi
581     echo >> ${dest}
582    
583     # deps and provides
584     echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
585     echo >> ${dest}
586     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
587     echo >> ${dest}
588     echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
589     echo >> ${dest}
590    
591     # add special functions
592     if [ -n "${SPECIAL_FUNCTIONS}" ]
593     then
594     local i
595     for i in ${SPECIAL_FUNCTIONS}
596     do
597     # add to mage (quotes needed !)
598     typeset -f "${i}" >> ${dest}
599     echo >> ${dest}
600     # unset to be safe (quotes needed !)
601     #unset "${i}" <-- later to get every target built
602     done
603     echo  >> ${dest}
604     fi
605    
606     # pre|post-install|removes
607     typeset -f preinstall >> ${dest}
608     echo  >> ${dest}
609     typeset -f postinstall >> ${dest}
610     echo  >> ${dest}
611     typeset -f preremove >> ${dest}
612     echo  >> ${dest}
613     typeset -f postremove >> ${dest}
614     echo  >> ${dest}
615    }
616    
617    regen_mage_tree()
618    {
619     local i
620    
621     # build them only if requested
622     if [[ ${REGEN_MAGE_TREE} = true ]]
623     then
624     # run it without targets
625     if [ -z "${MAGE_TARGETS}" ]
626     then
627     echo
628     build_mage_script
629     echo
630     else
631    
632     # build for each target an mage file
633     # run it with several targets
634     for i in ${MAGE_TARGETS}
635     do
636     echo
637     build_mage_script "${i}"
638     echo
639     done
640   fi   fi
641     fi
642    
643   #creating distcc tempdir   # now unset all uneeded vars to be safe
644   install -o distcc -g daemon -d ${DISTCC_DIR}   # unset PKGNAME <-- don't do that; smage needs this var
645   chmod 1777 ${DISTCC_DIR}   # unset to be safe (quotes needed !)
646     for i in ${SPECIAL_FUNCTIONS}
647     do
648     unset "${i}"
649     done
650     unset SPECIAL_FUNCTIONS
651     for i in ${SPECIAL_VARS}
652     do
653     unset "${i}"
654     done
655     unset SPECIAL_VARS
656     unset STATE
657     unset DESCRIPTION
658     unset HOMEPAGE
659     unset PKGTYPE
660     unset INHERITS
661     unset DEPEND
662     unset SDEPEND
663     unset PROVIDE
664     unset preinstall
665     unset postinstall
666     unset preremove
667     unset postremove
668    }
669    
670    export_inherits()
671    {
672     local include="$1"
673     shift
674    
675     while [ "$1" ]
676     do
677     local functions="$1"
678    
679     # sanity checks
680     [ -z "${include}" ] && die "export_inherits(): \$include not given."
681     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
682    
683     eval "${functions}() { ${include}_${functions} ; }"
684    
685     # debug
686     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
687    
688     shift
689     done
690    }
691    
692    generate_package_md5sum()
693    {
694     local dest
695     local pcat
696     local pname
697     local pver
698     local pbuild
699     local parch
700     local target
701     local pkgname
702    
703     # very basic getops
704     for i in $*
705     do
706     case $1 in
707     --pcat|-c) shift; pcat="$1" ;;
708     --pname|-n) shift; pname="$1" ;;
709     --pver|-v) shift; pver="$1" ;;
710     --pbuild|-b) shift; pbuild="$1" ;;
711     --parch|a) shift; parch="$1" ;;
712     --target|t) shift; target="$1" ;;
713     esac
714     shift
715     done
716    
717     # sanity checks; abort if not given
718     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
719     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
720     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
721     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
722     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
723    
724     # check needed global vars
725     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
726     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
727    
728     # fix target as it may be empty !
729     [ -n "${target}" ] && target="-${target}"
730    
731     # build pkgname
732     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
733    
734     # build pkg-md5-sum only if requested
735     if [[ ${REGEN_MAGE_TREE} = true ]]
736     then
737     echo -n "Generating a md5sum for ${pkgname}.${PKGSUFFIX} ... "
738    
739     # abort if not exist
740     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
741     then
742     echo "! exists"
743     return 0
744     fi
745    
746     # if MAGE_TREE_DEST not set use BUILDDIR
747     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
748    
749     # setup md5 dir
750     dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5"
751     install -d ${dest}
752    
753     # gen md5sum
754     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
755     > ${dest}/${pkgname}.md5
756     echo "done"
757   fi   fi
758  }  }
759    
760  setup_ccache_environment(){  source_pkg_build()
761   if [ -x /usr/bin/ccache ]  {
762     if [[ ${PKGTYPE} = virtual ]]
763   then   then
764   echo "Using CCache for compilation ..."   echo "Virtual package detected; src-pkg-tarball not necessary ..."
765   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   return 0
  #unset CC CXX  
766   fi   fi
767    
768     if [[ ! -d ${SOURCEDIR}/${PNAME} ]]
769     then
770     echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
771     return 0
772     fi
773    
774     [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your mage.rc correctly."
775    
776     echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}"
777    
778     # include the smage2 file
779     cp ${SMAGENAME} ${SOURCEDIR}/${PNAME}
780    
781     ( cd ${SOURCEDIR}; tar cvjf ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${PNAME}; )
782     [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR}
783     mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}
784    
785     echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}"
786  }  }
787    
788    
789  # print out our version  # print out our version
790  showversion  showversion
791  echo  echo
# Line 371  then Line 797  then
797   exit 1   exit 1
798  fi  fi
799    
800  #updating smage2-scripts  # updating smage2-scripts
801  if [ "$1" == "update" ]  if [[ $1 = update ]]
802  then  then
803   if [ ! -d ${SOURCEDIR} ]   if [ ! -d ${SOURCEDIR} ]
804   then   then
# Line 382  then Line 808  then
808   exit 0   exit 0
809  fi  fi
810    
811  #creates md5sums for smages to given dir  # creates md5sums for smages to given dir
812  if [ "$1" == "calcmd5" ]  if [[ $1 = calcmd5 ]]
813  then  then
814   if [ $# -ge 3 ]   if [ $# -ge 3 ]
815   then   then
  # overridable sourcedir  
  CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"  
   
816   SMAGENAME="$2"   SMAGENAME="$2"
817   MD5DIR="$3"   MD5DIR="$3"
818   source ${SMAGENAME} || die "download source failed"   source ${SMAGENAME} || die "download source failed"
819    
820     # overridable sourcedir; must be declared after source of the smage2
821     CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
822    
823   [ -z "${SRC_URI}" ] && die "Nothing declared to calculate."   [ -z "${SRC_URI}" ] && die "Nothing declared to calculate."
824    
825   # end of array   # end of array
# Line 407  then Line 833  then
833    
834   for ((i=0; i < EOA; i++))   for ((i=0; i < EOA; i++))
835   do   do
836   MY_SRC_FILE="$(basename ${SRC_URI[${i}]})"   # url to file
837     my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
838    
839     # subdir in sources dir; the my_SRCI_URI file goes to there
840     my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
841    
842     # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
843     if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
844     then
845     MY_SRC_FILE="${my_SRC_URI_DEST}/$(basename ${SRC_URI[${i}]})"
846     else
847     MY_SRC_FILE="$(basename ${SRC_URI[${i}]})"
848     fi
849    
850   if [ -e "${CALC_SOURCEDIR}/${MY_SRC_FILE}" ]   if [ -e "${CALC_SOURCEDIR}/${MY_SRC_FILE}" ]
851   then   then
852   echo "calculating $(basename ${MY_SRC_FILE}) ..."   echo "calculating $(basename ${MY_SRC_FILE}) ..."
# Line 415  then Line 854  then
854   else   else
855   echo "WARNING: File '$(basename ${MY_SRC_FILE}) not found in ${CALC_SOURCEDIR}."   echo "WARNING: File '$(basename ${MY_SRC_FILE}) not found in ${CALC_SOURCEDIR}."
856   fi   fi
857    
858     # unset them to be shure
859     unset my_SRC_URI
860     unset my_SRC_URI_DEST
861     unset my_SRC_URI_MIRROR
862     unset my_SOURCEDIR
863   done   done
864    
865   echo   echo
866   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
867   echo   echo
# Line 429  then Line 874  then
874   echo   echo
875   exit 1   exit 1
876   fi   fi
877    
878   exit 0   exit 0
879  fi  fi
880    
881  #download sources  # download sources
882  if [ "$1" == "download" -a -n "$2" ]  if [ "$1" == "download" -a -n "$2" ]
883  then  then
  showversion  
884   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
885   then   then
886   install -d ${SMAGESCRIPTSDIR}   install -d ${SMAGESCRIPTSDIR}
# Line 451  then Line 895  then
895   exit 0   exit 0
896  fi  fi
897    
898  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  # regen-mage-tree
899    if [ "$1" == "only-regen-tree" -a -n "$2" ]
900  then  then
901   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   # set correct SMAGENAME
902  fi   SMAGENAME="$2"
903     MD5DIR="$(dirname ${SMAGENAME})/md5"
904     source ${SMAGENAME} || die "regen: smage2 not found"
905    
906  if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]   regen_mage_tree
 then  
  die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."  
 fi  
907    
908  if [ -z "${SOURCEDIR}" ]   # build md5sum for existing packages
909  then   generate_package_md5sum \
910   die "\$SOURCEDIR not found. Please setup your mage.rc correctly."   --pcat "${PCATEGORIE}" \
911  fi   --pname "${PNAME}" \
912     --pver "${PVER}" \
913     --pbuild "${PBUILD}" \
914     --parch "${ARCH}" \
915     --target "${target}"
916    
917  if [ -z "${SMAGESCRIPTSDIR}" ]   exit 0
 then  
  die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."  
918  fi  fi
919    
920  if [ -z "${SMAGE2RSYNC}" ]  if [ "$1" == "--create-src-tarball" -a -n "$2" ]
921  then  then
922   echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."   # set correct SMAGENAME
923   exit 1   SMAGENAME="$2"
924  fi   MD5DIR="$(dirname ${SMAGENAME})/md5"
925    
926  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  
927    
928  if [ -z "${CHOST}" ]   source ${SMAGENAME} || die "regen: smage2 not found"
 then  
  die "no CHOST variable found in /etc/mage.rc"  
 fi  
929    
930  if [ -z "${CFLAGS}" ]   if [[ -d ${SOURCEDIR}/${PNAME} ]]
931  then   then
932   die "no CFLAGS variable found in /etc/mage.rc"   echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
933     rm -rf ${SOURCEDIR}/${PKGNAME}
934     fi
935    
936     download_sources
937     source_pkg_build ${SMAGENAME}
938     exit 0
939  fi  fi
940    
941  if [ -z "${CXXFLAGS}" ]  if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
942  then  then
943   die "no CXXFLAGS variable found in /etc/mage.rc"   SRCPKGTARBALL="${2}"
944     USE_SRC_PKG_TARBALL=true
945    
946     # abort if given file is not a source pkg
947     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
948    
949     # set correct SMAGENAME; use the one that the src_pkg provide
950     # /path/to/SOURCEDIR/PNAME/SMAGENAME
951     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
952    
953     echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
954    
955     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
956    
957     # unpack srctarball
958     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
959    
960     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die  "Error unpackung src-tarball ${SRCPKGTARBALL}"
961    
962     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
963  fi  fi
964    
965    
966    [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
967    [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
968     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
969    [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your mage.rc correctly."
970    [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."
971    [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."
972    [ -z "${BINDIR}" ] && die "no BINDIR variable found in /etc/mage.rc"
973    [ -z "${CHOST}" ] && die "no CHOST variable found in /etc/mage.rc"
974    [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in /etc/mage.rc"
975    [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in /etc/mage.rc"
976    
977  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
978  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
979  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
980    
981  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
982  echo "Compiling ${PKGNAME}"  echo "Compiling ${PKGNAME}"
983    
984  #download sources  # auto regen mage tree if requested
985  download_sources  regen_mage_tree
986    
987  #fixes some issues with these functions  if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
988    then
989     if [[ -d ${SOURCEDIR}/${PNAME} ]]
990     then
991     echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
992     rm -rf ${SOURCEDIR}/${PNAME}
993     fi
994    fi
995    
996    # download sources
997    [[ ${USE_SRC_PKG_TARBALL} != true ]] && download_sources
998    
999    # fixes some issues with these functions
1000  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
1001  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
1002  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
1003    
1004  #fixes some compile issues  # fixes some compile issues
1005  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
1006  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
1007  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 521  export BINDIR="${BINDIR}" || die "BINDIR Line 1009  export BINDIR="${BINDIR}" || die "BINDIR
1009  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
1010    
1011    
1012  #setup distcc  # setup distcc
1013  #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
1014  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  
1015    
1016    # setup ccache
1017    [[ ${SMAGE_USE_CCACHE} = true ]] && setup_ccache_environment
1018    
1019  # small sleep to show our settings  # small sleep to show our settings
1020  sleep 1  sleep 1
1021    
1022  #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  
1023  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
1024  then  then
1025   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
1026  fi  fi
1027  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
1028    
1029  #cleans up srcdir if a previously unpacked one exists  # cleans up srcdir if a previously unpacked one exists
1030  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
1031  then  then
1032   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
1033  fi  fi
1034    
1035  #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
1036  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
1037  then  then
1038   rm -rf ${BINDIR}   rm -rf ${BINDIR}
1039  fi  fi
1040  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
1041    
1042  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
1043  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
1044  then  then
1045   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
1046  fi  fi
1047    
1048  #cleans up timestamp if one exists  # cleans up timestamp if one exists
1049  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
1050  then  then
1051   mage rmstamp   mage rmstamp
# Line 586  src_compile || die "src_compile failed" Line 1056  src_compile || die "src_compile failed"
1056  src_install || die "src_install failed"  src_install || die "src_install failed"
1057    
1058    
1059  #compressing doc, info & man files  # compressing doc, info & man files
1060  echo -e "Compressing man-pages ..."  echo -e "Compressing man-pages ..."
1061  if [ -d ${BUILDDIR}/builded/usr/share/man ]  if [ -d ${BUILDDIR}/builded/usr/share/man ]
1062  then  then
# Line 599  then Line 1069  then
1069   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
1070  fi  fi
1071    
1072  #the new buildpkg command  # stripping all bins and libs
1073    case ${NOSTRIP} in
1074     true|TRUE|yes|y)
1075     echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1076     ;;
1077     *)
1078     echo -e "Stripping binaries ..."
1079     mstripbins ${BINDIR}
1080     echo -e "Stripping libraries ..."
1081     mstriplibs ${BINDIR}
1082     ;;
1083    esac
1084    
1085    # the new buildpkg command
1086  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
1087   true|TRUE|yes|y)   true|TRUE|yes|y)
1088   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
1089   ;;   ;;
1090   *)   *)
1091   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build several targets
1092   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [ -n "${MAGE_TARGETS}" ]
1093     then
1094     for target in ${MAGE_TARGETS}
1095     do
1096     # check if an special target_pkgbuild exists
1097     if typeset -f ${target}_pkgbuild > /dev/null
1098     then
1099     # run it
1100     ${target}_pkgbuild
1101     fi
1102     # now create the target package
1103     ${MLIBDIR}/pkgbuild_dir.sh \
1104     "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1105     ${BINDIR} || die "target: ${target} package-build failed"
1106    
1107     # build pkg-md5-sum if requested
1108     generate_package_md5sum \
1109     --pcat "${PCATEGORIE}" \
1110     --pname "${PNAME}" \
1111     --pver "${PVER}" \
1112     --pbuild "${PBUILD}" \
1113     --parch "${ARCH}" \
1114     --target "${target}"
1115    
1116     echo -e "\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n"
1117     done
1118     else
1119     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1120    
1121     # build pkg-md5-sum if requested
1122     generate_package_md5sum \
1123     --pcat "${PCATEGORIE}" \
1124     --pname "${PNAME}" \
1125     --pver "${PVER}" \
1126     --pbuild "${PBUILD}" \
1127     --parch "${ARCH}"
1128    
1129     echo -e "\nPackage ${PKGNAME} successfully builded.\n"
1130     fi
1131    
1132     # build src-pkg-tarball if requested
1133     [[ ${CREATE_SRC_PKG_TARBALL} = true ]] && source_pkg_build ${SMAGENAME}
1134   ;;   ;;
1135  esac  esac
1136    
1137  #for sure  # for sure
1138  unset NOPKGBUILD  unset NOPKGBUILD
1139    unset NOSTRIP
1140    
1141  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.63  
changed lines
  Added in v.412