File: Makefile

package info (click to toggle)
opari 1.1%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 728 kB
  • sloc: cpp: 2,005; ansic: 901; f90: 252; makefile: 128; sh: 86; fortran: 50
file content (78 lines) | stat: -rw-r--r-- 2,260 bytes parent folder | download | duplicates (5)
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
FLAGS = -O

# -- Linux / PGI compiler
F90 = pgf90
CC  = pgcc
OMPF90 = pgf90 -mp
OMPCC  = pgcc -mp
OMPCXX = pgCC -mp

# -- IBM / AIX compiler
#F90 = xlf -qextname
#CC  = xlc
#OMPF90 = xlf90_r -qsmp -qextname -qsuffix=cpp=F90
#OMPCC  = xlc_r -qsmp -D_OPENMP
#OMPCXX = xlC_r -qsmp -D_OPENMP

# -- SGI / IRIX compiler
#F90 = f90
#CC = cc
#OMPF90 = f90 -mp -cpp
#OMPCC  = cc -mp
#OMPCXX = CC -mp -LANG:std

all: test example

pomp_lib.o: pomp_lib.c pomp_lib.h
	$(OMPCC) $(FLAGS) -c pomp_lib.c

pomp_flib.o: pomp_flib.f90
	$(OMPF90) $(FLAGS) -c pomp_flib.f90

pomp_fwrapper.o: pomp_fwrapper.c pomp_lib.h
	@rm -f pomp_fwrapper_def.h
	$(CC) -c foos.c
	$(F90) foos.o getfname.f -o getfname -lc
	./getfname > pomp_fwrapper_def.h
	$(OMPCC) $(FLAGS) -c pomp_fwrapper.c

libpomp.a: pomp_lib.o pomp_flib.o pomp_fwrapper.o
	ar -rc libpomp.a pomp_lib.o pomp_flib.o pomp_fwrapper.o

test: ../tool/opari libpomp.a
	# Fortran test
	rm -f opari.rc
	../tool/opari -table opari.tab.c pomp_test.f90
	$(OMPCC) $(FLAGS) -c opari.tab.c
	$(OMPF90) $(FLAGS) pomp_test.mod.F90 opari.tab.o -L. -lpomp -o pomp_test_f
	# C test
	rm -f opari.rc
	../tool/opari -table opari.tab.c pomp_test.c
	$(OMPCC) $(FLAGS) -c opari.tab.c
	$(OMPCC) $(FLAGS) pomp_test.mod.c opari.tab.o -L. -lpomp -o pomp_test_c

example: ../tool/opari libpomp.a
	# Fortran example
	rm -f opari.rc
	../tool/opari -nosrc -table opari.tab.c transformations.f90
	$(OMPCC) $(FLAGS) -c opari.tab.c
	$(OMPF90) $(FLAGS) transformations.mod.f90 opari.tab.o -L. -lpomp -o trans_f
	# C example
	rm -f opari.rc
	../tool/opari -nosrc -table opari.tab.c transformations.c
	$(OMPCC) $(FLAGS) -c opari.tab.c
	$(OMPCC) $(FLAGS) transformations.mod.c opari.tab.o -L. -lpomp -o trans_c
	# C++ example
	rm -f opari.rc
	../tool/opari -nosrc -table opari.tab.c transformations.cc
	$(OMPCC) $(FLAGS) -c opari.tab.c
	$(OMPCXX) $(FLAGS) transformations.mod.cc opari.tab.o -L. -lpomp -o trans_cc

clean:
	rm -f core a.out *.o *.mod pomp_test_f pomp_test_c
	rm -f opari.tab.c opari.rc pomp_fwrapper_def.h
	rm -f pomp_test.mod.* pomp_test.*.opari.inc
	rm -f transformations.mod.* transformations.*.opari.inc
	rm -f trans_c trans_cc trans_f getfname libpomp.a
	rm -rf Templates.DB tempinc ti_files ii_files rii_files
	rm -rf SunWS_cache cxx_repository