summaryrefslogtreecommitdiff
path: root/Makefile.am
blob: 65463c3c1d990e7f92daa0a73682adb84ec04afb (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
SUBDIRS = omega/omega_lib/obj omega/code_gen/obj
build_date = "\"`date +%m/%d/%Y`\""

## Core Libraries ##
core_libs     = -lm -lrose -lrt -lutil -lomega -lcodegen -ldl
core_libs    += -lboost_date_time -lboost_filesystem -lboost_program_options
core_libs    += -lboost_regex -lboost_system -lboost_thread -lboost_wave

core_libdirs  = -Lomega/code_gen/obj -Lomega/omega_lib/obj
core_libdirs += -L$(ROSEHOME)/lib -L$(BOOSTHOME)/lib



## Core Includes ##
core_includes  = -Iomega/include -I$(ROSEHOME)/include
core_includes += -I$(BOOSTHOME)/include


## Source ##
# Core #
core_src  = dep.cc
core_src += irtools.cc
core_src += loop.cc
core_src += loop_basic.cc
core_src += loop_datacopy.cc
core_src += loop_extra.cc
core_src += loop_tile.cc
core_src += loop_unroll.cc
core_src += omegatools.cc

# chill #
# cudachill #
cudachill_src  = mem_mapping_utils.cc
cudachill_src += loop_cuda_rose.cc

# IR #
#  chill
ir_chill_src      = ir_rose.cc
ir_chill_src     += ir_rose_utils.cc

#  cudachill
ir_cudachill_src  = ir_rose.cc
ir_cudachill_src += ir_rose_utils.cc
ir_cudachill_src += ir_cudarose.cc
ir_cudachill_src += ir_cuda_rose_utils.cc

# runner (interface) #
#  cc
chill_script_runner_src     = 
chill_python_runner_src     = chill_run.cc chill_run_util.cc chillmodule.cc
chill_lua_runner_src        = chill_run.cc chill_run_util.cc chill_env.cc
#  yacc
chill_script_yacc_src       = lex.yy.cc parser.tab.cc
chill_lua_yacc_src          = parse_expr.yy.cc parse_expr.tab.cc
chill_python_yacc_src       = parse_expr.yy.cc parse_expr.tab.cc



## Interface ##
# Libs/Source/Flags #
if PYTHON_OPT
runner_libs           = -lpython$(PYTHON_VERSION)
runner_libdirs        = -L$(PYTHON_LIBDIR)
runner_includes       = -I$(PYTHON_INCDIR)
chill_runner_src      = $(chill_python_runner_src) $(chill_python_yacc_src)
cudachill_runner_src  = $(chill_python_runner_src) $(chill_python_yacc_src)
yacc_src              = $(chill_python_yacc_src)
runner_flags          = -DCHILL_BUILD_DATE=$(build_date)
runner_flags         += -DCHILL_BUILD_VERSION=$(CHILL_BUILD_VERSION)
runner_flags         += -DPYTHON
else
if LUA_OPT
runner_libs           = -llua -lreadline -lhistory -lpthread -ldl
runner_libdirs        = -L$(LUAHOME)/lib
runner_includes       = -I$(LUAHOME)/include
chill_runner_src      = $(chill_lua_runner_src) $(chill_lua_yacc_src)
cudachill_runner_src  = $(chill_lua_runner_src) $(chill_lua_yacc_src)
yacc_src              = $(chill_lua_yacc_src)
runner_flags          = -DCHILL_BUILD_DATE=$(build_date)
runner_flags         += -DCHILL_BUILD_VERSION=$(CHILL_BUILD_VERSION)
runner_flags         += -DLUA
else
runner_libs           =
runner_libdirs        =
runner_includes       =
chill_runner_src      = $(chill_script_runner_src) $(chill_script_yacc_src)
yacc_src              = $(chill_script_yacc_src)
runner_flags          = -DCHILL_BUILD_DATE=$(build_date)
runner_flags         += -DCHILL_BUILD_VERSION=$(CHILL_BUILD_VERSION)
endif
endif



## Yacc ##
# config
BUILT_SOURCES=$(yacc_src)
AM_YFLAGS=-d -t

# rules
lex.yy.cc: parser.ll parser.tab.cc
	flex++ parser.ll

parser.tab.cc: parser.yy
	bison -t -d $<

parse_expr.yy.cc: parse_expr.tab.cc parse_expr.ll
	flex -o parse_expr.yy.cc parse_expr.ll

parse_expr.tab.cc: parse_expr.yy
	bison -t -d parse_expr.yy



## Common ##
common_cppflags  = $(core_includes) $(runner_includes)
common_cppflags += $(runner_flags)
common_cppflags += -DBUILD_ROSE
common_libs      = $(core_libs) $(runner_libs)
common_libdirs   = $(core_libdirs) $(runner_libdirs)

## Binaries ##
if CUDACHILL_OPT
bin_PROGRAMS=cudachill
else
bin_PROGRAMS=chill
endif

cudachill_CPPFLAGS  =-DCUDACHILL $(common_cppflags)
cudachill_LDADD     =$(common_libs)
cudachill_LDFLAGS   =$(common_libdirs)
cudachill_SOURCES   =$(core_src) $(cudachill_runner_src) $(cudachill_src) $(ir_cudachill_src)

chill_CPPFLAGS  =$(common_cppflags) $(chill_runner_cppflags)
chill_LDADD     =$(common_libs)
chill_LDFLAGS   =$(common_libdirs)
chill_SOURCES   =$(core_src) $(chill_runner_src) $(chill_src) $(ir_chill_src)