#############################################################################
# Makefile for building ZThread
# Generated by tmake at 10:57, 2002/03/22
#     Project: zthread
#    Template: lib
#############################################################################

####### Compiler, tools and options

CC	=	g++
CXX	=	gcc
CFLAGS	=	-fvtable-thunks -O -DREENTRANT -DZTHREAD_STATIC -DNDEBUG -D_WIN32 -D_LIB -DWIN32 -DDISABLE_IO_INTERRUPT
CXXFLAGS=	-fvtable-thunks -O -DREENTRANT -DZTHREAD_STATIC -DNDEBUG -D_WIN32 -D_LIB -DWIN32 -DDISABLE_IO_INTERRUPT
INCPATH	=	-I"include"
AR	=	ar cqs
RANLIB	=	
MOC	=	moc
UIC	=	

ZIP	=	zip -r -9

####### Files

HEADERS =	include/zthread/AbstractExecutor.h \
		include/zthread/AbstractThreadLocal.h \
		include/zthread/AsyncExecutor.h \
		include/zthread/Barrier.h \
		include/zthread/BiasedRWLock.h \
		include/zthread/BlockingQueue.h \
		include/zthread/BufferedQueue.h \
		include/zthread/Cancelable.h \
		include/zthread/Condition.h \
		include/zthread/Counted.h \
		include/zthread/CountingSemaphore.h \
		include/zthread/Executor.h \
		include/zthread/Factory.h \
		include/zthread/FairRWLock.h \
		include/zthread/FastMutex.h \
		include/zthread/FastRecursiveMutex.h \
		include/zthread/FastThreadLocal.h \
		include/zthread/Guard.h \
		include/zthread/InheritableThreadLocal.h \
		include/zthread/Latch.h \
		include/zthread/Lockable.h \
		include/zthread/LockedQueue.h \
		include/zthread/MonitoredQueue.h \
		include/zthread/Mutex.h \
		include/zthread/NullMutex.h \
		include/zthread/Observable.h \
		include/zthread/PoolExecutor.h \
		include/zthread/Queue.h \
		include/zthread/RWLock.h \
		include/zthread/RecursiveMutex.h \
		include/zthread/Semaphore.h \
		include/zthread/SharedInstance.h \
		include/zthread/SimpleQueue.h \
		include/zthread/Singleton.h \
		include/zthread/SyncExecutor.h \
		include/zthread/SynchronizationExceptions.h \
		include/zthread/Thread.h \
		include/zthread/ThreadLocal.h \
		include/zthread/Timer.h \
		include/zthread/TimerThread.h \
		include/zthread/Worker.h \
		include/zthread/ZThread.h \
		src/State.h \
		src/Synchronized.h \
		src/Time.h \
		src/ValueHolder.h \
		src/ConditionImpl.h \
		src/MutexImpl.h \
		src/SemaphoreImpl.h \
		include/zthread/WIN32_FastMutex.h \
		include/zthread/WIN32_FastRecursiveMutex.h \
		src/WIN32_Monitor.h \
		src/WIN32_ThreadImpl.h \
		src/WIN32_ThreadLocalImpl.h \
		src/WIN32_ThreadManager.h \
		src/StdAfx.h
SOURCES =	src/AbstractThreadLocal.cxx \
		src/Condition.cxx \
		src/ConditionImpl.cxx \
		src/CountingSemaphore.cxx \
		src/Mutex.cxx \
		src/MutexImpl.cxx \
		src/RWLock.cxx \
		src/RecursiveMutex.cxx \
		src/Semaphore.cxx \
		src/SemaphoreImpl.cxx \
		src/State.cxx \
		src/SynchronizationExceptions.cxx \
		src/Thread.cxx \
		src/Time.cxx \
		src/Timer.cxx \
		src/WIN32_ThreadImpl.cxx \
		src/WIN32_ThreadLocalImpl.cxx \
		src/WIN32_ThreadManager.cxx \
		src/StdAfx.cxx
OBJECTS =	src/AbstractThreadLocal.o \
		src/Condition.o \
		src/ConditionImpl.o \
		src/CountingSemaphore.o \
		src/Mutex.o \
		src/MutexImpl.o \
		src/RWLock.o \
		src/RecursiveMutex.o \
		src/Semaphore.o \
		src/SemaphoreImpl.o \
		src/State.o \
		src/SynchronizationExceptions.o \
		src/Thread.o \
		src/Time.o \
		src/Timer.o \
		src/WIN32_ThreadImpl.o \
		src/WIN32_ThreadLocalImpl.o \
		src/WIN32_ThreadManager.o \
		src/StdAfx.o
INTERFACES =	
UICDECLS =	
UICIMPLS =	
SRCMOC	=	
OBJMOC	=	
DIST	=	
TARGET	=	lib/ZThread.lib
INTERFACE_DECL_PATH = .

####### Implicit rules

.SUFFIXES: .cpp .cxx .cc .c

.cpp.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cc.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

####### Build rules

all: $(TARGET)

$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) 
	-rm -f $(TARGET)
	$(AR) $(TARGET) $(OBJECTS) $(OBJMOC)

moc: $(SRCMOC)

tmake: Makefile.mingw

Makefile.mingw: zthread.pro
	tmake zthread.pro -o Makefile.mingw

dist:
	$(ZIP) zthread.zip zthread.pro $(SOURCES) $(HEADERS) $(DIST)

clean:
	-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(TARGET)
	-rm -f *~ core

####### Compile

src/AbstractThreadLocal.o: src/AbstractThreadLocal.cxx \
		src/ValueHolder.h \
		src/Win32_ThreadLocalImpl.h \
		src/POSIX_ThreadLocalImpl.h

src/Condition.o: src/Condition.cxx \
		src/ConditionImpl.h \
		src/Synchronized.h \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/ConditionImpl.o: src/ConditionImpl.cxx \
		src/ConditionImpl.h \
		src/Synchronized.h \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/CountingSemaphore.o: src/CountingSemaphore.cxx \
		src/SemaphoreImpl.h \
		src/Synchronized.h \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/Mutex.o: src/Mutex.cxx \
		src/MutexImpl.h \
		src/Synchronized.h \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/MutexImpl.o: src/MutexImpl.cxx \
		src/MutexImpl.h \
		src/Synchronized.h \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/RWLock.o: src/RWLock.cxx

src/RecursiveMutex.o: src/RecursiveMutex.cxx \
		src/MutexImpl.h \
		src/Synchronized.h \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/Semaphore.o: src/Semaphore.cxx \
		src/SemaphoreImpl.h \
		src/Synchronized.h \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/SemaphoreImpl.o: src/SemaphoreImpl.cxx \
		src/SemaphoreImpl.h \
		src/Synchronized.h \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/State.o: src/State.cxx \
		src/State.h

src/SynchronizationExceptions.o: src/SynchronizationExceptions.cxx

src/Thread.o: src/Thread.cxx \
		src/Win32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/POSIX_ThreadImpl.h \
		src/POSIX_Monitor.h \
		src/Time.h \
		src/config.h

src/Time.o: src/Time.cxx \
		src/Time.h \
		src/config.h

src/Timer.o: src/Timer.cxx \
		src/Time.h \
		src/config.h

src/WIN32_ThreadImpl.o: src/WIN32_ThreadImpl.cxx \
		src/WIN32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/WIN32_ThreadManager.h \
		src/ValueHolder.h

src/WIN32_ThreadLocalImpl.o: src/WIN32_ThreadLocalImpl.cxx \
		src/WIN32_ThreadLocalImpl.h \
		src/WIN32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h

src/WIN32_ThreadManager.o: src/WIN32_ThreadManager.cxx \
		src/WIN32_ThreadManager.h \
		src/WIN32_ThreadImpl.h \
		src/WIN32_Monitor.h \
		src/StdAfx.h \
		src/State.h \
		src/WIN32_ThreadLocalImpl.h

src/StdAfx.o: src/StdAfx.cxx \
		src/stdafx.h

