Files
contract/build/Makefile.example
2017-08-28 20:51:08 -07:00

105 lines
3.3 KiB
Makefile
Executable File

# $Id$ #
# Supported C++ compliers `make CXX=compiler ...', where compiler is:
# GCC GNU g++ (e.g., on Linux) (default)
# MSVC Microsoft Visual C++ (e.g., on Cygwin)
CXX=GCC
bin:=./bin
ifeq ($(CXX), GCC)
cpp_nodef:=g++ -Wall -I./include
def:=-D
out:=-o
endif
ifeq ($(CXX), MSVC)
# Don't use /Wall for MSVC has very verbose warnings (even in Boost?!).
cpp_nodef:=source $(bin)/env-MSVC8.sh && cl.exe /EHsc /I./include
def:=/D
out:=/Fe
endif
cpp:=$(cpp_nodef) $(def)DBC_ALL $(def)DBC_CONFIG_LOG_LEVEL=DBC_LOG_LEVEL_ALL
src:=./example
build:=./build/example
codedoc:=./codedoc/example
all: Str DBC_by_Example OO_SW_Construction CPP_Prog_Lang CPP_Std_Proposal doc
clean:
rm -rf build
force_:
Str: str str_codeapi
str: force_
mkdir -p $(build)
# Always compile with DBC_ALL and DBC_LOG_LEVEL_ALL as used in doc.
$(cpp_nodef) $(def)DBC_ALL $(def)DBC_CONFIG_LOG_LEVEL=DBC_LOG_LEVEL_ALL $(src)/str/str.cpp $(out)$(build)/str
str_codeapi: force_
mkdir -p $(build)
# Always compile with DBC_ALL and DBC_LOG_LEVEL_ALL as used in doc.
$(cpp_nodef) $(def)DBC_ALL $(def)DBC_CONFIG_LOG_LEVEL=DBC_LOG_LEVEL_ALL $(src)/str/str-codeapi.cpp $(out)$(build)/str-codeapi
DBC_by_Example: CustomerManager Stack Dictionary SimpleQueue Courier NameList Observer Counter
CustomerManager: force_
mkdir -p $(build)
$(cpp) $(src)/DBC_by_Example/CustomerManager/CustomerManager.cpp $(src)/DBC_by_Example/CustomerManager/main.cpp $(out)$(build)/CustomerManager
Stack: force_
mkdir -p $(build)
$(cpp) $(src)/DBC_by_Example/Stack/main.cpp $(out)$(build)/Stack
Dictionary: force_
mkdir -p $(build)
$(cpp) $(src)/DBC_by_Example/Dictionary/main.cpp $(out)$(build)/Dictionary
SimpleQueue: force_
mkdir -p $(build)
$(cpp) $(src)/DBC_by_Example/SimpleQueue/main.cpp $(out)$(build)/SimpleQueue
Courier: force_
mkdir -p $(build)
$(cpp) $(src)/DBC_by_Example/Courier/couriers.cpp $(src)/DBC_by_Example/Courier/main.cpp $(out)$(build)/Courier
NameList: force_
mkdir -p $(build)
$(cpp) $(src)/DBC_by_Example/NameList/names.cpp $(src)/DBC_by_Example/NameList/main.cpp $(out)$(build)/NameList
Observer: force_
mkdir -p $(build)
$(cpp) $(src)/DBC_by_Example/Observer/main.cpp $(out)$(build)/Observer
Counter: force_
mkdir -p $(build)
$(cpp) $(src)/DBC_by_Example/Counter/main.cpp $(out)$(build)/Counter
OO_SW_Construction: Stack4 Stack3 Gcd
Stack4: force_
mkdir -p $(build)
$(cpp) $(src)/OO_SW_Construction/Stack4/main.cpp $(out)$(build)/Stack4
Stack3: force_
mkdir -p $(build)
$(cpp) $(src)/OO_SW_Construction/Stack3/main.cpp $(out)$(build)/Stack3
Gcd: force_
mkdir -p $(build)
$(cpp) $(src)/OO_SW_Construction/Gcd/main.cpp $(out)$(build)/Gcd
Philosophers: force_
mkdir -p $(build)
$(cpp) $(src)/OO_SW_Construction/Philosophers/Philosophers.cpp $(out)$(build)/Philosophers
CPP_Prog_Lang: String
String: force_
mkdir -p $(build)
$(cpp) $(src)/CPP_Prog_Lang/String/main.cpp $(out)$(build)/String
Java_Conc_in_Practice: Sequence
Sequence: force_
mkdir -p $(build)
$(cpp) $(src)/Java_Conc_in_Practice/Sequence.cpp $(out)$(build)/Sequence
CPP_Std_Proposal: vector
vector: force_
mkdir -p $(build)
$(cpp) $(src)/CPP_Std_Proposal/vector/main.cpp $(out)$(build)/vector
shape: force_
mkdir -p $(build)
$(cpp) $(src)/CPP_Std_Proposal/shape/main.cpp $(out)$(build)/shape
doc: force_
mkdir -p $(codedoc)
doxygen codedoc/Doxyfile.example