2 .PHONY: clean ARMonly linalg cleanall install build prebuild
4 LINALG_BLIS_DIR = blis
5 LINALG_CBLAS_DIR = cblas
6 LINALG_TICBLAS_DIR = ticblas
7 LINALG_BLASACC_DIR = blasblisacc
8 LINALG_CLAPACK_DIR = clapack
9 BLIS_VERSION = $(shell cat $(LINALG_BLIS_DIR)/version)
11 LINALG_HEADERS =$(LINALG_CLAPACK_DIR)/INCLUDE/blaswrap.h
12 LINALG_HEADERS+=$(LINALG_CLAPACK_DIR)/INCLUDE/clapack.h
13 LINALG_HEADERS+=$(LINALG_CLAPACK_DIR)/INCLUDE/f2c.h
14 LINALG_HEADERS+=$(LINALG_CBLAS_DIR)/include/cblas.h
16 ifeq ($(MEM_MODEL),Large)
17 BLIS_CFG = c66xLarge
18 else ifeq ($(TARGET),Medium)
19 BLIS_CFG = c66xMedium
20 else ifeq ($(TARGET),Small)
21 BLIS_CFG = c66xSmall
22 endif
24 build: ARMonly
25 prebuild: DSPonly
26 linalg: ARMplusDSP
28 ARMonly:
29 cd $(LINALG_CBLAS_DIR); make arch=ARM alllib; \
30 cd ../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make -j8; make install; \
31 cd ../$(LINALG_BLASACC_DIR)/src; make -f Makefile.ARM; \
32 cd ../../$(LINALG_CLAPACK_DIR); make f2clib; make cblaswrap; cd SRC; make
34 ARMplusDSP_K2H:
35 cd $(LINALG_CBLAS_DIR); make arch=ARM alllib; make arch=C66 alllib; \
36 cd ../$(LINALG_BLIS_DIR); ./configure -p install/c66xLarge c66x; make mem_model=Large -j8; make install; \
37 ./configure -p install/arm cortex-a15; make -j8; make install; \
38 cd ../$(LINALG_TICBLAS_DIR)/src; make mem_model=Large; cd ..; \
39 cd ../$(LINALG_BLASACC_DIR)/src; make mem_model=Large; cd..; \
40 cd ../$(LINALG_CLAPACK_DIR); make f2clib; make cblaswrap; cd SRC; make -j8
42 ARMplusDSP_AM57x:
43 cd $(LINALG_CBLAS_DIR); make arch=ARM alllib; make arch=C66 alllib; \
44 cd ../$(LINALG_TICBLAS_DIR)/src; make MEM_MODEL=Small; cd ..; \
45 cd ../$(LINALG_BLIS_DIR); ./configure -p install/am57x am57x; make -j8; make install; \
46 ./configure -p install/arm cortex-a15; make -j8; make install; \
47 cd ../$(LINALG_BLASACC_DIR); make crossAM57x; \
48 cd ../$(LINALG_CLAPACK_DIR); make f2clib; make cblaswrap; cd SRC; make -j8
50 DSPlibs:
51 cd $(LINALG_CBLAS_DIR); make arch=C66 alllib; \
52 cd ../$(LINALG_BLIS_DIR); ./configure -p install/$(BLIS_CFG) c66x; make mem_model=$(MEM_MODEL) -j8; make install; \
53 cd ../$(LINALG_TICBLAS_DIR)/src; make mem_model=$(MEM_MODEL); cd ..; \
55 ARMplusDSP:
56 cd $(LINALG_CBLAS_DIR); make arch=ARM alllib; \
57 cd ../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make -j8; make install; \
58 cd ../$(LINALG_BLASACC_DIR)/src; make mem_model=Large; cd..; \
59 cd ../$(LINALG_CLAPACK_DIR); make f2clib; make cblaswrap; cd SRC; make -j8
61 BLIStest:
62 cd $(LINALG_BLIS_DIR)/testsuite; make lib=OpenCLCBLAS -j8
64 BLAStest:
65 cd $(LINALG_CLAPACK_DIR)/BLAS/TESTING; make -f Makeblat1; make -f Makeblat2; make -f Makeblat3
67 CLAPACKtest:
68 cd $(LINALG_CLAPACK_DIR)/TESTING/MATGEN; make
69 cd $(LINALG_CLAPACK_DIR)/TESTING/LIN; make
70 cd $(LINALG_CLAPACK_DIR)/TESTING/EIG; make
73 cleanARMplusDSP_K2H:
74 cd $(LINALG_CBLAS_DIR); make arch=ARM clean; make arch=C66 clean; \
75 cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ..; \
76 cd ../$(LINALG_BLIS_DIR); ./configure -p install/c66x c66x; make clean; \
77 ./configure -p install/arm cortex-a15; make clean; \
78 cd ../$(LINALG_BLASACC_DIR); make clean; \
79 cd ../$(LINALG_BLIS_DIR)/testsuite; make clean; \
80 cd ../../$(LINALG_CLAPACK_DIR); make clean
82 cleanARMplusDSP_AM57x:
83 cd $(LINALG_CBLAS_DIR); make arch=ARM clean; make arch=C66 clean; \
84 cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ..; \
85 cd ../$(LINALG_BLIS_DIR); ./configure -p install/am57x am57x; make clean; \
86 ./configure -p install/arm cortex-a15; make clean; \
87 cd ../$(LINALG_BLASACC_DIR); make clean; \
88 cd ../$(LINALG_BLIS_DIR)/testsuite; make clean; \
89 cd ../../$(LINALG_CLAPACK_DIR); make clean
91 cleanShannon:
92 cd $(LINALG_CBLAS_DIR); make arch=ARM clean; make arch=C66 clean; \
93 cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ..; \
94 cd ../$(LINALG_BLIS_DIR); ./configure -p install/shannon shannon; make clean; \
95 ./configure -p install/arm cortex-a15; make clean; \
96 cd ../$(LINALG_BLASACC_DIR); make clean; \
97 cd ../$(LINALG_BLIS_DIR)/testsuite; make clean; \
98 cd ../../$(LINALG_CLAPACK_DIR); make clean
100 clean:
101 cd $(LINALG_CBLAS_DIR)/src; make arch=ARM clean; \
102 cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ..; \
103 cd ../../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make clean; \
104 cd ../$(LINALG_BLASACC_DIR)/src; make -f Makefile.ARM cleanARM; \
105 cd ../../$(LINALG_CLAPACK_DIR); make clean
107 DSPportion:
108 cd $(LINALG_CBLAS_DIR); make arch=C66 alllib; \
109 cd ../$(LINALG_TICBLAS_DIR)/src; make; cd ..; \
110 cd ../$(LINALG_BLIS_DIR); ./configure -p install/c66x c66x; make -j8; make install; \
111 cd ../$(LINALG_BLASACC_DIR)/src; make ti_cblas_kernel.dsp_h
113 install:
114 install -m 755 -d ${DESTDIR}/usr/include
115 install -m 755 -d ${DESTDIR}/usr/lib
116 install -m 755 -d ${DESTDIR}/usr/share/doc/ti-linalg
117 install -m 755 -d ${DESTDIR}/usr/share/ti/examples/linalg
118 cp $(LINALG_HEADERS) ${DESTDIR}/usr/include
119 cp $(LINALG_BLASACC_DIR)/lib/libcblas_armplusdsp.a ${DESTDIR}/usr/lib
120 cp $(LINALG_BLIS_DIR)/install/arm/lib/libblis-$(BLIS_VERSION)-cortex-a15.a ${DESTDIR}/usr/lib/libblis.a
121 cp -r ./examples/* ${DESTDIR}/usr/share/ti/examples/linalg
122 cp $(LINALG_CLAPACK_DIR)/lapack_ARM.a ${DESTDIR}/usr/lib/liblapack.a
123 cp $(LINALG_CLAPACK_DIR)/libcblaswr_ARM.a ${DESTDIR}/usr/lib/libcblaswr.a
124 cp $(LINALG_CLAPACK_DIR)/F2CLIBS/libf2c_ARM.a ${DESTDIR}/usr/lib/libf2c.a
125 cp docs/* ${DESTDIR}/usr/share/doc/ti-linalg