# Makefile for the pthreads test suite. # If all of the .pass files can be created, the test suite has passed. CP = copy MV = rename RM = erase MKDIR = mkdir TOUCH = echo Passed > ECHO = @echo # # Mingw32 # GLANG = c++ CC = gcc #CFLAGS = -g -O0 -mthreads -UNDEBUG -Wall -x $(GLANG) CFLAGS = -O3 -mthreads -UNDEBUG -Wall -x $(GLANG) BUILD_DIR = .. INCLUDES = -I. LIBS = -L. -lpthreadw32 HDR = pthread.h semaphore.h sched.h LIB = libpthreadw32.a DLL = pthreadGCE.dll COPYFILES = $(HDR) $(LIB) $(DLL) # If a test case returns a non-zero exit code to the shell, make will # stop. TESTS = loadfree \ mutex1 condvar1 condvar2 exit1 create1 equal1 \ exit2 exit3 \ join0 join1 join2 mutex2 mutex3 mutex4 \ count1 once1 tsd1 self1 self2 cancel1 cancel2 eyal1 \ condvar3 condvar4 condvar5 condvar6 condvar7 condvar8 condvar9 \ errno1 \ rwlock1 rwlock2 rwlock3 rwlock4 rwlock5 rwlock6 \ context1 cancel3 cancel4 cancel5 \ cleanup0 cleanup1 cleanup2 cleanup3 \ exception1 exception2 exception3 PASSES = $(TESTS:%=%.pass) all: $(PASSES) @ $(ECHO) ALL TESTS PASSED! Congratulations! loadfree.pass: pthread.dll mutex1.pass: mutex2.pass: exit1.pass: condvar1.pass: self1.pass: condvar2.pass: condvar1.pass create1.pass: mutex2.pass cancel1.pass: create1.pass cancel2.pass: cancel1.pass mutex3.pass: create1.pass mutex4.pass: mutex3.pass equal1.pass: create1.pass exit2.pass: create1.pass exit3.pass: create1.pass join0.pass: create1.pass join1.pass: create1.pass join2.pass: create1.pass count1.pass: join1.pass once1.pass: create1.pass tsd1.pass: join1.pass self2.pass: create1.pass eyal1.pass: tsd1.pass condvar3.pass: create1.pass condvar4.pass: create1.pass condvar5.pass: condvar4.pass condvar6.pass: condvar5.pass condvar7.pass: condvar6.pass cleanup1.pass condvar8.pass: condvar7.pass condvar9.pass: condvar8.pass errno1.pass: mutex3.pass rwlock1.pass: condvar6.pass rwlock2.pass: rwlock1.pass rwlock3.pass: rwlock2.pass rwlock4.pass: rwlock3.pass rwlock5.pass: rwlock4.pass rwlock6.pass: rwlock5.pass context1.pass: cancel2.pass cancel3.pass: context1.pass cancel4.pass: cancel3.pass cancel5.pass: cancel3.pass cleanup0.pass: cancel5.pass cleanup1.pass: cleanup0.pass cleanup2.pass: cleanup1.pass cleanup3.pass: cleanup2.pass exception1.pass: cancel4.pass exception2.pass: exception1.pass exception3.pass: exception2.pass #%.pass: %.exe $(HDR) %.pass: %.exe $(LIB) $(DLL) $(HDR) $* @ $(ECHO) Passed @ $(TOUCH) $@ %.exe: %.c @ $(CC) $(CFLAGS) -o $@ $^ $(INCLUDES) $(LIBS) %.pre: %.c @ $(CC) -E $(CFLAGS) -o $@ $^ $(INCLUDES) %.s: %.c @ $(CC) -S $(CFLAGS) -o $@ $^ $(INCLUDES) $(COPYFILES): @ $(ECHO) Copying $@ @ $(CP) $(BUILD_DIR)\$@ . pthread.dll: @ $(CP) $(DLL) $@ clean: - $(RM) *.dll - $(RM) *.lib - $(RM) pthread.h - $(RM) semaphore.h - $(RM) sched.h - $(RM) libpthreadw32.a - $(RM) *.e - $(RM) *.obj - $(RM) *.pdb - $(RM) *.exe - $(RM) *.pass