# From "Thinking in C++, 2nd Edition, Volume 2" 
# by Bruce Eckel & Chuck Allison
# Available at http://www.BruceEckel.com
# (c)2003 MindView Inc. Copyright notice in Copyright.txt
# Automatically-generated MAKEFILE 
# For examples in directory .\C11
# Invoke with: make compiler-name
# or: make clean

ifneq ($(MAKECMDGOALS),clean)
include ../$(MAKECMDGOALS).mac
endif

.SUFFIXES : .cpp .$(OBJEXT) .exe
.cpp.$(OBJEXT) :
	$(CPP) $(CPPFLAGS) $(OFLAGS) $<


Borland:  \
	BasicThreads.exe \
	CarBuilder.exe \
	ConcurrentExecutor.exe \
	DeadlockingDiningPhilosophers.exe \
	EvenGenerator.exe \
	FixedDiningPhilosophers.exe \
	GuardedEvenGenerator.exe \
	Incrementer.exe \
	Interrupting.exe \
	Interrupting2.exe \
	Interrupting3.exe \
	MoreBasicThreads.exe \
	MutexEvenGenerator.exe \
	NoThread.exe \
	OrnamentalGarden.exe \
	PoolExecutor.exe \
	ReferenceCounting.exe \
	ResponsiveUI.exe \
	SimplePriorities.exe \
	SleepingTask.exe \
	SynchronizedClass.exe \
	SynchronousExecutor.exe \
	TemporaryUnlocking.exe \
	TestTQueue.exe \
	ThreadedExecutor.exe \
	ThreadLocalVariables.exe \
	TimedLocking.exe \
	ToastOMatic.exe \
	ToastOMaticMarkII.exe \
	UnresponsiveUI.exe \
	WaxOMatic.exe \
	YieldingTask.exe

Microsoft:  \
	BasicThreads.exe \
	CarBuilder.exe \
	ConcurrentExecutor.exe \
	DeadlockingDiningPhilosophers.exe \
	EvenGenerator.exe \
	FixedDiningPhilosophers.exe \
	GuardedEvenGenerator.exe \
	Incrementer.exe \
	Interrupting.exe \
	Interrupting2.exe \
	Interrupting3.exe \
	MoreBasicThreads.exe \
	MutexEvenGenerator.exe \
	NoThread.exe \
	OrnamentalGarden.exe \
	PoolExecutor.exe \
	ReferenceCounting.exe \
	ResponsiveUI.exe \
	SimplePriorities.exe \
	SleepingTask.exe \
	SynchronizedClass.exe \
	SynchronousExecutor.exe \
	TemporaryUnlocking.exe \
	TestTQueue.exe \
	ThreadedExecutor.exe \
	ThreadLocalVariables.exe \
	TimedLocking.exe \
	ToastOMatic.exe \
	ToastOMaticMarkII.exe \
	UnresponsiveUI.exe \
	WaxOMatic.exe \
	YieldingTask.exe

g++:  \
	BasicThreads.exe \
	CarBuilder.exe \
	ConcurrentExecutor.exe \
	DeadlockingDiningPhilosophers.exe \
	EvenGenerator.exe \
	FixedDiningPhilosophers.exe \
	GuardedEvenGenerator.exe \
	Incrementer.exe \
	Interrupting.exe \
	Interrupting2.exe \
	Interrupting3.exe \
	MoreBasicThreads.exe \
	MutexEvenGenerator.exe \
	NoThread.exe \
	OrnamentalGarden.exe \
	PoolExecutor.exe \
	ReferenceCounting.exe \
	ResponsiveUI.exe \
	SimplePriorities.exe \
	SleepingTask.exe \
	SynchronizedClass.exe \
	SynchronousExecutor.exe \
	TemporaryUnlocking.exe \
	TestTQueue.exe \
	ThreadedExecutor.exe \
	ThreadLocalVariables.exe \
	TimedLocking.exe \
	ToastOMatic.exe \
	ToastOMaticMarkII.exe \
	UnresponsiveUI.exe \
	WaxOMatic.exe \
	YieldingTask.exe

edg:  \
	BasicThreads.exe \
	CarBuilder.exe \
	ConcurrentExecutor.exe \
	DeadlockingDiningPhilosophers.exe \
	EvenGenerator.exe \
	FixedDiningPhilosophers.exe \
	GuardedEvenGenerator.exe \
	Incrementer.exe \
	Interrupting.exe \
	Interrupting2.exe \
	Interrupting3.exe \
	MoreBasicThreads.exe \
	MutexEvenGenerator.exe \
	NoThread.exe \
	OrnamentalGarden.exe \
	PoolExecutor.exe \
	ReferenceCounting.exe \
	ResponsiveUI.exe \
	SimplePriorities.exe \
	SleepingTask.exe \
	SynchronizedClass.exe \
	SynchronousExecutor.exe \
	TemporaryUnlocking.exe \
	TestTQueue.exe \
	ThreadedExecutor.exe \
	ThreadLocalVariables.exe \
	TimedLocking.exe \
	ToastOMatic.exe \
	ToastOMaticMarkII.exe \
	UnresponsiveUI.exe \
	WaxOMatic.exe \
	YieldingTask.exe

Metrowerks:  \
	BasicThreads.exe \
	CarBuilder.exe \
	ConcurrentExecutor.exe \
	DeadlockingDiningPhilosophers.exe \
	EvenGenerator.exe \
	FixedDiningPhilosophers.exe \
	GuardedEvenGenerator.exe \
	Incrementer.exe \
	Interrupting.exe \
	Interrupting2.exe \
	Interrupting3.exe \
	MoreBasicThreads.exe \
	MutexEvenGenerator.exe \
	NoThread.exe \
	OrnamentalGarden.exe \
	PoolExecutor.exe \
	ReferenceCounting.exe \
	ResponsiveUI.exe \
	SimplePriorities.exe \
	SleepingTask.exe \
	SynchronizedClass.exe \
	SynchronousExecutor.exe \
	TemporaryUnlocking.exe \
	TestTQueue.exe \
	ThreadedExecutor.exe \
	ThreadLocalVariables.exe \
	TimedLocking.exe \
	ToastOMatic.exe \
	ToastOMaticMarkII.exe \
	UnresponsiveUI.exe \
	WaxOMatic.exe \
	YieldingTask.exe

clean:
ifeq ($(notdir $(SHELL)),COMMAND.COM)
	del *.obj
	del *.exe
	del *.tds
	del *.o
else
	rm -f *.o *.obj *.exe *.tds
endif


BasicThreads.exe: BasicThreads.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)BasicThreads.exe BasicThreads.$(OBJEXT) $(LIBLINK)ZThread

BasicThreads.$(OBJEXT): BasicThreads.cpp

CarBuilder.exe: CarBuilder.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)CarBuilder.exe CarBuilder.$(OBJEXT) $(LIBLINK)ZThread

CarBuilder.$(OBJEXT): CarBuilder.cpp

ConcurrentExecutor.exe: ConcurrentExecutor.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)ConcurrentExecutor.exe ConcurrentExecutor.$(OBJEXT) $(LIBLINK)ZThread

ConcurrentExecutor.$(OBJEXT): ConcurrentExecutor.cpp

DeadlockingDiningPhilosophers.exe: DeadlockingDiningPhilosophers.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)DeadlockingDiningPhilosophers.exe DeadlockingDiningPhilosophers.$(OBJEXT) $(LIBLINK)ZThread

DeadlockingDiningPhilosophers.$(OBJEXT): DeadlockingDiningPhilosophers.cpp

EvenGenerator.exe: EvenGenerator.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)EvenGenerator.exe EvenGenerator.$(OBJEXT) $(LIBLINK)ZThread

EvenGenerator.$(OBJEXT): EvenGenerator.cpp

FixedDiningPhilosophers.exe: FixedDiningPhilosophers.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)FixedDiningPhilosophers.exe FixedDiningPhilosophers.$(OBJEXT) $(LIBLINK)ZThread

FixedDiningPhilosophers.$(OBJEXT): FixedDiningPhilosophers.cpp

GuardedEvenGenerator.exe: GuardedEvenGenerator.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)GuardedEvenGenerator.exe GuardedEvenGenerator.$(OBJEXT) $(LIBLINK)ZThread

GuardedEvenGenerator.$(OBJEXT): GuardedEvenGenerator.cpp

Incrementer.exe: Incrementer.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)Incrementer.exe Incrementer.$(OBJEXT) $(LIBLINK)ZThread

Incrementer.$(OBJEXT): Incrementer.cpp

Interrupting.exe: Interrupting.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)Interrupting.exe Interrupting.$(OBJEXT) $(LIBLINK)ZThread

Interrupting.$(OBJEXT): Interrupting.cpp

Interrupting2.exe: Interrupting2.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)Interrupting2.exe Interrupting2.$(OBJEXT) $(LIBLINK)ZThread

Interrupting2.$(OBJEXT): Interrupting2.cpp

Interrupting3.exe: Interrupting3.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)Interrupting3.exe Interrupting3.$(OBJEXT) $(LIBLINK)ZThread

Interrupting3.$(OBJEXT): Interrupting3.cpp

MoreBasicThreads.exe: MoreBasicThreads.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)MoreBasicThreads.exe MoreBasicThreads.$(OBJEXT) $(LIBLINK)ZThread

MoreBasicThreads.$(OBJEXT): MoreBasicThreads.cpp

MutexEvenGenerator.exe: MutexEvenGenerator.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)MutexEvenGenerator.exe MutexEvenGenerator.$(OBJEXT) $(LIBLINK)ZThread

MutexEvenGenerator.$(OBJEXT): MutexEvenGenerator.cpp

NoThread.exe: NoThread.cpp


OrnamentalGarden.exe: OrnamentalGarden.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)OrnamentalGarden.exe OrnamentalGarden.$(OBJEXT) $(LIBLINK)ZThread

OrnamentalGarden.$(OBJEXT): OrnamentalGarden.cpp

PoolExecutor.exe: PoolExecutor.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)PoolExecutor.exe PoolExecutor.$(OBJEXT) $(LIBLINK)ZThread

PoolExecutor.$(OBJEXT): PoolExecutor.cpp

ReferenceCounting.exe: ReferenceCounting.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)ReferenceCounting.exe ReferenceCounting.$(OBJEXT) $(LIBLINK)ZThread

ReferenceCounting.$(OBJEXT): ReferenceCounting.cpp

ResponsiveUI.exe: ResponsiveUI.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)ResponsiveUI.exe ResponsiveUI.$(OBJEXT) $(LIBLINK)ZThread

ResponsiveUI.$(OBJEXT): ResponsiveUI.cpp

SimplePriorities.exe: SimplePriorities.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)SimplePriorities.exe SimplePriorities.$(OBJEXT) $(LIBLINK)ZThread

SimplePriorities.$(OBJEXT): SimplePriorities.cpp

SleepingTask.exe: SleepingTask.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)SleepingTask.exe SleepingTask.$(OBJEXT) $(LIBLINK)ZThread

SleepingTask.$(OBJEXT): SleepingTask.cpp

SynchronizedClass.exe: SynchronizedClass.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)SynchronizedClass.exe SynchronizedClass.$(OBJEXT) $(LIBLINK)ZThread

SynchronizedClass.$(OBJEXT): SynchronizedClass.cpp

SynchronousExecutor.exe: SynchronousExecutor.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)SynchronousExecutor.exe SynchronousExecutor.$(OBJEXT) $(LIBLINK)ZThread

SynchronousExecutor.$(OBJEXT): SynchronousExecutor.cpp

TemporaryUnlocking.exe: TemporaryUnlocking.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)TemporaryUnlocking.exe TemporaryUnlocking.$(OBJEXT) $(LIBLINK)ZThread

TemporaryUnlocking.$(OBJEXT): TemporaryUnlocking.cpp

TestTQueue.exe: TestTQueue.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)TestTQueue.exe TestTQueue.$(OBJEXT) $(LIBLINK)ZThread

TestTQueue.$(OBJEXT): TestTQueue.cpp

ThreadedExecutor.exe: ThreadedExecutor.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)ThreadedExecutor.exe ThreadedExecutor.$(OBJEXT) $(LIBLINK)ZThread

ThreadedExecutor.$(OBJEXT): ThreadedExecutor.cpp

ThreadLocalVariables.exe: ThreadLocalVariables.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)ThreadLocalVariables.exe ThreadLocalVariables.$(OBJEXT) $(LIBLINK)ZThread

ThreadLocalVariables.$(OBJEXT): ThreadLocalVariables.cpp

TimedLocking.exe: TimedLocking.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)TimedLocking.exe TimedLocking.$(OBJEXT) $(LIBLINK)ZThread

TimedLocking.$(OBJEXT): TimedLocking.cpp

ToastOMatic.exe: ToastOMatic.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)ToastOMatic.exe ToastOMatic.$(OBJEXT) $(LIBLINK)ZThread

ToastOMatic.$(OBJEXT): ToastOMatic.cpp

ToastOMaticMarkII.exe: ToastOMaticMarkII.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)ToastOMaticMarkII.exe ToastOMaticMarkII.$(OBJEXT) $(LIBLINK)ZThread

ToastOMaticMarkII.$(OBJEXT): ToastOMaticMarkII.cpp

UnresponsiveUI.exe: UnresponsiveUI.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)UnresponsiveUI.exe UnresponsiveUI.$(OBJEXT) $(LIBLINK)ZThread

UnresponsiveUI.$(OBJEXT): UnresponsiveUI.cpp

WaxOMatic.exe: WaxOMatic.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)WaxOMatic.exe WaxOMatic.$(OBJEXT) $(LIBLINK)ZThread

WaxOMatic.$(OBJEXT): WaxOMatic.cpp

YieldingTask.exe: YieldingTask.$(OBJEXT)
	$(CPP) $(CPPFLAGS) $(EXEFLAG)YieldingTask.exe YieldingTask.$(OBJEXT) $(LIBLINK)ZThread

YieldingTask.$(OBJEXT): YieldingTask.cpp

