Gitweb links:

...log 
http://git.netsurf-browser.org/toolchains.git/shortlog/5490a93c42e966be02a076bfab35b242f4bdc5de
...commit 
http://git.netsurf-browser.org/toolchains.git/commit/5490a93c42e966be02a076bfab35b242f4bdc5de
...tree 
http://git.netsurf-browser.org/toolchains.git/tree/5490a93c42e966be02a076bfab35b242f4bdc5de

The branch, jmb/gitsrc has been updated
       via  5490a93c42e966be02a076bfab35b242f4bdc5de (commit)
      from  cc83b4dfe4e5cdfbf1e278c32bfa600975917434 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/toolchains.git/commit/?id=5490a93c42e966be02a076bfab35b242f4bdc5de
commit 5490a93c42e966be02a076bfab35b242f4bdc5de
Author: John-Mark Bell <[email protected]>
Commit: John-Mark Bell <[email protected]>

    arm-{riscos-gnueabi,unknown-riscos}: fetch sources from git

diff --git a/arm-riscos-gnueabi/Makefile b/arm-riscos-gnueabi/Makefile
index 62c89a834b..51a8db6f22 100644
--- a/arm-riscos-gnueabi/Makefile
+++ b/arm-riscos-gnueabi/Makefile
@@ -2,42 +2,37 @@
 
 # Use a tested trunk version of GCCSDK
 UPSTREAM_GCCSDK_VERSION := 7698
-UPSTREAM_GCCSDK_TARBALL := gccsdk$(UPSTREAM_GCCSDK_VERSION).tar.gz
-UPSTREAM_GCCSDK_URI := 
svn://svn.riscos.info/gccsdk/trunk/autobuilder/develop/gcc@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_SGP_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/setup-gccsdk-params@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_ROINSTALL_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/porting-scripts/ro-install@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_AMP_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/recipe/patches/automake-for-binutils@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_UNIXLIB_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/recipe/files/gcc/libunixlib@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_LD_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/soloader/dynamic/ld.so-1.9.9@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_ASASM_URI := 
svn://svn.riscos.info/gccsdk/trunk/tools/asasm@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_ELF2AIF_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/elf2aif@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_LN_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/ln@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_MKRESFS_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/mkresfs@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_TARBALL := gccsdk_svn.trunk.$(UPSTREAM_GCCSDK_VERSION).tar.gz
+
+# Constituent upstream source archives for GCCSDK
+GCCSDK_UPSTREAM_SOURCES := \
+       autoconf_2.64.tar.xz \
+       autoconf_2.69.tar.xz \
+       automake_1.11.1.tar.bz2 \
+       automake_1.15.1.tar.xz \
+       binutils_2.30.tar.bz2 \
+       gcc_10.2.0.tar.xz \
+       libtool_2.4.2.tar.gz
 
 # OSLib 7.00
-UPSTREAM_OSLIB_VERSION := 700
-UPSTREAM_OSLIB_TARBALL := oslib$(UPSTREAM_OSLIB_VERSION).tar.gz
-UPSTREAM_OSLIB_URI := 
https://svn.code.sf.net/p/ro-oslib/code/tags/oslib-$(UPSTREAM_OSLIB_VERSION)/!OSLib
+UPSTREAM_OSLIB_VERSION := 7.00
+UPSTREAM_OSLIB_TARBALL := oslib_$(UPSTREAM_OSLIB_VERSION).tar.gz
 
 # Known tested version of trunk for CCRes
 UPSTREAM_CCRES_VERSION := 96
-UPSTREAM_CCRES_TARBALL := ccres$(UPSTREAM_CCRES_VERSION).tar.gz
-UPSTREAM_CCRES_URI := 
svn://svn.riscos.info/ccres/trunk@$(UPSTREAM_CCRES_VERSION)
+UPSTREAM_CCRES_TARBALL := ccres_svn.trunk.$(UPSTREAM_CCRES_VERSION).tar.gz
 
 # Makerun
 UPSTREAM_MAKERUN_VERSION := fe55b6bf
-UPSTREAM_MAKERUN_TARBALL := makerun$(UPSTREAM_MAKERUN_VERSION).tar.gz
-UPSTREAM_MAKERUN_URI := git://git.netsurf-browser.org/makerun.git
+UPSTREAM_MAKERUN_TARBALL := makerun_git.$(UPSTREAM_MAKERUN_VERSION).tar.gz
 
 # Squeeze
 UPSTREAM_SQUEEZE_VERSION := d54d441
-UPSTREAM_SQUEEZE_TARBALL := squeeze$(UPSTREAM_SQUEEZE_VERSION).tar.gz
-UPSTREAM_SQUEEZE_URI := git://git.netsurf-browser.org/squeeze.git
+UPSTREAM_SQUEEZE_TARBALL := squeeze_git.$(UPSTREAM_SQUEEZE_VERSION).tar.gz
 
 # Infozip
-UPSTREAM_INFOZIP_VERSION := 30
-UPSTREAM_INFOZIP_TARBALL := zip$(UPSTREAM_INFOZIP_VERSION).tar.gz
-UPSTREAM_INFOZIP_URI := 
https://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/$(UPSTREAM_INFOZIP_TARBALL)
+UPSTREAM_INFOZIP_VERSION := 3.0
+UPSTREAM_INFOZIP_TARBALL := zip_$(UPSTREAM_INFOZIP_VERSION).tar.gz
 
 Q ?= @
 TOP := $(CURDIR)
@@ -51,11 +46,14 @@ TARGET_NAME := arm-riscos-gnueabi
 PREFIX ?= /opt/netsurf/$(TARGET_NAME)
 
 # tools
-FETCHSRC:=$(CURDIR)/fetchsrc
+PRISTINE_TAR := $(TOP)/../tools/pristine-tar
+REPACK := $(TOP)/../tools/repack
 
-.PHONY: all clean distclean
+.PHONY: all clean distclean source-archives
 all: $(BUILDSTEPS)/toolchain.d
 
+source-archives: $(BUILDSTEPS)/sources.d
+
 clean:
        rm -fr $(BUILDDIR)
 
@@ -75,9 +73,9 @@ $(BUILDSTEPS)/toolchain.d: $(BUILDSTEPS)/ccres.d 
$(BUILDSTEPS)/makerun.d $(BUILD
 
 $(BUILDSTEPS)/infozip.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL)
-       for p in `ls $(RECIPES)/patches/infozip/*.p` ; do patch -d 
$(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION) -p0 <$$p ; done
-       cd $(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION) && make -f unix/Makefile 
generic LOCAL_ZIP=-DFORRISCOS
-       cp $(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION)/zip 
$(PREFIX)/cross/bin/zip
+       for p in `ls $(RECIPES)/patches/infozip/*.p` ; do patch -d 
$(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION)) -p0 <$$p ; done
+       cd $(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION)) && make -f 
unix/Makefile generic LOCAL_ZIP=-DFORRISCOS
+       cp $(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION))/zip 
$(PREFIX)/cross/bin/zip
        @# Yuck. Build host tooling should not be installed into the target 
environment
        mkdir -p $(PREFIX)/env/bin
        ln -fs $(PREFIX)/cross/bin/zip $(PREFIX)/env/bin/zip
@@ -117,8 +115,8 @@ $(BUILDSTEPS)/ccres.d: $(BUILDSTEPS)/oslib.d 
$(SOURCESDIR)/$(UPSTREAM_CCRES_TARB
 
 $(BUILDSTEPS)/oslib.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL)
-       for p in `ls $(RECIPES)/patches/oslib/*.p` ; do patch -d 
$(BUILDDIR)/oslib -p0 <$$p ; done
-       cd $(BUILDDIR)/oslib && GCCSDK_INSTALL_ENV=$(PREFIX)/env 
GCCSDK_INSTALL_CROSSBIN=$(PREFIX)/cross/bin make install-elfeabi
+       for p in `ls $(RECIPES)/patches/oslib/*.p` ; do patch -d 
$(BUILDDIR)/oslib-$(UPSTREAM_OSLIB_VERSION) -p0 <$$p ; done
+       cd $(BUILDDIR)/oslib-$(UPSTREAM_OSLIB_VERSION) && 
GCCSDK_INSTALL_ENV=$(PREFIX)/env GCCSDK_INSTALL_CROSSBIN=$(PREFIX)/cross/bin 
make install-elfeabi
        touch $@
 
 ###
@@ -150,6 +148,8 @@ $(BUILDSTEPS)/gccsdk-srcdir.d: $(BUILDSTEPS)/buildsteps.d 
$(SOURCESDIR)/$(UPSTRE
        $(Q)for p in $$(ls $(RECIPES)/files/gccsdk/*.p 2>/dev/null) ; do echo " 
COPY: $$p -> $(BUILDDIR)/gccsdk/gcc/" ; cp -p $$p $(BUILDDIR)/gccsdk/gcc/ ; done
        $(Q)for p in $$(ls $(RECIPES)/files/gccsdk/*.pp 2>/dev/null) ; do echo 
" COPY: $$p -> $(BUILDDIR)/gccsdk/gcc/" ; cp -p $$p $(BUILDDIR)/gccsdk/gcc/ ; 
done
        $(Q)for p in $$(ls $(RECIPES)/patches/gccsdk/*.p 2>/dev/null) ; do echo 
"PATCH: $$p" ; patch -d $(BUILDDIR)/gccsdk -p0 <$$p ; done
+       mkdir -p $(BUILDDIR)/gccsdk/srcdir.orig
+       $(foreach src,$(GCCSDK_UPSTREAM_SOURCES),cd $(TOP)/.. && 
$(PRISTINE_TAR) checkout $(src) && mv $(TOP)/../$(src) 
$(BUILDDIR)/gccsdk/srcdir.orig/$(subst _,-,$(src)) &&) :
        touch $@
 
 ###
@@ -157,38 +157,22 @@ $(BUILDSTEPS)/gccsdk-srcdir.d: $(BUILDSTEPS)/buildsteps.d 
$(SOURCESDIR)/$(UPSTRE
 ###
 
 $(SOURCESDIR)/$(UPSTREAM_GCCSDK_TARBALL):
-       svn export $(UPSTREAM_GCCSDK_URI) $(SOURCESDIR)/gccsdk/gcc
-       svn export $(UPSTREAM_GCCSDK_SGP_URI) $(SOURCESDIR)/gccsdk/
-       svn export $(UPSTREAM_GCCSDK_ROINSTALL_URI) $(SOURCESDIR)/gccsdk/
-       svn export $(UPSTREAM_GCCSDK_AMP_URI) $(SOURCESDIR)/gccsdk/automake
-       svn export $(UPSTREAM_GCCSDK_UNIXLIB_URI) 
$(SOURCESDIR)/gccsdk/libunixlib
-       svn export $(UPSTREAM_GCCSDK_LD_URI) $(SOURCESDIR)/gccsdk/ld
-       svn export $(UPSTREAM_GCCSDK_ASASM_URI) $(SOURCESDIR)/gccsdk/asasm
-       svn export $(UPSTREAM_GCCSDK_ELF2AIF_URI) $(SOURCESDIR)/gccsdk/elf2aif
-       svn export $(UPSTREAM_GCCSDK_LN_URI) $(SOURCESDIR)/gccsdk/ln
-       svn export $(UPSTREAM_GCCSDK_MKRESFS_URI) $(SOURCESDIR)/gccsdk/mkresfs
-       tar -C $(SOURCESDIR) -caf $@ gccsdk
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL):
-       svn co $(UPSTREAM_OSLIB_URI) $(SOURCESDIR)/oslib
-       tar -C $(SOURCESDIR) -caf $@ oslib
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_CCRES_TARBALL):
-       svn co $(UPSTREAM_CCRES_URI) $(SOURCESDIR)/ccres
-       tar -C $(SOURCESDIR) -caf $@ ccres
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_MAKERUN_TARBALL):
-       $(RM) -rf $(SOURCESDIR)/makerun
-       git clone $(UPSTREAM_MAKERUN_URI) $(SOURCESDIR)/makerun
-       tar -C $(SOURCESDIR) -caf $@ makerun
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_SQUEEZE_TARBALL):
-       $(RM) -rf $(SOURCESDIR)/squeeze
-       git clone $(UPSTREAM_SQUEEZE_URI) $(SOURCESDIR)/squeeze
-       tar -C $(SOURCESDIR) -caf $@ squeeze
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL):
-       $(FETCHSRC) arm-unknown-riscos $(subst $(SOURCESDIR)/,,$@) 
$(UPSTREAM_INFOZIP_URI) $@
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 ###
 # Rule to create directories for building
@@ -202,3 +186,73 @@ $(BUILDSTEPS):
 
 $(SOURCESDIR):
        mkdir -p $@
+
+###
+# Rules to build source archives (via source-archives target)
+###
+
+UPSTREAM_GCCSDK_URI := 
svn://svn.riscos.info/gccsdk/trunk/autobuilder/develop/gcc@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_SGP_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/setup-gccsdk-params@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_ROINSTALL_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/porting-scripts/ro-install@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_AMP_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/recipe/patches/automake-for-binutils@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_UNIXLIB_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/recipe/files/gcc/libunixlib@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_LD_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/soloader/dynamic/ld.so-1.9.9@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_ASASM_URI := 
svn://svn.riscos.info/gccsdk/trunk/tools/asasm@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_ELF2AIF_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/elf2aif@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_LN_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/ln@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_MKRESFS_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/mkresfs@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_OSLIB_URI := 
https://downloads.sourceforge.net/ro-oslib/OSLib-src-$(UPSTREAM_OSLIB_VERSION).zip
+UPSTREAM_CCRES_URI := 
svn://svn.riscos.info/ccres/trunk@$(UPSTREAM_CCRES_VERSION)
+UPSTREAM_MAKERUN_URI := git://git.netsurf-browser.org/makerun.git
+UPSTREAM_SQUEEZE_URI := git://git.netsurf-browser.org/squeeze.git
+UPSTREAM_INFOZIP_URI := 
https://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz
+
+$(BUILDSTEPS)/sources.d: $(BUILDSTEPS)/buildsteps.d 
$(BUILDDIR)/$(UPSTREAM_GCCSDK_TARBALL) $(BUILDDIR)/$(UPSTREAM_OSLIB_TARBALL) 
$(BUILDDIR)/$(UPSTREAM_CCRES_TARBALL) $(BUILDDIR)/$(UPSTREAM_MAKERUN_TARBALL) 
$(BUILDDIR)/$(UPSTREAM_SQUEEZE_TARBALL) $(BUILDDIR)/$(UPSTREAM_INFOZIP_TARBALL)
+       touch $@
+
+$(BUILDDIR)/$(UPSTREAM_GCCSDK_TARBALL):
+       rm -rf $(BUILDDIR)/sources/gccsdk
+       mkdir -p $(BUILDDIR)/sources/gccsdk
+       svn export $(UPSTREAM_GCCSDK_URI) $(BUILDDIR)/sources/gccsdk/gcc
+       svn export $(UPSTREAM_GCCSDK_SGP_URI) $(BUILDDIR)/sources/gccsdk/
+       svn export $(UPSTREAM_GCCSDK_ROINSTALL_URI) $(BUILDDIR)/sources/gccsdk/
+       svn export $(UPSTREAM_GCCSDK_AMP_URI) 
$(BUILDDIR)/sources/gccsdk/automake
+       svn export $(UPSTREAM_GCCSDK_UNIXLIB_URI) 
$(BUILDDIR)/sources/gccsdk/libunixlib
+       svn export $(UPSTREAM_GCCSDK_LD_URI) $(BUILDDIR)/sources/gccsdk/ld
+       svn export $(UPSTREAM_GCCSDK_ASASM_URI) $(BUILDDIR)/sources/gccsdk/asasm
+       svn export $(UPSTREAM_GCCSDK_ELF2AIF_URI) 
$(BUILDDIR)/sources/gccsdk/elf2aif
+       svn export $(UPSTREAM_GCCSDK_LN_URI) $(BUILDDIR)/sources/gccsdk/ln
+       svn export $(UPSTREAM_GCCSDK_MKRESFS_URI) 
$(BUILDDIR)/sources/gccsdk/mkresfs
+       tar -C $(BUILDDIR)/sources -caf $@ gccsdk
+
+$(BUILDDIR)/$(UPSTREAM_OSLIB_TARBALL):
+       $(RM) -rf $(BUILDDIR)/sources/oslib
+       mkdir -p $(BUILDDIR)/sources/oslib
+       wget -q -O 
$(BUILDDIR)/sources/oslib/oslib-$(UPSTREAM_OSLIB_VERSION).zip 
$(UPSTREAM_OSLIB_URI)
+       mkdir -p $(BUILDDIR)/sources/oslib/tmp
+       @# Unzip, converting RISC OS filetypes into ,xxx suffixes
+       unzip -F -d $(BUILDDIR)/sources/oslib/tmp 
$(BUILDDIR)/sources/oslib/oslib-$(UPSTREAM_OSLIB_VERSION).zip
+       @# Strip any ,fff suffixes
+       for f in $$(find $(BUILDDIR)/sources/oslib/tmp -type f -a -name 
'*,fff'); do mv $$f $${f%%,fff}; done
+       @# Repack the zipfile now it has unix filenames
+       cd $(BUILDDIR)/sources/oslib/tmp && zip -9r 
$(BUILDDIR)/sources/oslib/repacked-oslib-$(UPSTREAM_OSLIB_VERSION).zip .
+       @# Convert the repacked zip file into the required tarball
+       $(REPACK) 
$(BUILDDIR)/sources/oslib/repacked-oslib-$(UPSTREAM_OSLIB_VERSION).zip $@
+
+$(BUILDDIR)/$(UPSTREAM_CCRES_TARBALL):
+       $(RM) -rf $(BUILDDIR)/sources/ccres
+       svn export $(UPSTREAM_CCRES_URI) $(BUILDDIR)/sources/ccres
+       tar -C $(BUILDDIR)/sources -caf $@ ccres
+
+$(BUILDDIR)/$(UPSTREAM_MAKERUN_TARBALL):
+       $(RM) -rf $(BUILDDIR)/sources/makerun
+       git clone --depth=1 $(UPSTREAM_MAKERUN_URI) $(BUILDDIR)/sources/makerun
+       tar -C $(BUILDDIR)/sources --exclude-vcs -caf $@ makerun
+
+$(BUILDDIR)/$(UPSTREAM_SQUEEZE_TARBALL):
+       $(RM) -rf $(BUILDDIR)/sources/squeeze
+       git clone --depth=1 $(UPSTREAM_SQUEEZE_URI) $(BUILDDIR)/sources/squeeze
+       tar -C $(BUILDDIR)/sources --exclude-vcs -caf $@ squeeze
+
+$(BUILDDIR)/$(UPSTREAM_INFOZIP_TARBALL):
+       wget -q -O $@ $(UPSTREAM_INFOZIP_URI)
diff --git a/arm-riscos-gnueabi/fetchsrc b/arm-riscos-gnueabi/fetchsrc
deleted file mode 100755
index 92ae5bfe2b..0000000000
--- a/arm-riscos-gnueabi/fetchsrc
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-# script to fetch toolchain source tar using ci.netsurf-browser.org as a cache
-
-# Usage fetchsrc <target> <source> <upstream> <output>
-
-NSSRV="https://ci.netsurf-browser.org/toolchain/";
-
-wget -q -O ${4} ${NSSRV}/${1}/${2}
-if [ $? -ne 0 ];then
-    wget -q -O ${4} ${3}
-    if [ $? -ne 0 ];then
-        rm ${4}
-       exit 1
-    fi
-fi
diff --git a/arm-unknown-riscos/Makefile b/arm-unknown-riscos/Makefile
index b1d9f636bc..7a626ed458 100644
--- a/arm-unknown-riscos/Makefile
+++ b/arm-unknown-riscos/Makefile
@@ -1,35 +1,43 @@
 # NetSurf build script for RISCOS cross compilation toolchain.
 
-# Use a tested trunk version of GCCSDK
+# Use a tested release version of GCCSDK
 UPSTREAM_GCCSDK_VERSION := release_4_7_4_v6
-UPSTREAM_GCCSDK_TARBALL := gcc4$(UPSTREAM_GCCSDK_VERSION).tar.gz
-UPSTREAM_GCCSDK_URI := 
svn://svn.riscos.info/gccsdk/tags/$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_TARBALL := gccsdk_$(UPSTREAM_GCCSDK_VERSION).tar.gz
+
+# Constituent upstream source archives for GCCSDK
+GCCSDK_UPSTREAM_SOURCES := \
+       autoconf_2.64.tar.bz2 \
+       automake_1.11.1.tar.bz2 \
+       cloog-ppl_0.15.11.tar.gz \
+       binutils_2.24.tar.bz2 \
+       gcc_4.7.4.tar.bz2 \
+       gmp_5.0.1.tar.bz2 \
+       libtool_2.4.2.tar.gz \
+       mpc_1.1.0.tar.gz \
+       mpfr_3.0.1.tar.bz2 \
+       ppl_1.2.tar.xz
 
 # OSLib 7.00
-UPSTREAM_OSLIB_VERSION := 700
-UPSTREAM_OSLIB_TARBALL := oslib$(UPSTREAM_OSLIB_VERSION).tar.gz
-UPSTREAM_OSLIB_URI := 
https://svn.code.sf.net/p/ro-oslib/code/tags/oslib-$(UPSTREAM_OSLIB_VERSION)/!OSLib
+UPSTREAM_OSLIB_VERSION := 7.00
+UPSTREAM_OSLIB_TARBALL := oslib_$(UPSTREAM_OSLIB_VERSION).tar.gz
 
 # Known tested version of trunk for CCRes
 UPSTREAM_CCRES_VERSION := 96
-UPSTREAM_CCRES_TARBALL := ccres$(UPSTREAM_CCRES_VERSION).tar.gz
-UPSTREAM_CCRES_URI := 
svn://svn.riscos.info/ccres/trunk@$(UPSTREAM_CCRES_VERSION)
+UPSTREAM_CCRES_TARBALL := ccres_svn.trunk.$(UPSTREAM_CCRES_VERSION).tar.gz
 
 # Makerun
 UPSTREAM_MAKERUN_VERSION := fe55b6bf
-UPSTREAM_MAKERUN_TARBALL := makerun$(UPSTREAM_MAKERUN_VERSION).tar.gz
-UPSTREAM_MAKERUN_URI := git://git.netsurf-browser.org/makerun.git
+UPSTREAM_MAKERUN_TARBALL := makerun_git.$(UPSTREAM_MAKERUN_VERSION).tar.gz
 
 # Squeeze
-UPSTREAM_SQUEEZE_VERSION := f26ccd6
-UPSTREAM_SQUEEZE_TARBALL := squeeze$(UPSTREAM_SQUEEZE_VERSION).tar.gz
-UPSTREAM_SQUEEZE_URI := git://git.netsurf-browser.org/squeeze.git
+UPSTREAM_SQUEEZE_VERSION := d54d441
+UPSTREAM_SQUEEZE_TARBALL := squeeze_git.$(UPSTREAM_SQUEEZE_VERSION).tar.gz
 
 # Infozip
-UPSTREAM_INFOZIP_VERSION := 30
+UPSTREAM_INFOZIP_VERSION := 3.0
 UPSTREAM_INFOZIP_TARBALL := zip$(UPSTREAM_INFOZIP_VERSION).tar.gz
-UPSTREAM_INFOZIP_URI := 
https://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/$(UPSTREAM_INFOZIP_TARBALL)
 
+Q ?= @
 TOP := $(CURDIR)
 RECIPES := $(TOP)/recipes
 SOURCESDIR := $(TOP)/sources
@@ -41,11 +49,14 @@ TARGET_NAME := arm-unknown-riscos
 PREFIX ?= /opt/netsurf/$(TARGET_NAME)
 
 # tools
-FETCHSRC:=$(CURDIR)/fetchsrc
+PRISTINE_TAR := $(TOP)/../tools/pristine-tar
+REPACK := $(TOP)/../tools/repack
 
-.PHONY: all clean distclean
+.PHONY: all clean distclean source-archives
 all: $(BUILDSTEPS)/toolchain.d
 
+source-archives: $(BUILDSTEPS)/sources.d
+
 clean:
        rm -fr $(BUILDDIR)
 
@@ -65,9 +76,9 @@ $(BUILDSTEPS)/toolchain.d: $(BUILDSTEPS)/ccres.d 
$(BUILDSTEPS)/makerun.d $(BUILD
 
 $(BUILDSTEPS)/infozip.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL)
-       for p in `ls $(RECIPES)/patches/infozip/*.p` ; do patch -d 
$(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION) -p0 <$$p ; done
-       cd $(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION) && make -f unix/Makefile 
generic LOCAL_ZIP=-DFORRISCOS
-       cp $(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION)/zip 
$(PREFIX)/cross/bin/zip
+       for p in `ls $(RECIPES)/patches/infozip/*.p` ; do patch -d 
$(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION)) -p0 <$$p ; done
+       cd $(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION)) && make -f 
unix/Makefile generic LOCAL_ZIP=-DFORRISCOS
+       cp $(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION))/zip 
$(PREFIX)/cross/bin/zip
        @# Yuck. Build host tooling should not be installed into the target 
environment
        mkdir -p $(PREFIX)/env/bin
        ln -fs $(PREFIX)/cross/bin/zip $(PREFIX)/env/bin/zip
@@ -107,8 +118,8 @@ $(BUILDSTEPS)/ccres.d: $(BUILDSTEPS)/oslib.d 
$(SOURCESDIR)/$(UPSTREAM_CCRES_TARB
 
 $(BUILDSTEPS)/oslib.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL)
-       for p in `ls $(RECIPES)/patches/oslib/*.p` ; do patch -d 
$(BUILDDIR)/oslib -p0 <$$p ; done
-       cd $(BUILDDIR)/oslib && GCCSDK_INSTALL_ENV=$(PREFIX)/env 
GCCSDK_INSTALL_CROSSBIN=$(PREFIX)/cross/bin make install
+       for p in `ls $(RECIPES)/patches/oslib/*.p` ; do patch -d 
$(BUILDDIR)/oslib-$(UPSTREAM_OSLIB_VERSION) -p0 <$$p ; done
+       cd $(BUILDDIR)/oslib-$(UPSTREAM_OSLIB_VERSION) && 
GCCSDK_INSTALL_ENV=$(PREFIX)/env GCCSDK_INSTALL_CROSSBIN=$(PREFIX)/cross/bin 
make install
        touch $@
 
 ###
@@ -116,8 +127,8 @@ $(BUILDSTEPS)/oslib.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBAL
 ###
 
 $(BUILDSTEPS)/gcc.d: $(BUILDSTEPS)/gccsdk-srcdir.d
-       cd $(BUILDDIR)/gcc4/gcc4 && make
-       cd $(BUILDDIR)/gcc4/gcc4 && ./install-env
+       cd $(BUILDDIR)/gccsdk/gcc4 && make
+       cd $(BUILDDIR)/gccsdk/gcc4 && ./install-env
        @# Newer GCCSDK adds these trampoline binaries that for us
        @# serve no purpose and get in the way.
        $(RM) $(PREFIX)/cross/bin/arm-unknown-riscos-gcc-ar 
$(PREFIX)/cross/bin/arm-unknown-riscos-gcc-nm 
$(PREFIX)/cross/bin/arm-unknown-riscos-gcc-ranlib
@@ -125,9 +136,11 @@ $(BUILDSTEPS)/gcc.d: $(BUILDSTEPS)/gccsdk-srcdir.d
 
 $(BUILDSTEPS)/gccsdk-srcdir.d: $(BUILDSTEPS)/buildsteps.d 
$(SOURCESDIR)/$(UPSTREAM_GCCSDK_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_GCCSDK_TARBALL)
-       cp -p $(RECIPES)/files/gcc4/gccsdk-params 
$(BUILDDIR)/gcc4/gcc4/gccsdk-params
-       sed -i 's#{PREFIX}#$(PREFIX)#' $(BUILDDIR)/gcc4/gcc4/gccsdk-params
-       for p in `ls $(RECIPES)/patches/gcc4/*.p` ; do patch -d 
$(BUILDDIR)/gcc4 -p0 <$$p ; done
+       cp -p $(RECIPES)/files/gcc4/gccsdk-params 
$(BUILDDIR)/gccsdk/gcc4/gccsdk-params
+       sed -i 's#{PREFIX}#$(PREFIX)#' $(BUILDDIR)/gccsdk/gcc4/gccsdk-params
+       for p in `ls $(RECIPES)/patches/gcc4/*.p` ; do patch -d 
$(BUILDDIR)/gccsdk -p0 <$$p ; done
+       mkdir -p $(BUILDDIR)/gccsdk/gcc4/srcdir.orig
+       $(foreach src,$(GCCSDK_UPSTREAM_SOURCES),cd $(TOP)/.. && 
$(PRISTINE_TAR) checkout $(src) && mv $(TOP)/../$(src) 
$(BUILDDIR)/gccsdk/gcc4/srcdir.orig/$(subst _,-,$(src)) &&) :
        touch $@
 
 ###
@@ -135,29 +148,24 @@ $(BUILDSTEPS)/gccsdk-srcdir.d: $(BUILDSTEPS)/buildsteps.d 
$(SOURCESDIR)/$(UPSTRE
 ###
 
 $(SOURCESDIR)/$(UPSTREAM_GCCSDK_TARBALL):
-       svn co $(UPSTREAM_GCCSDK_URI) $(SOURCESDIR)/gcc4
-       tar -C $(SOURCESDIR) -caf $@ gcc4
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL):
-       svn co $(UPSTREAM_OSLIB_URI) $(SOURCESDIR)/oslib
-       tar -C $(SOURCESDIR) -caf $@ oslib
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_CCRES_TARBALL):
-       svn co $(UPSTREAM_CCRES_URI) $(SOURCESDIR)/ccres
-       tar -C $(SOURCESDIR) -caf $@ ccres
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_MAKERUN_TARBALL):
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
        $(RM) -rf $(SOURCESDIR)/makerun
-       git clone $(UPSTREAM_MAKERUN_URI) $(SOURCESDIR)/makerun
-       tar -C $(SOURCESDIR) -caf $@ makerun
 
 $(SOURCESDIR)/$(UPSTREAM_SQUEEZE_TARBALL):
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
        $(RM) -rf $(SOURCESDIR)/squeeze
-       git clone $(UPSTREAM_SQUEEZE_URI) $(SOURCESDIR)/squeeze
-       tar -C $(SOURCESDIR) -caf $@ squeeze
 
 $(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL):
-       $(FETCHSRC) arm-unknown-riscos $(subst $(SOURCESDIR)/,,$@) 
$(UPSTREAM_INFOZIP_URI) $@
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 ###
 # Rule to create directories for building
@@ -171,3 +179,19 @@ $(BUILDSTEPS):
 
 $(SOURCESDIR):
        mkdir -p $@
+
+###
+# Rules to build source archives (via source-archives target)
+#
+# NB: OSLib/ccres/makerun/squeeze/zip: use arm-riscos-gnueabi Makefile
+###
+
+UPSTREAM_GCCSDK_URI := 
svn://svn.riscos.info/gccsdk/tags/$(UPSTREAM_GCCSDK_VERSION)
+
+$(BUILDSTEPS)/sources.d: $(BUILDSTEPS)/buildsteps.d 
$(BUILDDIR)/$(UPSTREAM_GCCSDK_TARBALL)
+       touch $@
+
+$(BUILDDIR)/$(UPSTREAM_GCCSDK_TARBALL):
+       rm -rf $(BUILDDIR)/sources/gccsdk
+       svn export $(UPSTREAM_GCCSDK_URI) $(BUILDDIR)/sources/gccsdk/
+       tar -C $(BUILDDIR)/sources -caf $@ gccsdk
diff --git a/arm-unknown-riscos/fetchsrc b/arm-unknown-riscos/fetchsrc
deleted file mode 100755
index 92ae5bfe2b..0000000000
--- a/arm-unknown-riscos/fetchsrc
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-# script to fetch toolchain source tar using ci.netsurf-browser.org as a cache
-
-# Usage fetchsrc <target> <source> <upstream> <output>
-
-NSSRV="https://ci.netsurf-browser.org/toolchain/";
-
-wget -q -O ${4} ${NSSRV}/${1}/${2}
-if [ $? -ne 0 ];then
-    wget -q -O ${4} ${3}
-    if [ $? -ne 0 ];then
-        rm ${4}
-       exit 1
-    fi
-fi


-----------------------------------------------------------------------

Summary of changes:
 arm-riscos-gnueabi/Makefile | 158 +++++++++++++++++++++++++++++---------------
 arm-riscos-gnueabi/fetchsrc |  16 -----
 arm-unknown-riscos/Makefile | 100 +++++++++++++++++-----------
 arm-unknown-riscos/fetchsrc |  16 -----
 4 files changed, 168 insertions(+), 122 deletions(-)
 delete mode 100755 arm-riscos-gnueabi/fetchsrc
 delete mode 100755 arm-unknown-riscos/fetchsrc

diff --git a/arm-riscos-gnueabi/Makefile b/arm-riscos-gnueabi/Makefile
index 62c89a834b..51a8db6f22 100644
--- a/arm-riscos-gnueabi/Makefile
+++ b/arm-riscos-gnueabi/Makefile
@@ -2,42 +2,37 @@
 
 # Use a tested trunk version of GCCSDK
 UPSTREAM_GCCSDK_VERSION := 7698
-UPSTREAM_GCCSDK_TARBALL := gccsdk$(UPSTREAM_GCCSDK_VERSION).tar.gz
-UPSTREAM_GCCSDK_URI := 
svn://svn.riscos.info/gccsdk/trunk/autobuilder/develop/gcc@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_SGP_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/setup-gccsdk-params@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_ROINSTALL_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/porting-scripts/ro-install@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_AMP_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/recipe/patches/automake-for-binutils@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_UNIXLIB_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/recipe/files/gcc/libunixlib@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_LD_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/soloader/dynamic/ld.so-1.9.9@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_ASASM_URI := 
svn://svn.riscos.info/gccsdk/trunk/tools/asasm@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_ELF2AIF_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/elf2aif@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_LN_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/ln@$(UPSTREAM_GCCSDK_VERSION)
-UPSTREAM_GCCSDK_MKRESFS_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/mkresfs@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_TARBALL := gccsdk_svn.trunk.$(UPSTREAM_GCCSDK_VERSION).tar.gz
+
+# Constituent upstream source archives for GCCSDK
+GCCSDK_UPSTREAM_SOURCES := \
+       autoconf_2.64.tar.xz \
+       autoconf_2.69.tar.xz \
+       automake_1.11.1.tar.bz2 \
+       automake_1.15.1.tar.xz \
+       binutils_2.30.tar.bz2 \
+       gcc_10.2.0.tar.xz \
+       libtool_2.4.2.tar.gz
 
 # OSLib 7.00
-UPSTREAM_OSLIB_VERSION := 700
-UPSTREAM_OSLIB_TARBALL := oslib$(UPSTREAM_OSLIB_VERSION).tar.gz
-UPSTREAM_OSLIB_URI := 
https://svn.code.sf.net/p/ro-oslib/code/tags/oslib-$(UPSTREAM_OSLIB_VERSION)/!OSLib
+UPSTREAM_OSLIB_VERSION := 7.00
+UPSTREAM_OSLIB_TARBALL := oslib_$(UPSTREAM_OSLIB_VERSION).tar.gz
 
 # Known tested version of trunk for CCRes
 UPSTREAM_CCRES_VERSION := 96
-UPSTREAM_CCRES_TARBALL := ccres$(UPSTREAM_CCRES_VERSION).tar.gz
-UPSTREAM_CCRES_URI := 
svn://svn.riscos.info/ccres/trunk@$(UPSTREAM_CCRES_VERSION)
+UPSTREAM_CCRES_TARBALL := ccres_svn.trunk.$(UPSTREAM_CCRES_VERSION).tar.gz
 
 # Makerun
 UPSTREAM_MAKERUN_VERSION := fe55b6bf
-UPSTREAM_MAKERUN_TARBALL := makerun$(UPSTREAM_MAKERUN_VERSION).tar.gz
-UPSTREAM_MAKERUN_URI := git://git.netsurf-browser.org/makerun.git
+UPSTREAM_MAKERUN_TARBALL := makerun_git.$(UPSTREAM_MAKERUN_VERSION).tar.gz
 
 # Squeeze
 UPSTREAM_SQUEEZE_VERSION := d54d441
-UPSTREAM_SQUEEZE_TARBALL := squeeze$(UPSTREAM_SQUEEZE_VERSION).tar.gz
-UPSTREAM_SQUEEZE_URI := git://git.netsurf-browser.org/squeeze.git
+UPSTREAM_SQUEEZE_TARBALL := squeeze_git.$(UPSTREAM_SQUEEZE_VERSION).tar.gz
 
 # Infozip
-UPSTREAM_INFOZIP_VERSION := 30
-UPSTREAM_INFOZIP_TARBALL := zip$(UPSTREAM_INFOZIP_VERSION).tar.gz
-UPSTREAM_INFOZIP_URI := 
https://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/$(UPSTREAM_INFOZIP_TARBALL)
+UPSTREAM_INFOZIP_VERSION := 3.0
+UPSTREAM_INFOZIP_TARBALL := zip_$(UPSTREAM_INFOZIP_VERSION).tar.gz
 
 Q ?= @
 TOP := $(CURDIR)
@@ -51,11 +46,14 @@ TARGET_NAME := arm-riscos-gnueabi
 PREFIX ?= /opt/netsurf/$(TARGET_NAME)
 
 # tools
-FETCHSRC:=$(CURDIR)/fetchsrc
+PRISTINE_TAR := $(TOP)/../tools/pristine-tar
+REPACK := $(TOP)/../tools/repack
 
-.PHONY: all clean distclean
+.PHONY: all clean distclean source-archives
 all: $(BUILDSTEPS)/toolchain.d
 
+source-archives: $(BUILDSTEPS)/sources.d
+
 clean:
        rm -fr $(BUILDDIR)
 
@@ -75,9 +73,9 @@ $(BUILDSTEPS)/toolchain.d: $(BUILDSTEPS)/ccres.d 
$(BUILDSTEPS)/makerun.d $(BUILD
 
 $(BUILDSTEPS)/infozip.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL)
-       for p in `ls $(RECIPES)/patches/infozip/*.p` ; do patch -d 
$(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION) -p0 <$$p ; done
-       cd $(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION) && make -f unix/Makefile 
generic LOCAL_ZIP=-DFORRISCOS
-       cp $(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION)/zip 
$(PREFIX)/cross/bin/zip
+       for p in `ls $(RECIPES)/patches/infozip/*.p` ; do patch -d 
$(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION)) -p0 <$$p ; done
+       cd $(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION)) && make -f 
unix/Makefile generic LOCAL_ZIP=-DFORRISCOS
+       cp $(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION))/zip 
$(PREFIX)/cross/bin/zip
        @# Yuck. Build host tooling should not be installed into the target 
environment
        mkdir -p $(PREFIX)/env/bin
        ln -fs $(PREFIX)/cross/bin/zip $(PREFIX)/env/bin/zip
@@ -117,8 +115,8 @@ $(BUILDSTEPS)/ccres.d: $(BUILDSTEPS)/oslib.d 
$(SOURCESDIR)/$(UPSTREAM_CCRES_TARB
 
 $(BUILDSTEPS)/oslib.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL)
-       for p in `ls $(RECIPES)/patches/oslib/*.p` ; do patch -d 
$(BUILDDIR)/oslib -p0 <$$p ; done
-       cd $(BUILDDIR)/oslib && GCCSDK_INSTALL_ENV=$(PREFIX)/env 
GCCSDK_INSTALL_CROSSBIN=$(PREFIX)/cross/bin make install-elfeabi
+       for p in `ls $(RECIPES)/patches/oslib/*.p` ; do patch -d 
$(BUILDDIR)/oslib-$(UPSTREAM_OSLIB_VERSION) -p0 <$$p ; done
+       cd $(BUILDDIR)/oslib-$(UPSTREAM_OSLIB_VERSION) && 
GCCSDK_INSTALL_ENV=$(PREFIX)/env GCCSDK_INSTALL_CROSSBIN=$(PREFIX)/cross/bin 
make install-elfeabi
        touch $@
 
 ###
@@ -150,6 +148,8 @@ $(BUILDSTEPS)/gccsdk-srcdir.d: $(BUILDSTEPS)/buildsteps.d 
$(SOURCESDIR)/$(UPSTRE
        $(Q)for p in $$(ls $(RECIPES)/files/gccsdk/*.p 2>/dev/null) ; do echo " 
COPY: $$p -> $(BUILDDIR)/gccsdk/gcc/" ; cp -p $$p $(BUILDDIR)/gccsdk/gcc/ ; done
        $(Q)for p in $$(ls $(RECIPES)/files/gccsdk/*.pp 2>/dev/null) ; do echo 
" COPY: $$p -> $(BUILDDIR)/gccsdk/gcc/" ; cp -p $$p $(BUILDDIR)/gccsdk/gcc/ ; 
done
        $(Q)for p in $$(ls $(RECIPES)/patches/gccsdk/*.p 2>/dev/null) ; do echo 
"PATCH: $$p" ; patch -d $(BUILDDIR)/gccsdk -p0 <$$p ; done
+       mkdir -p $(BUILDDIR)/gccsdk/srcdir.orig
+       $(foreach src,$(GCCSDK_UPSTREAM_SOURCES),cd $(TOP)/.. && 
$(PRISTINE_TAR) checkout $(src) && mv $(TOP)/../$(src) 
$(BUILDDIR)/gccsdk/srcdir.orig/$(subst _,-,$(src)) &&) :
        touch $@
 
 ###
@@ -157,38 +157,22 @@ $(BUILDSTEPS)/gccsdk-srcdir.d: $(BUILDSTEPS)/buildsteps.d 
$(SOURCESDIR)/$(UPSTRE
 ###
 
 $(SOURCESDIR)/$(UPSTREAM_GCCSDK_TARBALL):
-       svn export $(UPSTREAM_GCCSDK_URI) $(SOURCESDIR)/gccsdk/gcc
-       svn export $(UPSTREAM_GCCSDK_SGP_URI) $(SOURCESDIR)/gccsdk/
-       svn export $(UPSTREAM_GCCSDK_ROINSTALL_URI) $(SOURCESDIR)/gccsdk/
-       svn export $(UPSTREAM_GCCSDK_AMP_URI) $(SOURCESDIR)/gccsdk/automake
-       svn export $(UPSTREAM_GCCSDK_UNIXLIB_URI) 
$(SOURCESDIR)/gccsdk/libunixlib
-       svn export $(UPSTREAM_GCCSDK_LD_URI) $(SOURCESDIR)/gccsdk/ld
-       svn export $(UPSTREAM_GCCSDK_ASASM_URI) $(SOURCESDIR)/gccsdk/asasm
-       svn export $(UPSTREAM_GCCSDK_ELF2AIF_URI) $(SOURCESDIR)/gccsdk/elf2aif
-       svn export $(UPSTREAM_GCCSDK_LN_URI) $(SOURCESDIR)/gccsdk/ln
-       svn export $(UPSTREAM_GCCSDK_MKRESFS_URI) $(SOURCESDIR)/gccsdk/mkresfs
-       tar -C $(SOURCESDIR) -caf $@ gccsdk
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL):
-       svn co $(UPSTREAM_OSLIB_URI) $(SOURCESDIR)/oslib
-       tar -C $(SOURCESDIR) -caf $@ oslib
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_CCRES_TARBALL):
-       svn co $(UPSTREAM_CCRES_URI) $(SOURCESDIR)/ccres
-       tar -C $(SOURCESDIR) -caf $@ ccres
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_MAKERUN_TARBALL):
-       $(RM) -rf $(SOURCESDIR)/makerun
-       git clone $(UPSTREAM_MAKERUN_URI) $(SOURCESDIR)/makerun
-       tar -C $(SOURCESDIR) -caf $@ makerun
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_SQUEEZE_TARBALL):
-       $(RM) -rf $(SOURCESDIR)/squeeze
-       git clone $(UPSTREAM_SQUEEZE_URI) $(SOURCESDIR)/squeeze
-       tar -C $(SOURCESDIR) -caf $@ squeeze
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL):
-       $(FETCHSRC) arm-unknown-riscos $(subst $(SOURCESDIR)/,,$@) 
$(UPSTREAM_INFOZIP_URI) $@
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 ###
 # Rule to create directories for building
@@ -202,3 +186,73 @@ $(BUILDSTEPS):
 
 $(SOURCESDIR):
        mkdir -p $@
+
+###
+# Rules to build source archives (via source-archives target)
+###
+
+UPSTREAM_GCCSDK_URI := 
svn://svn.riscos.info/gccsdk/trunk/autobuilder/develop/gcc@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_SGP_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/setup-gccsdk-params@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_ROINSTALL_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/porting-scripts/ro-install@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_AMP_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/recipe/patches/automake-for-binutils@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_UNIXLIB_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/recipe/files/gcc/libunixlib@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_LD_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/soloader/dynamic/ld.so-1.9.9@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_ASASM_URI := 
svn://svn.riscos.info/gccsdk/trunk/tools/asasm@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_ELF2AIF_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/elf2aif@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_LN_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/ln@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_MKRESFS_URI := 
svn://svn.riscos.info/gccsdk/trunk/gcc4/riscos/mkresfs@$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_OSLIB_URI := 
https://downloads.sourceforge.net/ro-oslib/OSLib-src-$(UPSTREAM_OSLIB_VERSION).zip
+UPSTREAM_CCRES_URI := 
svn://svn.riscos.info/ccres/trunk@$(UPSTREAM_CCRES_VERSION)
+UPSTREAM_MAKERUN_URI := git://git.netsurf-browser.org/makerun.git
+UPSTREAM_SQUEEZE_URI := git://git.netsurf-browser.org/squeeze.git
+UPSTREAM_INFOZIP_URI := 
https://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz
+
+$(BUILDSTEPS)/sources.d: $(BUILDSTEPS)/buildsteps.d 
$(BUILDDIR)/$(UPSTREAM_GCCSDK_TARBALL) $(BUILDDIR)/$(UPSTREAM_OSLIB_TARBALL) 
$(BUILDDIR)/$(UPSTREAM_CCRES_TARBALL) $(BUILDDIR)/$(UPSTREAM_MAKERUN_TARBALL) 
$(BUILDDIR)/$(UPSTREAM_SQUEEZE_TARBALL) $(BUILDDIR)/$(UPSTREAM_INFOZIP_TARBALL)
+       touch $@
+
+$(BUILDDIR)/$(UPSTREAM_GCCSDK_TARBALL):
+       rm -rf $(BUILDDIR)/sources/gccsdk
+       mkdir -p $(BUILDDIR)/sources/gccsdk
+       svn export $(UPSTREAM_GCCSDK_URI) $(BUILDDIR)/sources/gccsdk/gcc
+       svn export $(UPSTREAM_GCCSDK_SGP_URI) $(BUILDDIR)/sources/gccsdk/
+       svn export $(UPSTREAM_GCCSDK_ROINSTALL_URI) $(BUILDDIR)/sources/gccsdk/
+       svn export $(UPSTREAM_GCCSDK_AMP_URI) 
$(BUILDDIR)/sources/gccsdk/automake
+       svn export $(UPSTREAM_GCCSDK_UNIXLIB_URI) 
$(BUILDDIR)/sources/gccsdk/libunixlib
+       svn export $(UPSTREAM_GCCSDK_LD_URI) $(BUILDDIR)/sources/gccsdk/ld
+       svn export $(UPSTREAM_GCCSDK_ASASM_URI) $(BUILDDIR)/sources/gccsdk/asasm
+       svn export $(UPSTREAM_GCCSDK_ELF2AIF_URI) 
$(BUILDDIR)/sources/gccsdk/elf2aif
+       svn export $(UPSTREAM_GCCSDK_LN_URI) $(BUILDDIR)/sources/gccsdk/ln
+       svn export $(UPSTREAM_GCCSDK_MKRESFS_URI) 
$(BUILDDIR)/sources/gccsdk/mkresfs
+       tar -C $(BUILDDIR)/sources -caf $@ gccsdk
+
+$(BUILDDIR)/$(UPSTREAM_OSLIB_TARBALL):
+       $(RM) -rf $(BUILDDIR)/sources/oslib
+       mkdir -p $(BUILDDIR)/sources/oslib
+       wget -q -O 
$(BUILDDIR)/sources/oslib/oslib-$(UPSTREAM_OSLIB_VERSION).zip 
$(UPSTREAM_OSLIB_URI)
+       mkdir -p $(BUILDDIR)/sources/oslib/tmp
+       @# Unzip, converting RISC OS filetypes into ,xxx suffixes
+       unzip -F -d $(BUILDDIR)/sources/oslib/tmp 
$(BUILDDIR)/sources/oslib/oslib-$(UPSTREAM_OSLIB_VERSION).zip
+       @# Strip any ,fff suffixes
+       for f in $$(find $(BUILDDIR)/sources/oslib/tmp -type f -a -name 
'*,fff'); do mv $$f $${f%%,fff}; done
+       @# Repack the zipfile now it has unix filenames
+       cd $(BUILDDIR)/sources/oslib/tmp && zip -9r 
$(BUILDDIR)/sources/oslib/repacked-oslib-$(UPSTREAM_OSLIB_VERSION).zip .
+       @# Convert the repacked zip file into the required tarball
+       $(REPACK) 
$(BUILDDIR)/sources/oslib/repacked-oslib-$(UPSTREAM_OSLIB_VERSION).zip $@
+
+$(BUILDDIR)/$(UPSTREAM_CCRES_TARBALL):
+       $(RM) -rf $(BUILDDIR)/sources/ccres
+       svn export $(UPSTREAM_CCRES_URI) $(BUILDDIR)/sources/ccres
+       tar -C $(BUILDDIR)/sources -caf $@ ccres
+
+$(BUILDDIR)/$(UPSTREAM_MAKERUN_TARBALL):
+       $(RM) -rf $(BUILDDIR)/sources/makerun
+       git clone --depth=1 $(UPSTREAM_MAKERUN_URI) $(BUILDDIR)/sources/makerun
+       tar -C $(BUILDDIR)/sources --exclude-vcs -caf $@ makerun
+
+$(BUILDDIR)/$(UPSTREAM_SQUEEZE_TARBALL):
+       $(RM) -rf $(BUILDDIR)/sources/squeeze
+       git clone --depth=1 $(UPSTREAM_SQUEEZE_URI) $(BUILDDIR)/sources/squeeze
+       tar -C $(BUILDDIR)/sources --exclude-vcs -caf $@ squeeze
+
+$(BUILDDIR)/$(UPSTREAM_INFOZIP_TARBALL):
+       wget -q -O $@ $(UPSTREAM_INFOZIP_URI)
diff --git a/arm-riscos-gnueabi/fetchsrc b/arm-riscos-gnueabi/fetchsrc
deleted file mode 100755
index 92ae5bfe2b..0000000000
--- a/arm-riscos-gnueabi/fetchsrc
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-# script to fetch toolchain source tar using ci.netsurf-browser.org as a cache
-
-# Usage fetchsrc <target> <source> <upstream> <output>
-
-NSSRV="https://ci.netsurf-browser.org/toolchain/";
-
-wget -q -O ${4} ${NSSRV}/${1}/${2}
-if [ $? -ne 0 ];then
-    wget -q -O ${4} ${3}
-    if [ $? -ne 0 ];then
-        rm ${4}
-       exit 1
-    fi
-fi
diff --git a/arm-unknown-riscos/Makefile b/arm-unknown-riscos/Makefile
index b1d9f636bc..7a626ed458 100644
--- a/arm-unknown-riscos/Makefile
+++ b/arm-unknown-riscos/Makefile
@@ -1,35 +1,43 @@
 # NetSurf build script for RISCOS cross compilation toolchain.
 
-# Use a tested trunk version of GCCSDK
+# Use a tested release version of GCCSDK
 UPSTREAM_GCCSDK_VERSION := release_4_7_4_v6
-UPSTREAM_GCCSDK_TARBALL := gcc4$(UPSTREAM_GCCSDK_VERSION).tar.gz
-UPSTREAM_GCCSDK_URI := 
svn://svn.riscos.info/gccsdk/tags/$(UPSTREAM_GCCSDK_VERSION)
+UPSTREAM_GCCSDK_TARBALL := gccsdk_$(UPSTREAM_GCCSDK_VERSION).tar.gz
+
+# Constituent upstream source archives for GCCSDK
+GCCSDK_UPSTREAM_SOURCES := \
+       autoconf_2.64.tar.bz2 \
+       automake_1.11.1.tar.bz2 \
+       cloog-ppl_0.15.11.tar.gz \
+       binutils_2.24.tar.bz2 \
+       gcc_4.7.4.tar.bz2 \
+       gmp_5.0.1.tar.bz2 \
+       libtool_2.4.2.tar.gz \
+       mpc_1.1.0.tar.gz \
+       mpfr_3.0.1.tar.bz2 \
+       ppl_1.2.tar.xz
 
 # OSLib 7.00
-UPSTREAM_OSLIB_VERSION := 700
-UPSTREAM_OSLIB_TARBALL := oslib$(UPSTREAM_OSLIB_VERSION).tar.gz
-UPSTREAM_OSLIB_URI := 
https://svn.code.sf.net/p/ro-oslib/code/tags/oslib-$(UPSTREAM_OSLIB_VERSION)/!OSLib
+UPSTREAM_OSLIB_VERSION := 7.00
+UPSTREAM_OSLIB_TARBALL := oslib_$(UPSTREAM_OSLIB_VERSION).tar.gz
 
 # Known tested version of trunk for CCRes
 UPSTREAM_CCRES_VERSION := 96
-UPSTREAM_CCRES_TARBALL := ccres$(UPSTREAM_CCRES_VERSION).tar.gz
-UPSTREAM_CCRES_URI := 
svn://svn.riscos.info/ccres/trunk@$(UPSTREAM_CCRES_VERSION)
+UPSTREAM_CCRES_TARBALL := ccres_svn.trunk.$(UPSTREAM_CCRES_VERSION).tar.gz
 
 # Makerun
 UPSTREAM_MAKERUN_VERSION := fe55b6bf
-UPSTREAM_MAKERUN_TARBALL := makerun$(UPSTREAM_MAKERUN_VERSION).tar.gz
-UPSTREAM_MAKERUN_URI := git://git.netsurf-browser.org/makerun.git
+UPSTREAM_MAKERUN_TARBALL := makerun_git.$(UPSTREAM_MAKERUN_VERSION).tar.gz
 
 # Squeeze
-UPSTREAM_SQUEEZE_VERSION := f26ccd6
-UPSTREAM_SQUEEZE_TARBALL := squeeze$(UPSTREAM_SQUEEZE_VERSION).tar.gz
-UPSTREAM_SQUEEZE_URI := git://git.netsurf-browser.org/squeeze.git
+UPSTREAM_SQUEEZE_VERSION := d54d441
+UPSTREAM_SQUEEZE_TARBALL := squeeze_git.$(UPSTREAM_SQUEEZE_VERSION).tar.gz
 
 # Infozip
-UPSTREAM_INFOZIP_VERSION := 30
+UPSTREAM_INFOZIP_VERSION := 3.0
 UPSTREAM_INFOZIP_TARBALL := zip$(UPSTREAM_INFOZIP_VERSION).tar.gz
-UPSTREAM_INFOZIP_URI := 
https://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/$(UPSTREAM_INFOZIP_TARBALL)
 
+Q ?= @
 TOP := $(CURDIR)
 RECIPES := $(TOP)/recipes
 SOURCESDIR := $(TOP)/sources
@@ -41,11 +49,14 @@ TARGET_NAME := arm-unknown-riscos
 PREFIX ?= /opt/netsurf/$(TARGET_NAME)
 
 # tools
-FETCHSRC:=$(CURDIR)/fetchsrc
+PRISTINE_TAR := $(TOP)/../tools/pristine-tar
+REPACK := $(TOP)/../tools/repack
 
-.PHONY: all clean distclean
+.PHONY: all clean distclean source-archives
 all: $(BUILDSTEPS)/toolchain.d
 
+source-archives: $(BUILDSTEPS)/sources.d
+
 clean:
        rm -fr $(BUILDDIR)
 
@@ -65,9 +76,9 @@ $(BUILDSTEPS)/toolchain.d: $(BUILDSTEPS)/ccres.d 
$(BUILDSTEPS)/makerun.d $(BUILD
 
 $(BUILDSTEPS)/infozip.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL)
-       for p in `ls $(RECIPES)/patches/infozip/*.p` ; do patch -d 
$(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION) -p0 <$$p ; done
-       cd $(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION) && make -f unix/Makefile 
generic LOCAL_ZIP=-DFORRISCOS
-       cp $(BUILDDIR)/zip$(UPSTREAM_INFOZIP_VERSION)/zip 
$(PREFIX)/cross/bin/zip
+       for p in `ls $(RECIPES)/patches/infozip/*.p` ; do patch -d 
$(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION)) -p0 <$$p ; done
+       cd $(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION)) && make -f 
unix/Makefile generic LOCAL_ZIP=-DFORRISCOS
+       cp $(BUILDDIR)/zip$(subst .,,$(UPSTREAM_INFOZIP_VERSION))/zip 
$(PREFIX)/cross/bin/zip
        @# Yuck. Build host tooling should not be installed into the target 
environment
        mkdir -p $(PREFIX)/env/bin
        ln -fs $(PREFIX)/cross/bin/zip $(PREFIX)/env/bin/zip
@@ -107,8 +118,8 @@ $(BUILDSTEPS)/ccres.d: $(BUILDSTEPS)/oslib.d 
$(SOURCESDIR)/$(UPSTREAM_CCRES_TARB
 
 $(BUILDSTEPS)/oslib.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL)
-       for p in `ls $(RECIPES)/patches/oslib/*.p` ; do patch -d 
$(BUILDDIR)/oslib -p0 <$$p ; done
-       cd $(BUILDDIR)/oslib && GCCSDK_INSTALL_ENV=$(PREFIX)/env 
GCCSDK_INSTALL_CROSSBIN=$(PREFIX)/cross/bin make install
+       for p in `ls $(RECIPES)/patches/oslib/*.p` ; do patch -d 
$(BUILDDIR)/oslib-$(UPSTREAM_OSLIB_VERSION) -p0 <$$p ; done
+       cd $(BUILDDIR)/oslib-$(UPSTREAM_OSLIB_VERSION) && 
GCCSDK_INSTALL_ENV=$(PREFIX)/env GCCSDK_INSTALL_CROSSBIN=$(PREFIX)/cross/bin 
make install
        touch $@
 
 ###
@@ -116,8 +127,8 @@ $(BUILDSTEPS)/oslib.d: $(BUILDSTEPS)/gcc.d 
$(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBAL
 ###
 
 $(BUILDSTEPS)/gcc.d: $(BUILDSTEPS)/gccsdk-srcdir.d
-       cd $(BUILDDIR)/gcc4/gcc4 && make
-       cd $(BUILDDIR)/gcc4/gcc4 && ./install-env
+       cd $(BUILDDIR)/gccsdk/gcc4 && make
+       cd $(BUILDDIR)/gccsdk/gcc4 && ./install-env
        @# Newer GCCSDK adds these trampoline binaries that for us
        @# serve no purpose and get in the way.
        $(RM) $(PREFIX)/cross/bin/arm-unknown-riscos-gcc-ar 
$(PREFIX)/cross/bin/arm-unknown-riscos-gcc-nm 
$(PREFIX)/cross/bin/arm-unknown-riscos-gcc-ranlib
@@ -125,9 +136,11 @@ $(BUILDSTEPS)/gcc.d: $(BUILDSTEPS)/gccsdk-srcdir.d
 
 $(BUILDSTEPS)/gccsdk-srcdir.d: $(BUILDSTEPS)/buildsteps.d 
$(SOURCESDIR)/$(UPSTREAM_GCCSDK_TARBALL)
        tar -C $(BUILDDIR) -xaf $(SOURCESDIR)/$(UPSTREAM_GCCSDK_TARBALL)
-       cp -p $(RECIPES)/files/gcc4/gccsdk-params 
$(BUILDDIR)/gcc4/gcc4/gccsdk-params
-       sed -i 's#{PREFIX}#$(PREFIX)#' $(BUILDDIR)/gcc4/gcc4/gccsdk-params
-       for p in `ls $(RECIPES)/patches/gcc4/*.p` ; do patch -d 
$(BUILDDIR)/gcc4 -p0 <$$p ; done
+       cp -p $(RECIPES)/files/gcc4/gccsdk-params 
$(BUILDDIR)/gccsdk/gcc4/gccsdk-params
+       sed -i 's#{PREFIX}#$(PREFIX)#' $(BUILDDIR)/gccsdk/gcc4/gccsdk-params
+       for p in `ls $(RECIPES)/patches/gcc4/*.p` ; do patch -d 
$(BUILDDIR)/gccsdk -p0 <$$p ; done
+       mkdir -p $(BUILDDIR)/gccsdk/gcc4/srcdir.orig
+       $(foreach src,$(GCCSDK_UPSTREAM_SOURCES),cd $(TOP)/.. && 
$(PRISTINE_TAR) checkout $(src) && mv $(TOP)/../$(src) 
$(BUILDDIR)/gccsdk/gcc4/srcdir.orig/$(subst _,-,$(src)) &&) :
        touch $@
 
 ###
@@ -135,29 +148,24 @@ $(BUILDSTEPS)/gccsdk-srcdir.d: $(BUILDSTEPS)/buildsteps.d 
$(SOURCESDIR)/$(UPSTRE
 ###
 
 $(SOURCESDIR)/$(UPSTREAM_GCCSDK_TARBALL):
-       svn co $(UPSTREAM_GCCSDK_URI) $(SOURCESDIR)/gcc4
-       tar -C $(SOURCESDIR) -caf $@ gcc4
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_OSLIB_TARBALL):
-       svn co $(UPSTREAM_OSLIB_URI) $(SOURCESDIR)/oslib
-       tar -C $(SOURCESDIR) -caf $@ oslib
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_CCRES_TARBALL):
-       svn co $(UPSTREAM_CCRES_URI) $(SOURCESDIR)/ccres
-       tar -C $(SOURCESDIR) -caf $@ ccres
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 $(SOURCESDIR)/$(UPSTREAM_MAKERUN_TARBALL):
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
        $(RM) -rf $(SOURCESDIR)/makerun
-       git clone $(UPSTREAM_MAKERUN_URI) $(SOURCESDIR)/makerun
-       tar -C $(SOURCESDIR) -caf $@ makerun
 
 $(SOURCESDIR)/$(UPSTREAM_SQUEEZE_TARBALL):
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
        $(RM) -rf $(SOURCESDIR)/squeeze
-       git clone $(UPSTREAM_SQUEEZE_URI) $(SOURCESDIR)/squeeze
-       tar -C $(SOURCESDIR) -caf $@ squeeze
 
 $(SOURCESDIR)/$(UPSTREAM_INFOZIP_TARBALL):
-       $(FETCHSRC) arm-unknown-riscos $(subst $(SOURCESDIR)/,,$@) 
$(UPSTREAM_INFOZIP_URI) $@
+       cd $(TOP)/.. && $(PRISTINE_TAR) checkout $(subst $(SOURCESDIR)/,,$@) && 
mv $(TOP)/../$(subst $(SOURCESDIR)/,,$@) $@
 
 ###
 # Rule to create directories for building
@@ -171,3 +179,19 @@ $(BUILDSTEPS):
 
 $(SOURCESDIR):
        mkdir -p $@
+
+###
+# Rules to build source archives (via source-archives target)
+#
+# NB: OSLib/ccres/makerun/squeeze/zip: use arm-riscos-gnueabi Makefile
+###
+
+UPSTREAM_GCCSDK_URI := 
svn://svn.riscos.info/gccsdk/tags/$(UPSTREAM_GCCSDK_VERSION)
+
+$(BUILDSTEPS)/sources.d: $(BUILDSTEPS)/buildsteps.d 
$(BUILDDIR)/$(UPSTREAM_GCCSDK_TARBALL)
+       touch $@
+
+$(BUILDDIR)/$(UPSTREAM_GCCSDK_TARBALL):
+       rm -rf $(BUILDDIR)/sources/gccsdk
+       svn export $(UPSTREAM_GCCSDK_URI) $(BUILDDIR)/sources/gccsdk/
+       tar -C $(BUILDDIR)/sources -caf $@ gccsdk
diff --git a/arm-unknown-riscos/fetchsrc b/arm-unknown-riscos/fetchsrc
deleted file mode 100755
index 92ae5bfe2b..0000000000
--- a/arm-unknown-riscos/fetchsrc
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-# script to fetch toolchain source tar using ci.netsurf-browser.org as a cache
-
-# Usage fetchsrc <target> <source> <upstream> <output>
-
-NSSRV="https://ci.netsurf-browser.org/toolchain/";
-
-wget -q -O ${4} ${NSSRV}/${1}/${2}
-if [ $? -ne 0 ];then
-    wget -q -O ${4} ${3}
-    if [ $? -ne 0 ];then
-        rm ${4}
-       exit 1
-    fi
-fi


-- 
Cross-compilation toolchains and environments


Reply via email to