summaryrefslogtreecommitdiff
path: root/src/intersim/Makefile
blob: c4f47020f52ca888b95e8b7881aac564633fcf19 (plain)
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
CREATESHAREDLIB  ?=0
CPP = g++ $(SNOW)
CC = gcc $(SNOW)

ifeq ($(INTEL),1)
	CPP = icpc
	CC = icc
endif


YACC   = bison -d
LEX    = flex
PURIFY = /usr/bin/purify
QUANT  = /usr/bin/quantify


INTERFACE = interconnect_interface.cpp
DEBUG = 0 
CPPFLAGS = -g -Wall 
ifneq ($(DEBUG),1)
CPPFLAGS = -O3 -g 
else
CPPFLAGS += 
endif

TEST = -DUNIT_TEST 
ifneq ($(UNIT_TEST),1)
TEST = 
endif

        CPPFLAGS += -fPIC

PROG     = intersim

CPP_SRCS = $(INTERFACE) \
	config_utils.cpp \
	booksim_config.cpp \
	module.cpp \
	router.cpp \
	iq_router.cpp \
	event_router.cpp \
	vc.cpp \
	routefunc.cpp \
	traffic.cpp \
	allocator.cpp \
	maxsize.cpp \
	network.cpp \
	singlenet.cpp \
	kncube.cpp \
	fly.cpp \
	trafficmanager.cpp \
	random_utils.cpp \
	buffer_state.cpp \
	stats.cpp \
	pim.cpp \
	islip.cpp \
	loa.cpp \
	wavefront.cpp \
	misc_utils.cpp \
	credit.cpp \
	outputset.cpp \
	flit.cpp \
	selalloc.cpp \
	arbiter.cpp \
	injection.cpp \
	rng_wrapper.cpp \
	rng_double_wrapper.cpp \
	statwraper.cpp

LEX_OBJS  = configlex.o
YACC_OBJS = config_tab.o

#--- Make rules ---

OBJS = $(CPP_SRCS:.cpp=.o) $(LEX_OBJS) $(YACC_OBJS)

.PHONY: clean
.PRECIOUS: %_tab.cpp %_tab.hpp %lex.cpp

lib$(PROG).a: $(OBJS)
	ar rcs lib$(PROG).a $(OBJS)

purify: $(OBJS)
	$(PURIFY) -always-use-cache-dir $(CPP) $(OBJS) -o $(PROG) -L/usr/lib

quantify: $(OBJS)
	$(QUANT) -always-use-cache-dir $(CPP) $(OBJS) -o $(PROG) -L/usr/lib

%lex.o: %lex.cpp %_tab.hpp
	$(CPP) $(CPPFLAGS) -c $< -o $@

%.o: %.cpp
	$(CPP) $(EXTRA) $(CPPFLAGS) $(TEST) -c $< -o $@
 
%.o: %.c
	$(CPP) $(CPPFLAGS) $(TEST) $(VCSFLAGS) -c $< -o $@

%_tab.cpp: %.y
	$(YACC) -b$* -p$* $<
	cp -f $*.tab.c $*_tab.cpp

%_tab.hpp: %_tab.cpp
	cp -f $*.tab.h $*_tab.hpp

%lex.cpp: %.l
	$(LEX) -P$* -o$@ $<
	cp configlex.cpp configlex.cpp.orig
	awk '/configlineno = 1/ {if (line == 0) {line = 1; print} next;} //{print}' configlex.cpp.orig > configlex.cpp

clean:
	rm -f $(OBJS) *_tab.cpp *_tab.hpp *.tab.c *.tab.h *lex.cpp
	rm -f $(PROG)
	rm -f lib$(PROG).a 
	rm -f lib$(PROG).so 

interconnect_interface.o: ../cuda-sim/ptx.tab.h

../cuda-sim/ptx.tab.h:
	        make -C ../cuda-sim/ ptx.tab.c