makefile
来自「很经典的书籍」· 代码 · 共 358 行
TXT
358 行
# 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
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?