-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtc.mk
73 lines (61 loc) · 2.23 KB
/
tc.mk
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
#
# makefile overlord for task collections
# author: d. brian larkins
# created: 1/22/18
#
#CC = clang
CC = oshcc
CXX = oshc++
MPICC = mpicc
GCFLAGS = -Wno-unused-parameter -Wno-format-overflow -Wall -Wextra -Werror -g3 -rdynamic -O3 -D_XOPEN_SOURCE=700 -D_BSD_SOURCE -D_DEFAULT_SOURCE -msse4.2 # development
#GCFLAGS = -Wall -g3 -rdynamic -O3 -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200112L -msse4.2 # development
#GCFLAGS = -fsanitize=address -fsanitize=undefined -Wall --std=c99 -g3 -rdynamic -O3 -D_POSIX_C_SOURCE=200112L -msse4.2 # development
#GCFLAGS = -fsanitize=address -fsanitize=undefined -fno-sanitize-recover -g3 -Wall -rdynamic -D_POSIX_C_SOURCE=200112L -msse4.2
#GCFLAGS = -g3 -Wall
#GCFLAGS = -g3 -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast
#GCFLAGS = --std=c99 -g -pg -O3 -D_POSIX_C_SOURCE=200112L -msse4.2 # profiling
#GCFLAGS = -DNDEBUG --std=c99 -O3 -D_POSIX_C_SOURCE=200112L -msse4.2 # performance
#GCFLAGS = -O3
GCXXFLAGS = -Wall -g -rdynamic -O3 -D_POSIX_C_SOURCE=200112L -msse4.2 # development
#GCXXFLAGS = -pg -g -O3 -D_POSIX_C_SOURCE=200112L -msse4.2 # profiling
CFLAGS = $(GCFLAGS) -I. -I$(TC_TOP)/include
CXXFLAGS = $(GCXXFLAGS) -I. -I$(TC_TOP)/include
CFLAGSMPI = $(GCFLAGS) -I. -I$(TC_TOP)/includempi
#LDFLAGS=-L$(PORTALS_LIBDIR)
MATH_LIB = -lm
RT_LIB = -lrt
PMI_LIB = -lpmi
PTHREAD_LIB = -lpthread
TC_INSTALL_LIBDIR = $(TC_TOP)/lib
TC_LIB = $(TC_INSTALL_LIBDIR)/libtc.a
TC_LIBDIRS = $(TC_TOP)/libtc
TC_LIBS = $(TC_LIB) $(PTHREAD_LIB) $(PMI_LIB) $(PORTALS_LIB) $(MATH_LIB) $(RT_LIB)
.PHONY: all
default: all
checkflags:
ifndef TC_TOP
@echo You must define TC_TOP with the path of the top-level directory
@false
endif
.PHONY: tclibs $(TC_LIBDIRS)
tclibs: tcheaders $(TC_LIBDIRS)
.PHONY: tcheaders
tcheaders:
for dir in $(TC_LIBDIRS); do \
$(MAKE) -C $$dir headers; \
done; \
for dir in $(TC_LIBMPIDIRS); do \
$(MAKE) -C $$dir headers; \
done
$(TC_LIBDIRS):
$(MAKE) -C $@ GCFLAGS="$(GCFLAGS)" CC="$(CC)"
$(TC_LIBMPIDIRS):
$(MAKE) -C $@ GCFLAGS="$(GCFLAGS)" CC="$(MPICC)"
tcclean:
for dir in $(TC_LIBDIRS); do \
$(MAKE) -C $$dir clean; \
done;\
for dir in $(TC_LIBMPIDIRS); do \
$(MAKE) -C $$dir clean; \
done;\
rm -f *~ *.o gmon.out $(LOCAL_EXECS)