-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
61 lines (51 loc) · 1.94 KB
/
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
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
# Copyright (c) 2017 Joshua Scoggins
#
# This software is provided 'as-is', without any express or implied
# warranty. In no event will the authors be held liable for any damages
# arising from the use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not
# claim that you wrote the original software. If you use this software
# in a product, an acknowledgment in the product documentation would be
# appreciated but is not required.
# 2. Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
# 3. This notice may not be removed or altered from any source distribution.
# Makefile for the quodigious application
OPTIMIZATION_FLAGS := -Ofast -fwhole-program -march=native -flto
# enable debugging
#DEBUG_FLAGS := -DDEBUG -g3
CXXFLAGS += -std=c++17 ${OPTIMIZATION_FLAGS} ${DEBUG_FLAGS}
LXXFLAGS = -std=c++17 ${OPTIMIZATION_FLAGS} -flto
PROGRAM = quodigious
PROGRAM2 = lquodigious
PROGRAM3 = tlquodigious
PROGS = ${PROGRAM} ${PROGRAM2} ${PROGRAM3}
all: ${PROGS}
${PROGRAM}: quodigious.o
@echo -n "Building quodigious... "
@${CXX} ${LXXFLAGS} -o ${PROGRAM} quodigious.o -lpthread
@echo done.
${PROGRAM2}: linearQuodigious.o
@echo -n "Building non-threaded quodigious... "
@${CXX} ${LXXFLAGS} -o ${PROGRAM2} linearQuodigious.o
@echo done.
${PROGRAM3}: templatedLinearQuodigious.o
@echo -n "Building non-threaded but templated quodigious... "
@${CXX} ${LXXFLAGS} -o ${PROGRAM3} templatedLinearQuodigious.o
@echo done.
%.o: %.cc
@echo -n Compiling $< into $@ ...
@${CXX} ${CXXFLAGS} -c $< -o $@
@echo done.
clean:
@echo -n cleaning...
@rm -rf *.o ${PROGS}
@echo done.
quodigious.o: qlib.h
linearQuodigious.o: qlib.h
templatedLinearQuodigious.o: qlib.h