Magellan Linux

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

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

revision 191 by niro, Fri Aug 19 02:24:12 2005 UTC revision 194 by niro, Sat Aug 20 15:32:59 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.22 2005-08-19 02:24:12 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.25 2005-08-20 15:32:59 niro Exp $
8    
9  #01.10.2004  #01.10.2004
10  # added ccache support  # added ccache support
# Line 230  src_install() { Line 230  src_install() {
230   return 0   return 0
231  }  }
232    
   
 build_mage_script() {  
  return 0  
 }  
   
233  mconfigure() {  mconfigure() {
234   if [ -x ./configure ]   if [ -x ./configure ]
235   then   then
# Line 411  setup_ccache_environment(){ Line 406  setup_ccache_environment(){
406   fi   fi
407  }  }
408    
409  # alx_create_mage_file: helper functions for regen_mage_tree()  
410    # fixes given dependencies to match a MAGE_TARGET
411    # fix_mage_deps -target s/depend # <-- '-' is essential ! (build_mage_script needs this)
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     # abort on virtual
429     [[ ${cat} = virtual ]] && continue
430    
431     # fix pver to target-pver
432     # to get pname-target-pver
433    
434     # doing it backwards !
435     pver="${dep##*-}"
436     pname=$(basename ${dep/-${pver}/})
437    
438     # do not add empty lines
439     if [ -z "${NDEPEND}" ]
440     then
441     NDEPEND="${sym} ${cat}/${pname}${target}-${pver}"
442     else
443     NDEPEND="${NDEPEND}
444     ${sym} ${cat}/${pname}${target}-${pver}"
445     fi
446    
447     unset cat pname pver
448     done << EOF
449    ${depend}
450    EOF
451     # set NDEPEND to DEPEND
452     depend="${NDEPEND}"
453     fi
454    
455     echo "${depend}"
456    }
457    
458    # build_mage_script(): helper functions for regen_mage_tree()
459  # generates an mage file with given information in smage file  # generates an mage file with given information in smage file
460  # needs at least:  # needs at least:
461  #   PNAME                 name of pkg  #   PNAME                 name of pkg
# Line 433  setup_ccache_environment(){ Line 477  setup_ccache_environment(){
477  #  #
478  #   MAGE_TREE_DEST        target destination of the generated tree  #   MAGE_TREE_DEST        target destination of the generated tree
479  #   REGEN_MAGE_TREE       set to 'true' to enable this  #   REGEN_MAGE_TREE       set to 'true' to enable this
480  alx_create_mage_file()  #
481    # gets called with build_mage_script target # <-- '-' is essential !
482    build_mage_script()
483  {  {
484   local magefile   local magefile
485   local dest   local dest
486   local suffix   local target
487   local sym   local sym
488   local depname   local depname
489    
# Line 445  alx_create_mage_file() Line 491  alx_create_mage_file()
491   : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}   : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
492    
493   # determinate which suffix this mage file should get, if any   # determinate which suffix this mage file should get, if any
494   suffix="$1"   target="$1"
495    
496   # name of magefile   # name of magefile
497   magefile="${PNAME}${suffix}-${PVER}-${PBUILD}.mage"   magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
498    
499   # destination to magefile   # destination to magefile
500   dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${suffix}/${magefile}"   dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
501    
502   # show what we are doing   # show what we are doing
503   echo "Generating Mage file:"   echo "Generating Mage file:"
# Line 462  alx_create_mage_file() Line 508  alx_create_mage_file()
508   > ${dest}   > ${dest}
509    
510   # header   # header
511   echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.22 2005-08-19 02:24:12 niro Exp $' >> ${dest}   echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.25 2005-08-20 15:32:59 niro Exp $' >> ${dest}
512   echo  >> ${dest}   echo  >> ${dest}
513    
514   # pgkname and state   # pgkname and state
515   echo "PKGNAME=\"${PNAME}${suffix}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}   echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
516   echo "STATE=\"${STATE}\"" >> ${dest}   echo "STATE=\"${STATE}\"" >> ${dest}
517   echo >> ${dest}   echo >> ${dest}
518    
# Line 490  alx_create_mage_file() Line 536  alx_create_mage_file()
536   echo >> ${dest}   echo >> ${dest}
537    
538   # deps and provides   # deps and provides
539   echo "DEPEND=\"${DEPEND}\"" >> ${dest}   echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
540   echo "SDEPEND=\"${SDEPEND}\"" >> ${dest}   echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
541   echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}   echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
542   echo >> ${dest}   echo >> ${dest}
543    
# Line 504  alx_create_mage_file() Line 550  alx_create_mage_file()
550   # add to mage (quotes needed !)   # add to mage (quotes needed !)
551   typeset -f "${i}" >> ${dest}   typeset -f "${i}" >> ${dest}
552   # unset to be safe (quotes needed !)   # unset to be safe (quotes needed !)
553   unset "${i}"   #unset "${i}" <-- later to get every target built
554     done
555     fi
556    
557     # add special vars
558     if [ -n "${SPECIAL_VARS}" ]
559     then
560     local i
561     for i in ${SPECIAL_VARS}
562     do
563     # being tricky here :)
564     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
565   done   done
566   fi   fi
567    
# Line 530  regen_mage_tree() Line 587  regen_mage_tree()
587   for i in ${MAGE_TARGETS}   for i in ${MAGE_TARGETS}
588   do   do
589   echo   echo
590   alx_create_mage_file "${i}"   build_mage_script "-${i}"
591   echo   echo
592   done   done
593   fi   fi
594    
595   # now unset all uneeded vars to be safe   # now unset all uneeded vars to be safe
596   unset PKGNAME   # unset PKGNAME <-- don't do that; smage needs this var
597     # unset to be safe (quotes needed !)
598     for i in ${SPECIAL_FUNCTIONS}
599     do
600     unset "${i}"
601     done
602     unset SPECIAL_FUNCTIONS
603     for i in ${SPECIAL_VARS}
604     do
605     unset "${i}"
606     done
607     unset SPECIAL_VARS
608   unset STATE   unset STATE
609   unset DESCRIPTION   unset DESCRIPTION
610   unset HOMEPAGE   unset HOMEPAGE
# Line 545  regen_mage_tree() Line 613  regen_mage_tree()
613   unset DEPEND   unset DEPEND
614   unset SDEPEND   unset SDEPEND
615   unset PROVIDE   unset PROVIDE
  unset SPECIAL_FUNCTIONS  
616   unset preinstall   unset preinstall
617   unset postinstall   unset postinstall
618   unset preremove   unset preremove
# Line 563  then Line 630  then
630   exit 1   exit 1
631  fi  fi
632    
633  #updating smage2-scripts  # updating smage2-scripts
634  if [ "$1" == "update" ]  if [ "$1" == "update" ]
635  then  then
636   if [ ! -d ${SOURCEDIR} ]   if [ ! -d ${SOURCEDIR} ]
# Line 574  then Line 641  then
641   exit 0   exit 0
642  fi  fi
643    
644  #creates md5sums for smages to given dir  # creates md5sums for smages to given dir
645  if [ "$1" == "calcmd5" ]  if [ "$1" == "calcmd5" ]
646  then  then
647   if [ $# -ge 3 ]   if [ $# -ge 3 ]
# Line 644  then Line 711  then
711   exit 0   exit 0
712  fi  fi
713    
714  #download sources  # download sources
715  if [ "$1" == "download" -a -n "$2" ]  if [ "$1" == "download" -a -n "$2" ]
716  then  then
717   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
# Line 718  echo "Compiling ${PKGNAME}" Line 785  echo "Compiling ${PKGNAME}"
785  # auto regen mage tree if requested  # auto regen mage tree if requested
786  regen_mage_tree  regen_mage_tree
787    
788  #download sources  # download sources
789  download_sources  download_sources
790    
791  #fixes some issues with these functions  # fixes some issues with these functions
792  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
793  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
794  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
795    
796  #fixes some compile issues  # fixes some compile issues
797  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
798  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
799  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 734  export BINDIR="${BINDIR}" || die "BINDIR Line 801  export BINDIR="${BINDIR}" || die "BINDIR
801  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
802    
803    
804  #setup distcc  # setup distcc
805  #distcc mus be setup *before* ccache, as ccache need to be before distcc in path  # distcc mus be setup *before* ccache, as ccache need to be before distcc in path
806  if [ "${SMAGE_USE_DISTCC}" == "true" ]  if [ "${SMAGE_USE_DISTCC}" == "true" ]
807  then  then
808   setup_distcc_environment   setup_distcc_environment
809  fi  fi
810    
811  #setup ccache  # setup ccache
812  if [ "${SMAGE_USE_CCACHE}" == "true" ]  if [ "${SMAGE_USE_CCACHE}" == "true" ]
813  then  then
814   setup_ccache_environment   setup_ccache_environment
# Line 762  sleep 1 Line 829  sleep 1
829  #read  #read
830  #debug end  #debug end
831    
832  #cleans up build if a previously one exists  # cleans up build if a previously one exists
833  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
834  then  then
835   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
836  fi  fi
837  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
838    
839  #cleans up srcdir if a previously unpacked one exists  # cleans up srcdir if a previously unpacked one exists
840  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
841  then  then
842   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
843  fi  fi
844    
845  #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
846  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
847  then  then
848   rm -rf ${BINDIR}   rm -rf ${BINDIR}
849  fi  fi
850  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
851    
852  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
853  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
854  then  then
855   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
856  fi  fi
857    
858  #cleans up timestamp if one exists  # cleans up timestamp if one exists
859  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
860  then  then
861   mage rmstamp   mage rmstamp
# Line 799  src_compile || die "src_compile failed" Line 866  src_compile || die "src_compile failed"
866  src_install || die "src_install failed"  src_install || die "src_install failed"
867    
868    
869  #compressing doc, info & man files  # compressing doc, info & man files
870  echo -e "Compressing man-pages ..."  echo -e "Compressing man-pages ..."
871  if [ -d ${BUILDDIR}/builded/usr/share/man ]  if [ -d ${BUILDDIR}/builded/usr/share/man ]
872  then  then
# Line 825  case ${NOSTRIP} in Line 892  case ${NOSTRIP} in
892   ;;   ;;
893  esac  esac
894    
895  #the new buildpkg command  # the new buildpkg command
896  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
897   true|TRUE|yes|y)   true|TRUE|yes|y)
898   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
899   ;;   ;;
900   *)   *)
901   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build serveral targets
902   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [ -n "${MAGE_TARGETS}" ]
903     then
904     for target in ${MAGE_TARGETS}
905     do
906     # check if an special target_pkgbuild exists
907     if typeset -f ${target}_pkgbuild > /dev/null
908     then
909     # run it
910     ${target}_pkgbuild
911     fi
912     # now create the target package
913     ${MLIBDIR}/pkgbuild_dir.sh \
914     "${PNAME}-${target}-${PVER}-${CHOST%%-*}-${PBUILD}" \
915     ${BINDIR} || die "target: ${target} package-build failed"
916     echo -e "\nPackage ${PNAME}-${target}-${PVER}-${CHOST%%-*}-${PBUILD} successfully builded.\n"
917     done
918     else
919     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
920     echo -e "\nPackage ${PKGNAME} successfully builded.\n"
921     fi
922   ;;   ;;
923  esac  esac
924    
925  #for sure  # for sure
926  unset NOPKGBUILD  unset NOPKGBUILD
927  unset NOSTRIP  unset NOSTRIP
928    

Legend:
Removed from v.191  
changed lines
  Added in v.194