1TOPDIR = .. 2include ../Makefile.system 3ifeq ($(F_COMPILER),GFORTRAN) 4 override FFLAGS += -fno-tree-vectorize 5endif 6 7ifeq ($(NOFORTRAN),1) 8all :: 9else 10all :: level1 level2 level3 11endif 12 13ifeq ($(BUILD_SINGLE),1) 14S1=sblat1 15endif 16ifeq ($(BUILD_DOUBLE),1) 17D1=dblat1 18endif 19ifeq ($(BUILD_COMPLEX),1) 20C1=cblat1 21endif 22ifeq ($(BUILD_COMPLEX16),1) 23Z1=zblat1 24endif 25 26level1: $(S1) $(D1) $(C1) $(Z1) 27 28ifneq ($(CROSS), 1) 29ifeq ($(BUILD_SINGLE),1) 30 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat1 31endif 32ifeq ($(BUILD_DOUBLE),1) 33 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat1 34endif 35ifeq ($(BUILD_COMPLEX),1) 36 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat1 37endif 38ifeq ($(BUILD_COMPLEX16),1) 39 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat1 40endif 41ifdef SMP 42ifeq ($(USE_OPENMP), 1) 43ifeq ($(BUILD_SINGLE),1) 44 OMP_NUM_THREADS=2 ./sblat1 45endif 46ifeq ($(BUILD_DOUBLE),1) 47 OMP_NUM_THREADS=2 ./dblat1 48endif 49ifeq ($(BUILD_COMPLEX),1) 50 OMP_NUM_THREADS=2 ./cblat1 51endif 52ifeq ($(BUILD_COMPLEX16),1) 53 OMP_NUM_THREADS=2 ./zblat1 54endif 55else 56ifeq ($(BUILD_SINGLE),1) 57 OMP_NUM_THREADS=2 ./sblat1 58endif 59ifeq ($(BUILD_DOUBLE),1) 60 OMP_NUM_THREADS=2 ./dblat1 61endif 62ifeq ($(BUILD_COMPLEX),1) 63 OMP_NUM_THREADS=2 ./cblat1 64endif 65ifeq ($(BUILD_COMPLEX16),1) 66 OMP_NUM_THREADS=2 ./zblat1 67endif 68endif 69endif 70endif 71 72ifeq ($(BUILD_SINGLE),1) 73S2=sblat2 74endif 75ifeq ($(BUILD_DOUBLE),1) 76D2=dblat2 77endif 78ifeq ($(BUILD_COMPLEX),1) 79C2=cblat2 80endif 81ifeq ($(BUILD_COMPLEX16),1) 82Z2=zblat2 83endif 84 85level2: $(S2) $(D2) $(C2) $(Z2) 86 87 88ifneq ($(CROSS), 1) 89 rm -f ?BLAT2.SUMM 90ifeq ($(BUILD_SINGLE),1) 91 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat2 < ./sblat2.dat 92 @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0 93endif 94ifeq ($(BUILD_DOUBLE),1) 95 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat2 < ./dblat2.dat 96 @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0 97endif 98ifeq ($(BUILD_COMPLEX),1) 99 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat2 < ./cblat2.dat 100 @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0 101endif 102ifeq ($(BUILD_COMPLEX16),1) 103 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat2 < ./zblat2.dat 104 @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0 105endif 106ifdef SMP 107 rm -f ?BLAT2.SUMM 108ifeq ($(USE_OPENMP), 1) 109ifeq ($(BUILD_SINGLE),1) 110 OMP_NUM_THREADS=2 ./sblat2 < ./sblat2.dat 111 @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0 112endif 113ifeq ($(BUILD_DOUBLE),1) 114 OMP_NUM_THREADS=2 ./dblat2 < ./dblat2.dat 115 @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0 116endif 117ifeq ($(BUILD_COMPLEX),1) 118 OMP_NUM_THREADS=2 ./cblat2 < ./cblat2.dat 119 @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0 120endif 121ifeq ($(BUILD_COMPLEX16),1) 122 OMP_NUM_THREADS=2 ./zblat2 < ./zblat2.dat 123 @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0 124endif 125else 126ifeq ($(BUILD_SINGLE),1) 127 OMP_NUM_THREADS=2 ./sblat2 < ./sblat2.dat 128 @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0 129endif 130ifeq ($(BUILD_DOUBLE),1) 131 OMP_NUM_THREADS=2 ./dblat2 < ./dblat2.dat 132 @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0 133endif 134ifeq ($(BUILD_COMPLEX),1) 135 OMP_NUM_THREADS=2 ./cblat2 < ./cblat2.dat 136 @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0 137endif 138ifeq ($(BUILD_COMPLEX16),1) 139 OMP_NUM_THREADS=2 ./zblat2 < ./zblat2.dat 140 @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0 141endif 142endif 143endif 144endif 145 146ifeq ($(BUILD_BFLOAT16),1) 147B3= test_sbgemm 148endif 149ifeq ($(BUILD_SINGLE),1) 150S3=sblat3 151endif 152ifeq ($(BUILD_DOUBLE),1) 153D3=dblat3 154endif 155ifeq ($(BUILD_COMPLEX),1) 156C3=cblat3 157endif 158ifeq ($(BUILD_COMPLEX16),1) 159Z3=zblat3 160endif 161 162level3: $(B3) $(S3) $(D3) $(C3) $(Z3) 163 164 165ifneq ($(CROSS), 1) 166 rm -f ?BLAT3.SUMM 167ifeq ($(BUILD_BFLOAT16),1) 168 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./test_sbgemm > SBBLAT3.SUMM 169 @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0 170endif 171ifeq ($(BUILD_SINGLE),1) 172 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat3 < ./sblat3.dat 173 @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0 174endif 175ifeq ($(BUILD_DOUBLE),1) 176 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat3 < ./dblat3.dat 177 @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0 178endif 179ifeq ($(BUILD_COMPLEX),1) 180 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3 < ./cblat3.dat 181 @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0 182endif 183ifeq ($(BUILD_COMPLEX16),1) 184 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3 < ./zblat3.dat 185 @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0 186endif 187ifdef SMP 188 rm -f ?BLAT3.SUMM 189ifeq ($(USE_OPENMP), 1) 190ifeq ($(BUILD_BFLOAT16),1) 191 OMP_NUM_THREADS=2 ./test_sbgemm > SBBLAT3.SUMM 192 @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0 193endif 194ifeq ($(BUILD_SINGLE),1) 195 OMP_NUM_THREADS=2 ./sblat3 < ./sblat3.dat 196 @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0 197endif 198ifeq ($(BUILD_DOUBLE),1) 199 OMP_NUM_THREADS=2 ./dblat3 < ./dblat3.dat 200 @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0 201endif 202ifeq ($(BUILD_COMPLEX),1) 203 OMP_NUM_THREADS=2 ./cblat3 < ./cblat3.dat 204 @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0 205endif 206ifeq ($(BUILD_COMPLEX16),1) 207 OMP_NUM_THREADS=2 ./zblat3 < ./zblat3.dat 208 @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0 209endif 210else 211ifeq ($(BUILD_BFLOAT16),1) 212 OMP_NUM_THREADS=2 ./test_sbgemm > SBBLAT3.SUMM 213 @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0 214endif 215ifeq ($(BUILD_SINGLE),1) 216 OMP_NUM_THREADS=2 ./sblat3 < ./sblat3.dat 217 @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0 218endif 219ifeq ($(BUILD_DOUBLE),1) 220 OMP_NUM_THREADS=2 ./dblat3 < ./dblat3.dat 221 @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0 222endif 223ifeq ($(BUILD_COMPLEX),1) 224 OMP_NUM_THREADS=2 ./cblat3 < ./cblat3.dat 225 @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0 226endif 227ifeq ($(BUILD_COMPLEX16),1) 228 OMP_NUM_THREADS=2 ./zblat3 < ./zblat3.dat 229 @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0 230endif 231endif 232endif 233endif 234 235 236level3_3m : zblat3_3m cblat3_3m 237ifneq ($(CROSS), 1) 238 rm -f ?BLAT3_3M.SUMM 239 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3_3m < ./cblat3_3m.dat 240 @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0 241 OMP_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3_3m < ./zblat3_3m.dat 242 @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0 243ifdef SMP 244 rm -f ?BLAT3_3M.SUMM 245ifeq ($(USE_OPENMP), 1) 246 OMP_NUM_THREADS=2 ./cblat3_3m < ./cblat3_3m.dat 247 @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0 248 OMP_NUM_THREADS=2 ./zblat3_3m < ./zblat3_3m.dat 249 @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0 250else 251 OMP_NUM_THREADS=2 ./cblat3_3m < ./cblat3_3m.dat 252 @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0 253 OMP_NUM_THREADS=2 ./zblat3_3m < ./zblat3_3m.dat 254 @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0 255endif 256endif 257endif 258 259 260 261 262FLDFLAGS = $(FFLAGS:-fPIC=) $(LDFLAGS) 263 264 265ifeq ($(USE_OPENMP), 1) 266ifeq ($(F_COMPILER), GFORTRAN) 267ifeq ($(C_COMPILER), CLANG) 268CEXTRALIB = -lomp 269endif 270endif 271ifeq ($(F_COMPILER), NAG) 272CEXTRALIB = -lgomp 273endif 274endif 275 276ifeq ($(BUILD_SINGLE),1) 277sblat1 : sblat1.$(SUFFIX) ../$(LIBNAME) 278 $(FC) $(FLDFLAGS) -o sblat1 sblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 279 280sblat2 : sblat2.$(SUFFIX) ../$(LIBNAME) 281 $(FC) $(FLDFLAGS) -o sblat2 sblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 282 283sblat3 : sblat3.$(SUFFIX) ../$(LIBNAME) 284 $(FC) $(FLDFLAGS) -o sblat3 sblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 285endif 286 287ifeq ($(BUILD_DOUBLE),1) 288dblat1 : dblat1.$(SUFFIX) ../$(LIBNAME) 289 $(FC) $(FLDFLAGS) -o dblat1 dblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 290 291dblat2 : dblat2.$(SUFFIX) ../$(LIBNAME) 292 $(FC) $(FLDFLAGS) -o dblat2 dblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 293 294dblat3 : dblat3.$(SUFFIX) ../$(LIBNAME) 295 $(FC) $(FLDFLAGS) -o dblat3 dblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 296else 297dblat2: 298dblat3: 299endif 300 301 302qblat1 : qblat1.$(SUFFIX) ../$(LIBNAME) 303 $(FC) $(FLDFLAGS) -o qblat1 qblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 304 305ifeq ($(BUILD_COMPLEX),1) 306cblat1 : cblat1.$(SUFFIX) ../$(LIBNAME) 307 $(FC) $(FLDFLAGS) -o cblat1 cblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 308 309cblat2 : cblat2.$(SUFFIX) ../$(LIBNAME) 310 $(FC) $(FLDFLAGS) -o cblat2 cblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 311 312cblat3 : cblat3.$(SUFFIX) ../$(LIBNAME) 313 $(FC) $(FLDFLAGS) -o cblat3 cblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 314endif 315 316ifeq ($(BUILD_COMPLEX16),1) 317zblat1 : zblat1.$(SUFFIX) ../$(LIBNAME) 318 $(FC) $(FLDFLAGS) -o zblat1 zblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 319 320zblat2 : zblat2.$(SUFFIX) ../$(LIBNAME) 321 $(FC) $(FLDFLAGS) -o zblat2 zblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 322 323zblat3 : zblat3.$(SUFFIX) ../$(LIBNAME) 324 $(FC) $(FLDFLAGS) -o zblat3 zblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 325endif 326 327ifeq ($(BUILD_BFLOAT16),1) 328test_sbgemm : compare_sgemm_sbgemm.c ../$(LIBNAME) 329 $(FC) $(FLDFLAGS) -o test_sbgemm compare_sgemm_sbgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 330endif 331 332ifeq ($(BUILD_COMPLEX),1) 333cblat3_3m : cblat3_3m.$(SUFFIX) ../$(LIBNAME) 334 $(FC) $(FLDFLAGS) -o cblat3_3m cblat3_3m.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 335endif 336 337ifeq ($(BUILD_COMPLEX16),1) 338zblat3_3m : zblat3_3m.$(SUFFIX) ../$(LIBNAME) 339 $(FC) $(FLDFLAGS) -o zblat3_3m zblat3_3m.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB) 340endif 341 342 343 344clean: 345 @rm -f *.$(SUFFIX) *.$(PSUFFIX) gmon.$(SUFFIX)ut *.SUMM *.cxml *.exe *.pdb *.dwf \ 346 sblat1 dblat1 cblat1 zblat1 \ 347 sblat2 dblat2 cblat2 zblat2 \ 348 test_sbgemm sblat3 dblat3 cblat3 zblat3 \ 349 sblat1p dblat1p cblat1p zblat1p \ 350 sblat2p dblat2p cblat2p zblat2p \ 351 sblat3p dblat3p cblat3p zblat3p \ 352 zblat3_3m zblat3_3mp \ 353 cblat3_3m cblat3_3mp \ 354 *.stackdump *.dll 355 356libs: 357 358prof: 359 360quick : 361 $(MAKE) -C $(TOPDIR) libs 362 363# include ../Makefile.tail 364