# 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