312ca05146bb20117ba755759e4ed905f284af78
[dense-linear-algebra-libraries/linalg.git] / src / ti / linalg / 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 -f *; ar x ../../../blis/install/$(BLIS_CFG)/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 -f *; ar -cr libcblas.ae66 ../ticblas/lib/objs/*; cd .. 
34 ARMlibs:
35         cd $(LINALG_CBLAS_DIR); make arch=ARM alllib; \
36         cd ../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make -j8; make install; \
37         cd ../$(LINALG_CLAPACK_DIR); make f2clib; make cblaswrap; cd SRC; make -j8; cd ..
39 ARMplusDSP: DSPlibs ARMlibs
40         cd $(LINALG_BLASACC_DIR)/src; make MEM_MODEL=$(MEM_MODEL) TARGET=$(TARGET); cd ../..; \
41         cd lib; rm -f *; \
42         cp ../$(LINALG_BLASACC_DIR)/lib/libcblas_armplusdsp.a .; \
43         cp ../$(LINALG_BLIS_DIR)/install/arm/lib/libblis.a .; \
44         ar -x libblis.a; mmv "cblas_*.o" "blis_cblas_#1.o"; ar -x libcblas_armplusdsp.a; rm *.a; \
45         ar -cr libcblas_armplusdsp.a *.o; rm *.o; cd ..; \
46         cp $(LINALG_CLAPACK_DIR)/lapack_ARM.a ./lib/liblapack.a; \
47         cp $(LINALG_CLAPACK_DIR)/libcblaswr_ARM.a ./lib/libcblaswr.a; \
48         cp $(LINALG_CLAPACK_DIR)/F2CLIBS/libf2c_ARM.a ./lib/libf2c.a
50 cleanDSPlibs:
51         cd $(LINALG_CBLAS_DIR); make arch=C66 clean; \
52         cd ../$(LINALG_BLIS_DIR); ./configure -p install/$(BLIS_CFG) c66x; make -j8 clean; rm install/$(BLIS_CFG)/lib/*; rm install/$(BLIS_CFG)/include/blis/*; \
53         cd ../$(LINALG_TICBLAS_DIR)/src; make clean; \
54         cd ../..; rm lib/*
56 cleanARMlibs:
57         cd $(LINALG_CBLAS_DIR); make arch=ARM clean; \
58         cd ../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make clean; \
59         cd ../$(LINALG_BLASACC_DIR); make clean; \
60         cd ../$(LINALG_BLIS_DIR)/testsuite; make clean; \
61         cd ../../$(LINALG_CLAPACK_DIR); make clean
63 BLIStest:
64         cd $(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; \
65         cd testsuite; make lib=OpenCLCBLAS -j8 
67 BLIStestDSP:
68         cd $(LINALG_BLIS_DIR); ./configure -p install/$(BLIS_CFG) c66x; \
69         cd testsuite/dsponly; make MEM_MODEL=Small TARGET=SOC_C6678 LIBOS=LIB_RTOS 
71 BLAStest:
72         cd $(LINALG_CLAPACK_DIR)/BLAS/TESTING; make -f Makeblat1; make -f Makeblat2; make -f Makeblat3
74 CLAPACKtest:
75         cd $(LINALG_CLAPACK_DIR)/TESTING/MATGEN; make 
76         cd $(LINALG_CLAPACK_DIR)/TESTING/LIN; make
77         cd $(LINALG_CLAPACK_DIR)/TESTING/EIG; make
80 cleanARMplusDSP: cleanDSPlibs cleanARMlibs
82 docs: doxygen/doxycfg.txt doxygen/mainpage.dox
83         doxygen ./docs/doxygen/doxycfg.txt
85 installDSPlib:
86         install -m 755 -d ${DESTDIR}/include
87         install -m 755 -d ${DESTDIR}/lib
88         cp $(CBLAS_HEADERS) ${DESTDIR}/include
89         cp ./lib/libcblas.ae66 ${DESTDIR}/lib
90         cp -r docs ${DESTDIR}
92 installARMplusDSPlib:
93         install -m 755 -d ${DESTDIR}/include
94         install -m 755 -d ${DESTDIR}/lib
95         cp $(CBLAS_HEADERS) ${DESTDIR}/include
96         cp $(CLAPACK_HEADERS) ${DESTDIR}/include
97         cp ./lib/libcblas_armplusdsp.a ${DESTDIR}/lib
98         cp ./lib/liblapack.a ${DESTDIR}/lib
99         cp ./lib/libcblaswr.a ${DESTDIR}/lib
100         cp ./lib/libf2c.a ${DESTDIR}/lib
101         cp -r docs ${DESTDIR}