Home | History | Annotate | Download | only in src
      1 # This Makefile compiles the CBLAS routines
      2 #
      3 dlvl = ../.
      4 include $(dlvl)/Makefile.in
      5 
      6 #
      7 # Erase all object and archive files
      8 #
      9 clean:
     10 	rm -f *.o a.out core 
     11 
     12 # Error handling routines for level 2 & 3
     13 
     14 errhand = cblas_globals.o cblas_xerbla.o xerbla.o
     15 
     16 # Object files of all routines
     17 alev = $(alev1) $(alev2) $(alev3) $(errhand) 
     18 #
     19 #
     20 # CBLAS routines
     21 #
     22 # Level 1
     23 #
     24 # 
     25 
     26 #
     27 # All object files for single real precision
     28 #
     29 slev1 = cblas_srotg.o cblas_srotmg.o cblas_srot.o cblas_srotm.o  \
     30          cblas_sswap.o cblas_sscal.o  cblas_scopy.o cblas_saxpy.o \
     31          cblas_sdot.o  cblas_sdsdot.o cblas_snrm2.o cblas_sasum.o \
     32          cblas_isamax.o   sdotsub.o   sdsdotsub.o snrm2sub.o sasumsub.o \
     33          isamaxsub.o 
     34 #
     35 # All object files for double real precision
     36 #
     37 dlev1 = cblas_drotg.o cblas_drotmg.o cblas_drot.o cblas_drotm.o  \
     38          cblas_dswap.o cblas_dscal.o  cblas_dcopy.o cblas_daxpy.o \
     39          cblas_ddot.o  cblas_dsdot.o cblas_dnrm2.o cblas_dasum.o  \
     40          cblas_idamax.o   ddotsub.o   dsdotsub.o       dnrm2sub.o \
     41          dasumsub.o idamaxsub.o
     42 
     43 #
     44 # All object files for single complex precision
     45 #
     46 clev1 = cblas_cswap.o cblas_cscal.o cblas_csscal.o cblas_ccopy.o \
     47          cblas_caxpy.o cblas_cdotu_sub.o cblas_cdotc_sub.o \
     48          cblas_icamax.o cdotcsub.o cdotusub.o icamaxsub.o 
     49 
     50 #
     51 # All object files for double complex precision
     52 #
     53 zlev1 = cblas_zswap.o cblas_zscal.o cblas_zdscal.o cblas_zcopy.o \
     54          cblas_zaxpy.o cblas_zdotu_sub.o cblas_zdotc_sub.o cblas_dznrm2.o \
     55          cblas_dzasum.o cblas_izamax.o zdotcsub.o zdotusub.o      \
     56          dzasumsub.o  dznrm2sub.o  izamaxsub.o 
     57 
     58 #
     59 # Common files for single / complex precision
     60 #
     61 sclev1 = cblas_scasum.o scasumsub.o cblas_scnrm2.o scnrm2sub.o
     62 
     63 #
     64 # All object files
     65 #
     66 alev1 = $(slev1) $(dlev1) $(clev1) $(zlev1) $(sclev1)
     67 
     68 
     69 #
     70 # Make an archive file
     71 #
     72 
     73 # Single real precision
     74 slib1: $(slev1) $(sclev1)
     75 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(slev1) $(sclev1)
     76 	$(RANLIB) $(CBLIB)
     77 
     78 # Double real precision
     79 dlib1: $(dlev1) 
     80 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(dlev1)
     81 	$(RANLIB) $(CBLIB)
     82 
     83 # Single complex precision
     84 clib1: $(clev1) $(sclev1)
     85 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(clev1) $(sclev1)
     86 	$(RANLIB) $(CBLIB)
     87 
     88 # Double complex precision
     89 zlib1: $(zlev1)
     90 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(zlev1)
     91 	$(RANLIB) $(CBLIB)
     92 
     93 # All precisions
     94 all1:  $(alev1)
     95 	$(ARCH) $(ARCHFLAGS)  $(CBLIB) $(alev1)
     96 	$(RANLIB) $(CBLIB)
     97 
     98 #
     99 #
    100 # CBLAS routines
    101 #
    102 # Level 2
    103 #
    104 # 
    105 
    106 #
    107 # All object files for single real precision
    108 #
    109 slev2 = cblas_sgemv.o cblas_sgbmv.o cblas_sger.o cblas_ssbmv.o  cblas_sspmv.o \
    110         cblas_sspr.o  cblas_sspr2.o cblas_ssymv.o cblas_ssyr.o  cblas_ssyr2.o \
    111         cblas_stbmv.o cblas_stbsv.o cblas_stpmv.o cblas_stpsv.o  cblas_strmv.o \
    112         cblas_strsv.o  
    113  
    114 #
    115 # All object files for double real precision
    116 #
    117 dlev2 = cblas_dgemv.o cblas_dgbmv.o cblas_dger.o cblas_dsbmv.o  cblas_dspmv.o \
    118         cblas_dspr.o  cblas_dspr2.o cblas_dsymv.o cblas_dsyr.o  cblas_dsyr2.o \
    119         cblas_dtbmv.o cblas_dtbsv.o cblas_dtpmv.o cblas_dtpsv.o  cblas_dtrmv.o \
    120         cblas_dtrsv.o  
    121 
    122 #
    123 # All object files for single complex precision
    124 #
    125 clev2 = cblas_cgemv.o cblas_cgbmv.o cblas_chemv.o cblas_chbmv.o cblas_chpmv.o \
    126         cblas_ctrmv.o cblas_ctbmv.o cblas_ctpmv.o cblas_ctrsv.o cblas_ctbsv.o \
    127         cblas_ctpsv.o cblas_cgeru.o cblas_cgerc.o cblas_cher.o  cblas_cher2.o \
    128         cblas_chpr.o  cblas_chpr2.o 
    129 
    130 #
    131 # All object files for double complex precision
    132 #
    133 zlev2 = cblas_zgemv.o cblas_zgbmv.o cblas_zhemv.o cblas_zhbmv.o cblas_zhpmv.o \
    134         cblas_ztrmv.o cblas_ztbmv.o cblas_ztpmv.o cblas_ztrsv.o cblas_ztbsv.o \
    135         cblas_ztpsv.o cblas_zgeru.o cblas_zgerc.o cblas_zher.o  cblas_zher2.o \
    136         cblas_zhpr.o  cblas_zhpr2.o 
    137 #
    138 # All object files
    139 #
    140 alev2 = $(slev2) $(dlev2) $(clev2) $(zlev2)
    141 
    142 #
    143 # Make an archive file
    144 #
    145 
    146 # Single real precision
    147 slib2: $(slev2) $(errhand)
    148 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(slev2) $(errhand)
    149 	$(RANLIB) $(CBLIB)
    150 
    151 # Double real  precision
    152 dlib2: $(dlev2) $(errhand)
    153 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(dlev2) $(errhand)
    154 	$(RANLIB) $(CBLIB)
    155 
    156 # Single complex precision
    157 clib2: $(clev2) $(errhand)
    158 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(clev2) $(errhand)
    159 	$(RANLIB) $(CBLIB)
    160 
    161 # Double complex precision
    162 zlib2: $(zlev2) $(errhand)
    163 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(zlev2) $(errhand)
    164 	$(RANLIB) $(CBLIB)
    165 
    166 # All precisions
    167 all2:  $(alev2) $(errhand)
    168 	$(ARCH) $(ARCHFLAGS)  $(CBLIB) $(alev2) $(errhand)
    169 	$(RANLIB) $(CBLIB)
    170 #
    171 #
    172 # CBLAS routines
    173 #
    174 # Level 3
    175 #
    176 # 
    177 
    178 #
    179 # All object files for single real precision
    180 #
    181 slev3 = cblas_sgemm.o cblas_ssymm.o cblas_ssyrk.o cblas_ssyr2k.o cblas_strmm.o\
    182         cblas_strsm.o
    183  
    184 #
    185 # All object files for double real precision
    186 #
    187 dlev3 = cblas_dgemm.o cblas_dsymm.o cblas_dsyrk.o cblas_dsyr2k.o cblas_dtrmm.o\
    188         cblas_dtrsm.o  
    189 
    190 #
    191 # All object files for single complex precision
    192 #
    193 clev3 = cblas_cgemm.o cblas_csymm.o cblas_chemm.o cblas_cherk.o\
    194         cblas_cher2k.o cblas_ctrmm.o cblas_ctrsm.o  cblas_csyrk.o\
    195         cblas_csyr2k.o
    196 #
    197 # All object files for double complex precision
    198 #
    199 zlev3 = cblas_zgemm.o cblas_zsymm.o cblas_zhemm.o cblas_zherk.o\
    200         cblas_zher2k.o cblas_ztrmm.o cblas_ztrsm.o  cblas_zsyrk.o\
    201         cblas_zsyr2k.o
    202 #
    203 # All object files
    204 #
    205 alev3 = $(slev3) $(dlev3) $(clev3) $(zlev3)
    206 
    207 #
    208 # Make an archive file
    209 #
    210 
    211 # Single real precision
    212 slib3: $(slev3) $(errhand)
    213 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(slev3) $(errhand)
    214 	$(RANLIB) $(CBLIB)
    215 
    216 # Double real precision
    217 dlib3: $(dlev3) $(errhand)
    218 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(dlev3) $(errhand)
    219 	$(RANLIB) $(CBLIB)
    220 
    221 # Single complex precision
    222 clib3: $(clev3) $(errhand)
    223 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(clev3) $(errhand)
    224 	$(RANLIB) $(CBLIB)
    225 
    226 # Single complex precision
    227 zlib3: $(zlev3) $(errhand)
    228 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(zlev3) $(errhand)
    229 	$(RANLIB) $(CBLIB)
    230 
    231 # All precisions
    232 all3:  $(alev3) $(errhand)
    233 	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(alev3) 
    234 	$(RANLIB) $(CBLIB)
    235 
    236 # All levels and precisions
    237 all: $(alev)  
    238 	$(ARCH) $(ARCHFLAGS)  $(CBLIB) $(alev) 
    239 	$(RANLIB) $(CBLIB)
    240 
    241 
    242 .SUFFIXES: .o .c .f
    243 
    244 .c.o:
    245 	$(CC) $(CFLAGS) -I../include -c $*.c
    246 .f.o:
    247 	$(FC) $(FFLAGS) -c $*.f
    248