Added DSP-only dgemm example.
[dense-linear-algebra-libraries/linalg.git] / Makefile
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 CBLAS_HEADERS   =$(LINALG_CBLAS_DIR)/include/cblas.h
12 CBLAS_HEADERS  +=$(LINALG_TICBLAS_DIR)/ticblas.h
13 CLAPACK_HEADERS =$(LINALG_CLAPACK_DIR)/INCLUDE/blaswrap.h  
14 CLAPACK_HEADERS+=$(LINALG_CLAPACK_DIR)/INCLUDE/clapack.h  
15 CLAPACK_HEADERS+=$(LINALG_CLAPACK_DIR)/INCLUDE/f2c.h  
17 ifeq ($(MEM_MODEL),Large)
18 BLIS_CFG   = c66xLarge
19 else ifeq ($(MEM_MODEL),Medium)
20 BLIS_CFG   = c66xMedium
21 else ifeq ($(MEM_MODEL),Small)
22 BLIS_CFG   = c66xSmall
23 endif
25 DSPlibs:
26         cd $(LINALG_CBLAS_DIR); make arch=C66 alllib; \
27         cd ../$(LINALG_BLIS_DIR); ./configure -p install/$(BLIS_CFG) c66x; make -j8 MEM_MODEL=$(MEM_MODEL) TARGET=$(TARGET) LIBOS=$(LIBOS); make install; \
28         cd ../$(LINALG_TICBLAS_DIR)/src; make MEM_MODEL=$(MEM_MODEL) TARGET=$(TARGET) LIBOS=$(LIBOS); cd ../lib; \
29         echo "combining BLIS, CBLAS, and TICBLAS libraries into one: libcblas.ae66"; \
30         mkdir -p objs; cd objs; rm *; ar x ../../../blis/install/c66xMedium/lib/libblis.ae66; mmv 'cblas*.o' 'blis_cblas#1.o'; \
31         ar -x ../../../cblas/lib/C66/libcblas.ae66; ar -x ../libticblas.ae66; chmod +rw *;cd ../../..; \
32         mkdir -p lib; cd lib; rm *; ar -cr libcblas.ae66 ../ticblas/lib/objs/*; 
35 ARMplusDSP:
36         cd $(LINALG_CBLAS_DIR); make arch=ARM alllib; \
37         cd ../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make -j8; make install; \
38         cd ../$(LINALG_BLASACC_DIR)/src; make MEM_MODEL=$(MEM_MODEL) TARGET=$(TARGET); cd ..; \
39         cd ../$(LINALG_CLAPACK_DIR); make f2clib; make cblaswrap; cd SRC; make -j8
42 cleanDSPlibs:
43         cd $(LINALG_CBLAS_DIR); make clean; \
44         cd ../$(LINALG_BLIS_DIR); ./configure -p install/$(BLIS_CFG) c66x; make -j8 clean; \
45         cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ../lib/objs; rm *; cd ../../..;
47 #DSPonly:
48         
49 BLIStest:
50         cd $(LINALG_BLIS_DIR)/testsuite; make lib=OpenCLCBLAS -j8 
52 BLAStest:
53         cd $(LINALG_CLAPACK_DIR)/BLAS/TESTING; make -f Makeblat1; make -f Makeblat2; make -f Makeblat3
55 CLAPACKtest:
56         cd $(LINALG_CLAPACK_DIR)/TESTING/MATGEN; make 
57         cd $(LINALG_CLAPACK_DIR)/TESTING/LIN; make
58         cd $(LINALG_CLAPACK_DIR)/TESTING/EIG; make
61 cleanARMplusDSP:
62         cd $(LINALG_CBLAS_DIR); make arch=ARM clean; make arch=C66 clean; \
63         cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ..; \
64         cd ../$(LINALG_BLIS_DIR); ./configure -p install/Large c66x; make clean; \
65         ./configure -p install/arm cortex-a15; make clean; \
66         cd ../$(LINALG_BLASACC_DIR); make clean; \
67         cd ../$(LINALG_BLIS_DIR)/testsuite; make clean; \
68         cd ../../$(LINALG_CLAPACK_DIR); make clean
69         
70 cleanARMplusDSP_AM57x:  
71         cd $(LINALG_CBLAS_DIR); make arch=ARM clean; make arch=C66 clean; \
72         cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ..; \
73         cd ../$(LINALG_BLIS_DIR); ./configure -p install/am57x am57x; make clean; \
74         ./configure -p install/arm cortex-a15; make clean; \
75         cd ../$(LINALG_BLASACC_DIR); make clean; \
76         cd ../$(LINALG_BLIS_DIR)/testsuite; make clean; \
77         cd ../../$(LINALG_CLAPACK_DIR); make clean
78         
79 cleanShannon:   
80         cd $(LINALG_CBLAS_DIR); make arch=ARM clean; make arch=C66 clean; \
81         cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ..; \
82         cd ../$(LINALG_BLIS_DIR); ./configure -p install/shannon shannon; make clean; \
83         ./configure -p install/arm cortex-a15; make clean; \
84         cd ../$(LINALG_BLASACC_DIR); make clean; \
85         cd ../$(LINALG_BLIS_DIR)/testsuite; make clean; \
86         cd ../../$(LINALG_CLAPACK_DIR); make clean
88 clean:
89         cd $(LINALG_CBLAS_DIR)/src; make arch=ARM clean; \
90         cd ../$(LINALG_TICBLAS_DIR)/src; make clean; cd ..; \
91         cd ../../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make clean; \
92         cd ../$(LINALG_BLASACC_DIR)/src; make -f Makefile.ARM cleanARM; \
93         cd ../../$(LINALG_CLAPACK_DIR); make clean
95 DSPportion:
96         cd $(LINALG_CBLAS_DIR); make arch=C66 alllib; \
97         cd ../$(LINALG_TICBLAS_DIR)/src; make; cd ..; \
98         cd ../$(LINALG_BLIS_DIR); ./configure -p install/c66x c66x; make -j8; make install; \
99         cd ../$(LINALG_BLASACC_DIR)/src; make ti_cblas_kernel.dsp_h
101 install:
102         install -m 755 -d ${DESTDIR}/usr/include
103         install -m 755 -d ${DESTDIR}/usr/lib
104         install -m 755 -d ${DESTDIR}/usr/share/doc/ti-linalg
105         install -m 755 -d ${DESTDIR}/usr/share/ti/examples/linalg       
106         cp $(LINALG_HEADERS) ${DESTDIR}/usr/include
107         cp $(LINALG_BLASACC_DIR)/lib/libcblas_armplusdsp.a ${DESTDIR}/usr/lib
108         cp $(LINALG_BLIS_DIR)/install/arm/lib/libblis-$(BLIS_VERSION)-cortex-a15.a ${DESTDIR}/usr/lib/libblis.a
109         cp -r ./examples/* ${DESTDIR}/usr/share/ti/examples/linalg
110         cp $(LINALG_CLAPACK_DIR)/lapack_ARM.a ${DESTDIR}/usr/lib/liblapack.a
111         cp $(LINALG_CLAPACK_DIR)/libcblaswr_ARM.a ${DESTDIR}/usr/lib/libcblaswr.a
112         cp $(LINALG_CLAPACK_DIR)/F2CLIBS/libf2c_ARM.a ${DESTDIR}/usr/lib/libf2c.a
113         cp docs/* ${DESTDIR}/usr/share/doc/ti-linalg
115 installDSPlib:
116         install -m 755 -d ${DESTDIR}/include
117         install -m 755 -d ${DESTDIR}/lib
118         cp $(CBLAS_HEADERS) ${DESTDIR}/include
119         cp ./lib/libcblas.ae66 ${DESTDIR}/lib
120         cp -r docs ${DESTDIR}