scripts/mk-patch.sh
author Remy Bohmer <linux@bohmer.net>
Thu May 27 23:18:19 2010 +0200 (2010-05-27)
changeset 2060 51e4597b07fc
child 2075 edc7c7958e80
permissions -rwxr-xr-x
scripts: add option to strip all toolchain executables

To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
yann@1888
     1
#!/bin/sh
yann@1888
     2
yann@1888
     3
repos="$1"
yann@1888
     4
pdir="$2"
yann@1888
     5
if [ -z "${repos}" -o ! -d "${repos}" -o -z "${pdir}" -o ! -d "${pdir}" ];then
yann@1888
     6
    printf "Usage: ${0##*/} <repos_dir> <patch_dir>\n"
yann@1888
     7
    exit 1
yann@1888
     8
fi
yann@1888
     9
yann@1888
    10
pdir="$( cd "${pdir}"; pwd)"
yann@1888
    11
version="$( echo "${pdir}" |sed -r -e 's,.*/([^/]+)/*$,\1,' )"
yann@1888
    12
branch="${version%.*}"
yann@1888
    13
n=$( ls -1 "${pdir}" 2>/dev/null |wc -l )
yann@1888
    14
yann@1888
    15
r1="$( hg -R "${repos}" log -b "${branch}"  \
yann@1888
    16
       |awk '
yann@1888
    17
            $1=="changeset:" {
yann@1888
    18
                prev=rev;
yann@1888
    19
                split($2,a,":");
yann@1888
    20
                rev=a[1];
yann@1888
    21
            }
yann@1888
    22
            $0~/^summary:[[:space:]]+'"${branch}: (bump|update) version to ${version}\+hg"'$/ {
yann@1888
    23
                printf( "%d\n", prev );
yann@1888
    24
            }
yann@1888
    25
            '
yann@1888
    26
     )"
yann@1888
    27
yann@1888
    28
i=0
yann@1888
    29
hg -R "${repos}" log -b "${branch}" -r "${r1}:tip" --template '{rev}\n'    \
yann@1888
    30
|while read rev; do
yann@1888
    31
    p="$( printf "%03d" ${i} )"
yann@1888
    32
    i=$((i+1))
yann@1888
    33
    if [ $( ls -1 "${pdir}/${p}-"*.patch 2>/dev/null |wc -l ) -ne 0 ]; then
yann@1888
    34
        continue
yann@1888
    35
    fi
yann@1888
    36
    plog=$( hg -R "${repos}" log -r ${rev} --template '{desc|firstline}\n'  \
yann@1888
    37
            |sed -r -e 's,[/ :]+,_,g;'                                      \
yann@1888
    38
          )
yann@1888
    39
    pname="${p}-${plog}.patch"
yann@1888
    40
    printf "Revision '%d' --> '%s'\n" ${rev} "${pname}"
yann@1888
    41
    hg -R "${repos}" diff -c ${rev} --color=never >"${pdir}/${pname}"
yann@1888
    42
    pdate="$( hg -R "${repos}" log -r ${rev} --template '{date|isodate}\n' )"
yann@1888
    43
    touch -d "${pdate}" "${pdir}/${pname}"
yann@1888
    44
done