1 |
#!/bin/bash |
#!/bin/bash |
2 |
|
# $Id$ |
3 |
|
|
4 |
# compiles/installs .smage2 source install scripts |
# compiles/installs .smage2 source install scripts |
5 |
# needs pkgbuild_dir (mage) |
# needs pkgbuild_dir (mage) |
6 |
|
|
7 |
# SMAGE2 |
# TODO: record dynlib, gz | xz database |
|
# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.62 2007-11-28 10:47:50 niro Exp $ |
|
8 |
|
|
|
#01.10.2004 |
|
|
# added ccache support |
|
|
# added distcc support |
|
9 |
|
|
10 |
# set default user mage.rc |
# set default user mage.rc |
11 |
: ${MAGERC="/etc/mage.rc"} |
: ${MAGERC="/etc/mage.rc"} |
466 |
popd > /dev/null |
popd > /dev/null |
467 |
fi |
fi |
468 |
;; |
;; |
469 |
|
xz) |
470 |
|
IFTAR="$(basename $SRCFILE .xz)" |
471 |
|
IFTAR="${IFTAR##*.}" |
472 |
|
if [[ ${IFTAR} = tar ]] |
473 |
|
then |
474 |
|
tar --no-same-owner -xvJf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tar.xz unpack failed." |
475 |
|
else |
476 |
|
pushd ${DEST} > /dev/null |
477 |
|
xzcat ${SOURCEDIR}/${PNAME}/${SRCFILE} > ${DEST}/$(basename ${SRCFILE} .xz) || die ".xz unpack failed." |
478 |
|
popd > /dev/null |
479 |
|
fi |
480 |
|
;; |
481 |
tbz2|mpks|mpk) |
tbz2|mpks|mpk) |
482 |
tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tbz2 unpack failed." |
tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tbz2 unpack failed." |
483 |
;; |
;; |
484 |
tgz) |
tgz) |
485 |
tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tgz unpack failed." |
tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tgz unpack failed." |
486 |
;; |
;; |
487 |
|
txz|mpkzs|mpkz) |
488 |
|
tar --no-same-owner -xvJf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".txz unpack failed." |
489 |
|
;; |
490 |
rar) |
rar) |
491 |
unrar x ${SOURCEDIR}/${PNAME}/${SRCFILE} ${DEST} || die ".rar unpack failed." |
unrar x ${SOURCEDIR}/${PNAME}/${SRCFILE} ${DEST} || die ".rar unpack failed." |
492 |
;; |
;; |
540 |
mlibtoolize() |
mlibtoolize() |
541 |
{ |
{ |
542 |
local opts="$@" |
local opts="$@" |
543 |
[[ -z ${opts} ]] && opts="--copy --force" |
[[ -z ${opts} ]] && opts="--verbose --install --force" |
544 |
|
|
545 |
libtoolize ${opts} || die "running: mlibtoolize ${opts}" |
libtoolize ${opts} || die "running: mlibtoolize ${opts}" |
546 |
} |
} |
580 |
local stripdir="$@" |
local stripdir="$@" |
581 |
|
|
582 |
[ -z "${stripdir}" ] && stripdir=${BINDIR} |
[ -z "${stripdir}" ] && stripdir=${BINDIR} |
583 |
find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null |
find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip ${STRIP_DYN_LIB} 2> /dev/null |
584 |
} |
} |
585 |
|
|
586 |
mstripbins() |
mstripbins() |
588 |
local stripdir="$@" |
local stripdir="$@" |
589 |
|
|
590 |
[ -z "${stripdir}" ] && stripdir=${BINDIR} |
[ -z "${stripdir}" ] && stripdir=${BINDIR} |
591 |
find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null |
find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip ${STRIP_DYN_BIN} 2> /dev/null |
592 |
|
} |
593 |
|
|
594 |
|
mstripstatic() |
595 |
|
{ |
596 |
|
local stripdir="$@" |
597 |
|
|
598 |
|
[ -z "${stripdir}" ] && stripdir=${BINDIR} |
599 |
|
find ${stripdir} | xargs file | grep "ar archive" | cut -f 1 -d : | xargs strip ${STRIP_STATIC_LIB} 2> /dev/null |
600 |
} |
} |
601 |
|
|
602 |
mcompressdocs() |
mcompressdocs() |
808 |
do |
do |
809 |
echo -n " ${i}" >> ${dest} |
echo -n " ${i}" >> ${dest} |
810 |
done |
done |
811 |
|
# a CRLF is needed here! |
812 |
|
echo >> ${dest} |
813 |
fi |
fi |
814 |
|
|
815 |
# deps and provides |
# deps and provides |
839 |
|
|
840 |
regen_mage_tree() |
regen_mage_tree() |
841 |
{ |
{ |
842 |
local i |
local subpackage |
843 |
|
|
844 |
# build them only if requested |
# build them only if requested |
845 |
if [[ ${REGEN_MAGE_TREE} = true ]] |
if [[ ${REGEN_MAGE_TREE} = true ]] |
850 |
# build for each target a mage file |
# build for each target a mage file |
851 |
# run it with several targets |
# run it with several targets |
852 |
echo |
echo |
853 |
for i in ${MAGE_TARGETS} |
for subpackage in ${MAGE_TARGETS} |
854 |
do |
do |
855 |
build_mage_script --target "${i}" |
build_mage_script --target "${subpackage}" |
856 |
done |
done |
857 |
echo |
echo |
858 |
|
|
865 |
# build for each subpackage a mage file |
# build for each subpackage a mage file |
866 |
# run it with several targets |
# run it with several targets |
867 |
echo |
echo |
868 |
for i in ${SPLIT_PACKAGES} |
for subpackage in ${SPLIT_PACKAGES} |
869 |
do |
do |
870 |
# get the right variables for the split |
# get the right variables for the split |
871 |
export PNAME="${i}" |
export PNAME="${subpackage}" |
872 |
split_info_${i} |
split_info_${subpackage} |
873 |
|
# get the preinstall etc |
874 |
|
split_export_inherits ${subpackage} |
875 |
build_mage_script --split-pkg-base "${split_pkg_base}" |
build_mage_script --split-pkg-base "${split_pkg_base}" |
876 |
|
# delete split preinstall etc |
877 |
|
split_delete_inherits ${subpackage} |
878 |
# restore smage environment |
# restore smage environment |
879 |
split_restore_variables |
split_restore_variables |
880 |
done |
done |
1060 |
unset -f SAVED_postremove |
unset -f SAVED_postremove |
1061 |
} |
} |
1062 |
|
|
1063 |
|
split_export_inherits() |
1064 |
|
{ |
1065 |
|
local subpackage="$1" |
1066 |
|
local func |
1067 |
|
local newfunc |
1068 |
|
|
1069 |
|
for func in preinstall postinstall preremove postremove |
1070 |
|
do |
1071 |
|
if [[ ! -z $(typeset -f ${func}_${subpackage}) ]] |
1072 |
|
then |
1073 |
|
newfunc=$(typeset -f ${func}_${subpackage}) |
1074 |
|
newfunc="${newfunc/_${subpackage} (/ (}" |
1075 |
|
eval "${newfunc}" |
1076 |
|
fi |
1077 |
|
done |
1078 |
|
} |
1079 |
|
|
1080 |
|
split_delete_inherits() |
1081 |
|
{ |
1082 |
|
local subpackage="$1" |
1083 |
|
local func |
1084 |
|
|
1085 |
|
for func in preinstall postinstall preremove postremove |
1086 |
|
do |
1087 |
|
if [[ ! -z $(typeset -f ${func}_${subpackage}) ]] |
1088 |
|
then |
1089 |
|
unset -f ${func} |
1090 |
|
fi |
1091 |
|
done |
1092 |
|
} |
1093 |
|
|
1094 |
export_inherits() |
export_inherits() |
1095 |
{ |
{ |
1096 |
local include="$1" |
local include="$1" |
1600 |
do |
do |
1601 |
echo -e "${COLBLUE}===${COLGREEN} stripping binaries for '${subpackage}' ...${COLDEFAULT}" |
echo -e "${COLBLUE}===${COLGREEN} stripping binaries for '${subpackage}' ...${COLDEFAULT}" |
1602 |
mstripbins ${BINDIR}_${subpackage} |
mstripbins ${BINDIR}_${subpackage} |
1603 |
echo -e "${COLBLUE}===${COLGREEN} stripping libraries for '${subpackage}' ...${COLDEFAULT}" |
echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries for '${subpackage}' ...${COLDEFAULT}" |
1604 |
mstriplibs ${BINDIR}_${subpackage} |
mstriplibs ${BINDIR}_${subpackage} |
1605 |
|
echo -e "${COLBLUE}===${COLGREEN} stripping static libraries for '${subpackage}' ...${COLDEFAULT}" |
1606 |
|
mstripstatic ${BINDIR}_${subpackage} |
1607 |
done |
done |
1608 |
else |
else |
1609 |
echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}" |
echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}" |
1610 |
mstripbins ${BINDIR} |
mstripbins ${BINDIR} |
1611 |
echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}" |
echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries ...${COLDEFAULT}" |
1612 |
mstriplibs ${BINDIR} |
mstriplibs ${BINDIR} |
1613 |
|
echo -e "${COLBLUE}===${COLGREEN} stripping static libraries ...${COLDEFAULT}" |
1614 |
|
mstripstatic ${BINDIR} |
1615 |
fi |
fi |
1616 |
;; |
;; |
1617 |
esac |
esac |