]> pd.if.org Git - pdclib/blobdiff - Jamrules
Enable building PDCLib with Watcom. This was surprisingly painless: their C99 mode...
[pdclib] / Jamrules
index dd0e406826211b951d4977c6644e47a43d345a90..bc9ac17bc94a815375a0eae1d20e3355088e7de7 100644 (file)
--- a/Jamrules
+++ b/Jamrules
@@ -8,16 +8,29 @@ if ! $(PDCLIB_HAVE_PLATFORM) && ! $(PDCLIB_PLATFORM) {
     } 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
@@ -49,7 +62,18 @@ if ! $(PDCLIB_HAVE_PLATFORM) && ! $(PDCLIB_PLATFORM) {
     {\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 ;\r
+  C++FLAGS = /zq /DWIN32 ;\r
+  STDHDRS  = $(WATCOM)\\h\\nt ;\r
+\r
+  PDCLIB_CCFLAGS = "-za99 -zl" ;\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