-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
35 lines (24 loc) · 1015 Bytes
/
Makefile
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
CXX=g++-9
CXXFLAGS=-O3 -Wall -Wextra -std=c++17 -I Shared -Wno-return-type
MAINFILE=main.cpp
KARGER_MIN_CUT=KargerMinCut
KARGER_MIN_CUT_TIMEOUT=KargerMinCutTimeout
KARGER_STEIN_MIN_CUT=KargerSteinMinCut
OUT_DIR="."
EXT=".out"
all: ensure_build_dir algs
algs: ${KARGER_MIN_CUT} ${KARGER_MIN_CUT_TIMEOUT} ${KARGER_STEIN_MIN_CUT}
${KARGER_MIN_CUT}:
${CXX} ${CXXFLAGS} "${KARGER_MIN_CUT}/${MAINFILE}" -o "${OUT_DIR}/${KARGER_MIN_CUT}${EXT}"
${KARGER_MIN_CUT_TIMEOUT}:
${CXX} ${CXXFLAGS} -pthread "${KARGER_MIN_CUT_TIMEOUT}/${MAINFILE}" -o "${OUT_DIR}/${KARGER_MIN_CUT_TIMEOUT}${EXT}"
${KARGER_STEIN_MIN_CUT}:
${CXX} ${CXXFLAGS} "${KARGER_STEIN_MIN_CUT}/${MAINFILE}" -o "${OUT_DIR}/${KARGER_STEIN_MIN_CUT}${EXT}"
ensure_build_dir:
mkdir -p ${OUT_DIR}
# report:
# cd report; make pdf1
.PHONY: all algs ensure_build_dir clear
.PHONY: ${KARGER_MIN_CUT} ${KARGER_MIN_CUT_TIMEOUT} ${KARGER_STEIN_MIN_CUT}
clear:
rm "${KARGER_MIN_CUT}${EXT}" "${KARGER_MIN_CUT_TIMEOUT}${EXT}" "${KARGER_STEIN_MIN_CUT}${EXT}"