} 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
-Wnested-externs -Wstrict-prototypes -Wmissing-prototypes ;\r
PDCLIB_CCFLAGS = \r
-ffreestanding \r
- -nostdinc \r
+ #-nostdinc \r
-std=c11 \r
-g \r
-D_PDCLIB_BUILD\r
$(PDCLIB_WARNINGS) ;\r
PDCLIB_C++FLAGS =\r
-ffreestanding\r
- -nostdinc\r
+ #-nostdinc\r
-std=c++11\r
-g\r
-D_PDCLIB_BUILD\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