# From "Thinking in C++, 2nd Edition, Volume 2" # by Bruce Eckel & Chuck Allison # Available at http:\\www.BruceEckel.com # (c)2004 MindView Inc. Copyright notice in Copyright.txt # Automatically-generated MAKEFILE # For examples in directory .\C05 # Invoke with: make compiler-name # or: make clean ifneq ($(MAKECMDGOALS),clean) include ..\$(MAKECMDGOALS).mac endif .SUFFIXES : .cpp .$(OBJEXT) .exe Borland: \ FuncDef.exe \ TempTemp.exe \ TempTemp2.exe \ PrintSeq.exe \ UsingTypename.exe \ DotTemplate.exe \ MemberClass.exe \ StringConvTest.exe \ ImplicitCast.exe \ ArraySize.exe \ MinTest.exe \ TemplateFunctionAddress.exe \ StrTolower.$(OBJEXT) \ Tolower.exe \ ToLower2.exe \ ApplyGromit.exe \ PartialOrder.exe \ MinTest2.exe \ PartialOrder2.exe \ DelayedInstantiation.exe \ NobloatTest.exe \ Lookup.exe \ FriendScope.exe \ FriendScope2.exe \ Box1.exe \ Box2.exe \ BearCorner.exe \ BearCorner2.exe \ CountedClass.exe \ CountedClass2.exe \ CountedClass3.exe \ Factorial.exe \ Fibonacci.exe \ Power.exe \ Accumulate.exe \ Unroll.exe \ Max.exe \ Conditionals.exe \ StaticAssert2.exe \ MyVector.exe \ MyVector2.exe \ UseMin1.$(OBJEXT) \ UseMin2.$(OBJEXT) \ MinMain.exe \ MinInstances.$(OBJEXT) \ OurMin.$(OBJEXT) \ TESTHEADER_StringConv.exe \ TESTHEADER_ApplySequence.exe \ TESTHEADER_Gromit.exe \ TESTHEADER_Sortable.exe \ TESTHEADER_Nobloat.exe \ TESTHEADER_BearCorner.exe \ TESTHEADER_OurMin.exe Microsoft: \ UrandTest.exe \ FuncDef.exe \ TempTemp.exe \ TempTemp2.exe \ TypenamedID.exe \ UsingTypename.exe \ DotTemplate.exe \ MemberClass.exe \ StringConvTest.exe \ ImplicitCast.exe \ ArraySize.exe \ MinTest.exe \ TemplateFunctionAddress.exe \ StrTolower.$(OBJEXT) \ Tolower.exe \ ToLower2.exe \ ApplyGromit.exe \ PartialOrder.exe \ MinTest2.exe \ PartialOrder2.exe \ Sortable.exe \ DelayedInstantiation.exe \ NobloatTest.exe \ Lookup.exe \ Lookup2.exe \ FriendScope.exe \ FriendScope2.exe \ FriendScope3.exe \ Box1.exe \ Box2.exe \ BearCorner.exe \ BearCorner2.exe \ CountedClass.exe \ CountedClass2.exe \ CountedClass3.exe \ Factorial.exe \ Fibonacci.exe \ Power.exe \ Accumulate.exe \ Unroll.exe \ Max.exe \ Conditionals.exe \ StaticAssert2.exe \ MyVector.exe \ MyVector2.exe \ UseMin1.$(OBJEXT) \ UseMin2.$(OBJEXT) \ MinMain.exe \ MinInstances.$(OBJEXT) \ OurMin.$(OBJEXT) \ TESTHEADER_Urand.exe \ TESTHEADER_StringConv.exe \ TESTHEADER_ApplySequence.exe \ TESTHEADER_Gromit.exe \ TESTHEADER_Sortable.exe \ TESTHEADER_Nobloat.exe \ TESTHEADER_BearCorner.exe \ TESTHEADER_OurMin.exe g++: \ UrandTest.exe \ FuncDef.exe \ TempTemp.exe \ TempTemp2.exe \ TempTemp3.exe \ TempTemp4.exe \ TypenamedID.exe \ PrintSeq.exe \ UsingTypename.exe \ DotTemplate.exe \ MemberClass.exe \ StringConvTest.exe \ ImplicitCast.exe \ ArraySize.exe \ MinTest.exe \ TemplateFunctionAddress.exe \ StrTolower.$(OBJEXT) \ Tolower.exe \ ToLower2.exe \ ApplyGromit.exe \ PartialOrder.exe \ MinTest2.exe \ PartialOrder2.exe \ Sortable.exe \ DelayedInstantiation.exe \ NobloatTest.exe \ Lookup.exe \ FriendScope.exe \ FriendScope2.exe \ FriendScope3.exe \ Box1.exe \ Box2.exe \ BearCorner.exe \ BearCorner2.exe \ CountedClass.exe \ CountedClass2.exe \ CountedClass3.exe \ Factorial.exe \ Fibonacci.exe \ Power.exe \ Accumulate.exe \ Unroll.exe \ Max.exe \ Conditionals.exe \ MyVector.exe \ MyVector2.exe \ UseMin1.$(OBJEXT) \ UseMin2.$(OBJEXT) \ MinMain.exe \ MinInstances.$(OBJEXT) \ OurMin.$(OBJEXT) \ TESTHEADER_Urand.exe \ TESTHEADER_StringConv.exe \ TESTHEADER_ApplySequence.exe \ TESTHEADER_Gromit.exe \ TESTHEADER_Sortable.exe \ TESTHEADER_Nobloat.exe \ TESTHEADER_BearCorner.exe \ TESTHEADER_OurMin.exe edg: \ UrandTest.exe \ FuncDef.exe \ TempTemp.exe \ TempTemp2.exe \ TempTemp3.exe \ TempTemp4.exe \ TypenamedID.exe \ PrintSeq.exe \ UsingTypename.exe \ DotTemplate.exe \ MemberClass.exe \ StringConvTest.exe \ ImplicitCast.exe \ ArraySize.exe \ MinTest.exe \ TemplateFunctionAddress.exe \ StrTolower.$(OBJEXT) \ Tolower.exe \ ToLower2.exe \ ApplyGromit.exe \ PartialOrder.exe \ MinTest2.exe \ PartialOrder2.exe \ Sortable.exe \ DelayedInstantiation.exe \ NobloatTest.exe \ Lookup.exe \ Lookup2.exe \ FriendScope.exe \ FriendScope2.exe \ FriendScope3.exe \ Box1.exe \ Box2.exe \ BearCorner.exe \ BearCorner2.exe \ CountedClass.exe \ CountedClass2.exe \ CountedClass3.exe \ Factorial.exe \ Fibonacci.exe \ Power.exe \ Accumulate.exe \ Unroll.exe \ Max.exe \ Conditionals.exe \ StaticAssert2.exe \ MyVector.exe \ MyVector2.exe \ UseMin1.$(OBJEXT) \ UseMin2.$(OBJEXT) \ MinMain.exe \ MinInstances.$(OBJEXT) \ OurMin.$(OBJEXT) \ TESTHEADER_Urand.exe \ TESTHEADER_StringConv.exe \ TESTHEADER_ApplySequence.exe \ TESTHEADER_Gromit.exe \ TESTHEADER_Sortable.exe \ TESTHEADER_Nobloat.exe \ TESTHEADER_BearCorner.exe \ TESTHEADER_OurMin.exe Metrowerks: \ UrandTest.exe \ FuncDef.exe \ TempTemp.exe \ TempTemp2.exe \ TempTemp3.exe \ TempTemp4.exe \ TypenamedID.exe \ UsingTypename.exe \ DotTemplate.exe \ MemberClass.exe \ StringConvTest.exe \ ImplicitCast.exe \ ArraySize.exe \ MinTest.exe \ ApplyGromit.exe \ PartialOrder.exe \ MinTest2.exe \ PartialOrder2.exe \ Sortable.exe \ DelayedInstantiation.exe \ NobloatTest.exe \ Lookup.exe \ Lookup2.exe \ FriendScope.exe \ FriendScope2.exe \ FriendScope3.exe \ Box1.exe \ Box2.exe \ BearCorner.exe \ BearCorner2.exe \ CountedClass.exe \ CountedClass2.exe \ CountedClass3.exe \ Factorial.exe \ Fibonacci.exe \ Power.exe \ Accumulate.exe \ Unroll.exe \ Max.exe \ Conditionals.exe \ StaticAssert2.exe \ MyVector.exe \ MyVector2.exe \ UseMin1.$(OBJEXT) \ UseMin2.$(OBJEXT) \ MinMain.exe \ MinInstances.$(OBJEXT) \ OurMin.$(OBJEXT) \ TESTHEADER_Urand.exe \ TESTHEADER_StringConv.exe \ TESTHEADER_ApplySequence.exe \ TESTHEADER_Gromit.exe \ TESTHEADER_Sortable.exe \ TESTHEADER_Nobloat.exe \ TESTHEADER_BearCorner.exe \ TESTHEADER_OurMin.exe DigitalMars: \ UrandTest.exe \ FuncDef.exe \ TempTemp.exe \ TempTemp2.exe \ TempTemp3.exe \ TempTemp4.exe \ TypenamedID.exe \ PrintSeq.exe \ UsingTypename.exe \ DotTemplate.exe \ MemberClass.exe \ StringConvTest.exe \ ImplicitCast.exe \ ArraySize.exe \ MinTest.exe \ TemplateFunctionAddress.exe \ StrTolower.$(OBJEXT) \ Tolower.exe \ ToLower2.exe \ ApplyGromit.exe \ PartialOrder.exe \ MinTest2.exe \ PartialOrder2.exe \ Sortable.exe \ DelayedInstantiation.exe \ NobloatTest.exe \ Lookup.exe \ FriendScope.exe \ FriendScope2.exe \ FriendScope3.exe \ Box1.exe \ Box2.exe \ BearCorner.exe \ BearCorner2.exe \ CountedClass.exe \ CountedClass2.exe \ CountedClass3.exe \ Factorial.exe \ Fibonacci.exe \ Power.exe \ Accumulate.exe \ Unroll.exe \ Max.exe \ Conditionals.exe \ StaticAssert2.exe \ MyVector.exe \ MyVector2.exe \ UseMin1.$(OBJEXT) \ UseMin2.$(OBJEXT) \ MinMain.exe \ MinInstances.$(OBJEXT) \ OurMin.$(OBJEXT) \ TESTHEADER_Urand.exe \ TESTHEADER_StringConv.exe \ TESTHEADER_ApplySequence.exe \ TESTHEADER_Gromit.exe \ TESTHEADER_Sortable.exe \ TESTHEADER_Nobloat.exe \ TESTHEADER_BearCorner.exe \ TESTHEADER_OurMin.exe CodeWizard: CodeWizard *.cpp clean: ifeq ($(notdir $(SHELL)),COMMAND.COM) del *.o del *.obj del *.exe del *.tds del *.map else rm -f *.o *.obj *.exe *.tds *.map endif UrandTest.exe: UrandTest.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ FuncDef.exe: FuncDef.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TempTemp.exe: TempTemp.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TempTemp2.exe: TempTemp2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TempTemp3.exe: TempTemp3.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TempTemp4.exe: TempTemp4.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TypenamedID.exe: TypenamedID.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ PrintSeq.exe: PrintSeq.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ UsingTypename.exe: UsingTypename.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ DotTemplate.exe: DotTemplate.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ MemberClass.exe: MemberClass.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ StringConvTest.exe: StringConvTest.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ ImplicitCast.exe: ImplicitCast.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ ArraySize.exe: ArraySize.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ MinTest.exe: MinTest.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TemplateFunctionAddress.exe: TemplateFunctionAddress.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ StrTolower.$(OBJEXT): StrTolower.cpp Tolower.exe: StrTolower.$(OBJEXT) Tolower.$(OBJEXT) $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Tolower.$(OBJEXT): Tolower.cpp ToLower2.exe: ToLower2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ ApplyGromit.exe: ApplyGromit.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ PartialOrder.exe: PartialOrder.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ MinTest2.exe: MinTest2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ PartialOrder2.exe: PartialOrder2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Sortable.exe: Sortable.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ DelayedInstantiation.exe: DelayedInstantiation.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ NobloatTest.exe: NobloatTest.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Lookup.exe: Lookup.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Lookup2.exe: Lookup2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ FriendScope.exe: FriendScope.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ FriendScope2.exe: FriendScope2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ FriendScope3.exe: FriendScope3.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Box1.exe: Box1.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Box2.exe: Box2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ BearCorner.exe: BearCorner.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ BearCorner2.exe: BearCorner2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ CountedClass.exe: CountedClass.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ CountedClass2.exe: CountedClass2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ CountedClass3.exe: CountedClass3.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Factorial.exe: Factorial.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Fibonacci.exe: Fibonacci.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Power.exe: Power.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Accumulate.exe: Accumulate.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Unroll.exe: Unroll.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Max.exe: Max.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ Conditionals.exe: Conditionals.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ StaticAssert2.exe: StaticAssert2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ MyVector.exe: MyVector.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ MyVector2.exe: MyVector2.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ UseMin1.$(OBJEXT): UseMin1.cpp UseMin2.$(OBJEXT): UseMin2.cpp MinMain.exe: UseMin1.$(OBJEXT) UseMin2.$(OBJEXT) MinInstances.$(OBJEXT) MinMain.$(OBJEXT) $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ MinMain.$(OBJEXT): MinMain.cpp MinInstances.$(OBJEXT): MinInstances.cpp OurMin.$(OBJEXT): OurMin.cpp TESTHEADER_Urand.exe: TESTHEADER_Urand.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TESTHEADER_StringConv.exe: TESTHEADER_StringConv.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TESTHEADER_ApplySequence.exe: TESTHEADER_ApplySequence.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TESTHEADER_Gromit.exe: TESTHEADER_Gromit.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TESTHEADER_Sortable.exe: TESTHEADER_Sortable.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TESTHEADER_Nobloat.exe: TESTHEADER_Nobloat.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TESTHEADER_BearCorner.exe: TESTHEADER_BearCorner.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@ TESTHEADER_OurMin.exe: TESTHEADER_OurMin.cpp $(CPP) $(CPPFLAGS) $(EXEFLAG)$@ $^ $@