Files
lapack/XBLAS/Makefile
T

534 lines
12 KiB
Makefile

# Top-level makefile for XBLAS.
#
# To generate all libraries and test results, just type make
#
# To generate the library, type make lib
#
# To generate all the library, and the test library, type make test-lib
#
# To clean out all the object files, type make clean
#
include make.conf
include $(MAKEINC)
LIB = dot-lib sum-lib axpby-lib waxpby-lib gemv-lib ge_sum_mv-lib gbmv-lib symv-lib spmv-lib sbmv-lib hemv-lib hpmv-lib hbmv-lib trmv-lib tpmv-lib trsv-lib tbsv-lib gemm-lib symm-lib hemm-lib gemv2-lib
TESTS = dot-test sum-test axpby-test waxpby-test gemv-test ge_sum_mv-test gbmv-test symv-test spmv-test sbmv-test hemv-test hpmv-test hbmv-test trmv-test tpmv-test trsv-test tbsv-test gemm-test symm-test hemm-test gemv2-test
TEST_LIB = dot-test-lib sum-test-lib axpby-test-lib waxpby-test-lib gemv-test-lib ge_sum_mv-test-lib gbmv-test-lib symv-test-lib spmv-test-lib sbmv-test-lib hemv-test-lib hpmv-test-lib hbmv-test-lib trmv-test-lib tpmv-test-lib trsv-test-lib tbsv-test-lib gemm-test-lib symm-test-lib hemm-test-lib gemv2-test-lib
CLEAN = dot-clean sum-clean axpby-clean waxpby-clean gemv-clean ge_sum_mv-clean gbmv-clean symv-clean spmv-clean sbmv-clean hemv-clean hpmv-clean hbmv-clean trmv-clean tpmv-clean trsv-clean tbsv-clean gemm-clean symm-clean hemm-clean gemv2-clean dot2-clean
SRC_DIR = src
TEST_DIR = testing
all: tests
$(TEST_LIB): lib
test-lib: lib $(TEST_LIB)
$(TESTS): test-lib
tests: test-lib $(TESTS)
rm -f testall.result testall.summary
cat $(TEST_DIR)/test-dot/dot.results >> testall.result
cat $(TEST_DIR)/test-sum/sum.results >> testall.result
cat $(TEST_DIR)/test-axpby/axpby.results >> testall.result
cat $(TEST_DIR)/test-waxpby/waxpby.results >> testall.result
cat $(TEST_DIR)/test-gemv/gemv.results >> testall.result
cat $(TEST_DIR)/test-ge_sum_mv/ge_sum_mv.results >> testall.result
cat $(TEST_DIR)/test-gbmv/gbmv.results >> testall.result
cat $(TEST_DIR)/test-symv/symv.results >> testall.result
cat $(TEST_DIR)/test-spmv/spmv.results >> testall.result
cat $(TEST_DIR)/test-sbmv/sbmv.results >> testall.result
cat $(TEST_DIR)/test-hemv/hemv.results >> testall.result
cat $(TEST_DIR)/test-hpmv/hpmv.results >> testall.result
cat $(TEST_DIR)/test-hbmv/hbmv.results >> testall.result
cat $(TEST_DIR)/test-trmv/trmv.results >> testall.result
cat $(TEST_DIR)/test-tpmv/tpmv.results >> testall.result
cat $(TEST_DIR)/test-trsv/trsv.results >> testall.result
cat $(TEST_DIR)/test-tbsv/tbsv.results >> testall.result
cat $(TEST_DIR)/test-gemm/gemm.results >> testall.result
cat $(TEST_DIR)/test-symm/symm.results >> testall.result
cat $(TEST_DIR)/test-hemm/hemm.results >> testall.result
cat $(TEST_DIR)/test-gemv2/gemv2.results >> testall.result
grep 'FAIL/TOTAL' testall.result >testall.summary
cat testall.summary
common-lib:
cd $(SRC_DIR)/common && $(MAKE)
common-test-lib:
cd $(TEST_DIR)/common && $(MAKE)
lib: $(LIB)
cd $(SRC_DIR)/common && $(MAKE) lib
cd $(SRC_DIR)/dot && $(MAKE) lib
cd $(SRC_DIR)/sum && $(MAKE) lib
cd $(SRC_DIR)/axpby && $(MAKE) lib
cd $(SRC_DIR)/waxpby && $(MAKE) lib
cd $(SRC_DIR)/gemv && $(MAKE) lib
cd $(SRC_DIR)/ge_sum_mv && $(MAKE) lib
cd $(SRC_DIR)/gbmv && $(MAKE) lib
cd $(SRC_DIR)/symv && $(MAKE) lib
cd $(SRC_DIR)/spmv && $(MAKE) lib
cd $(SRC_DIR)/sbmv && $(MAKE) lib
cd $(SRC_DIR)/hemv && $(MAKE) lib
cd $(SRC_DIR)/hpmv && $(MAKE) lib
cd $(SRC_DIR)/hbmv && $(MAKE) lib
cd $(SRC_DIR)/trmv && $(MAKE) lib
cd $(SRC_DIR)/tpmv && $(MAKE) lib
cd $(SRC_DIR)/trsv && $(MAKE) lib
cd $(SRC_DIR)/tbsv && $(MAKE) lib
cd $(SRC_DIR)/gemm && $(MAKE) lib
cd $(SRC_DIR)/symm && $(MAKE) lib
cd $(SRC_DIR)/hemm && $(MAKE) lib
cd $(SRC_DIR)/gemv2 && $(MAKE) lib
# custom test-dot2 stuff
dot2-test-lib: lib
cd $(TEST_DIR)/test-dot2 && $(MAKE) do_test_dot2
dot2-test: dot2-test-lib
cd $(TEST_DIR)/test-dot2 && $(MAKE)
dot2-clean:
cd $(TEST_DIR)/test-dot2 && $(MAKE) clean
# dot stuff
dot: dot-test
dot-lib: common-lib
cd $(SRC_DIR)/dot && $(MAKE)
dot-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-dot && $(MAKE) do_test_dot
dot-test: dot-test-lib
cd $(TEST_DIR)/test-dot && $(MAKE)
dot-clean:
cd $(SRC_DIR)/dot && $(MAKE) clean
cd $(TEST_DIR)/test-dot && $(MAKE) clean
# sum stuff
sum: sum-test
sum-lib: common-lib
cd $(SRC_DIR)/sum && $(MAKE)
sum-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-sum && $(MAKE) do_test_sum
sum-test: sum-test-lib
cd $(TEST_DIR)/test-sum && $(MAKE)
sum-clean:
cd $(SRC_DIR)/sum && $(MAKE) clean
cd $(TEST_DIR)/test-sum && $(MAKE) clean
# axpby stuff
axpby: axpby-test
axpby-lib: common-lib
cd $(SRC_DIR)/axpby && $(MAKE)
axpby-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-axpby && $(MAKE) do_test_axpby
axpby-test: axpby-test-lib
cd $(TEST_DIR)/test-axpby && $(MAKE)
axpby-clean:
cd $(SRC_DIR)/axpby && $(MAKE) clean
cd $(TEST_DIR)/test-axpby && $(MAKE) clean
# waxpby stuff
waxpby: waxpby-test
waxpby-lib: common-lib
cd $(SRC_DIR)/waxpby && $(MAKE)
waxpby-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-waxpby && $(MAKE) do_test_waxpby
waxpby-test: waxpby-test-lib
cd $(TEST_DIR)/test-waxpby && $(MAKE)
waxpby-clean:
cd $(SRC_DIR)/waxpby && $(MAKE) clean
cd $(TEST_DIR)/test-waxpby && $(MAKE) clean
# gemv stuff
gemv: gemv-test
gemv-lib: common-lib
cd $(SRC_DIR)/gemv && $(MAKE)
gemv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-gemv && $(MAKE) do_test_gemv
gemv-test: gemv-test-lib
cd $(TEST_DIR)/test-gemv && $(MAKE)
gemv-clean:
cd $(SRC_DIR)/gemv && $(MAKE) clean
cd $(TEST_DIR)/test-gemv && $(MAKE) clean
# ge_sum_mv stuff
ge_sum_mv: ge_sum_mv-test
ge_sum_mv-lib: common-lib
cd $(SRC_DIR)/ge_sum_mv && $(MAKE)
ge_sum_mv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-ge_sum_mv && $(MAKE) do_test_ge_sum_mv
ge_sum_mv-test: ge_sum_mv-test-lib
cd $(TEST_DIR)/test-ge_sum_mv && $(MAKE)
ge_sum_mv-clean:
cd $(SRC_DIR)/ge_sum_mv && $(MAKE) clean
cd $(TEST_DIR)/test-ge_sum_mv && $(MAKE) clean
# gbmv stuff
gbmv: gbmv-test
gbmv-lib: common-lib
cd $(SRC_DIR)/gbmv && $(MAKE)
gbmv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-gbmv && $(MAKE) do_test_gbmv
gbmv-test: gbmv-test-lib
cd $(TEST_DIR)/test-gbmv && $(MAKE)
gbmv-clean:
cd $(SRC_DIR)/gbmv && $(MAKE) clean
cd $(TEST_DIR)/test-gbmv && $(MAKE) clean
# symv stuff
symv: symv-test
symv-lib: common-lib
cd $(SRC_DIR)/symv && $(MAKE)
symv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-symv && $(MAKE) do_test_symv
symv-test: symv-test-lib
cd $(TEST_DIR)/test-symv && $(MAKE)
symv-clean:
cd $(SRC_DIR)/symv && $(MAKE) clean
cd $(TEST_DIR)/test-symv && $(MAKE) clean
# spmv stuff
spmv: spmv-test
spmv-lib: common-lib
cd $(SRC_DIR)/spmv && $(MAKE)
spmv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-spmv && $(MAKE) do_test_spmv
spmv-test: spmv-test-lib
cd $(TEST_DIR)/test-spmv && $(MAKE)
spmv-clean:
cd $(SRC_DIR)/spmv && $(MAKE) clean
cd $(TEST_DIR)/test-spmv && $(MAKE) clean
# sbmv stuff
sbmv: sbmv-test
sbmv-lib: common-lib
cd $(SRC_DIR)/sbmv && $(MAKE)
sbmv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-sbmv && $(MAKE) do_test_sbmv
sbmv-test: sbmv-test-lib
cd $(TEST_DIR)/test-sbmv && $(MAKE)
sbmv-clean:
cd $(SRC_DIR)/sbmv && $(MAKE) clean
cd $(TEST_DIR)/test-sbmv && $(MAKE) clean
# hemv stuff
hemv: hemv-test
hemv-lib: common-lib
cd $(SRC_DIR)/hemv && $(MAKE)
hemv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-hemv && $(MAKE) do_test_hemv
hemv-test: hemv-test-lib
cd $(TEST_DIR)/test-hemv && $(MAKE)
hemv-clean:
cd $(SRC_DIR)/hemv && $(MAKE) clean
cd $(TEST_DIR)/test-hemv && $(MAKE) clean
# hpmv stuff
hpmv: hpmv-test
hpmv-lib: common-lib
cd $(SRC_DIR)/hpmv && $(MAKE)
hpmv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-hpmv && $(MAKE) do_test_hpmv
hpmv-test: hpmv-test-lib
cd $(TEST_DIR)/test-hpmv && $(MAKE)
hpmv-clean:
cd $(SRC_DIR)/hpmv && $(MAKE) clean
cd $(TEST_DIR)/test-hpmv && $(MAKE) clean
# hbmv stuff
hbmv: hbmv-test
hbmv-lib: common-lib
cd $(SRC_DIR)/hbmv && $(MAKE)
hbmv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-hbmv && $(MAKE) do_test_hbmv
hbmv-test: hbmv-test-lib
cd $(TEST_DIR)/test-hbmv && $(MAKE)
hbmv-clean:
cd $(SRC_DIR)/hbmv && $(MAKE) clean
cd $(TEST_DIR)/test-hbmv && $(MAKE) clean
# trmv stuff
trmv: trmv-test
trmv-lib: common-lib
cd $(SRC_DIR)/trmv && $(MAKE)
trmv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-trmv && $(MAKE) do_test_trmv
trmv-test: trmv-test-lib
cd $(TEST_DIR)/test-trmv && $(MAKE)
trmv-clean:
cd $(SRC_DIR)/trmv && $(MAKE) clean
cd $(TEST_DIR)/test-trmv && $(MAKE) clean
# tpmv stuff
tpmv: tpmv-test
tpmv-lib: common-lib
cd $(SRC_DIR)/tpmv && $(MAKE)
tpmv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-tpmv && $(MAKE) do_test_tpmv
tpmv-test: tpmv-test-lib
cd $(TEST_DIR)/test-tpmv && $(MAKE)
tpmv-clean:
cd $(SRC_DIR)/tpmv && $(MAKE) clean
cd $(TEST_DIR)/test-tpmv && $(MAKE) clean
# trsv stuff
trsv: trsv-test
trsv-lib: common-lib
cd $(SRC_DIR)/trsv && $(MAKE)
trsv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-trsv && $(MAKE) do_test_trsv
trsv-test: trsv-test-lib
cd $(TEST_DIR)/test-trsv && $(MAKE)
trsv-clean:
cd $(SRC_DIR)/trsv && $(MAKE) clean
cd $(TEST_DIR)/test-trsv && $(MAKE) clean
# tbsv stuff
tbsv: tbsv-test
tbsv-lib: common-lib
cd $(SRC_DIR)/tbsv && $(MAKE)
tbsv-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-tbsv && $(MAKE) do_test_tbsv
tbsv-test: tbsv-test-lib
cd $(TEST_DIR)/test-tbsv && $(MAKE)
tbsv-clean:
cd $(SRC_DIR)/tbsv && $(MAKE) clean
cd $(TEST_DIR)/test-tbsv && $(MAKE) clean
# gemm stuff
gemm: gemm-test
gemm-lib: common-lib
cd $(SRC_DIR)/gemm && $(MAKE)
gemm-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-gemm && $(MAKE) do_test_gemm
gemm-test: gemm-test-lib
cd $(TEST_DIR)/test-gemm && $(MAKE)
gemm-clean:
cd $(SRC_DIR)/gemm && $(MAKE) clean
cd $(TEST_DIR)/test-gemm && $(MAKE) clean
# symm stuff
symm: symm-test
symm-lib: common-lib
cd $(SRC_DIR)/symm && $(MAKE)
symm-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-symm && $(MAKE) do_test_symm
symm-test: symm-test-lib
cd $(TEST_DIR)/test-symm && $(MAKE)
symm-clean:
cd $(SRC_DIR)/symm && $(MAKE) clean
cd $(TEST_DIR)/test-symm && $(MAKE) clean
# hemm stuff
hemm: hemm-test
hemm-lib: common-lib
cd $(SRC_DIR)/hemm && $(MAKE)
hemm-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-hemm && $(MAKE) do_test_hemm
hemm-test: hemm-test-lib
cd $(TEST_DIR)/test-hemm && $(MAKE)
hemm-clean:
cd $(SRC_DIR)/hemm && $(MAKE) clean
cd $(TEST_DIR)/test-hemm && $(MAKE) clean
# gemv2 stuff
gemv2: gemv2-test
gemv2-lib: common-lib
cd $(SRC_DIR)/gemv2 && $(MAKE)
gemv2-test-lib: lib common-test-lib
cd $(TEST_DIR)/test-gemv2 && $(MAKE) do_test_gemv2
gemv2-test: gemv2-test-lib
cd $(TEST_DIR)/test-gemv2 && $(MAKE)
gemv2-clean:
cd $(SRC_DIR)/gemv2 && $(MAKE) clean
cd $(TEST_DIR)/test-gemv2 && $(MAKE) clean
# Test library dependencies
sum-test-lib: dot-test-lib
axpby-test-lib: dot-test-lib
waxpby-test-lib: dot-test-lib
gemv-test-lib: dot-test-lib
ge_sum_mv-test-lib: dot-test-lib gemv-test-lib symv-test-lib gemm-test-lib
gbmv-test-lib: dot-test-lib
symv-test-lib: dot-test-lib gemm-test-lib
spmv-test-lib: dot-test-lib symv-test-lib
sbmv-test-lib: dot-test-lib symv-test-lib
hemv-test-lib: dot-test-lib symv-test-lib
hbmv-test-lib: dot-test-lib symv-test-lib hemv-test-lib sbmv-test-lib
hpmv-test-lib: dot-test-lib symv-test-lib hemv-test-lib
trmv-test-lib: dot-test-lib
tpmv-test-lib: dot-test-lib
trsv-test-lib: dot-test-lib trmv-test-lib
tbsv-test-lib: dot-test-lib gbmv-test-lib trsv-test-lib
gemm-test-lib: dot-test-lib gemv-test-lib
symm-test-lib: dot-test-lib gemv-test-lib symv-test-lib
hemm-test-lib: dot-test-lib gemv-test-lib hemv-test-lib symv-test-lib symm-test-lib
gemv2-test-lib: dot2-test-lib gemv-test-lib
dot2-test-lib: dot-test-lib
# Cleaning stuff
clean: $(CLEAN)
cd $(SRC_DIR)/common && $(MAKE) clean
cd $(TEST_DIR)/common && $(MAKE) clean
dist-clean: clean
rm -f $(XBLASLIB) testall.result testall.summary
.PHONY: $(LIBS) $(TEST_LIB) $(TESTS) $(CLEAN) \
all test-lib tests common-lib common-test-lib lib clean dist-clean