Merge pull request #3219 from austinpagan/Gemm.ErrorFix
[platform/upstream/openblas.git] / relapack / Makefile
1 TOPDIR  = ..
2 include $(TOPDIR)/Makefile.system
3
4
5
6 SRC = $(wildcard src/*.c)
7
8 SRC1 = \
9         src/slauum.c src/clauum.c src/dlauum.c src/zlauum.c \
10         src/strtri.c src/dtrtri.c src/ctrtri.c src/ztrtri.c \
11         src/spotrf.c src/dpotrf.c src/cpotrf.c src/zpotrf.c \
12         src/sgetrf.c src/dgetrf.c src/cgetrf.c src/zgetrf.c
13
14 SRC2 = \
15         src/cgbtrf.c src/cpbtrf.c src/dsytrf_rec2.c src/sgbtrf.c src/ssytrf_rook.c src/zhegst.c src/zsytrf_rec2.c \
16         src/cgemmt.c src/dgbtrf.c src/dsytrf_rook.c src/sgemmt.c src/ssytrf_rook_rec2.c src/zhetrf.c src/zsytrf_rook.c \
17         src/csytrf.c src/dgemmt.c src/dsytrf_rook_rec2.c src/stgsyl.c src/zhetrf_rec2.c src/zsytrf_rook_rec2.c \
18         src/chegst.c src/csytrf_rec2.c src/dtgsyl.c src/strsyl.c src/zhetrf_rook.c src/ztgsyl.c \
19         src/chetrf.c src/csytrf_rook.c src/dtrsyl.c src/spbtrf.c src/strsyl_rec2.c src/zhetrf_rook_rec2.c src/ztrsyl.c \
20         src/chetrf_rec2.c src/csytrf_rook_rec2.c src/dpbtrf.c  src/dtrsyl_rec2.c  src/ztrsyl_rec2.c \
21         src/chetrf_rook.c src/ctgsyl.c src/ssygst.c src/zgbtrf.c src/zpbtrf.c  \
22         src/chetrf_rook_rec2.c src/ctrsyl.c src/dsygst.c src/f2c.c src/ssytrf.c src/zgemmt.c \
23         src/ctrsyl_rec2.c src/dsytrf.c src/lapack_wrappers.c src/ssytrf_rec2.c src/zsytrf.c
24
25 SRCX = \
26         src/cgbtrf.c src/cpbtrf.c src/ctrtri.c src/dsytrf_rec2.c src/sgbtrf.c src/ssytrf_rook.c src/zhegst.c src/zsytrf_rec2.c \
27         src/cgemmt.c src/cpotrf.c src/dgbtrf.c src/dsytrf_rook.c src/sgemmt.c src/ssytrf_rook_rec2.c src/zhetrf.c src/zsytrf_rook.c \
28         src/cgetrf.c src/csytrf.c src/dgemmt.c src/dsytrf_rook_rec2.c src/sgetrf.c src/stgsyl.c src/zhetrf_rec2.c src/zsytrf_rook_rec2.c \
29         src/chegst.c src/csytrf_rec2.c src/dgetrf.c src/dtgsyl.c src/slauum.c src/strsyl.c src/zhetrf_rook.c src/ztgsyl.c \
30         src/chetrf.c src/csytrf_rook.c src/dlauum.c src/dtrsyl.c src/spbtrf.c src/strsyl_rec2.c src/zhetrf_rook_rec2.c src/ztrsyl.c \
31         src/chetrf_rec2.c src/csytrf_rook_rec2.c src/dpbtrf.c  src/dtrsyl_rec2.c src/spotrf.c src/strtri.c src/zlauum.c src/ztrsyl_rec2.c \
32         src/chetrf_rook.c src/ctgsyl.c src/dpotrf.c src/dtrtri.c src/ssygst.c src/zgbtrf.c src/zpbtrf.c src/ztrtri.c \
33         src/chetrf_rook_rec2.c src/ctrsyl.c src/dsygst.c src/f2c.c src/ssytrf.c src/zgemmt.c src/zpotrf.c \
34         src/clauum.c src/ctrsyl_rec2.c src/dsytrf.c src/lapack_wrappers.c src/ssytrf_rec2.c src/zgetrf.c src/zsytrf.c
35
36 OBJS1 = $(SRC1:%.c=%.$(SUFFIX))
37 OBJS2 = $(SRC2:%.c=%.o)
38 OBJS = $(OBJS1) $(OBJS2)
39
40 TEST_SUITS = \
41         slauum dlauum clauum zlauum \
42         spotrf dpotrf cpotrf zpotrf \
43         spbtrf dpbtrf cpbtrf zpbtrf \
44         ssygst dsygst chegst zhegst \
45         ssytrf dsytrf csytrf chetrf zsytrf zhetrf \
46         sgetrf dgetrf cgetrf zgetrf \
47         sgbtrf dgbtrf cgbtrf zgbtrf \
48         strsyl dtrsyl ctrsyl ztrsyl \
49         stgsyl dtgsyl ctgsyl ztgsyl \
50         sgemmt dgemmt cgemmt zgemmt
51 TESTS = $(TEST_SUITS:%=test/%.pass)  # dummies
52 TEST_EXES = $(TEST_SUITS:%=test/%.x)
53
54 LINK_TEST = -L$(TOPDIR) -lopenblas -lgfortran -lm
55
56 .SECONDARY: $(TEST_EXES)
57 .PHONY: test
58
59 # ReLAPACK compilation
60
61 libs:   $(OBJS)
62         @echo "Building ReLAPACK library $(LIBNAME)"
63         $(AR) -r  $(TOPDIR)/$(LIBNAME) $(OBJS)
64         $(RANLIB) $(TOPDIR)/$(LIBNAME)
65
66 %.$(SUFFIX): %.c config.h
67         $(CC) $(CFLAGS) -c $< -o $@
68
69 %.o: %.c config.h
70         $(CC) $(CFLAGS) -c $< -o $@
71
72
73 # ReLAPACK testing
74
75 test: $(TEST_EXES) $(TESTS)
76         @echo "passed all tests"
77
78 test/%.pass: test/%.x
79         @echo -n $*:
80         @./$< > /dev/null && echo " pass" || (echo " FAIL" && ./$<)
81
82 test/s%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
83         $(CC) $(CFLAGS) -DDT_PREFIX=s $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
84
85 test/d%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
86         $(CC) $(CFLAGS) -DDT_PREFIX=d $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
87
88 test/c%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
89         $(CC) $(CFLAGS) -DDT_PREFIX=c $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
90
91 test/z%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
92         $(CC) $(CFLAGS) -DDT_PREFIX=z $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
93
94
95 # cleaning up
96
97 clean:
98         rm -f  $(OBJS) test/util.$(SUFFIX) test/*.x