} else if $(UNIX) {\r
PDCLIB_PLATFORM = "posix" ;\r
} else {\r
- ECHO "PDCLIB_PLATFORM not set and platform not automatically detected" ;\r
- ECHO "Set PDCLIB_PLATFORM to the platform to be built for" ;\r
+ ECHO PDCLIB_PLATFORM not set and platform not automatically detected ;\r
+ ECHO Set PDCLIB_PLATFORM to the platform to be built for ;\r
EXIT ;\r
}\r
PDCLIB_HAVE_PLATFORM = 1 ;\r
}\r
\r
-#if $(CC) = "gcc" {\r
-# TODO: Better toolchain handling\r
+if $(PDCLIB_TOOLCHAIN) = "" {\r
+ local __ccparts = [ SPLIT $(CC) : "-" ] ;\r
+ if $(JAM_TOOLSET) = "MINGW" || "gcc" in $(__ccparts) \r
+ || "clang" in $(__ccparts) {\r
+ # GCC / GCC-alike\r
+ PDCLIB_TOOLCHAIN = "gcc" ;\r
+ } else if $(JAM_TOOLSET) != "" {\r
+ PDCLIB_TOOLCHAIN = $(JAM_TOOLSET) ;\r
+ } else {\r
+ ECHO PDCLIB_TOOLCHAIN is unset and I can't glean what toolset is being ;\r
+ ECHO used from your environment. Please set it. ;\r
+ EXIT ;\r
+ }\r
+}\r
\r
+if $(PDCLIB_TOOLCHAIN) = "gcc" {\r
# No -Wcast-align : spurious warnings when using char* to do pointer \r
# arithmetic\r
# No -Winline : when compiling with e.g. -Os causes spurious \r
{\r
$(LINK) $(LINKFLAGS) -o $(<) $(UNDEFS) $(>) -Wl,--start-group $(NEEDLIBS) $(LINKLIBS) -Wl,--end-group\r
}\r
-#}\r
+} else if $(PDCLIB_TOOLCHAIN) = "WATCOM" {\r
+ ECHO "Watcom!" ;\r
+ CCFLAGS = /zq /DWIN32 /zls ;\r
+ C++FLAGS = /zq /DWIN32 /zls ;\r
+ STDHDRS = $(WATCOM)\\h\\nt ;\r
+ PDCLIB_CCFLAGS = "-za99 -zl -s" ;\r
+} else {\r
+ ECHO The value of PDCLIB_TOOLCHAIN is not recognized ;\r
+ ECHO Currently set to $(PDCLIB_TOOLCHAIN) ;\r
+ EXIT ;\r
+}\r
\r
if $(PDCLIB_PLATFORM) {\r
include [ FDirName $(PDCLIB_TOP) platform $(PDCLIB_PLATFORM) Config.jam ] ;\r