Magellan Linux

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

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

revision 2042 by niro, Fri Feb 1 09:50:07 2013 UTC revision 2805 by niro, Tue Sep 2 13:53:08 2014 UTC
# Line 18  source ${MAGERC} Line 18  source ${MAGERC}
18  source ${MLIBDIR}/mage4.functions.sh  source ${MLIBDIR}/mage4.functions.sh
19  source ${MLIBDIR}/smage2.functions.sh  source ${MLIBDIR}/smage2.functions.sh
20    
21    # export default path
22    export PATH="${PATH}:${MLIBDIR}"
23    
24  ## setup ##  ## setup ##
25  SMAGENAME="$1"  SMAGENAME="$1"
26  SMAGEVERSION="$(< ${MLIBDIR}/version)"  SMAGEVERSION="$(< ${MLIBDIR}/version)"
# Line 154  then Line 157  then
157    
158   regen_mage_tree   regen_mage_tree
159    
  # 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  
   
160   # build several subpackages   # build several subpackages
161   elif [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
162   then   then
163   split_save_variables   split_save_variables
164   for subpackage in ${SPLIT_PACKAGES}   for subpackage in ${SPLIT_PACKAGES}
# Line 275  fi Line 263  fi
263  smagesource ${SMAGENAME} || die "source failed"  smagesource ${SMAGENAME} || die "source failed"
264  PKGNAME="${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}"
265  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
266  SMAGE_LOG_CMD="tee -a /var/log/smage/${PKGNAME}.log"  SMAGE_LOG_CMD="tee -a ${SMAGELOGDIR}/${PKGNAME}.log"
267    
268  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
269  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
270    
 # auto regen mage tree if requested  
 regen_mage_tree  
   
271  if mqueryfeature "srcpkgbuild"  if mqueryfeature "srcpkgbuild"
272  then  then
273   if [[ -d ${SOURCEDIR}/${PNAME} ]]   if [[ -d ${SOURCEDIR}/${PNAME} ]]
# Line 296  fi Line 281  fi
281  mqueryfeature "srcpkgtarball" || download_sources  mqueryfeature "srcpkgtarball" || download_sources
282    
283  # fixes some issues with these functions  # fixes some issues with these functions
284    export -f pkg_setup || die "pkg_setup export failed"
285  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
286  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
287  export -f src_check || die "src_check export failed"  export -f src_check || die "src_check export failed"
# Line 318  export MAKEOPTS="${MAKEOPTS}" || die "MA Line 304  export MAKEOPTS="${MAKEOPTS}" || die "MA
304  # 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
305  mqueryfeature "distcc" && setup_distcc_environment  mqueryfeature "distcc" && setup_distcc_environment
306    
307    # setup icecc
308    # setup for icecc goes *before* ccache, so ccache comes before icecc in path
309    mqueryfeature "icecc" && setup_icecc_environment
310    
311  # setup ccache  # setup ccache
312  mqueryfeature "ccache" && setup_ccache_environment  mqueryfeature "ccache" && setup_ccache_environment
313    
# Line 326  then Line 316  then
316   echo -e "${COLMAGENTA}Resume requested; continuing previous build${COLDEFAULT}"   echo -e "${COLMAGENTA}Resume requested; continuing previous build${COLDEFAULT}"
317    
318   # setup build logging   # setup build logging
319   [[ ! -d /var/log/smage ]] && install -d /var/log/smage   [[ ! -d ${SMAGELOGDIR} ]] && install -d ${SMAGELOGDIR}
320   if [[ -f /var/log/smage/${PKGNAME}.log.bz2 ]]   if [[ -f ${SMAGELOGDIR}/${PKGNAME}.log.bz2 ]]
321   then   then
322   bunzip2 -f /var/log/smage/${PKGNAME}.log.bz2   bunzip2 -f ${SMAGELOGDIR}/${PKGNAME}.log.bz2
323   fi   fi
324   echo -e "### Resume started on $(date) ###\n" >> /var/log/smage/${PKGNAME}.log   echo -e "### Resume started on $(date) ###\n" >> ${SMAGELOGDIR}/${PKGNAME}.log
325    
326  else  else
327   # clean up builddir if a previously one exist   # clean up builddir if a previously one exist
# Line 367  else Line 357  else
357   fi   fi
358    
359   # setup build logging   # setup build logging
360   [[ ! -d /var/log/smage ]] && install -d /var/log/smage   [[ ! -d ${SMAGELOGDIR} ]] && install -d ${SMAGELOGDIR}
361   echo -e "### Build started on $(date) ###\n" > /var/log/smage/${PKGNAME}.log   echo -e "### Build started on $(date) ###\n" > ${SMAGELOGDIR}/${PKGNAME}.log
362  fi  fi
363    
364  if [[ ${PKGTYPE} = virtual ]]  if [[ ${PKGTYPE} = virtual ]]
# Line 377  then Line 367  then
367   # automatically set !pkgbuild here too   # automatically set !pkgbuild here too
368   msetfeature "!pkgbuild"   msetfeature "!pkgbuild"
369  else  else
370     ( run_resume pkg_setup || pkg_setup ) | ${SMAGE_LOG_CMD}
371     die_pipestatus 0 "pkg_setup failed"
372     resume_stamp pkg_setup
373     step_by_step pkg_setup
374    
375   ( run_resume src_prepare || src_prepare ) | ${SMAGE_LOG_CMD}   ( run_resume src_prepare || src_prepare ) | ${SMAGE_LOG_CMD}
376   die_pipestatus 0 "src_prepare failed"   die_pipestatus 0 "src_prepare failed"
377   resume_stamp src_prepare   resume_stamp src_prepare
# Line 471  else Line 466  else
466   do   do
467   # honor split_info   # honor split_info
468   split_info_${subpackage}   split_info_${subpackage}
469     if [[ ${PKGTYPE} = virtual ]]
470     then
471     # automatically set !pkgbuild here too
472     msetfeature "!pkgbuild"
473     fi
474    
475   if mqueryfeature "!compressdoc"   if mqueryfeature "!compressdoc"
476   then   then
# Line 507  then Line 507  then
507   do   do
508   # honor split_info   # honor split_info
509   split_info_${subpackage}   split_info_${subpackage}
510     if [[ ${PKGTYPE} = virtual ]]
511     then
512     # automatically set !pkgbuild here too
513     msetfeature "!pkgbuild"
514     fi
515    
516   if mqueryfeature "!libtool"   if mqueryfeature "!libtool"
517   then   then
# Line 547  then Line 552  then
552   do   do
553   # honor split_info   # honor split_info
554   split_info_${subpackage}   split_info_${subpackage}
555     if [[ ${PKGTYPE} = virtual ]]
556     then
557     # automatically set !pkgbuild here too
558     msetfeature "!pkgbuild"
559     fi
560    
561   if mqueryfeature "purge"   if mqueryfeature "purge"
562   then   then
# Line 589  else Line 599  else
599   do   do
600   # honor split_info   # honor split_info
601   split_info_${subpackage}   split_info_${subpackage}
602     if [[ ${PKGTYPE} = virtual ]]
603     then
604     # automatically set !pkgbuild here too
605     msetfeature "!pkgbuild"
606     fi
607    
608   if mqueryfeature "!strip"   if mqueryfeature "!strip"
609   then   then
# Line 626  else Line 641  else
641   fi   fi
642  fi  fi
643    
644  if mqueryfeature "!pkgbuild"  if mqueryfeature "qalint"
645  then  then
646   echo -e "!pkgbuild detected; Package will not be build ..."   if mqueryfeature "!pkgbuild"
647  else   then
648   # build several targets   echo "!pkgbuild detected; skipping QA lint checks ..."
649   if [[ -n ${MAGE_TARGETS} ]]   else
650     if [[ -n ${SPLIT_PACKAGES} ]]
651   then   then
652   for target in ${MAGE_TARGETS}   # save smage environment
653     split_save_variables
654     for subpackage in ${SPLIT_PACKAGES}
655   do   do
656   # check if a special target_pkgbuild exists   # honor split_info
657   if typeset -f ${target}_pkgbuild > /dev/null   split_info_${subpackage}
658     if [[ ${PKGTYPE} = virtual ]]
659   then   then
660   # run it   # automatically set !pkgbuild here too
661   run_resume post-${target}_pkgbuild || ${target}_pkgbuild   msetfeature "!pkgbuild"
  resume_stamp post-${target}_pkgbuild  
662   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}  
663    
664   # build pkg-md5-sum if requested   if mqueryfeature "qalint"
665   run_resume post-md5sum_${target} || generate_package_md5sum \   then
666   --pcat "${PCAT}" \   if mqueryfeature "!pkgbuild"
667   --pname "${PNAME}" \   then
668   --pver "${PVER}" \   echo "!pkgbuild detected; skipping QA lint checks for '${subpackage}' ..."
669   --pbuild "${PBUILD}" \   else
670   --parch "${ARCH}" \   echo -e "${COLBLUE}===${COLGREEN} running QA lint checks for '${subpackage}' ...${COLDEFAULT}"
671   --target "${target}"   mqalint ${BINDIR}_${subpackage}
672   resume_stamp post-md5sum_${target}   fi
673     fi
674    
675   echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"   # restore smage environment
676     split_restore_variables
677   done   done
678     # unset saved variables
679     split_unset_variables
680     else
681     echo -e "${COLBLUE}===${COLGREEN} running QA lint checks ...${COLDEFAULT}"
682     mqalint ${BINDIR}
683     fi
684     fi
685    fi
686    
687    if mqueryfeature "!pkgbuild"
688    then
689     echo -e "!pkgbuild detected; Package will not be build ..."
690    else
691   # build several subpackages   # build several subpackages
692   elif [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
693   then   then
694   split_save_variables   split_save_variables
695   for subpackage in ${SPLIT_PACKAGES}   for subpackage in ${SPLIT_PACKAGES}
# Line 676  else Line 703  else
703   PCAT="${PCATEGORIE}"   PCAT="${PCATEGORIE}"
704   unset PCATEGORIE   unset PCATEGORIE
705   fi   fi
706     if [[ ${PKGTYPE} = virtual ]]
707     then
708     # automatically set !pkgbuild here too
709     msetfeature "!pkgbuild"
710     fi
711    
712   # jump to next one if !pkgbuild is set in split_info   # jump to next one if !pkgbuild is set in split_info
713   if mqueryfeature "!pkgbuild"   if mqueryfeature "!pkgbuild"
# Line 739  else Line 771  else
771   fi   fi
772  fi  fi
773    
774    # auto regen mage tree if requested
775    regen_mage_tree
776    
777  if mqueryfeature "buildlog"  if mqueryfeature "buildlog"
778  then  then
779   bzip2 -9f /var/log/smage/${PKGNAME}.log   bzip2 -9f ${SMAGELOGDIR}/${PKGNAME}.log
780  else  else
781   [[ -f /var/log/smage/${PKGNAME}.log ]] && rm /var/log/smage/${PKGNAME}.log   [[ -f ${SMAGELOGDIR}/${PKGNAME}.log ]] && rm ${SMAGELOGDIR}/${PKGNAME}.log
782  fi  fi
783    
784  xtitleclean  xtitleclean

Legend:
Removed from v.2042  
changed lines
  Added in v.2805