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 CLAPACK_HEADERS =$(LINALG_CLAPACK_DIR)/INCLUDE/blaswrap.h
13 CLAPACK_HEADERS+=$(LINALG_CLAPACK_DIR)/INCLUDE/clapack.h
14 CLAPACK_HEADERS+=$(LINALG_CLAPACK_DIR)/INCLUDE/f2c.h
16 ifneq (,$(findstring DSP,$(MAKECMDGOALS)))
18 ifeq ($(LIBOS),LIB_RTOS)
19 CBLAS_HEADERS +=$(LINALG_TICBLAS_DIR)/ticblas.h
20 endif
22 ifeq ($(MEM_MODEL),Large)
23 BLIS_CFG = c66xLarge
24 else ifeq ($(MEM_MODEL),Medium)
25 BLIS_CFG = c66xMedium
26 else ifeq ($(MEM_MODEL),Small)
27 BLIS_CFG = c66xSmall
28 else
29 $(call error, ERROR - MEM_MODEL NOT DEFINED. Must specify one of: MEM_MODEL=Large, MEM_MODEL=Medium, MEM_MODEL=Small)
30 endif
32 endif
34 DSPlibs:
35 cd $(LINALG_CBLAS_DIR); make arch=C66 alllib; \
36 cd ../$(LINALG_BLIS_DIR); ./configure -p install/$(BLIS_CFG) c66x; make -j8 MEM_MODEL=$(MEM_MODEL) TARGET=$(TARGET) LIBOS=$(LIBOS); make install; \
37 cd ../$(LINALG_TICBLAS_DIR)/src; make MEM_MODEL=$(MEM_MODEL) TARGET=$(TARGET) LIBOS=$(LIBOS); cd ../lib; \
38 echo "combining BLIS, CBLAS, and TICBLAS libraries into one: libcblas.ae66"; \
39 mkdir -p objs; cd objs; rm -f *; ar x ../../../blis/install/$(BLIS_CFG)/lib/libblis.ae66; mmv 'cblas*.o' 'blis_cblas#1.o'; \
40 ar -x ../../../cblas/lib/C66/libcblas.ae66; ar -x ../libticblas.ae66; chmod +rw *;cd ../../..; \
41 mkdir -p lib; cd lib; rm -f *; ar -cr libcblas.ae66 ../ticblas/lib/objs/*; cd ..; \
42 mkdir -p include; rm -f include/*; cp $(CBLAS_HEADERS) include
44 ARMlibs:
45 cd $(LINALG_CBLAS_DIR); make arch=ARM alllib; \
46 cd ../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make -j8; make install; \
47 cd ../$(LINALG_CLAPACK_DIR); make f2clib; make cblaswrap; cd SRC; make -j8; cd ..
49 ARMplusDSP: DSPlibs ARMlibs
50 cd $(LINALG_BLASACC_DIR)/src; make MEM_MODEL=$(MEM_MODEL) TARGET=$(TARGET); cd ../..; \
51 cd lib; rm -f *; \
52 cp ../$(LINALG_BLASACC_DIR)/lib/libcblas_armplusdsp.a .; \
53 cp ../$(LINALG_BLIS_DIR)/install/arm/lib/libblis.a .; \
54 ar -x libblis.a; mmv "cblas_*.o" "blis_cblas_#1.o"; ar -x libcblas_armplusdsp.a; rm *.a; \
55 ar -cr libcblas_armplusdsp.a *.o; rm *.o; cd ..; \
56 cp $(LINALG_CLAPACK_DIR)/lapack_ARM.a ./lib/liblapack.a; \
57 cp $(LINALG_CLAPACK_DIR)/libcblaswr_ARM.a ./lib/libcblaswr.a; \
58 cp $(LINALG_CLAPACK_DIR)/F2CLIBS/libf2c_ARM.a ./lib/libf2c.a; \
59 cp $(CLAPACK_HEADERS) include
61 cleanDSPlibs:
62 rm -f lib/*
63 cd $(LINALG_CBLAS_DIR); make arch=C66 clean; \
64 cd ../$(LINALG_BLIS_DIR); ./configure -p install/$(BLIS_CFG) c66x; make -j8 clean; rm -r install/$(BLIS_CFG); \
65 cd ../$(LINALG_TICBLAS_DIR)/src; make clean;
67 cleanARMlibs:
68 cd $(LINALG_CBLAS_DIR); make arch=ARM clean; \
69 cd ../$(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; make clean; rm -r install/arm; \
70 cd ../$(LINALG_BLASACC_DIR); make clean; \
71 cd ../$(LINALG_BLIS_DIR)/testsuite; make clean; \
72 cd ../../$(LINALG_CLAPACK_DIR); make clean
74 BLIStest:
75 cd $(LINALG_BLIS_DIR); ./configure -p install/arm cortex-a15; \
76 cd testsuite; make lib=OpenCLCBLAS -j8
78 BLIStestDSP:
79 cd $(LINALG_BLIS_DIR); ./configure -p install/$(BLIS_CFG) c66x; \
80 cd testsuite/dsponly; make MEM_MODEL=Small TARGET=SOC_C6678 LIBOS=LIB_RTOS
82 BLAStest:
83 cd $(LINALG_CLAPACK_DIR)/BLAS/TESTING; make -f Makeblat1; make -f Makeblat2; make -f Makeblat3
85 CLAPACKtest:
86 cd $(LINALG_CLAPACK_DIR)/TESTING/MATGEN; make
87 cd $(LINALG_CLAPACK_DIR)/TESTING/LIN; make
88 cd $(LINALG_CLAPACK_DIR)/TESTING/EIG; make
91 cleanARMplusDSP: cleanDSPlibs cleanARMlibs
93 docs: doxygen/doxycfg.txt doxygen/mainpage.dox
94 doxygen ./docs/doxygen/doxycfg.txt
96 installDSPlib:
97 install -m 755 -d ${DESTDIR}/include
98 install -m 755 -d ${DESTDIR}/lib
99 cp include/* ${DESTDIR}/include
100 cp ./lib/libcblas.ae66 ${DESTDIR}/lib
101 cp -r docs ${DESTDIR}
103 installARMplusDSPlib:
104 install -m 755 -d ${DESTDIR}/include
105 install -m 755 -d ${DESTDIR}/lib
106 cp include/* ${DESTDIR}/include
107 cp ./lib/libcblas_armplusdsp.a ${DESTDIR}/lib
108 cp ./lib/liblapack.a ${DESTDIR}/lib
109 cp ./lib/libcblaswr.a ${DESTDIR}/lib
110 cp ./lib/libf2c.a ${DESTDIR}/lib
111 cp -r docs ${DESTDIR}