1# Watcom makefile for the pthreads test suite. 2# If all of the .pass files can be created, the test suite has passed. 3# 4# -------------------------------------------------------------------------- 5# 6# Pthreads-win32 - POSIX Threads Library for Win32 7# Copyright(C) 1998 John E. Bossom 8# Copyright(C) 1999,2005 Pthreads-win32 contributors 9# 10# Contact Email: rpj@callisto.canberra.edu.au 11# 12# The current list of contributors is contained 13# in the file CONTRIBUTORS included with the source 14# code distribution. The list can also be seen at the 15# following World Wide Web location: 16# http://sources.redhat.com/pthreads-win32/contributors.html 17# 18# This library is free software; you can redistribute it and/or 19# modify it under the terms of the GNU Lesser General Public 20# License as published by the Free Software Foundation; either 21# version 2 of the License, or (at your option) any later version. 22# 23# This library is distributed in the hope that it will be useful, 24# but WITHOUT ANY WARRANTY; without even the implied warranty of 25# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 26# Lesser General Public License for more details. 27# 28# You should have received a copy of the GNU Lesser General Public 29# License along with this library in the file COPYING.LIB; 30# if not, write to the Free Software Foundation, Inc., 31# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 32# 33 34 35DLL_VER = 2 36 37.EXTENSIONS: 38 39.EXTENSIONS: .pass .exe .obj .i .c 40 41CP = copy 42RM = erase 43CAT = type 44MKDIR = mkdir 45TOUCH = echo Passed > 46ECHO = @echo 47 48CPHDR = pthread.h semaphore.h sched.h 49 50OPTIM = -od 51 52XXLIBS = 53 54# C++ Exceptions 55WCEFLAGS = -xs -dPtW32NoCatchWarn -d__CLEANUP_CXX 56WCELIB = pthreadWCE$(DLL_VER).lib 57WCEDLL = pthreadWCE$(DLL_VER).dll 58# C cleanup code 59WCFLAGS = -d__CLEANUP_C 60WCLIB = pthreadWC$(DLL_VER).lib 61WCDLL = pthreadWC$(DLL_VER).dll 62# C++ Exceptions in application - using WC version of pthreads dll 63WCXFLAGS = -xs -d__CLEANUP_C 64 65CFLAGS= -w4 -e25 -d_WIN32_WINNT=0x400 -d_REENTRANT -zq -bm $(OPTIM) -5r -bt=nt -mf -d2 66 67LFLAGS= 68INCLUDES= -i=. 69BUILD_DIR=.. 70 71# The next path is relative to $BUILD_DIR 72QAPC = # ..\QueueUserAPCEx\User\quserex.dll 73 74COPYFILES = $(CPHDR) $(CPLIB) $(CPDLL) $(QAPC) 75 76TEST = 77EHFLAGS = 78 79# If a test case returns a non-zero exit code to the shell, make will 80# stop. 81 82PASSES = sizes.pass loadfree.pass & 83 self1.pass mutex5.pass & 84 mutex1.pass mutex1n.pass mutex1e.pass mutex1r.pass & 85 semaphore1.pass semaphore2.pass semaphore3.pass & 86 mutex2.pass mutex3.pass & 87 mutex2r.pass mutex2e.pass mutex3r.pass mutex3e.pass & 88 condvar1.pass condvar1_1.pass condvar1_2.pass condvar2.pass condvar2_1.pass & 89 exit1.pass create1.pass create2.pass reuse1.pass reuse2.pass equal1.pass & 90 sequence1.pass kill1.pass valid1.pass valid2.pass & 91 exit2.pass exit3.pass exit4 exit5 & 92 join0.pass join1.pass detach1.pass join2.pass join3.pass & 93 mutex4.pass mutex6.pass mutex6n.pass mutex6e.pass mutex6r.pass & 94 mutex6s.pass mutex6es.pass mutex6rs.pass & 95 mutex7.pass mutex7n.pass mutex7e.pass mutex7r.pass & 96 mutex8.pass mutex8n.pass mutex8e.pass mutex8r.pass & 97 robust1.pass robust2.pass robust3.pass robust4.pass robust5.pass & 98 count1.pass & 99 once1.pass once2.pass once3.pass once4.pass tsd1.pass & 100 self2.pass & 101 cancel1.pass cancel2.pass & 102 semaphore4.pass semaphore4t.pass semaphore5.pass & 103 delay1.pass delay2.pass eyal1.pass & 104 condvar3.pass condvar3_1.pass condvar3_2.pass condvar3_3.pass & 105 condvar4.pass condvar5.pass condvar6.pass & 106 condvar7.pass condvar8.pass condvar9.pass & 107 errno1.pass & 108 rwlock1.pass rwlock2.pass rwlock3.pass rwlock4.pass rwlock5.pass & 109 rwlock6.pass rwlock7.pass rwlock8.pass & 110 rwlock2_t.pass rwlock3_t.pass rwlock4_t.pass rwlock5_t.pass rwlock6_t.pass rwlock6_t2.pass & 111 context1.pass & 112 cancel3.pass cancel4.pass cancel5.pass cancel6a.pass cancel6d.pass & 113 cancel7 cancel8 & 114 cleanup0.pass cleanup1.pass cleanup2.pass cleanup3.pass & 115 priority1.pass priority2.pass inherit1.pass & 116 spin1.pass spin2.pass spin3.pass spin4.pass & 117 barrier1.pass barrier2.pass barrier3.pass barrier4.pass barrier5.pass & 118 exception1.pass exception2.pass exception3.pass & 119 cancel9.pass stress1.pass 120 121BENCHRESULTS = & 122 benchtest1.bench benchtest2.bench benchtest3.bench benchtest4.bench benchtest5.bench 123 124help: .SYMBOLIC 125 @ $(ECHO) Run one of the following command lines: 126 @ $(ECHO) wmake /f Wmakefile clean WC (to test using WC dll with wcc386 (no EH) applications) 127 @ $(ECHO) wmake /f Wmakefile clean WCX (to test using WC dll with wpp386 (EH) applications) 128 @ $(ECHO) wmake /f Wmakefile clean WCE (to test using the WCE dll with wpp386 EH applications) 129 @ $(ECHO) wmake /f Wmakefile clean WC-bench (to benchtest using WC dll with C bench app) 130 @ $(ECHO) wmake /f Wmakefile clean WCX-bench (to benchtest using WC dll with C++ bench app) 131 @ $(ECHO) wmake /f Wmakefile clean WCE-bench (to benchtest using WCE dll with C++ bench app) 132 133all: .SYMBOLIC 134 @ wmake /f Wmakefile clean WC 135 @ wmake /f Wmakefile clean WCX 136 @ wmake /f Wmakefile clean WCE 137 @ wmake /f Wmakefile clean WSE 138 @ wmake /f Wmakefile clean WC-bench 139 140tests: $(CPLIB) $(CPDLL) $(CPHDR) $(PASSES) .SYMBOLIC 141 @ $(ECHO) ALL TESTS PASSED! Congratulations! 142 143benchtests: $(CPLIB) $(CPDLL) $(CPHDR) $(XXLIBS) $(BENCHRESULTS) .SYMBOLIC 144 @ $(ECHO) ALL BENCH TESTS DONE. 145 146$(BENCHRESULTS): ($[*).exe 147 @ $(ECHO) ... Running $(TEST) benchtest: ($[*).exe 148 @ .\($[*).exe 149 @ $(ECHO) ...... Done 150 @ $(TOUCH) ($[*).bench 151 152WCE: .SYMBOLIC 153 @ wmake /f Wmakefile CC=wpp386 TEST="$@" CPLIB="$(WCELIB)" CPDLL="$(WCEDLL)" EHFLAGS="$(WCEFLAGS)" tests 154 155WC: .SYMBOLIC 156 @ wmake /f Wmakefile CC=wcc386 TEST="$@" CPLIB="$(WCLIB)" CPDLL="$(WCDLL)" EHFLAGS="$(WCFLAGS)" tests 157 158WCX: .SYMBOLIC 159 @ wmake /f Wmakefile CC=wpp386 TEST="$@" CPLIB="$(WCLIB)" CPDLL="$(WCDLL)" EHFLAGS="$(WCXFLAGS)" tests 160 161WCE-bench: .SYMBOLIC 162 @ wmake /f Wmakefile CC=wpp386 TEST="$@" CPLIB="$(WCELIB)" CPDLL="$(WCEDLL)" EHFLAGS="$(WCEFLAGS)" XXLIBS="benchlib.o" benchtests 163 164WC-bench: .SYMBOLIC 165 @ wmake /f Wmakefile CC=wcc386 TEST="$@" CPLIB="$(WCLIB)" CPDLL="$(WCDLL)" EHFLAGS="$(WCFLAGS)" XXLIBS="benchlib.o" benchtests 166 167WCX-bench: .SYMBOLIC 168 @ wmake /f Wmakefile CC=wpp386 TEST="$@" CPLIB="$(WCLIB)" CPDLL="$(WCDLL)" EHFLAGS="$(WCXFLAGS)" XXLIBS="benchlib.o" benchtests 169 170sizes.pass: sizes.exe 171 @ $(ECHO) ... Running $(TEST) test: $^* 172 @ $[@ > SIZES.$(TEST) 173 @ $(CAT) SIZES.$(TEST) 174 @ $(ECHO) ...... Passed 175 @ $(TOUCH) $^@ 176 177.exe.pass: 178 @ $(ECHO) ... Running $(TEST) test: $^* 179 @ $[@ 180 @ $(ECHO) ...... Passed 181 @ $(TOUCH) $^@ 182 183.obj.exe: 184 @ $(ECHO) wlink NAME $^@ FILE $[@ LIBRARY $(CPLIB) OPTION quiet 185 @ wlink NAME $^@ FILE $[@ LIBRARY $(CPLIB) OPTION quiet 186 187.c.obj: 188 @ $(ECHO) $(CC) $^* $(EHFLAGS) $(CFLAGS) $(INCLUDES) 189 @ $(CC) $^* $(EHFLAGS) $(CFLAGS) $(INCLUDES) 190 191.c.i: 192 @ $(CC) /P $(EHFLAGS) $(CFLAGS) $(INCLUDES) $< 193 194$(COPYFILES): .SYMBOLIC 195 @ $(ECHO) Copying $(BUILD_DIR)\$@ 196 @ $(CP) $(BUILD_DIR)\$@ . 197 198pthread.dll: 199 @ $(CP) $(CPDLL) $*.dll 200 @ $(CP) $(CPLIB) $*.lib 201 202clean: .SYMBOLIC 203 @ if exist *.dll $(RM) *.dll 204 @ if exist *.lib $(RM) *.lib 205 @ if exist *.err $(RM) *.err 206 @ if exist pthread.h $(RM) pthread.h 207 @ if exist semaphore.h $(RM) semaphore.h 208 @ if exist sched.h $(RM) sched.h 209 @ if exist *.e $(RM) *.e 210 @ if exist *.i $(RM) *.i 211 @ if exist *.obj $(RM) *.obj 212 @ if exist *.pdb $(RM) *.pdb 213 @ if exist *.o $(RM) *.o 214 @ if exist *.asm $(RM) *.asm 215 @ if exist *.exe $(RM) *.exe 216 @ if exist *.pass $(RM) *.pass 217 @ if exist *.bench $(RM) *.bench 218 @ if exist *.log $(RM) *.log 219 @ $(ECHO) Clean completed. 220 221benchtest1.bench: 222benchtest2.bench: 223benchtest3.bench: 224benchtest4.bench: 225benchtest5.bench: 226barrier1.pass: 227barrier2.pass: barrier1.pass 228barrier3.pass: barrier2.pass 229barrier4.pass: barrier3.pass 230barrier5.pass: barrier4.pass 231cancel1.pass: create1.pass 232cancel2.pass: cancel1.pass 233cancel3.pass: context1.pass 234cancel4.pass: cancel3.pass 235cancel5.pass: cancel3.pass 236cancel6a.pass: cancel3.pass 237cancel6d.pass: cancel3.pass 238cancel7.pass: kill1.pass 239cancel8.pass: cancel7.pass 240cleanup0.pass: cancel5.pass 241cleanup1.pass: cleanup0.pass 242cleanup2.pass: cleanup1.pass 243cleanup3.pass: cleanup2.pass 244condvar1.pass: 245condvar1_1.pass: condvar1.pass 246condvar1_2.pass: join2.pass 247condvar2.pass: condvar1.pass 248condvar2_1.pass: condvar2.pass join2.pass 249condvar3.pass: create1.pass condvar2.pass 250condvar3_1.pass: condvar3.pass join2.pass 251condvar3_2.pass: condvar3_1.pass 252condvar3_3.pass: condvar3_2.pass 253condvar4.pass: create1.pass 254condvar5.pass: condvar4.pass 255condvar6.pass: condvar5.pass 256condvar7.pass: condvar6.pass cleanup1.pass 257condvar8.pass: condvar7.pass 258condvar9.pass: condvar8.pass 259context1.pass: cancel1.pass 260count1.pass: join1.pass 261create1.pass: mutex2.pass 262create2.pass: create1.pass 263delay1.pass: 264delay2.pass: delay1.pass 265detach1.pass: join0.pass 266equal1.pass: create1.pass 267errno1.pass: mutex3.pass 268exception1.pass: cancel4.pass 269exception2.pass: exception1.pass 270exception3.pass: exception2.pass 271exit1.pass: 272exit2.pass: create1.pass 273exit3.pass: create1.pass 274exit4.pass: 275exit5.pass: kill1.pass 276eyal1.pass: tsd1.pass 277inherit1.pass: join1.pass priority1.pass 278join0.pass: create1.pass 279join1.pass: create1.pass 280join2.pass: create1.pass 281join3.pass: join2.pass 282kill1.pass: 283loadfree.pass: pthread.dll 284mutex1.pass: self1.pass 285mutex1n.pass: mutex1.pass 286mutex1e.pass: mutex1.pass 287mutex1r.pass: mutex1.pass 288mutex2.pass: mutex1.pass 289mutex2r.pass: mutex2.pass 290mutex2e.pass: mutex2.pass 291mutex3.pass: create1.pass 292mutex3r.pass: mutex3.pass 293mutex3e.pass: mutex3.pass 294mutex4.pass: mutex3.pass 295mutex5.pass: 296mutex6.pass: mutex4.pass 297mutex6n.pass: mutex4.pass 298mutex6e.pass: mutex4.pass 299mutex6r.pass: mutex4.pass 300mutex6s.pass: mutex6.pass 301mutex6rs.pass: mutex6r.pass 302mutex6es.pass: mutex6e.pass 303mutex7.pass: mutex6.pass 304mutex7n.pass: mutex6n.pass 305mutex7e.pass: mutex6e.pass 306mutex7r.pass: mutex6r.pass 307mutex8.pass: mutex7.pass 308mutex8n.pass: mutex7n.pass 309mutex8e.pass: mutex7e.pass 310mutex8r.pass: mutex7r.pass 311once1.pass: create1.pass 312once2.pass: once1.pass 313once3.pass: once2.pass 314once4.pass: once3.pass 315priority1.pass: join1.pass 316priority2.pass: priority1.pass barrier3.pass 317reuse1.pass: create2.pass 318reuse2.pass: reuse1.pass 319robust1.pass: mutex8r.pass 320robust2.pass: mutex8r.pass 321robust3.pass: robust2.pass 322robust4.pass: robust3.pass 323robust5.pass: robust4.pass 324rwlock1.pass: condvar6.pass 325rwlock2.pass: rwlock1.pass 326rwlock3.pass: rwlock2.pass join2.pass 327rwlock4.pass: rwlock3.pass 328rwlock5.pass: rwlock4.pass 329rwlock6.pass: rwlock5.pass 330rwlock7.pass: rwlock6.pass 331rwlock2_t.pass: rwlock2.pass 332rwlock3_t.pass: rwlock2_t.pass 333rwlock4_t.pass: rwlock3_t.pass 334rwlock5_t.pass: rwlock4_t.pass 335rwlock6_t.pass: rwlock5_t.pass 336rwlock6_t2.pass: rwlock6_t.pass 337self1.pass: 338self2.pass: create1.pass 339semaphore1.pass: 340semaphore2.pass: 341semaphore3.pass: semaphore2.pass 342semaphore4.pass: semaphore3.pass cancel1.pass 343semaphore4t.pass: semaphore4.pass 344semaphore5.pass: semaphore4.pass 345sequence1.pass: reuse2.pass 346sizes.pass: 347spin1.pass: 348spin2.pass: spin1.pass 349spin3.pass: spin2.pass 350spin4.pass: spin3.pass 351stress1.pass: 352tsd1.pass: join1.pass 353valid1.pass: join1.pass 354valid2.pass: valid1.pass 355cancel9.pass: cancel8.pass 356