diff --git a/CMakeLists.txt b/CMakeLists.txt
index 23616c2db2d4a9e732082f04333cf3488574bc29..05a3cd59b38e669609a7b9010045a468059620fa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -186,6 +186,7 @@ project(px4 CXX C ASM)
 if (NOT ${CMAKE_VERSION} VERSION_LESS 3.0.0)
 	cmake_policy(SET CMP0045 NEW) # error on non-existent target in get prop
 	cmake_policy(SET CMP0046 NEW) # no non-existent targets as dependencies
+	cmake_policy(SET CMP0025 OLD) # still report AppleClang as Clang
 endif()
 if (NOT ${CMAKE_VERSION} VERSION_LESS 3.1.0)
 	cmake_policy(SET CMP0054 NEW) # don't dereference quoted variables
diff --git a/Makefile b/Makefile
index 3a0155bd64616c75b7f585b0cf1e43de5ab0b88a..e67c21e1af9a4298f3e022f04f961da848962277 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,19 @@
 # We depend on our submodules, so we have to prevent attempts to
 # compile without it being present.
 ifeq ($(wildcard .git),)
-	$(error YOU HAVE TO USE GIT TO DOWNLOAD THIS REPOSITORY. ABORTING.)
+    $(error YOU HAVE TO USE GIT TO DOWNLOAD THIS REPOSITORY. ABORTING.)
+endif
+
+CMAKE_VER := $(shell Tools/check_cmake.sh; echo $$?)
+ifneq ($(CMAKE_VER),0)
+    $(warning Not a valid CMake version or CMake not installed.)
+    $(warning On Ubuntu, install or upgrade via:)
+    $(warning )
+    $(warning sudo add-apt-repository ppa:george-edison55/cmake-3.x -y)
+    $(warning sudo apt-get update)
+    $(warning sudo apt-get install cmake)
+    $(warning )
+    $(error Fatal)
 endif
 
 # Help
diff --git a/Tools/check_cmake.sh b/Tools/check_cmake.sh
new file mode 100755
index 0000000000000000000000000000000000000000..423b790dbd0252f05b98d475b210fce9e05ca64a
--- /dev/null
+++ b/Tools/check_cmake.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+cmake_ver=`cmake --version`
+
+if [[ $cmake_ver == "" ]]
+then
+  exit 1;
+fi
+
+if [[ $cmake_ver == *"2.8"* ]] || [[ $cmake_ver == *"2.9"* ]] || [[ $cmake_ver == *"3.0"* ]] || [[ $cmake_ver == *"3.1"* ]]
+then
+  exit 1;
+fi
+
+exit 0;