137 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			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
 |