1#
2#   /**-------------------------------------------------------------------**
3#    **                              CLooG                                **
4#    **-------------------------------------------------------------------**
5#    **                            makefile                               **
6#    **-------------------------------------------------------------------**
7#    **                   First version: march 6th 2003                   **
8#    **-------------------------------------------------------------------**/
9#
10# makefile for checking.
11
12#/*****************************************************************************
13# *               CLooG : the Chunky Loop Generator (experimental)            *
14# *****************************************************************************
15# *                                                                           *
16# * Copyright (C) 2003 Cedric Bastoul                                         *
17# *                                                                           *
18# * This library is free software; you can redistribute it and/or             *
19# * modify it under the terms of the GNU Lesser General Public                *
20# * License as published by the Free Software Foundation; either              *
21# * version 2.1 of the License, or (at your option) any later version.        *
22# *                                                                           *
23# * This library is distributed in the hope that it will be useful,           *
24# * but WITHOUT ANY WARRANTY; without even the implied warranty of            *
25# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
26# * Lesser General Public License for more details.                           *
27# *                                                                           *
28# * You should have received a copy of the GNU Lesser General Public          *
29# * License along with this library; if not, write to the Free Software       *
30# * Foundation, Inc., 51 Franklin Street, Fifth Floor,                        *
31# * Boston, MA  02110-1301  USA                                               *
32# *                                                                           *
33# * CLooG, the Chunky Loop Generator                                          *
34# * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr                        *
35# * This file has been written with the help of the Bart Kienhuis's checking  *
36# * makefile for PipLib.                                                      *
37# *                                                                           *
38# *****************************************************************************/
39
40if NO_ISL
41GENERATE_TEST =
42else
43GENERATE_TEST = generate_test
44endif
45noinst_PROGRAMS = $(GENERATE_TEST)
46INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
47LDADD = ../libcloog-isl.la
48generate_test_SOURCES = generate_test.c
49
50FORCE:
51../libcloog-isl.la: FORCE
52	cd ..; $(MAKE) $(AM_MAKEFLAGS) libcloog-isl.la
53
54ROOT = ..
55
56FINITE_CLOOGTEST_C = \
57	0D-1 \
58	0D-2 \
59	0D-3 \
60	1point-1 \
61	1point-2 \
62	4-param \
63	basic-bounds-1 \
64	basic-bounds-2 \
65	basic-bounds-3 \
66	basic-bounds-4 \
67	basic-bounds-5 \
68	basic-bounds-6 \
69	block \
70	block2 \
71	block3 \
72	byu98-1-2-3 \
73	cholesky \
74	cholesky2 \
75	christian \
76	classen \
77	classen2 \
78	constant \
79	constbound \
80	darte \
81	dealII \
82	donotsimp \
83	dot \
84	dot2 \
85	double \
86	durbin_e_s \
87	emploi \
88	esced \
89	ex1 \
90	forwardsub-1-1-2 \
91	forwardsub-2-1-2-3 \
92	forwardsub-3-1-2 \
93	gauss \
94	gesced \
95	gesced2 \
96	gesced3 \
97	guide \
98	iftest \
99	iftest2 \
100	largeur \
101	levenshtein-1-2-3 \
102	lex \
103	lineality-1-2 \
104	lineality-2-1-2 \
105	logo \
106	logopar \
107	lu \
108	lu2 \
109	lub \
110	lux \
111	min-1-1 \
112	min-2-1 \
113	min-3-1 \
114	min-4-1 \
115	mode \
116	multi-mm-1 \
117	no_lindep \
118	orc \
119	rectangle \
120	singleton \
121	square+triangle-1-1-2-3 \
122	swim \
123	test \
124	thomasset \
125	tiling \
126	uday_scalars \
127	union \
128	vivien \
129	vivien2 \
130	walters \
131	walters2 \
132	walters3 \
133	wavefront \
134	yosr \
135	yosr2 \
136	non_optimal/nul_complex1 \
137	non_optimal/usvd_e_t \
138	non_optimal/youcef \
139	reservoir/cholesky2 \
140	reservoir/fusion1 \
141	reservoir/fusion2 \
142	reservoir/jacobi2 \
143	reservoir/jacobi3 \
144	reservoir/lim-lam1 \
145	reservoir/lim-lam2 \
146	reservoir/lim-lam3 \
147	reservoir/lim-lam4 \
148	reservoir/lim-lam5 \
149	reservoir/lim-lam6 \
150	reservoir/liu-zhuge1 \
151	reservoir/loechner3 \
152	reservoir/loechner4 \
153	reservoir/loechner5 \
154	reservoir/mg-interp2 \
155	reservoir/mg-interp \
156	reservoir/mg-psinv \
157	reservoir/mg-resid \
158	reservoir/mg-rprj3 \
159	reservoir/pingali1 \
160	reservoir/pingali2 \
161	reservoir/pingali3 \
162	reservoir/pingali4 \
163	reservoir/pingali5 \
164	reservoir/pingali6 \
165	reservoir/QR \
166	reservoir/tang-xue1 \
167	reservoir/two
168
169CLOOG_ISL_TEST_C = \
170	isl/mod \
171	isl/mod2 \
172	isl/mod3 \
173	isl/mod4
174
175CLOOGTEST_C = \
176	infinite \
177	infinite2 \
178	infinite3 \
179	infinite4 \
180	$(FINITE_CLOOGTEST_C) \
181	$(CLOOG_ISL_TEST_C)
182
183CLOOGTEST_FORTRAN = \
184	dartef \
185	iftestf \
186	levenshtein-1-2-3f \
187	yosrf
188
189CLOOG_ISL_TEST_STRIDED = \
190	isl/mxm-shared
191
192CLOOGTEST_STRIDED = \
193	basic-bounds-2 \
194	mod4 \
195	nul_basic1 \
196	nul_basic2 \
197	nul_lcpc \
198	multi-stride \
199	multi-stride2 \
200	stride3 \
201	stride4 \
202	reservoir/bastoul3 \
203	reservoir/stride \
204	reservoir/stride2 \
205	$(CLOOG_ISL_TEST_STRIDED)
206
207if NO_OSL
208CLOOGTEST_OPENSCOP =
209else
210CLOOGTEST_OPENSCOP = \
211	openscop/matmult \
212	openscop/empty \
213	openscop/union
214endif
215
216SPECIAL_TESTS = \
217	isl/unroll \
218	isl/jacobi-shared \
219	isl/unroll2 \
220	backtrack \
221	vasilache \
222	merge \
223	equality \
224	equality2 \
225	otl \
226	param-split \
227	pouchet \
228	stride \
229	stride2 \
230	sor1d
231
232SPECIAL_OPTIONS = \
233	'isl/unroll -first-unroll 1' \
234	'isl/jacobi-shared -f 4 -l -1 -override -strides 1 -sh 1' \
235	'isl/unroll2 -first-unroll 1' \
236	'backtrack -f 1 -backtrack' \
237	'vasilache -f 8 -l 9' \
238	'merge -f -1' \
239	'equality -f -1 -l 2 -override' \
240	'equality2 -f -1 -l 4 -esp 1 -override' \
241	'otl -block 1 -esp 0 -otl 0' \
242	'param-split -f -1' \
243	'pouchet -f 3 -l 7' \
244	'stride -f -1 -strides 1' \
245	'stride2 -f -1 -strides 1' \
246	'sor1d -f -1'
247
248generate:
249	@echo "             /*-----------------------------------------------*"
250	@echo "              *                 Generate files                *"
251	@echo "              *-----------------------------------------------*/"
252	@for x in $(CLOOGTEST_C) ; do \
253		echo "Generate $$x.c" ; \
254		$(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.c ; \
255	done ; \
256	for x in $(CLOOGTEST_FORTRAN) ; do \
257		echo "Generate $$x.f" ; \
258		$(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.f ; \
259	done ; \
260	for x in $(CLOOGTEST_STRIDED) ; do \
261		echo "Generate $$x.c" ; \
262		$(top_builddir)/cloog $(srcdir)/$$x.cloog \
263			-strides 1 -o $(srcdir)/$$x.c ; \
264	done ; \
265	for x in $(CLOOGTEST_OPENSCOP) ; do \
266		echo "Generate $$x.c" ; \
267		$(top_builddir)/cloog $(srcdir)/$$x.scop \
268		-openscop -o $(srcdir)/$$x.c ; \
269	done ; \
270	for line in $(SPECIAL_OPTIONS); do \
271		options=`echo $$line | sed -e 's/^[^ ]* //'`; \
272		x=`echo $$line | sed -e 's/ .*//'`; \
273		echo "Generate file $$x ($$options)" ; \
274		$(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \
275		    $$options > $(srcdir)/$$x.c ; \
276	done
277
278generate_good:
279	@for x in $(FINITE_CLOOGTEST_C) ; do \
280		echo "Generate $$x.good.c" ; \
281		$(top_builddir)/cloog$(EXEEXT) -callable 1 $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \
282	done; \
283	for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \
284		echo "Generate $$x.good.c ($$options)" ; \
285		$(top_builddir)/cloog$(EXEEXT) -callable 1 $$options $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \
286	done; done
287
288valgrind:
289	@echo "             /*-----------------------------------------------*"
290	@echo "              *            Checking files by Valgrind         *"
291	@echo "              *-----------------------------------------------*/"
292	for x in $(CLOOGTEST_C) ; do \
293		echo "Valgrinding $$x.c" ; \
294		valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \
295	done ; \
296	for x in $(CLOOGTEST_FORTRAN) ; do \
297		echo "Valgrinding $$x.f" ; \
298		valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \
299	done
300
301CHECKER := "$(srcdir)/checker.sh"
302
303TESTS_ENVIRONMENT = \
304	top_builddir=$(top_builddir) \
305	srcdir=$(srcdir) \
306	EXEXT=$(EXEEXT) \
307	CHECKER=$(CHECKER) \
308	COMPILE="$(COMPILE)" \
309	LINK="$(LINK)" \
310	FINITE_CLOOGTEST_C="$(FINITE_CLOOGTEST_C)" \
311	CLOOGTEST_C="$(CLOOGTEST_C)" \
312	CLOOGTEST_FORTRAN="$(CLOOGTEST_FORTRAN)" \
313	CLOOGTEST_STRIDED="$(CLOOGTEST_STRIDED)" \
314	CLOOGTEST_OPENSCOP="$(CLOOGTEST_OPENSCOP)" \
315	SPECIAL_OPTIONS="$(SPECIAL_OPTIONS)"
316
317test_run: generate_test$(EXEEXT)
318	$(TESTS_ENVIRONMENT) \
319	$(srcdir)/check_run.sh
320
321check_SCRIPTS = \
322	$(srcdir)/check_c.sh \
323	$(srcdir)/check_fortran.sh \
324	$(srcdir)/check_strided.sh \
325	$(srcdir)/check_openscop.sh \
326	$(srcdir)/check_special.sh
327
328TESTS = $(check_SCRIPTS)
329
330EXTRA_DIST = \
331	$(check_SCRIPTS) \
332	$(srcdir)/checker.sh \
333	$(srcdir)/check_run.sh \
334	$(CLOOGTEST_C:%=%.cloog) \
335	$(CLOOGTEST_C:%=%.c) \
336	$(FINITE_CLOOGTEST_C:%=%.good.c) \
337	$(CLOOGTEST_FORTRAN:%=%.cloog) \
338	$(CLOOGTEST_FORTRAN:%=%.f) \
339	$(CLOOGTEST_STRIDED:%=%.cloog) \
340	$(CLOOGTEST_STRIDED:%=%.c) \
341	$(CLOOGTEST_OPENSCOP:%=%.scop) \
342	$(CLOOGTEST_OPENSCOP:%=%.c) \
343	$(SPECIAL_TESTS:%=%.cloog) \
344	$(SPECIAL_TESTS:%=%.c) \
345	$(SPECIAL_TESTS:%=%.good.c)
346