kusano 7d535a
# makefile for sparse supernodal LU, implemented in ANSI C
kusano 7d535a
include ../make.inc
kusano 7d535a
kusano 7d535a
#######################################################################
kusano 7d535a
#  This is the makefile to create a library for SuperLU.
kusano 7d535a
#  The files are organized as follows:
kusano 7d535a
#
kusano 7d535a
#       ALLAUX -- Auxiliary routines called from all precisions of SuperLU
kusano 7d535a
#	LAAUX  -- LAPACK auxiliary routines called from all precisions
kusano 7d535a
#	SLASRC -- LAPACK single precision real routines
kusano 7d535a
#	DLASRC -- LAPACK double precision real routines
kusano 7d535a
#	CLASRC -- LAPACK single precision complex routines
kusano 7d535a
#	ZLASRC -- LAPACK double precision complex routines
kusano 7d535a
#       SCLAUX -- LAPACK Auxiliary routines called from both real and complex
kusano 7d535a
#       DZLAUX -- LAPACK Auxiliary routines called from both double precision
kusano 7d535a
#                 and complex*16
kusano 7d535a
#	SLUSRC -- Single precision real SuperLU routines
kusano 7d535a
#       DLUSRC -- Double precision real SuperLU routines
kusano 7d535a
#	CLUSRC -- Single precision complex SuperLU routines
kusano 7d535a
#       ZLUSRC -- Double precision complex SuperLU routines
kusano 7d535a
#
kusano 7d535a
#  The library can be set up to include routines for any combination
kusano 7d535a
#  of the four precisions.  To create or add to the library, enter make
kusano 7d535a
#  followed by one or more of the precisions desired.  Some examples:
kusano 7d535a
#       make single
kusano 7d535a
#       make single double
kusano 7d535a
#       make single double complex complex16
kusano 7d535a
#  Alternatively, the command
kusano 7d535a
#       make
kusano 7d535a
#  without any arguments creates a library of all four precisions.
kusano 7d535a
#  The library is called
kusano 7d535a
#       superlu.a
kusano 7d535a
#  and is created at the next higher directory level.
kusano 7d535a
#
kusano 7d535a
#  To remove the object files after the library is created, enter
kusano 7d535a
#       make clean
kusano 7d535a
#
kusano 7d535a
#######################################################################
kusano 7d535a
kusano 7d535a
### LAPACK 
kusano 7d535a
LAAUX 	= lsame.o xerbla.o
kusano 7d535a
SLASRC 	= slacon.o 
kusano 7d535a
DLASRC	= dlacon.o
kusano 7d535a
CLASRC	= clacon.o scsum1.o icmax1.o
kusano 7d535a
ZLASRC	= zlacon.o dzsum1.o izmax1.o
kusano 7d535a
SCLAUX 	= slamch.o
kusano 7d535a
DZLAUX 	= dlamch.o
kusano 7d535a
kusano 7d535a
### SuperLU 
kusano 7d535a
ALLAUX 	= superlu_timer.o util.o memory.o get_perm_c.o mmd.o \
kusano 7d535a
	  sp_coletree.o sp_preorder.o sp_ienv.o relax_snode.o \
kusano 7d535a
	  heap_relax_snode.o colamd.o \
kusano 7d535a
	  ilu_relax_snode.o ilu_heap_relax_snode.o mark_relax.o \
kusano 7d535a
	  mc64ad.o qselect.o
kusano 7d535a
kusano 7d535a
SLUSRC = \
kusano 7d535a
	sgssv.o sgssvx.o \
kusano 7d535a
	ssp_blas2.o ssp_blas3.o sgscon.o  \
kusano 7d535a
	slangs.o sgsequ.o slaqgs.o spivotgrowth.o \
kusano 7d535a
	sgsrfs.o sgstrf.o sgstrs.o scopy_to_ucol.o \
kusano 7d535a
	ssnode_dfs.o ssnode_bmod.o \
kusano 7d535a
	spanel_dfs.o spanel_bmod.o \
kusano 7d535a
	sreadhb.o sreadrb.o sreadtriple.o \
kusano 7d535a
	scolumn_dfs.o scolumn_bmod.o spivotL.o spruneL.o \
kusano 7d535a
	smemory.o sutil.o smyblas2.o \
kusano 7d535a
	sgsisx.o sgsitrf.o sldperm.o \
kusano 7d535a
	ilu_sdrop_row.o ilu_ssnode_dfs.o \
kusano 7d535a
	ilu_scolumn_dfs.o ilu_spanel_dfs.o ilu_scopy_to_ucol.o \
kusano 7d535a
	ilu_spivotL.o sdiagonal.o
kusano 7d535a
kusano 7d535a
DLUSRC = \
kusano 7d535a
	dgssv.o dgssvx.o \
kusano 7d535a
	dsp_blas2.o dsp_blas3.o dgscon.o \
kusano 7d535a
	dlangs.o dgsequ.o dlaqgs.o dpivotgrowth.o  \
kusano 7d535a
	dgsrfs.o dgstrf.o dgstrs.o dcopy_to_ucol.o \
kusano 7d535a
	dsnode_dfs.o dsnode_bmod.o dpanel_dfs.o dpanel_bmod.o \
kusano 7d535a
	dreadhb.o dreadrb.o dreadtriple.o \
kusano 7d535a
	dcolumn_dfs.o dcolumn_bmod.o dpivotL.o dpruneL.o \
kusano 7d535a
	dmemory.o dutil.o dmyblas2.o \
kusano 7d535a
	dgsisx.o dgsitrf.o dldperm.o \
kusano 7d535a
	ilu_ddrop_row.o ilu_dsnode_dfs.o \
kusano 7d535a
	ilu_dcolumn_dfs.o ilu_dpanel_dfs.o ilu_dcopy_to_ucol.o \
kusano 7d535a
	ilu_dpivotL.o ddiagonal.o 
kusano 7d535a
        ## dgstrsL.o dgstrsU.o
kusano 7d535a
kusano 7d535a
CLUSRC = \
kusano 7d535a
	scomplex.o cgssv.o cgssvx.o csp_blas2.o csp_blas3.o cgscon.o \
kusano 7d535a
	clangs.o cgsequ.o claqgs.o cpivotgrowth.o  \
kusano 7d535a
	cgsrfs.o cgstrf.o cgstrs.o ccopy_to_ucol.o \
kusano 7d535a
	csnode_dfs.o csnode_bmod.o \
kusano 7d535a
	cpanel_dfs.o cpanel_bmod.o \
kusano 7d535a
	creadhb.o creadrb.o creadtriple.o \
kusano 7d535a
	ccolumn_dfs.o ccolumn_bmod.o cpivotL.o cpruneL.o \
kusano 7d535a
	cmemory.o cutil.o cmyblas2.o \
kusano 7d535a
	cgsisx.o cgsitrf.o cldperm.o \
kusano 7d535a
	ilu_cdrop_row.o ilu_csnode_dfs.o \
kusano 7d535a
	ilu_ccolumn_dfs.o ilu_cpanel_dfs.o ilu_ccopy_to_ucol.o \
kusano 7d535a
	ilu_cpivotL.o cdiagonal.o
kusano 7d535a
kusano 7d535a
ZLUSRC = \
kusano 7d535a
	dcomplex.o zgssv.o zgssvx.o zsp_blas2.o zsp_blas3.o zgscon.o \
kusano 7d535a
	zlangs.o zgsequ.o zlaqgs.o zpivotgrowth.o  \
kusano 7d535a
	zgsrfs.o zgstrf.o zgstrs.o zcopy_to_ucol.o \
kusano 7d535a
	zsnode_dfs.o zsnode_bmod.o \
kusano 7d535a
	zpanel_dfs.o zpanel_bmod.o \
kusano 7d535a
	zreadhb.o zreadrb.o zreadtriple.o \
kusano 7d535a
	zcolumn_dfs.o zcolumn_bmod.o zpivotL.o zpruneL.o \
kusano 7d535a
	zmemory.o zutil.o zmyblas2.o \
kusano 7d535a
	zgsisx.o zgsitrf.o zldperm.o \
kusano 7d535a
	ilu_zdrop_row.o ilu_zsnode_dfs.o \
kusano 7d535a
	ilu_zcolumn_dfs.o ilu_zpanel_dfs.o ilu_zcopy_to_ucol.o \
kusano 7d535a
	ilu_zpivotL.o zdiagonal.o
kusano 7d535a
kusano 7d535a
all:    single double complex complex16
kusano 7d535a
kusano 7d535a
single: $(SLUSRC) $(ALLAUX) $(LAAUX) $(SLASRC) $(SCLAUX)
kusano 7d535a
	$(ARCH) $(ARCHFLAGS) $(SUPERLULIB) \
kusano 7d535a
		$(SLUSRC) $(ALLAUX) $(LAAUX) $(SLASRC) $(SCLAUX)
kusano 7d535a
	$(RANLIB) $(SUPERLULIB)
kusano 7d535a
kusano 7d535a
double: $(DLUSRC) $(ALLAUX) $(LAAUX) $(DLASRC) $(DZLAUX)
kusano 7d535a
	$(ARCH) $(ARCHFLAGS) $(SUPERLULIB) \
kusano 7d535a
                $(DLUSRC) $(ALLAUX) $(LAAUX) $(DLASRC) $(DZLAUX)
kusano 7d535a
	$(RANLIB) $(SUPERLULIB)
kusano 7d535a
kusano 7d535a
complex: $(CLUSRC) $(ALLAUX) $(LAAUX) $(CLASRC) $(SCLAUX)
kusano 7d535a
	$(ARCH) $(ARCHFLAGS) $(SUPERLULIB) \
kusano 7d535a
		$(CLUSRC) $(ALLAUX) $(LAAUX) $(CLASRC) $(SCLAUX)
kusano 7d535a
	$(RANLIB) $(SUPERLULIB)
kusano 7d535a
kusano 7d535a
complex16: $(ZLUSRC) $(ALLAUX) $(LAAUX) $(ZLASRC) $(DZLAUX)
kusano 7d535a
	$(ARCH) $(ARCHFLAGS) $(SUPERLULIB) \
kusano 7d535a
		$(ZLUSRC) $(ALLAUX) $(LAAUX) $(ZLASRC) $(DZLAUX)
kusano 7d535a
	$(RANLIB) $(SUPERLULIB)
kusano 7d535a
kusano 7d535a
kusano 7d535a
##################################
kusano 7d535a
# Do not optimize these routines #
kusano 7d535a
##################################
kusano 7d535a
slamch.o: slamch.c ; $(CC) -c $(NOOPTS) $(CDEFS) $<
kusano 7d535a
dlamch.o: dlamch.c ; $(CC) -c $(NOOPTS) $(CDEFS) $<
kusano 7d535a
superlu_timer.o:  superlu_timer.c ; $(CC) -c $(NOOPTS) $<
kusano 7d535a
##################################
kusano 7d535a
kusano 7d535a
.c.o:
kusano 7d535a
	$(CC) $(CFLAGS) $(CDEFS) $(BLASDEF) -c $< $(VERBOSE)
kusano 7d535a
kusano 7d535a
.f.o:
kusano 7d535a
	$(FORTRAN) $(FFLAGS) -c $<
kusano 7d535a
kusano 7d535a
clean:	
kusano 7d535a
	rm -f *.o $(SUPERLULIB)