107 lines
3.8 KiB
Makefile
107 lines
3.8 KiB
Makefile
TOPDIR = ..
|
|
include $(TOPDIR)/Makefile.system
|
|
|
|
ifeq ($(RELAPACK_REPLACE),0)
|
|
RELAPREFIX=RELAPACK_
|
|
INCLALL=-DINCLUDE_ALL=0
|
|
else
|
|
INCLALL=-DINCLUDE_ALL=1
|
|
endif
|
|
|
|
SRC = $(wildcard src/*.c)
|
|
|
|
SRC1 = \
|
|
slauum.c clauum.c dlauum.c zlauum.c \
|
|
strtri.c dtrtri.c ctrtri.c ztrtri.c \
|
|
spotrf.c dpotrf.c cpotrf.c zpotrf.c \
|
|
sgetrf.c dgetrf.c cgetrf.c zgetrf.c
|
|
|
|
SRC2 = \
|
|
cgbtrf.c cpbtrf.c dsytrf_rec2.c sgbtrf.c ssytrf_rook.c zhegst.c zsytrf_rec2.c \
|
|
cgemmt.c dgbtrf.c dsytrf_rook.c sgemmt.c ssytrf_rook_rec2.c zhetrf.c zsytrf_rook.c \
|
|
csytrf.c dgemmt.c dsytrf_rook_rec2.c stgsyl.c zhetrf_rec2.c zsytrf_rook_rec2.c \
|
|
chegst.c csytrf_rec2.c dtgsyl.c strsyl.c zhetrf_rook.c ztgsyl.c \
|
|
chetrf.c csytrf_rook.c dtrsyl.c spbtrf.c strsyl_rec2.c zhetrf_rook_rec2.c ztrsyl.c \
|
|
chetrf_rec2.c csytrf_rook_rec2.c dpbtrf.c dtrsyl_rec2.c ztrsyl_rec2.c \
|
|
chetrf_rook.c ctgsyl.c ssygst.c zgbtrf.c zpbtrf.c \
|
|
chetrf_rook_rec2.c ctrsyl.c dsygst.c f2c.c ssytrf.c zgemmt.c \
|
|
ctrsyl_rec2.c dsytrf.c lapack_wrappers.c ssytrf_rec2.c zsytrf.c
|
|
|
|
SRCX = \
|
|
cgbtrf.c cpbtrf.c ctrtri.c dsytrf_rec2.c sgbtrf.c ssytrf_rook.c zhegst.c zsytrf_rec2.c \
|
|
cgemmt.c cpotrf.c dgbtrf.c dsytrf_rook.c sgemmt.c ssytrf_rook_rec2.c zhetrf.c zsytrf_rook.c \
|
|
cgetrf.c csytrf.c dgemmt.c dsytrf_rook_rec2.c sgetrf.c stgsyl.c zhetrf_rec2.c zsytrf_rook_rec2.c \
|
|
chegst.c csytrf_rec2.c dgetrf.c dtgsyl.c slauum.c strsyl.c zhetrf_rook.c ztgsyl.c \
|
|
chetrf.c csytrf_rook.c dlauum.c dtrsyl.c spbtrf.c strsyl_rec2.c zhetrf_rook_rec2.c ztrsyl.c \
|
|
chetrf_rec2.c csytrf_rook_rec2.c dpbtrf.c dtrsyl_rec2.c spotrf.c strtri.c zlauum.c ztrsyl_rec2.c \
|
|
chetrf_rook.c ctgsyl.c dpotrf.c dtrtri.c ssygst.c zgbtrf.c zpbtrf.c ztrtri.c \
|
|
chetrf_rook_rec2.c ctrsyl.c dsygst.c f2c.c ssytrf.c zgemmt.c zpotrf.c \
|
|
clauum.c ctrsyl_rec2.c dsytrf.c lapack_wrappers.c ssytrf_rec2.c zgetrf.c zsytrf.c
|
|
|
|
|
|
OBJS1 = $(SRC1:%.c=src/$(RELAPREFIX)%.$(SUFFIX))
|
|
OBJS2 = $(SRC2:%.c=src/$(RELAPREFIX)%.o)
|
|
OBJS = $(OBJS1) $(OBJS2)
|
|
|
|
TEST_SUITS = \
|
|
sgemmt dgemmt cgemmt zgemmt
|
|
|
|
# slauum dlauum clauum zlauum \
|
|
# spotrf dpotrf cpotrf zpotrf \
|
|
# spbtrf dpbtrf cpbtrf zpbtrf \
|
|
# ssygst dsygst chegst zhegst \
|
|
# ssytrf dsytrf csytrf chetrf zsytrf zhetrf \
|
|
# sgetrf dgetrf cgetrf zgetrf \
|
|
# sgbtrf dgbtrf cgbtrf zgbtrf \
|
|
# strsyl dtrsyl ctrsyl ztrsyl \
|
|
# stgsyl dtgsyl ctgsyl ztgsyl \
|
|
|
|
TESTS = $(TEST_SUITS:%=test/%.pass) # dummies
|
|
TEST_EXES = $(TEST_SUITS:%=test/%.x)
|
|
|
|
LINK_TEST = -L$(TOPDIR) -lopenblas -lgfortran -lm
|
|
|
|
.SECONDARY: $(TEST_EXES)
|
|
.PHONY: test
|
|
|
|
# ReLAPACK compilation
|
|
|
|
libs: $(OBJS)
|
|
@echo "Building ReLAPACK library $(LIBNAME)"
|
|
$(AR) -r $(TOPDIR)/$(LIBNAME) $(OBJS)
|
|
$(RANLIB) $(TOPDIR)/$(LIBNAME)
|
|
|
|
src/$(RELAPREFIX)%.$(SUFFIX): src/%.c relapack_config.h
|
|
$(CC) -v $(CFLAGS) -I. $(INCLALL) -c $< -o $@
|
|
|
|
src/$(RELAPREFIX)%.o: src/%.c relapack_config.h
|
|
$(CC) -v $(CFLAGS) -I. $(INCLALL) -c $< -o $@
|
|
|
|
|
|
# ReLAPACK testing
|
|
|
|
test: $(TEST_EXES) $(TESTS)
|
|
@echo "passed all tests"
|
|
|
|
test/%.pass: test/%.x
|
|
@echo -n $*:
|
|
@./$< > /dev/null && echo " pass" || (echo " FAIL" && ./$<)
|
|
|
|
test/s%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
|
|
$(CC) $(CFLAGS) -DDT_PREFIX=s $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
|
|
|
|
test/d%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
|
|
$(CC) $(CFLAGS) -DDT_PREFIX=d $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
|
|
|
|
test/c%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
|
|
$(CC) $(CFLAGS) -DDT_PREFIX=c $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
|
|
|
|
test/z%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
|
|
$(CC) $(CFLAGS) -DDT_PREFIX=z $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
|
|
|
|
|
|
# cleaning up
|
|
|
|
clean:
|
|
rm -f $(OBJS) test/util.$(SUFFIX) test/*.x
|