OpenBLAS/lapack-netlib/TESTING/MATGEN/Makefile

137 lines
3.8 KiB
Makefile

#######################################################################
# This is the makefile to create a library of the test matrix
# generators used in LAPACK. The files are organized as follows:
#
# SCATGEN -- Auxiliary routines called from single precision
# DZATGEN -- Auxiliary routines called from double precision
# SMATGEN -- Single precision real matrix generation routines
# CMATGEN -- Single precision complex matrix generation routines
# DMATGEN -- Double precision real matrix generation routines
# ZMATGEN -- Double precision complex matrix generation routines
#
# The library can be set up to include routines for any combination
# of the four precisions. To create or add to the library, enter make
# followed by one or more of the precisions desired. Some examples:
# make single
# make single complex
# make single double complex complex16
# Alternatively, the command
# make
# without any arguments creates a library of all four precisions.
# The library is called
# tmglib.a
# and is created at the LAPACK directory level.
#
# To remove the object files after the library is created, enter
# make cleanobj
# On some systems, you can force the source files to be recompiled by
# entering (for example)
# make single FRC=FRC
#
#######################################################################
TOPSRCDIR = ../..
include $(TOPSRCDIR)/make.inc
ifneq ($(C_LAPACK), 1)
.SUFFIXES:
.SUFFIXES: .f .o
.f.o:
$(FC) $(FFLAGS) -c -o $@ $<
endif
ifneq "$(or $(BUILD_SINGLE),$(BUILD_COMPLEX))" ""
SCATGEN = slatm1.o slatm7.o slaran.o slarnd.o
endif
ifeq ($(BUILD_SINGLE),1)
SMATGEN = slatms.o slatme.o slatmr.o slatmt.o \
slagge.o slagsy.o slakf2.o slarge.o slaror.o slarot.o slatm2.o \
slatm3.o slatm5.o slatm6.o slahilb.o
endif
ifeq ($(BUILD_COMPLEX),1)
CMATGEN = clatms.o clatme.o clatmr.o clatmt.o \
clagge.o claghe.o clagsy.o clakf2.o clarge.o claror.o clarot.o \
clatm1.o clarnd.o clatm2.o clatm3.o clatm5.o clatm6.o clahilb.o
endif
ifneq "$(or $(BUILD_DOUBLE),$(BUILD_COMPLEX16))" ""
DZATGEN = dlatm1.o dlatm7.o dlaran.o dlarnd.o
endif
ifeq ($(BUILD_DOUBLE),1)
DMATGEN = dlatms.o dlatme.o dlatmr.o dlatmt.o \
dlagge.o dlagsy.o dlakf2.o dlarge.o dlaror.o dlarot.o dlatm2.o \
dlatm3.o dlatm5.o dlatm6.o dlahilb.o
endif
ifeq ($(BUILD_COMPLEX16),1)
ZMATGEN = zlatms.o zlatme.o zlatmr.o zlatmt.o \
zlagge.o zlaghe.o zlagsy.o zlakf2.o zlarge.o zlaror.o zlarot.o \
zlatm1.o zlarnd.o zlatm2.o zlatm3.o zlatm5.o zlatm6.o zlahilb.o
endif
.PHONY: all
.NOTPARALLEL:
all: $(TMGLIB)
ALLOBJ = $(SMATGEN) $(CMATGEN) $(SCATGEN) $(DMATGEN) $(ZMATGEN) \
$(DZATGEN)
$(TMGLIB): $(ALLOBJ)
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
.PHONY: single complex double complex16
single: $(SMATGEN) $(SCATGEN)
$(AR) $(ARFLAGS) $(TMGLIB) $^
$(RANLIB) $(TMGLIB)
complex: $(CMATGEN) $(SCATGEN)
$(AR) $(ARFLAGS) $(TMGLIB) $^
$(RANLIB) $(TMGLIB)
double: $(DMATGEN) $(DZATGEN)
$(AR) $(ARFLAGS) $(TMGLIB) $^
$(RANLIB) $(TMGLIB)
complex16: $(ZMATGEN) $(DZATGEN)
$(AR) $(ARFLAGS) $(TMGLIB) $^
$(RANLIB) $(TMGLIB)
ifdef FRC
$(SCATGEN): $(FRC)
$(SMATGEN): $(FRC)
$(CMATGEN): $(FRC)
$(DZATGEN): $(FRC)
$(DMATGEN): $(FRC)
$(ZMATGEN): $(FRC)
FRC:
@FRC=$(FRC)
endif
.PHONY: clean cleanobj cleanlib
clean: cleanobj cleanlib
cleanobj:
rm -f *.o
cleanlib:
rm -f $(TMGLIB)
ifneq ($(C_LAPACK), 1)
ifeq ($(filter $(BUILD_SINGLE) $(BUILD_COMPLEX),1),)
slaran.o: slaran.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $<
endif
ifeq ($(filter $(BUILD_DOUBLE) $(BUILD_COMPLEX16),1),)
dlaran.o: dlaran.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $<
endif
else
ifeq ($(filter $(BUILD_SINGLE) $(BUILD_COMPLEX),1),)
slaran.o: slaran.c ; $(CC) $(CFLAGS) -O0 -c -o $@ $<
endif
ifeq ($(filter $(BUILD_DOUBLE) $(BUILD_COMPLEX16),1),)
dlaran.o: dlaran.c ; $(CC) $(CFLAGS) -O0 -c -o $@ $<
endif
endif