Magellan Linux

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

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

revision 192 by niro, Fri Aug 19 03:43:56 2005 UTC revision 214 by niro, Sun Aug 28 19:23:04 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.23 2005-08-19 03:43:56 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.36 2005-08-28 19:23:04 niro Exp $
8    
9  #01.10.2004  #01.10.2004
10  # added ccache support  # added ccache support
# Line 406  setup_ccache_environment(){ Line 406  setup_ccache_environment(){
406   fi   fi
407  }  }
408    
409    
410    # fixes given dependencies to match a MAGE_TARGET
411    # fix_mage_deps -target s/depend # <-- note -target !
412    fix_mage_deps() {
413     local target="$1"
414     local depend="$2"
415     local NDEPEND
416     local sym dep cat pver pname
417    
418     # deps and provides are special
419     # they must be fixed to match the target
420    
421     # run this only if target and depend is not empty
422     if [ -n "${target}" ] && [ -n "${depend}" ]
423     then
424     # fix DEPEND
425     while read sym dep
426     do
427     cat="$(dirname ${dep})"
428     # change if not virtual
429     if [[ ${cat} = virtual ]]
430     then
431     pname="$(basename ${dep})"
432     else
433     # fix pver to target-pver
434     # to get pname-target-pver
435    
436     # doing it backwards !
437     pver="${dep##*-}"
438     # full pver
439     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
440     fi
441    
442     # do not add empty lines
443     if [ -z "${NDEPEND}" ]
444     then
445     NDEPEND="${sym} ${cat}/${pname}"
446     else
447     NDEPEND="${NDEPEND}
448     ${sym} ${cat}/${pname}"
449     fi
450    
451     unset cat pname pver
452     done << EOF
453    ${depend}
454    EOF
455     # set NDEPEND to DEPEND
456     depend="${NDEPEND}"
457     fi
458    
459     echo "${depend}"
460    }
461    
462  # build_mage_script(): helper functions for regen_mage_tree()  # build_mage_script(): helper functions for regen_mage_tree()
463  # generates an mage file with given information in smage file  # generates an mage file with given information in smage file
464  # needs at least:  # needs at least:
# Line 428  setup_ccache_environment(){ Line 481  setup_ccache_environment(){
481  #  #
482  #   MAGE_TREE_DEST        target destination of the generated tree  #   MAGE_TREE_DEST        target destination of the generated tree
483  #   REGEN_MAGE_TREE       set to 'true' to enable this  #   REGEN_MAGE_TREE       set to 'true' to enable this
484    #
485    # gets called with build_mage_script target
486  build_mage_script()  build_mage_script()
487  {  {
488   local magefile   local magefile
489   local dest   local dest
490   local suffix   local target
491   local sym   local sym
492   local depname   local depname
493    
# Line 440  build_mage_script() Line 495  build_mage_script()
495   : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}   : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
496    
497   # determinate which suffix this mage file should get, if any   # determinate which suffix this mage file should get, if any
498   suffix="$1"   [ -n "$1" ] && target="-$1"
499    
500   # name of magefile   # name of magefile
501   magefile="${PNAME}${suffix}-${PVER}-${PBUILD}.mage"   magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
502    
503   # destination to magefile   # destination to magefile
504   dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${suffix}/${magefile}"   dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
505    
506   # show what we are doing   # show what we are doing
507   echo "Generating Mage file:"   echo "Generating Mage file:"
# Line 457  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.23 2005-08-19 03:43:56 niro Exp $' >> ${dest}   echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.36 2005-08-28 19:23:04 niro Exp $' >> ${dest}
516   echo  >> ${dest}   echo  >> ${dest}
517    
518   # pgkname and state   # pgkname and state
519   echo "PKGNAME=\"${PNAME}${suffix}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}   echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
520   echo "STATE=\"${STATE}\"" >> ${dest}   echo "STATE=\"${STATE}\"" >> ${dest}
521   echo >> ${dest}   echo >> ${dest}
522    
# Line 470  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 485  build_mage_script() Line 558  build_mage_script()
558   echo >> ${dest}   echo >> ${dest}
559    
560   # deps and provides   # deps and provides
561   echo "DEPEND=\"${DEPEND}\"" >> ${dest}   echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
562   echo "SDEPEND=\"${SDEPEND}\"" >> ${dest}   echo >> ${dest}
563     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 498  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     echo  >> ${dest}
581   fi   fi
582    
583   # pre|post-install|removes   # pre|post-install|removes
# Line 521  regen_mage_tree() Line 598  regen_mage_tree()
598   # build them only if requested   # build them only if requested
599   if [[ ${REGEN_MAGE_TREE} = true ]]   if [[ ${REGEN_MAGE_TREE} = true ]]
600   then   then
601   # build for each target an mage file   # run it without targets
602   for i in ${MAGE_TARGETS}   if [ -z "${MAGE_TARGETS}" ]
603   do   then
604   echo   echo
605   build_mage_script "${i}"   build_mage_script
606   echo   echo
607   done   else
608    
609     # build for each target an mage file
610     # run it with several targets
611     for i in ${MAGE_TARGETS}
612     do
613     echo
614     build_mage_script "${i}"
615     echo
616     done
617     fi
618   fi   fi
619    
620   # now unset all uneeded vars to be safe   # now unset all uneeded vars to be safe
# Line 538  regen_mage_tree() Line 625  regen_mage_tree()
625   unset "${i}"   unset "${i}"
626   done   done
627   unset SPECIAL_FUNCTIONS   unset SPECIAL_FUNCTIONS
628     for i in ${SPECIAL_VARS}
629     do
630     unset "${i}"
631     done
632     unset SPECIAL_VARS
633   unset STATE   unset STATE
634   unset DESCRIPTION   unset DESCRIPTION
635   unset HOMEPAGE   unset HOMEPAGE
# Line 661  then Line 753  then
753   exit 0   exit 0
754  fi  fi
755    
756    # regen-mage-tree
757    if [ "$1" == "only-regen-tree" -a -n "$2" ]
758    then
759     # set correct SMAGENAME
760     SMAGENAME="$2"
761     MD5DIR="$(dirname ${SMAGENAME})/md5"
762     source ${SMAGENAME} || die "regen: smage2 not found"
763    
764     regen_mage_tree
765     exit 0
766    fi
767    
768  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]
769  then  then
770   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."

Legend:
Removed from v.192  
changed lines
  Added in v.214