+$(eval $(call TestHostCommand,working-make, \
+ Please install GNU make v3.81 or later. (This version has bugs), \
+ $(MAKE) -v | grep -E 'Make (3\.8[1-9]|3\.9[0-9]|[4-9]\.)'))
+
+$(eval $(call TestHostCommand,case-sensitive-fs, \
+ OpenWrt can only be built on a case-sensitive filesystem, \
+ rm -f $(TMP_DIR)/test.*; touch $(TMP_DIR)/test.fs; \
+ test ! -f $(TMP_DIR)/test.FS))
+
+$(eval $(call TestHostCommand,proper-umask, \
+ Please build with umask 022 - other values produce broken packages, \
+ umask | grep -xE 0?0[012][012]))
+
+$(eval $(call SetupHostCommand,gcc, \
+ Please install the GNU C Compiler (gcc) 4.8 or later, \
+ $(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
+ gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
+ gcc48 --version | grep gcc, \
+ gcc49 --version | grep gcc, \
+ gcc5 --version | grep gcc, \
+ gcc6 --version | grep gcc, \
+ gcc7 --version | grep gcc, \
+ gcc8 --version | grep gcc, \
+ gcc9 --version | grep gcc, \
+ gcc --version | grep Apple.LLVM ))
+
+$(eval $(call TestHostCommand,working-gcc, \
+ \nPlease reinstall the GNU C Compiler (4.8 or later) - \
+ it appears to be broken, \
+ echo 'int main(int argc, char **argv) { return 0; }' | \
+ gcc -x c -o $(TMP_DIR)/a.out -))
+
+$(eval $(call SetupHostCommand,g++, \
+ Please install the GNU C++ Compiler (g++) 4.8 or later, \
+ $(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
+ g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
+ g++48 --version | grep g++, \
+ g++49 --version | grep g++, \
+ g++5 --version | grep g++, \
+ g++6 --version | grep g++, \
+ g++7 --version | grep g++, \
+ g++8 --version | grep g++, \
+ g++9 --version | grep g++, \
+ g++ --version | grep Apple.LLVM ))
+
+$(eval $(call TestHostCommand,working-g++, \
+ \nPlease reinstall the GNU C++ Compiler (4.8 or later) - \
+ it appears to be broken, \
+ echo 'int main(int argc, char **argv) { return 0; }' | \
+ g++ -x c++ -o $(TMP_DIR)/a.out - -lstdc++ && \
+ $(TMP_DIR)/a.out))