Update cross compilation script
diff --git a/.travis.yml b/.travis.yml
index 9e387ae..e98e80e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,31 +4,72 @@
 
 cache:
   directories:
-    - $HOME/qemu
-    - $HOME/toolchains
+    - $HOME/archives
 
 matrix:
   include:
   - os: linux
     compiler: gcc
+    env:
+      TOOLCHAIN=NATIVE
+      TARGET=native
   - os: linux
     compiler: clang
+    env:
+      TOOLCHAIN=NATIVE
+      TARGET=native
   - os: osx
     compiler: gcc
+    env:
+      TOOLCHAIN=NATIVE
+      TARGET=native
   - os: osx
     compiler: clang
+    env:
+      TOOLCHAIN=NATIVE
+      TARGET=native
+  # Toolchains for little-endian, 64-bit ARMv8 for GNU/Linux systems
   - os: linux
     env:
-      LINARO_URL=https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabihf/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
-      TARGET=arm-linux-gnueabihf
-      QEMU_ARCHES=arm
-      QEMU_ARCH=arm
-  - os: linux
-    env:
-      LINARO_URL=https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
+      TOOLCHAIN=LINARO
       TARGET=aarch64-linux-gnu
-      QEMU_ARCHES=aarch64
       QEMU_ARCH=aarch64
+  # Toolchains for little-endian, hard-float, 32-bit ARMv7 (and earlier) for GNU/Linux systems
+  - os: linux
+    env:
+      TOOLCHAIN=LINARO
+      TARGET=arm-linux-gnueabihf
+      QEMU_ARCH=arm
+  # Toolchains for little-endian, 32-bit ARMv8 for GNU/Linux systems
+  - os: linux
+    env:
+      TOOLCHAIN=LINARO
+      TARGET=armv8l-linux-gnueabihf
+      QEMU_ARCH=arm
+  # Toolchains for little-endian, soft-float, 32-bit ARMv7 (and earlier) for GNU/Linux systems
+  - os: linux
+    env:
+      TOOLCHAIN=LINARO
+      TARGET=arm-linux-gnueabi
+      QEMU_ARCH=arm
+  # Toolchains for big-endian, 64-bit ARMv8 for GNU/Linux systems
+  - os: linux
+    env:
+      TOOLCHAIN=LINARO
+      TARGET=aarch64_be-linux-gnu
+      QEMU_ARCH=""
+  # Toolchains for big-endian, hard-float, 32-bit ARMv7 (and earlier) for GNU/Linux systems
+  - os: linux
+    env:
+      TOOLCHAIN=LINARO
+      TARGET=armeb-linux-gnueabihf
+      QEMU_ARCH=""
+  # Toolchains for big-endian, soft-float, 32-bit ARMv7 (and earlier) for GNU/Linux systems
+  - os: linux
+    env:
+      TOOLCHAIN=LINARO
+      TARGET=armeb-linux-gnueabi
+      QEMU_ARCH=""
 
 script:
   - cmake --version