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# 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 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 count1.pass & 98 once1.pass once2.pass once3.pass once4.pass tsd1.pass & 99 self2.pass & 100 cancel1.pass cancel2.pass & 101 semaphore4.pass semaphore4t.pass semaphore5.pass & 102 delay1.pass delay2.pass eyal1.pass & 103 condvar3.pass condvar3_1.pass condvar3_2.pass condvar3_3.pass & 104 condvar4.pass condvar5.pass condvar6.pass & 105 condvar7.pass condvar8.pass condvar9.pass & 106 errno1.pass & 107 rwlock1.pass rwlock2.pass rwlock3.pass rwlock4.pass rwlock5.pass & 108 rwlock6.pass rwlock7.pass rwlock8.pass & 109 rwlock2_t.pass rwlock3_t.pass rwlock4_t.pass rwlock5_t.pass rwlock6_t.pass rwlock6_t2.pass & 110 context1.pass & 111 cancel3.pass cancel4.pass cancel5.pass cancel6a.pass cancel6d.pass & 112 cancel7 cancel8 & 113 cleanup0.pass cleanup1.pass cleanup2.pass cleanup3.pass & 114 priority1.pass priority2.pass inherit1.pass & 115 spin1.pass spin2.pass spin3.pass spin4.pass & 116 barrier1.pass barrier2.pass barrier3.pass barrier4.pass barrier5.pass & 117 exception1.pass exception2.pass exception3.pass & 118 cancel9.pass create3.pass stress1.pass 119 120BENCHRESULTS = & 121 benchtest1.bench benchtest2.bench benchtest3.bench benchtest4.bench benchtest5.bench 122 123help: .SYMBOLIC 124 @ $(ECHO) Run one of the following command lines: 125 @ $(ECHO) wmake /f Wmakefile clean WC (to test using WC dll with wcc386 (no EH) applications) 126 @ $(ECHO) wmake /f Wmakefile clean WCX (to test using WC dll with wpp386 (EH) applications) 127 @ $(ECHO) wmake /f Wmakefile clean WCE (to test using the WCE dll with wpp386 EH applications) 128 @ $(ECHO) wmake /f Wmakefile clean WC-bench (to benchtest using WC dll with C bench app) 129 @ $(ECHO) wmake /f Wmakefile clean WCX-bench (to benchtest using WC dll with C++ bench app) 130 @ $(ECHO) wmake /f Wmakefile clean WCE-bench (to benchtest using WCE dll with C++ bench app) 131 132all: .SYMBOLIC 133 @ wmake /f Wmakefile clean WC 134 @ wmake /f Wmakefile clean WCX 135 @ wmake /f Wmakefile clean WCE 136 @ wmake /f Wmakefile clean WSE 137 @ wmake /f Wmakefile clean WC-bench 138 139tests: $(CPLIB) $(CPDLL) $(CPHDR) $(PASSES) .SYMBOLIC 140 @ $(ECHO) ALL TESTS PASSED! Congratulations! 141 142benchtests: $(CPLIB) $(CPDLL) $(CPHDR) $(XXLIBS) $(BENCHRESULTS) .SYMBOLIC 143 @ $(ECHO) ALL BENCH TESTS DONE. 144 145$(BENCHRESULTS): ($[*).exe 146 @ $(ECHO) ... Running $(TEST) benchtest: ($[*).exe 147 @ .\($[*).exe 148 @ $(ECHO) ...... Done 149 @ $(TOUCH) ($[*).bench 150 151WCE: .SYMBOLIC 152 @ wmake /f Wmakefile CC=wpp386 TEST="$@" CPLIB="$(WCELIB)" CPDLL="$(WCEDLL)" EHFLAGS="$(WCEFLAGS)" tests 153 154WC: .SYMBOLIC 155 @ wmake /f Wmakefile CC=wcc386 TEST="$@" CPLIB="$(WCLIB)" CPDLL="$(WCDLL)" EHFLAGS="$(WCFLAGS)" tests 156 157WCX: .SYMBOLIC 158 @ wmake /f Wmakefile CC=wpp386 TEST="$@" CPLIB="$(WCLIB)" CPDLL="$(WCDLL)" EHFLAGS="$(WCXFLAGS)" tests 159 160WCE-bench: .SYMBOLIC 161 @ wmake /f Wmakefile CC=wpp386 TEST="$@" CPLIB="$(WCELIB)" CPDLL="$(WCEDLL)" EHFLAGS="$(WCEFLAGS)" XXLIBS="benchlib.o" benchtests 162 163WC-bench: .SYMBOLIC 164 @ wmake /f Wmakefile CC=wcc386 TEST="$@" CPLIB="$(WCLIB)" CPDLL="$(WCDLL)" EHFLAGS="$(WCFLAGS)" XXLIBS="benchlib.o" benchtests 165 166WCX-bench: .SYMBOLIC 167 @ wmake /f Wmakefile CC=wpp386 TEST="$@" CPLIB="$(WCLIB)" CPDLL="$(WCDLL)" EHFLAGS="$(WCXFLAGS)" XXLIBS="benchlib.o" benchtests 168 169sizes.pass: sizes.exe 170 @ $(ECHO) ... Running $(TEST) test: $^* 171 @ $[@ > SIZES.$(TEST) 172 @ $(CAT) SIZES.$(TEST) 173 @ $(ECHO) ...... Passed 174 @ $(TOUCH) $^@ 175 176.exe.pass: 177 @ $(ECHO) ... Running $(TEST) test: $^* 178 @ $[@ 179 @ $(ECHO) ...... Passed 180 @ $(TOUCH) $^@ 181 182.obj.exe: 183 @ $(ECHO) wlink NAME $^@ FILE $[@ LIBRARY $(CPLIB) OPTION quiet 184 @ wlink NAME $^@ FILE $[@ LIBRARY $(CPLIB) OPTION quiet 185 186.c.obj: 187 @ $(ECHO) $(CC) $^* $(EHFLAGS) $(CFLAGS) $(INCLUDES) 188 @ $(CC) $^* $(EHFLAGS) $(CFLAGS) $(INCLUDES) 189 190.c.i: 191 @ $(CC) /P $(EHFLAGS) $(CFLAGS) $(INCLUDES) $< 192 193$(COPYFILES): .SYMBOLIC 194 @ $(ECHO) Copying $(BUILD_DIR)\$@ 195 @ $(CP) $(BUILD_DIR)\$@ . 196 197pthread.dll: 198 @ $(CP) $(CPDLL) $*.dll 199 @ $(CP) $(CPLIB) $*.lib 200 201clean: .SYMBOLIC 202 @ if exist *.dll $(RM) *.dll 203 @ if exist *.lib $(RM) *.lib 204 @ if exist *.err $(RM) *.err 205 @ if exist pthread.h $(RM) pthread.h 206 @ if exist semaphore.h $(RM) semaphore.h 207 @ if exist sched.h $(RM) sched.h 208 @ if exist *.e $(RM) *.e 209 @ if exist *.i $(RM) *.i 210 @ if exist *.obj $(RM) *.obj 211 @ if exist *.pdb $(RM) *.pdb 212 @ if exist *.o $(RM) *.o 213 @ if exist *.asm $(RM) *.asm 214 @ if exist *.exe $(RM) *.exe 215 @ if exist *.pass $(RM) *.pass 216 @ if exist *.bench $(RM) *.bench 217 @ if exist *.log $(RM) *.log 218 @ $(ECHO) Clean completed. 219 220benchtest1.bench: 221benchtest2.bench: 222benchtest3.bench: 223benchtest4.bench: 224benchtest5.bench: 225barrier1.pass: 226barrier2.pass: barrier1.pass 227barrier3.pass: barrier2.pass 228barrier4.pass: barrier3.pass 229barrier5.pass: barrier4.pass 230cancel1.pass: create1.pass 231cancel2.pass: cancel1.pass 232cancel3.pass: context1.pass 233cancel4.pass: cancel3.pass 234cancel5.pass: cancel3.pass 235cancel6a.pass: cancel3.pass 236cancel6d.pass: cancel3.pass 237cancel7.pass: kill1.pass 238cancel8.pass: cancel7.pass 239cleanup0.pass: cancel5.pass 240cleanup1.pass: cleanup0.pass 241cleanup2.pass: cleanup1.pass 242cleanup3.pass: cleanup2.pass 243condvar1.pass: 244condvar1_1.pass: condvar1.pass 245condvar1_2.pass: join2.pass 246condvar2.pass: condvar1.pass 247condvar2_1.pass: condvar2.pass join2.pass 248condvar3.pass: create1.pass condvar2.pass 249condvar3_1.pass: condvar3.pass join2.pass 250condvar3_2.pass: condvar3_1.pass 251condvar3_3.pass: condvar3_2.pass 252condvar4.pass: create1.pass 253condvar5.pass: condvar4.pass 254condvar6.pass: condvar5.pass 255condvar7.pass: condvar6.pass cleanup1.pass 256condvar8.pass: condvar7.pass 257condvar9.pass: condvar8.pass 258context1.pass: cancel2.pass 259count1.pass: join1.pass 260create1.pass: mutex2.pass 261create2.pass: create1.pass 262create3.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 319rwlock1.pass: condvar6.pass 320rwlock2.pass: rwlock1.pass 321rwlock3.pass: rwlock2.pass 322rwlock4.pass: rwlock3.pass 323rwlock5.pass: rwlock4.pass 324rwlock6.pass: rwlock5.pass 325rwlock7.pass: rwlock6.pass 326rwlock2_t.pass: rwlock2.pass 327rwlock3_t.pass: rwlock2_t.pass 328rwlock4_t.pass: rwlock3_t.pass 329rwlock5_t.pass: rwlock4_t.pass 330rwlock6_t.pass: rwlock5_t.pass 331rwlock6_t2.pass: rwlock6_t.pass 332self1.pass: 333self2.pass: create1.pass 334semaphore1.pass: 335semaphore2.pass: 336semaphore3.pass: semaphore2.pass 337semaphore4.pass: semaphore3.pass cancel1.pass 338semaphore4t.pass: semaphore4.pass 339semaphore5.pass: semaphore4.pass 340sizes.pass: 341spin1.pass: 342spin2.pass: spin1.pass 343spin3.pass: spin2.pass 344spin4.pass: spin3.pass 345stress1.pass: 346tsd1.pass: join1.pass 347valid1.pass: join1.pass 348valid2.pass: valid1.pass 349cancel9.pass: cancel8.pass 350