X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=Jamrules;h=31da387863f55f15c4c76eaebbd2aa16329a8629;hb=e2bf85ca9d5999d4d6154ddb9fe161438db44cef;hp=8657cc9ca0fb0dc16899c7030b36f80fa2997b8b;hpb=f7a440b9c7bb0c686dc2368c4ff53b20bf6371f8;p=pdclib.old diff --git a/Jamrules b/Jamrules index 8657cc9..31da387 100644 --- a/Jamrules +++ b/Jamrules @@ -8,16 +8,29 @@ if ! $(PDCLIB_HAVE_PLATFORM) && ! $(PDCLIB_PLATFORM) { } else if $(UNIX) { PDCLIB_PLATFORM = "posix" ; } else { - ECHO "PDCLIB_PLATFORM not set and platform not automatically detected" ; - ECHO "Set PDCLIB_PLATFORM to the platform to be built for" ; + ECHO PDCLIB_PLATFORM not set and platform not automatically detected ; + ECHO Set PDCLIB_PLATFORM to the platform to be built for ; EXIT ; } PDCLIB_HAVE_PLATFORM = 1 ; } -#if $(CC) = "gcc" { -# TODO: Better toolchain handling +if $(PDCLIB_TOOLCHAIN) = "" { + local __ccparts = [ SPLIT $(CC) : "-" ] ; + if $(JAM_TOOLSET) = "MINGW" || "gcc" in $(__ccparts) + || "clang" in $(__ccparts) { + # GCC / GCC-alike + PDCLIB_TOOLCHAIN = "gcc" ; + } else if $(JAM_TOOLSET) != "" { + PDCLIB_TOOLCHAIN = $(JAM_TOOLSET) ; + } else { + ECHO PDCLIB_TOOLCHAIN is unset and I can't glean what toolset is being ; + ECHO used from your environment. Please set it. ; + EXIT ; + } +} +if $(PDCLIB_TOOLCHAIN) = "gcc" { # No -Wcast-align : spurious warnings when using char* to do pointer # arithmetic # No -Winline : when compiling with e.g. -Os causes spurious @@ -32,14 +45,14 @@ if ! $(PDCLIB_HAVE_PLATFORM) && ! $(PDCLIB_PLATFORM) { -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes ; PDCLIB_CCFLAGS = -ffreestanding - -nostdinc + #-nostdinc -std=c11 -g -D_PDCLIB_BUILD $(PDCLIB_WARNINGS) ; PDCLIB_C++FLAGS = -ffreestanding - -nostdinc + #-nostdinc -std=c++11 -g -D_PDCLIB_BUILD @@ -49,7 +62,17 @@ if ! $(PDCLIB_HAVE_PLATFORM) && ! $(PDCLIB_PLATFORM) { { $(LINK) $(LINKFLAGS) -o $(<) $(UNDEFS) $(>) -Wl,--start-group $(NEEDLIBS) $(LINKLIBS) -Wl,--end-group } -#} +} else if $(PDCLIB_TOOLCHAIN) = "WATCOM" { + ECHO "Watcom!" ; + CCFLAGS = /zq /DWIN32 /zls ; + C++FLAGS = /zq /DWIN32 /zls ; + STDHDRS = $(WATCOM)\\h\\nt ; + PDCLIB_CCFLAGS = "-za99 -zl -s" ; +} else { + ECHO The value of PDCLIB_TOOLCHAIN is not recognized ; + ECHO Currently set to $(PDCLIB_TOOLCHAIN) ; + EXIT ; +} if $(PDCLIB_PLATFORM) { include [ FDirName $(PDCLIB_TOP) platform $(PDCLIB_PLATFORM) Config.jam ] ;