Magellan Linux

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

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

trunk/mage/usr/lib/mage/smage2.sh revision 1784 by niro, Mon Mar 12 23:27:53 2012 UTC branches/mage-next/src/smage2.in revision 2619 by niro, Tue Mar 4 15:41:15 2014 UTC
# Line 7  Line 7 
7  # TODO: record dynlib, gz | xz database  # TODO: record dynlib, gz | xz database
8    
9    
10  # set default user mage.rc  # set default variables
11  : ${MAGERC="/etc/mage.rc"}  : ${MAGERC="@@SYSCONFDIR@@/mage.rc"}
12    : ${MLIBDIR="@@MAGELIBDIR@@"}
13    
14  # export default C locale  # export default C locale
15  export LC_ALL=C  export LC_ALL=C
16    
17  source /etc/mage.rc.global  # first of all include common functions
18  source ${MAGERC}  source ${MLIBDIR}/common.functions.sh || exit 1
19  source ${MLIBDIR}/mage4.functions.sh  source @@SYSCONFDIR@@/mage.rc.global || die "@@SYSCONFDIR@@/mage.rc.global missing."
20  source ${MLIBDIR}/smage2.functions.sh  source ${MAGERC} || die "${MAGERC} missing."
21    source ${MLIBDIR}/mage4.functions.sh || die "${MLIBDIR}/mage4.functions.sh missing."
22    source ${MLIBDIR}/smage2.functions.sh || die "${MLIBDIR}/smage2.functions.sh missing."
23    
24    # export default path
25    export PATH="${PATH}:${MLIBDIR}"
26    
27  ## setup ##  ## setup ##
28  SMAGENAME="$1"  SMAGENAME="$1"
 SMAGEVERSION="$(< ${MLIBDIR}/version)"  
29    
30  # expand PKGDIR, BUILDDIR and BINDIR with MROOT  # expand PKGDIR, BUILDDIR and BINDIR with MROOT
31  if [[ -n ${MROOT} ]]  if [[ -n ${MROOT} ]]
# Line 154  then Line 159  then
159    
160   regen_mage_tree   regen_mage_tree
161    
  # build several targets  
  if [[ -n ${MAGE_TARGETS} ]]  
  then  
  for target in ${MAGE_TARGETS}  
  do  
  # build md5sum for existing packages  
  generate_package_md5sum \  
  --pcat "${PCAT}" \  
  --pname "${PNAME}" \  
  --pver "${PVER}" \  
  --pbuild "${PBUILD}" \  
  --parch "${ARCH}" \  
  --target "${target}"  
  done  
   
162   # build several subpackages   # build several subpackages
163   elif [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
164   then   then
165   split_save_variables   split_save_variables
166   for subpackage in ${SPLIT_PACKAGES}   for subpackage in ${SPLIT_PACKAGES}
# Line 280  SMAGE_LOG_CMD="tee -a /var/log/smage/${P Line 270  SMAGE_LOG_CMD="tee -a /var/log/smage/${P
270  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
271  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
272    
 # auto regen mage tree if requested  
 regen_mage_tree  
   
273  if mqueryfeature "srcpkgbuild"  if mqueryfeature "srcpkgbuild"
274  then  then
275   if [[ -d ${SOURCEDIR}/${PNAME} ]]   if [[ -d ${SOURCEDIR}/${PNAME} ]]
# Line 318  export MAKEOPTS="${MAKEOPTS}" || die "MA Line 305  export MAKEOPTS="${MAKEOPTS}" || die "MA
305  # setup for distcc goes *before* ccache, so ccache comes before distcc in path  # setup for distcc goes *before* ccache, so ccache comes before distcc in path
306  mqueryfeature "distcc" && setup_distcc_environment  mqueryfeature "distcc" && setup_distcc_environment
307    
308    # setup icecc
309    # setup for icecc goes *before* ccache, so ccache comes before icecc in path
310    mqueryfeature "icecc" && setup_icecc_environment
311    
312  # setup ccache  # setup ccache
313  mqueryfeature "ccache" && setup_ccache_environment  mqueryfeature "ccache" && setup_ccache_environment
314    
# Line 409  else Line 400  else
400   split_info_${subpackage}   split_info_${subpackage}
401   if [[ ${PKGTYPE} = virtual ]]   if [[ ${PKGTYPE} = virtual ]]
402   then   then
403     echo
404     echo -en "${COLBLUE}*** ${COLDEFAULT}"
405     echo -en "Virtual package detected"
406     echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
407     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
408    
409   echo "virtual package detected; nothing will be build ..."   echo "virtual package detected; nothing will be build ..."
410   # automatically set !pkgbuild here too   # automatically set !pkgbuild here too
411   msetfeature "!pkgbuild"   msetfeature "!pkgbuild"
# Line 423  else Line 420  else
420    
421   echo   echo
422   echo -en "${COLBLUE}*** ${COLDEFAULT}"   echo -en "${COLBLUE}*** ${COLDEFAULT}"
423   echo -en "  Running ${COLGREEN}split src_install()${COLDEFAULT}"   echo -en "Running ${COLGREEN}split src_install()${COLDEFAULT}"
424   echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"   echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
425   echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."   echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
426    
# Line 433  else Line 430  else
430   step_by_step src_install_${subpackage}   step_by_step src_install_${subpackage}
431   fi   fi
432   fi   fi
433     # restore smage environment
434     split_restore_variables
435   done   done
  # restore bindir & pname  
  split_restore_variables  
436   # unset all saved smage variables   # unset all saved smage variables
437   split_unset_variables   split_unset_variables
438   else   else
# Line 459  else Line 456  else
456   # compressing doc, info & man files   # compressing doc, info & man files
457   if [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
458   then   then
459     # save smage environment
460     split_save_variables
461   for subpackage in ${SPLIT_PACKAGES}   for subpackage in ${SPLIT_PACKAGES}
462   do   do
463   run_resume post-mcompressdoc_${subpackage} || mcompressdocs ${BINDIR}_${subpackage}   # honor split_info
464   resume_stamp post-mcompressdoc_${subpackage}   split_info_${subpackage}
465     if [[ ${PKGTYPE} = virtual ]]
466     then
467     # automatically set !pkgbuild here too
468     msetfeature "!pkgbuild"
469     fi
470    
471     if mqueryfeature "!compressdoc"
472     then
473     echo -e "!compressdoc detected; documentation of '${subpackage}' will not be compressed ..."
474     elif mqueryfeature "!pkgbuild"
475     then
476     echo "!pkgbuild detected; skipping documentation compression for '${subpackage}' ..."
477     else
478     run_resume post-mcompressdoc_${subpackage} || mcompressdocs ${BINDIR}_${subpackage}
479     resume_stamp post-mcompressdoc_${subpackage}
480     fi
481     # restore smage environment
482     split_restore_variables
483   done   done
484     # unset saved variables
485     split_unset_variables
486   else   else
487   run_resume post-mcompressdoc || mcompressdocs ${BINDIR}   run_resume post-mcompressdoc || mcompressdocs ${BINDIR}
488   resume_stamp post-mcompressdoc   resume_stamp post-mcompressdoc
# Line 478  then Line 497  then
497   else   else
498   if [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
499   then   then
500     # save smage environment
501     split_save_variables
502   for subpackage in ${SPLIT_PACKAGES}   for subpackage in ${SPLIT_PACKAGES}
503   do   do
504   echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives for '${subpackage}' ...${COLDEFAULT}"   # honor split_info
505   run_resume post-mstriplibtoolarchive_${subpackage} || mstriplibtoolarchive ${BINDIR}_${subpackage}   split_info_${subpackage}
506   resume_stamp post-mstriplibtoolarchive_${subpackage}   if [[ ${PKGTYPE} = virtual ]]
507     then
508     # automatically set !pkgbuild here too
509     msetfeature "!pkgbuild"
510     fi
511    
512     if mqueryfeature "!libtool"
513     then
514     if mqueryfeature "!pkgbuild"
515     then
516     echo "!pkgbuild detected; skipping libtool archive stripping for '${subpackage}'..."
517     else
518     echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives for '${subpackage}' ...${COLDEFAULT}"
519     run_resume post-mstriplibtoolarchive_${subpackage} || mstriplibtoolarchive ${BINDIR}_${subpackage}
520     resume_stamp post-mstriplibtoolarchive_${subpackage}
521     fi
522     fi
523    
524     # restore smage environment
525     split_restore_variables
526   done   done
527     # unset saved variables
528     split_unset_variables
529   else   else
530   echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives ...${COLDEFAULT}"   echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives ...${COLDEFAULT}"
531   run_resume post-mstriplibtoolarchive || mstriplibtoolarchive ${BINDIR}   run_resume post-mstriplibtoolarchive || mstriplibtoolarchive ${BINDIR}
# Line 496  if mqueryfeature "purge" Line 538  if mqueryfeature "purge"
538  then  then
539   if mqueryfeature "!pkgbuild"   if mqueryfeature "!pkgbuild"
540   then   then
541   echo "!pkgbuild detected; skipping file purgation..."   echo "!pkgbuild detected; skipping file purgation ..."
542   else   else
543   if [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
544   then   then
545     # save smage environment
546     split_save_variables
547   for subpackage in ${SPLIT_PACKAGES}   for subpackage in ${SPLIT_PACKAGES}
548   do   do
549   echo -e "${COLBLUE}===${COLGREEN} purging all purge targets in '${subpackage}' ...${COLDEFAULT}"   # honor split_info
550   run_resume post-mpurgetargets_${subpackage} || mpurgetargets ${BINDIR}_${subpackage}   split_info_${subpackage}
551   resume_stamp post-mpurgetargets_${subpackage}   if [[ ${PKGTYPE} = virtual ]]
552     then
553     # automatically set !pkgbuild here too
554     msetfeature "!pkgbuild"
555     fi
556    
557     if mqueryfeature "purge"
558     then
559     if mqueryfeature "!pkgbuild"
560     then
561     echo "!pkgbuild detected; skipping file purgation for '${subpackage}' ..."
562     else
563     echo -e "${COLBLUE}===${COLGREEN} purging all purge targets in '${subpackage}' ...${COLDEFAULT}"
564     run_resume post-mpurgetargets_${subpackage} || mpurgetargets ${BINDIR}_${subpackage}
565     resume_stamp post-mpurgetargets_${subpackage}
566     fi
567     fi
568    
569     # restore smage environment
570     split_restore_variables
571   done   done
572     # unset saved variables
573     split_unset_variables
574   else   else
575   echo -e "${COLBLUE}===${COLGREEN} purging all purge targets ...${COLDEFAULT}"   echo -e "${COLBLUE}===${COLGREEN} purging all purge targets ...${COLDEFAULT}"
576   run_resume post-mpurgetargets || mpurgetargets ${BINDIR}   run_resume post-mpurgetargets || mpurgetargets ${BINDIR}
# Line 517  fi Line 582  fi
582  # stripping all bins and libs  # stripping all bins and libs
583  if mqueryfeature "!strip"  if mqueryfeature "!strip"
584  then  then
585   echo -e "!strip detected; Package will not be stripped ..."   echo -e "!strip detected; package will not be stripped ..."
586  elif mqueryfeature "!pkgbuild"  elif mqueryfeature "!pkgbuild"
587  then  then
588   echo "!pkgbuild detected; skipping stripping of the package ..."   echo "!pkgbuild detected; skipping stripping of the package ..."
589  else  else
590   if [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
591   then   then
592     # save smage environment
593     split_save_variables
594   for subpackage in ${SPLIT_PACKAGES}   for subpackage in ${SPLIT_PACKAGES}
595   do   do
596   echo -e "${COLBLUE}===${COLGREEN} stripping binaries for '${subpackage}' ...${COLDEFAULT}"   # honor split_info
597   run_resume post-mstripbins_${subpackage} || mstripbins ${BINDIR}_${subpackage}   split_info_${subpackage}
598   resume_stamp post-mstripbins_${subpackage}   if [[ ${PKGTYPE} = virtual ]]
599   echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries for '${subpackage}' ...${COLDEFAULT}"   then
600   run_resume post-mstriplibs_${subpackage} || mstriplibs ${BINDIR}_${subpackage}   # automatically set !pkgbuild here too
601   resume_stamp post-mstriplibs_${subpackage}   msetfeature "!pkgbuild"
602   echo -e "${COLBLUE}===${COLGREEN} stripping static libraries for '${subpackage}' ...${COLDEFAULT}"   fi
603   run_resume post-mstripstatic_${subpackage} || mstripstatic ${BINDIR}_${subpackage}  
604   resume_stamp post-mstripstatic_${subpackage}   if mqueryfeature "!strip"
605     then
606     echo -e "!strip detected; package '${subpackage}' will not be stripped ..."
607     elif mqueryfeature "!pkgbuild"
608     then
609     echo "!pkgbuild detected; skipping stripping of the package '${subpackage}' ..."
610     else
611     echo -e "${COLBLUE}===${COLGREEN} stripping binaries for '${subpackage}' ...${COLDEFAULT}"
612     run_resume post-mstripbins_${subpackage} || mstripbins ${BINDIR}_${subpackage}
613     resume_stamp post-mstripbins_${subpackage}
614     echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries for '${subpackage}' ...${COLDEFAULT}"
615     run_resume post-mstriplibs_${subpackage} || mstriplibs ${BINDIR}_${subpackage}
616     resume_stamp post-mstriplibs_${subpackage}
617     echo -e "${COLBLUE}===${COLGREEN} stripping static libraries for '${subpackage}' ...${COLDEFAULT}"
618     run_resume post-mstripstatic_${subpackage} || mstripstatic ${BINDIR}_${subpackage}
619     resume_stamp post-mstripstatic_${subpackage}
620     fi
621    
622     # restore smage environment
623     split_restore_variables
624   done   done
625     # unset saved variables
626     split_unset_variables
627   else   else
628   echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"   echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
629   run_resume post-mstripbins || mstripbins ${BINDIR}   run_resume post-mstripbins || mstripbins ${BINDIR}
# Line 549  else Line 637  else
637   fi   fi
638  fi  fi
639    
640  if mqueryfeature "!pkgbuild"  if mqueryfeature "qalint"
641  then  then
642   echo -e "!pkgbuild detected; Package will not be build ..."   if mqueryfeature "!pkgbuild"
643  else   then
644   # build several targets   echo "!pkgbuild detected; skipping QA lint checks ..."
645   if [[ -n ${MAGE_TARGETS} ]]   else
646     if [[ -n ${SPLIT_PACKAGES} ]]
647   then   then
648   for target in ${MAGE_TARGETS}   # save smage environment
649     split_save_variables
650     for subpackage in ${SPLIT_PACKAGES}
651   do   do
652   # check if a special target_pkgbuild exists   # honor split_info
653   if typeset -f ${target}_pkgbuild > /dev/null   split_info_${subpackage}
654     if [[ ${PKGTYPE} = virtual ]]
655   then   then
656   # run it   # automatically set !pkgbuild here too
657   run_resume post-${target}_pkgbuild || ${target}_pkgbuild   msetfeature "!pkgbuild"
  resume_stamp post-${target}_pkgbuild  
658   fi   fi
  # now create the target package  
  run_resume post-pkg_builddir_${target} || ${MLIBDIR}/pkgbuild_dir.sh \  
  "${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \  
  ${BINDIR} || die "target: ${target} package-build failed"  
  resume_stamp post-pkg_builddir_${target}  
659    
660   # build pkg-md5-sum if requested   if mqueryfeature "qalint"
661   run_resume post-md5sum_${target} || generate_package_md5sum \   then
662   --pcat "${PCAT}" \   if mqueryfeature "!pkgbuild"
663   --pname "${PNAME}" \   then
664   --pver "${PVER}" \   echo "!pkgbuild detected; skipping QA lint checks for '${subpackage}' ..."
665   --pbuild "${PBUILD}" \   else
666   --parch "${ARCH}" \   echo -e "${COLBLUE}===${COLGREEN} running QA lint checks for '${subpackage}' ...${COLDEFAULT}"
667   --target "${target}"   mqalint ${BINDIR}_${subpackage}
668   resume_stamp post-md5sum_${target}   fi
669     fi
670    
671   echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"   # restore smage environment
672     split_restore_variables
673   done   done
674     # unset saved variables
675     split_unset_variables
676     else
677     echo -e "${COLBLUE}===${COLGREEN} running QA lint checks ...${COLDEFAULT}"
678     mqalint ${BINDIR}
679     fi
680     fi
681    fi
682    
683    if mqueryfeature "!pkgbuild"
684    then
685     echo -e "!pkgbuild detected; Package will not be build ..."
686    else
687   # build several subpackages   # build several subpackages
688   elif [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
689   then   then
690   split_save_variables   split_save_variables
691   for subpackage in ${SPLIT_PACKAGES}   for subpackage in ${SPLIT_PACKAGES}
# Line 599  else Line 699  else
699   PCAT="${PCATEGORIE}"   PCAT="${PCATEGORIE}"
700   unset PCATEGORIE   unset PCATEGORIE
701   fi   fi
702     if [[ ${PKGTYPE} = virtual ]]
703     then
704     # automatically set !pkgbuild here too
705     msetfeature "!pkgbuild"
706     fi
707    
708   # jump to next one if !pkgbuild is set in split_info   # jump to next one if !pkgbuild is set in split_info
709   mqueryfeature "!pkgbuild" && continue   if mqueryfeature "!pkgbuild"
710     then
711     # restore smage environment
712     split_restore_variables
713     continue
714     fi
715    
716   # check if an special subpackage_pkgbuild exists   # check if an special subpackage_pkgbuild exists
717   if typeset -f ${PNAME}_pkgbuild > /dev/null   if typeset -f ${PNAME}_pkgbuild > /dev/null
# Line 657  else Line 767  else
767   fi   fi
768  fi  fi
769    
770    # auto regen mage tree if requested
771    regen_mage_tree
772    
773  if mqueryfeature "buildlog"  if mqueryfeature "buildlog"
774  then  then
775   bzip2 -9f /var/log/smage/${PKGNAME}.log   bzip2 -9f /var/log/smage/${PKGNAME}.log

Legend:
Removed from v.1784  
changed lines
  Added in v.2619