#! /bin/sh
# Copyright (C) 2004 Nokia
# Author: lauri.leukkunen@nokia.com
# Licenced under GPL, see top level COPYING file for details

function my_untar {
	local filename=$1
	local targetdir=$2

	my_cat $filename | tar xf - -C $targetdir;
}

function my_cat {
	local mycat;
	if echo $1 | grep -q "\.bz2"; then mycat=bzcat; fi
	if echo $1 | grep -q "\.gz"; then mycat=zcat; fi
	if [ x$mycat = x ]; then mycat=cat; fi
	eval "$mycat $*";
}

. ./versions

deb_version=$GCC_VER
deb_patch_version=$GCC_DEB_PATCH_VER
fixed_deb_version=$(echo $deb_version | sed "s/_/-/g")
gcc_tarball=gcc-$gcc_version.tar.bz2
gpc_tarball=gpc-$gpc_minimal_version-minimal.tar.bz2
deb_srctar=./download/gcc-$deb_version.orig.tar.gz
deb_diff=./download/gcc-$deb_version-$deb_patch_version.diff.gz

tmpdir=$(mktemp -d ./tmp-gcc.XXXXXXXXX)

my_untar $deb_srctar $tmpdir
my_cat $deb_diff | patch -d $tmpdir/gcc-$fixed_deb_version.orig -p1
my_untar $tmpdir/gcc-$fixed_deb_version.orig/$gcc_tarball $tmpdir/

ARCH=$1
if [ x$ARCH = x ]; then ARCH=arm; fi

for p in $(cd $tmpdir/gcc-$fixed_deb_version.orig/; echo "
DEB_TARGET_ARCH=$ARCH

include debian/rules.patch

print_patchlist:
	@echo \$(debian_patches);
" | make -f - print_patchlist); do
	sh $tmpdir/gcc-$fixed_deb_version.orig/debian/patches/$p.dpatch -patch -d $tmpdir/gcc-$gcc_version;
done

mv $tmpdir/gcc-$gcc_version work/gcc-$fixed_deb_version-patched

rm -rf $tmpdir
