Magellan Linux

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

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

revision 195 by niro, Sat Aug 20 15:51:14 2005 UTC revision 255 by niro, Mon Oct 3 20:54:14 2005 UTC
# Line 4  Line 4 
4  # needs pkgbuild_dir (mage)  # needs pkgbuild_dir (mage)
5    
6  # SMAGE2  # SMAGE2
7  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.26 2005-08-20 15:51:14 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.38 2005-10-03 20:54:14 niro Exp $
8    
9  #01.10.2004  #01.10.2004
10  # added ccache support  # added ccache support
# Line 408  setup_ccache_environment(){ Line 408  setup_ccache_environment(){
408    
409    
410  # fixes given dependencies to match a MAGE_TARGET  # fixes given dependencies to match a MAGE_TARGET
411  # fix_mage_deps target s/depend  # fix_mage_deps -target s/depend # <-- note -target !
412  fix_mage_deps() {  fix_mage_deps() {
413   local target="$1"   local target="$1"
414   local depend="$2"   local depend="$2"
# Line 425  fix_mage_deps() { Line 425  fix_mage_deps() {
425   while read sym dep   while read sym dep
426   do   do
427   cat="$(dirname ${dep})"   cat="$(dirname ${dep})"
428   # abort on virtual   # change if not virtual
429   [[ ${cat} = virtual ]] && continue   if [[ ${cat} = virtual ]]
430     then
431   # fix pver to target-pver   pname="$(basename ${dep})"
432   # to get pname-target-pver   else
433     # fix pver to target-pver
434     # to get pname-target-pver
435    
436   # doing it backwards !   # doing it backwards !
437   pver="${dep##*-}"   pver="${dep##*-}"
438   pname=$(basename ${dep/-${pver}/})   # full pver
439     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
440     fi
441    
442   # do not add empty lines   # do not add empty lines
443   if [ -z "${NDEPEND}" ]   if [ -z "${NDEPEND}" ]
444   then   then
445   NDEPEND="${sym} ${cat}/${pname}-${target}-${pver}"   NDEPEND="${sym} ${cat}/${pname}"
446   else   else
447   NDEPEND="${NDEPEND}   NDEPEND="${NDEPEND}
448   ${sym} ${cat}/${pname}-${target}-${pver}"   ${sym} ${cat}/${pname}"
449   fi   fi
450    
451   unset cat pname pver   unset cat pname pver
# Line 508  build_mage_script() Line 512  build_mage_script()
512   > ${dest}   > ${dest}
513    
514   # header   # header
515   echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.26 2005-08-20 15:51:14 niro Exp $' >> ${dest}   echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.38 2005-10-03 20:54:14 niro Exp $' >> ${dest}
516   echo  >> ${dest}   echo  >> ${dest}
517    
518   # pgkname and state   # pgkname and state
# Line 521  build_mage_script() Line 525  build_mage_script()
525   echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}   echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
526   echo >> ${dest}   echo >> ${dest}
527    
528   # special tags   # special tags and vars
529   echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}   echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
530    
531     # echo MAGE_TARGETS ## note -target is needed !
532     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
533     echo >> ${dest}
534    
535     # add special vars
536     if [ -n "${SPECIAL_VARS}" ]
537     then
538     local i
539     for i in ${SPECIAL_VARS}
540     do
541     # being tricky here :)
542     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
543     done
544     echo  >> ${dest}
545     fi
546    
547     # add at least all includes
548   if [ -n "${INHERITS}" ]   if [ -n "${INHERITS}" ]
549   then   then
550   echo -n "minclude"  >> ${dest}   echo -n "minclude"  >> ${dest}
# Line 537  build_mage_script() Line 559  build_mage_script()
559    
560   # deps and provides   # deps and provides
561   echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}   echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
562     echo >> ${dest}
563   echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}   echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
564     echo >> ${dest}
565   echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}   echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
566   echo >> ${dest}   echo >> ${dest}
567    
# Line 549  build_mage_script() Line 573  build_mage_script()
573   do   do
574   # add to mage (quotes needed !)   # add to mage (quotes needed !)
575   typeset -f "${i}" >> ${dest}   typeset -f "${i}" >> ${dest}
576     echo >> ${dest}
577   # unset to be safe (quotes needed !)   # unset to be safe (quotes needed !)
578   #unset "${i}" <-- later to get every target built   #unset "${i}" <-- later to get every target built
579   done   done
580   fi   echo  >> ${dest}
   
  # add special vars  
  if [ -n "${SPECIAL_VARS}" ]  
  then  
  local i  
  for i in ${SPECIAL_VARS}  
  do  
  # being tricky here :)  
  echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}  
  done  
581   fi   fi
582    
583   # pre|post-install|removes   # pre|post-install|removes
# Line 629  regen_mage_tree() Line 644  regen_mage_tree()
644   unset postremove   unset postremove
645  }  }
646    
647    export_inherits()
648    {
649     local include="$1"
650     shift
651    
652     while [ "$1" ]
653     do
654     local functions="$1"
655    
656     # sanity checks
657     [ -z "${include}" ] && die "export_inherits(): \$include not given."
658     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
659    
660     eval "${functions}() { ${include}_${functions} ; }"
661    
662     # debug
663     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
664    
665     shift
666     done
667    }
668    
669    generate_package_md5sum()
670    {
671     local dest
672     local pcat
673     local pname
674     local pver
675     local pbuild
676     local parch
677     local target
678     local pkgname
679    
680     # very basic getops
681     for i in $*
682     do
683     case $1 in
684     --pcat|-c) shift; pcat="$1" ;;
685     --pname|-n) shift; pname="$1" ;;
686     --pver|-v) shift; pver="$1" ;;
687     --pbuild|-b) shift; pbuild="$1" ;;
688     --parch|a) shift; parch="$1" ;;
689     --target|t) shift; target="$1" ;;
690     esac
691     shift
692     done
693    
694     # sanity checks; abort if not given
695     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
696     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
697     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
698     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
699     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
700    
701     # check needed global vars
702     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
703     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
704    
705     # fix target as it may be empty !
706     [ -n "${target}" ] && target="-${target}"
707    
708     # build pkgname
709     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
710    
711     # build pkg-md5-sum only if requested
712     if [[ ${REGEN_MAGE_TREE} = true ]]
713     then
714     echo -n "Generating a md5sum for ${pkgname}.${PKGSUFFIX} ... "
715    
716     # abort if not exist
717     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
718     then
719     echo "! exists"
720     return 0
721     fi
722    
723     # if MAGE_TREE_DEST not set use BUILDDIR
724     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
725    
726     # setup md5 dir
727     dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5"
728     install -d ${dest}
729    
730     # gen md5sum
731     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
732     >> ${dest}/${pkgname}.md5
733     echo "done"
734     fi
735    }
736    
737  # print out our version  # print out our version
738  showversion  showversion
739  echo  echo
# Line 738  then Line 843  then
843   exit 0   exit 0
844  fi  fi
845    
846    # regen-mage-tree
847    if [ "$1" == "only-regen-tree" -a -n "$2" ]
848    then
849     # set correct SMAGENAME
850     SMAGENAME="$2"
851     MD5DIR="$(dirname ${SMAGENAME})/md5"
852     source ${SMAGENAME} || die "regen: smage2 not found"
853    
854     regen_mage_tree
855    
856     # build md5sum for existing packages
857     generate_package_md5sum \
858     --pcat "${PCATEGORIE}" \
859     --pname "${PNAME}" \
860     --pver "${PVER}" \
861     --pbuild "${PBUILD}" \
862     --parch "${ARCH}" \
863     --target "${target}"
864    
865     exit 0
866    fi
867    
868  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]
869  then  then
870   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
# Line 786  fi Line 913  fi
913    
914    
915  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
916  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
917  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
918    
919  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
# Line 921  case ${NOPKGBUILD} in Line 1048  case ${NOPKGBUILD} in
1048   fi   fi
1049   # now create the target package   # now create the target package
1050   ${MLIBDIR}/pkgbuild_dir.sh \   ${MLIBDIR}/pkgbuild_dir.sh \
1051   "${PNAME}-${target}-${PVER}-${CHOST%%-*}-${PBUILD}" \   "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1052   ${BINDIR} || die "target: ${target} package-build failed"   ${BINDIR} || die "target: ${target} package-build failed"
1053   echo -e "\nPackage ${PNAME}-${target}-${PVER}-${CHOST%%-*}-${PBUILD} successfully builded.\n"  
1054     # build pkg-md5-sum if requested
1055     generate_package_md5sum \
1056     --pcat "${PCATEGORIE}" \
1057     --pname "${PNAME}" \
1058     --pver "${PVER}" \
1059     --pbuild "${PBUILD}" \
1060     --parch "${ARCH}" \
1061     --target "${target}"
1062    
1063     echo -e "\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n"
1064   done   done
1065   else   else
1066   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1067    
1068     # build pkg-md5-sum if requested
1069     generate_package_md5sum \
1070     --pcat "${PCATEGORIE}" \
1071     --pname "${PNAME}" \
1072     --pver "${PVER}" \
1073     --pbuild "${PBUILD}" \
1074     --parch "${ARCH}"
1075    
1076   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   echo -e "\nPackage ${PKGNAME} successfully builded.\n"
1077   fi   fi
1078   ;;   ;;

Legend:
Removed from v.195  
changed lines
  Added in v.255