]> pd.if.org Git - pdclib.old/commitdiff
win32: most tests now build on Watcom
authorOwen Shepherd <owen.shepherd@e43.eu>
Thu, 16 Aug 2012 17:45:37 +0000 (18:45 +0100)
committerOwen Shepherd <owen.shepherd@e43.eu>
Thu, 16 Aug 2012 17:45:37 +0000 (18:45 +0100)
Jamfile
Jamrules
platform/example/Config.jam
platform/win32/Config.jam
platform/win32/crt0.c

diff --git a/Jamfile b/Jamfile
index bd9305c5e807a2e9d5b4d1b7554a79b699a5f3bf..50e09f808758dd6995c76d81d549e1c186fba75d 100644 (file)
--- a/Jamfile
+++ b/Jamfile
@@ -28,22 +28,23 @@ if ! $(PDCLIB_NO_TEST) {
         regtest     = $(file:S=-regtest) ;\r
 \r
         Object $(testfile).o    : $(file) ;\r
-        Object $(regtestfile).o : $(file) ;\r
         MainFromObjects $(testfile)    : $(testfile).o $(CRT0) ;\r
-        MainFromObjects $(regtestfile) : $(regtestfile).o ;\r
         CCFLAGS on $(testfile).o += -DTEST $(PDCLIB_TEST_CCFLAGS) ;\r
-        CCFLAGS on $(regtestfile).o += -DTEST -DREGTEST \r
-                                       $(PDCLIB_REGTEST_CCFLAGS) ;\r
-        CCHDRS on $(regtestfile).o = [ FIncludes [ FDirName testing ] ] ;\r
-\r
         LINKFLAGS on $(testfile)$(SUFEXE) += $(PDCLIB_TEST_LINKFLAGS) ;\r
-        LINKFLAGS on $(regtestfile)$(SUFEXE) += $(PDCLIB_REGTEST_LINKFLAGS) ;\r
         LINKLIBS on $(testfile)$(SUFEXE) += $(PDCLIB_TEST_LINKLIBS) ;\r
-        LINKLIBS on $(regtestfile)$(SUFEXE) += $(PDCLIB_REGTEST_LINKLIBS) ;\r
         LinkLibraries $(testfile) : $(PDCLIB) ;\r
-\r
         Test    $(test)    : $(testfile) ;\r
-        RegTest $(regtest) : $(regtestfile) ;\r
+\r
+        if ! $(PDCLIB_NO_REGTEST) {\r
+            Object $(regtestfile).o : $(file) ;\r
+            MainFromObjects $(regtestfile) : $(regtestfile).o ;\r
+            CCFLAGS on $(regtestfile).o += -DTEST -DREGTEST \r
+                                    $(PDCLIB_REGTEST_CCFLAGS) ;\r
+            CCHDRS on $(regtestfile).o = [ FIncludes [ FDirName testing ] ] $(PDCLIB_REGTEST_CCHDRS) ;\r
+            LINKFLAGS on $(regtestfile)$(SUFEXE) += $(PDCLIB_REGTEST_LINKFLAGS) ;\r
+            LINKLIBS on $(regtestfile)$(SUFEXE) += $(PDCLIB_REGTEST_LINKLIBS) ;\r
+            RegTest $(regtest) : $(regtestfile) ;\r
+        }\r
     }\r
 }\r
 \r
index bc9ac17bc94a815375a0eae1d20e3355088e7de7..31da387863f55f15c4c76eaebbd2aa16329a8629 100644 (file)
--- a/Jamrules
+++ b/Jamrules
@@ -64,11 +64,10 @@ if $(PDCLIB_TOOLCHAIN) = "gcc" {
     }\r
 } else if $(PDCLIB_TOOLCHAIN) = "WATCOM" {\r
   ECHO "Watcom!" ;\r
-  CCFLAGS  = /zq /DWIN32 ;\r
-  C++FLAGS = /zq /DWIN32 ;\r
+  CCFLAGS  = /zq /DWIN32 /zls ;\r
+  C++FLAGS = /zq /DWIN32 /zls ;\r
   STDHDRS  = $(WATCOM)\\h\\nt ;\r
-\r
-  PDCLIB_CCFLAGS = "-za99 -zl" ;\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
index 7871eb893745328838e659ce174da0b83e43a097..1eda6e8e305826fd084c73dc98789265a76f45c1 100644 (file)
@@ -4,7 +4,9 @@ rule PDCLibTargetHeaders {
     SubDirHdrs $(PDCLIB_TOP) platform example internals ;\r
 }\r
 \r
-PDCLIB_TEST_LINKFLAGS += -nostdlib ;\r
-PDCLIB_TEST_LINKLIBS += -lgcc ;\r
+if $(PDCLIB_TOOLCHAIN) = "gcc" {\r
+    PDCLIB_TEST_LINKFLAGS += -nostdlib ;\r
+    PDCLIB_TEST_LINKLIBS += -lgcc ;\r
+}\r
 \r
 PDCLIB_OPTIONS = nothread notime dlmalloc ;
\ No newline at end of file
index 7dcab3f891f183fcdf64e266956bc3539f713466..1cd357a9a2f0b41dc29dcc869849f0d92c26f20f 100644 (file)
@@ -8,8 +8,20 @@ rule PDCLibTargetHeaders {
     }\r
 }\r
 \r
-PDCLIB_TEST_LINKFLAGS += -nostdlib ;\r
-PDCLIB_TEST_LINKLIBS += -lgcc -lkernel32 -lshell32 ;\r
+if $(PDCLIB_TOOLCHAIN) = "gcc" {\r
+    PDCLIB_TEST_LINKFLAGS += -nostdlib ;\r
+    PDCLIB_TEST_LINKLIBS += -lgcc -lkernel32 -lshell32 ;\r
+} else if $(PDCLIB_TOOLCHAIN) = "WATCOM" {\r
+    PDCLIB_TEST_LINKFLAGS = "-\"option start=_mainCRTStartup\"" ;\r
+    PDCLIB_TEST_LINKLIBS = \r
+        $(WATCOM)\\lib386\\nt\\kernel32.lib \r
+        $(WATCOM)\\lib386\\nt\\shell32.lib\r
+        $(WATCOM)\\lib386\\nt\\clib3r.lib ;\r
+    PDCLIB_REGTEST_CCHDRS = [ FIncludes $(WATCOM)\\h ] ;\r
+} else {\r
+    ECHO Win32 doesn't support toolchain $(PDCLIB_TOOLCHAIN) ;\r
+    EXIT ;\r
+}\r
 \r
 PDCLIB_OPTIONS = nothread notime dlmalloc ;\r
 \r
index dd00c53009fa360f342ea45082a174089d4bed47..e910bd1168c39283bd8fd2b970c247f05f1fe79a 100644 (file)
@@ -97,7 +97,8 @@ static LONG CALLBACK sehExceptionFilter( EXCEPTION_POINTERS * exInfo )
 }\r
 \r
 extern int main( int argc, char ** argv, char ** envp );\r
-_PDCLIB_noreturn void mainCRTStartup( void ) \r
+\r
+void __cdecl mainCRTStartup( void ) \r
 {\r
     stdin->handle  = GetStdHandle(STD_INPUT_HANDLE);\r
     stdout->handle = GetStdHandle(STD_OUTPUT_HANDLE);\r
@@ -113,4 +114,4 @@ _PDCLIB_noreturn void mainCRTStartup( void )
     int exitStatus = main(argc, argv, NULL);\r
 \r
     exit(exitStatus);\r
-}\r
+}
\ No newline at end of file