1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
# This is a Makefile for the examples,
# for Windows and the Microsoft Visual C++ compiler.
# It does assume a Unix-like setup for some commands,
# but if you only want to call "make" with the default target,
# you should be OK.
# The test program itself does not use multi-threading,
# but the DLL might, depending on how it was compiled.
# If your Microsoft compiler is not called cl, change it here.
CC = cl
CC_FLAGS = /O2 /Oi /Ot /Oy /GL
LINK_FLAGS = /LTCG
# These flags are not turned on by default, but DDS should pass them.
# Turn them on below.
WARN_FLAGS = \
/Wall \
/wd4127 \
/wd4514 \
/wd4555 \
/wd4668 \
/wd4701 \
/wd4711 \
/wd4820 \
/wd4986 \
/wd4987 \
/wd4996 \
/WX
# Here you can turn on warnings.
# CC_FULL_FLAGS = $(CC_FLAGS)
CC_FULL_FLAGS = $(CC_FLAGS) $(WARN_FLAGS)
DTEST = dtest
ITEST = itest
DLLBASE = dds
DLL = $(DLLBASE).dll
DLIB = $(DLLBASE).lib
EXPORTER = Exports.def
COMMON_SOURCE_FILES = \
hands.cpp
ALL_EXAMPLE_FILES = \
AnalysePlayBin \
AnalysePlayPBN \
AnalyseAllPlaysBin \
AnalyseAllPlaysPBN \
CalcDDtable.cpp \
CalcDDtablePBN.cpp \
CalcAllTables.cpp \
CalcAllTablesPBN.cpp \
DealerPar.cpp \
Par.cpp \
SolveBoard.cpp \
SolveBoardPBN.cpp \
SolveAllBoards.cpp
OBJ_FILES = $(subst .cpp,.obj,$(COMMON_SOURCE_FILES))
EX_OBJ_FILES = $(subst .cpp,.obj,$(ALL_EXAMPLE_FILES))
EX_EXE_FILES = $(subst .cpp,.exe,$(ALL_EXAMPLE_FILES))
AnalysePlayBin: $(OBJ_FILES) AnalysePlayBin.obj
link /LTCG $(OBJ_FILES) $(DLIB) AnalysePlayBin.obj /out:AnalysePlayBin.exe
AnalysePlayPBN: $(OBJ_FILES) AnalysePlayPBN.obj
link /LTCG $(OBJ_FILES) $(DLIB) AnalysePlayPBN.obj /out:AnalysePlayPBN.exe
AnalyseAllPlaysBin: $(OBJ_FILES) AnalyseAllPlaysBin.obj
link /LTCG $(OBJ_FILES) $(DLIB) AnalyseAllPlaysBin.obj /out:AnalyseAllPlaysBin.exe
AnalyseAllPlaysPBN: $(OBJ_FILES) AnalyseAllPlaysPBN.obj
link /LTCG $(OBJ_FILES) $(DLIB) AnalyseAllPlaysPBN.obj /out:AnalyseAllPlaysPBN.exe
CalcDDtable: $(OBJ_FILES) CalcDDtable.obj
link /LTCG $(OBJ_FILES) $(DLIB) CalcDDtable.obj /out:CalcDDtable.exe
CalcDDtablePBN: $(OBJ_FILES) CalcDDtablePBN.obj
link /LTCG $(OBJ_FILES) $(DLIB) CalcDDtablePBN.obj /out:CalcDDtablePBN.exe
CalcAllTables: $(OBJ_FILES) CalcAllTables.obj
link /LTCG $(OBJ_FILES) $(DLIB) CalcAllTables.obj /out:CalcAllTables.exe
CalcAllTablesPBN: $(OBJ_FILES) CalcAllTablesPBN.obj
link /LTCG $(OBJ_FILES) $(DLIB) CalcAllTablesPBN.obj /out:CalcAllTablesPBN.exe
DealerPar: $(OBJ_FILES) DealerPar.obj
link /LTCG $(OBJ_FILES) $(DLIB) DealerPar.obj /out:DealerPar.exe
Par: $(OBJ_FILES) Par.obj
link /LTCG $(OBJ_FILES) $(DLIB) Par.obj /out:Par.exe
SolveBoard: $(OBJ_FILES) SolveBoard.obj
link /LTCG $(OBJ_FILES) $(DLIB) SolveBoard.obj /out:SolveBoard.exe
SolveBoardPBN: $(OBJ_FILES) SolveBoardPBN.obj
link /LTCG $(OBJ_FILES) $(DLIB) SolveBoardPBN.obj /out:SolveBoardPBN.exe
SolveAllBoards: $(OBJ_FILES) SolveAllBoards.obj
link /LTCG $(OBJ_FILES) $(DLIB) SolveAllBoards.obj /out:SolveAllBoards.exe
%.obj: %.cpp
$(CC) $(CC_FULL_FLAGS) /c $< /Fo$*.obj
depend:
makedepend -Y -o.obj -- $(cOMMON_SOURCE_FILES) $(ALL_EXAMPLE_FILES)
clean:
rm -f $(OBJ_FILES) $(EX_OBJ_FILES) $(EX_EXE_FILES) $(DLL) $(DLIB)
# DO NOT DELETE
CalcDDtable.obj: ../include/dll.h hands.h
CalcDDtablePBN.obj: ../include/dll.h hands.h
CalcAllTables.obj: ../include/dll.h hands.h
CalcAllTablesPBN.obj: ../include/dll.h hands.h
DealerPar.obj: ../include/dll.h hands.h
Par.obj: ../include/dll.h hands.h
SolveBoard.obj: ../include/dll.h hands.h
SolveBoardPBN.obj: ../include/dll.h hands.h
SolveAllBoards.obj: ../include/dll.h hands.h
|