Check BinUtils and GCC version.
authorFilip Navara <filip.navara@gmail.com>
Fri, 11 Mar 2005 17:33:12 +0000 (17:33 +0000)
committerFilip Navara <filip.navara@gmail.com>
Fri, 11 Mar 2005 17:33:12 +0000 (17:33 +0000)
svn path=/trunk/; revision=13932

reactos/tools/Makefile
reactos/tools/tools-check.c [new file with mode: 0644]
reactos/tools/tools-check.mak [new file with mode: 0644]

index 92b921a..1ccc88d 100644 (file)
@@ -18,12 +18,15 @@ TOOLS = \
 
 LIBS = lib_unicode lib_wpp
 
-CLEAN_FILES = $(TOOLS)
+CLEAN_FILES = $(TOOLS) tools-check.tmp tools-check.h
 
-all: $(TOOLS) $(LIBS) zlib_target wmc_target cabman_target cdmake_target mkhive_target rgenstat_target \
+all: $(TOOLS) tools_check $(LIBS) zlib_target wmc_target cabman_target cdmake_target mkhive_target rgenstat_target \
        wine2ros_target pipetools_target winebuild_target bin2res_target wrc_target widl_target \
        buildno_target
 
+tools_check:
+       $(MAKE) -f tools-check.mak
+
 regtests$(EXE_POSTFIX): regtests.c
        @$(HOST_CC) $(CFLAGS) -o regtests$(EXE_POSTFIX) regtests.c
 
diff --git a/reactos/tools/tools-check.c b/reactos/tools/tools-check.c
new file mode 100644 (file)
index 0000000..8b6cf7d
--- /dev/null
@@ -0,0 +1,32 @@
+#include "tools-check.h"\r
+\r
+/*\r
+ * - Binutils older than 2003/10/01 have broken windres which can't handle\r
+ *   icons with alpha channel.\r
+ * - Binutils between 2004/09/02 and 2004/10/08 have broken handling of\r
+ *   forward exports in dlltool.\r
+ */\r
+\r
+#if (BINUTILS_VERSION_DATE >= 20040902 && BINUTILS_VERSION_DATE <= 20041008) || \\r
+    (BINUTILS_VERSION_DATE < 20031001)\r
+#error Due to technical reasons your binutils version can't be used to \\r
+       build ReactOS. Please consider upgrading to newer version. See \\r
+       www.mingw.org for details.)\r
+#endif\r
+\r
+/*\r
+ * GCC 3.3.1 is lowest allowed version. Older versions have various problems\r
+ * with C++ code.\r
+ */\r
+\r
+#if (__GNUC__ == 3 && __GNUC_MINOR__ < 3) || \\r
+    (__GNUC__ < 3)\r
+#error Due to technical reasons your GCC version can't be used to \\r
+       build ReactOS. Please consider upgrading to newer version. See \\r
+       www.mingw.org for details.)\r
+#endif\r
+\r
+/*\r
+ * FIXME: GCC 3.4.1 has broken headers which cause Explorer to not build.\r
+ * We should warn in this case...maybe add check for the broken headers?\r
+ */\r
diff --git a/reactos/tools/tools-check.mak b/reactos/tools/tools-check.mak
new file mode 100644 (file)
index 0000000..07e0543
--- /dev/null
@@ -0,0 +1,18 @@
+PATH_TO_TOP = ..\r
+include $(PATH_TO_TOP)/rules.mak\r
+\r
+#\r
+# Get the binutils version\r
+#\r
+# The "ld -v" output can be in either of these two formats:\r
+#    "GNU ld version 050113 20050113" (nightly build)\r
+#    "GNU ld version 2.15.94 20050118" (official release)\r
+#    \r
+\r
+BINUTILS_VERSION_DATE=$(word 5,$(shell $(PREFIX)ld -v))\r
+\r
+all: \r
+       @echo #define BINUTILS_VERSION_DATE $(BINUTILS_VERSION_DATE) > tools-check.h\r
+       $(HOST_CC) -c tools-check.c -o tools-check.temp\r
+       $(RM) tools-check.temp\r
+       $(RM) tools-check.h\r