Makefile 1.69 KB
include $(BTREE)/Make.inc


objects = fvnlib.o
library = libfvn$(libext)

all: umfpack fnlib $(library)

clean:
		rm -f {*.o,*.oo,*.ipo,*.a,*.mod}
		( cd fvn_sparse ; rm -f {*.o,*.oo,*.ipo,*.a,*.mod} )
		( cd fvn_sparse/AMD ; make clean )
		( cd fvn_sparse/UMFPACK ; make clean )
		( cd fvn_fnlib ; make clean )
		( rm -f fvn_sparse/AMD/Lib/libamd.a )
		( rm -f fvn_sparse/UMFPACK/Lib/libumfpack.a )

install:
		cp fvn.mod $(BTREE)/modules
		cp $(library) $(BTREE)/lib
		( cd fvn_fnlib ; make install )
		( cp fvn_sparse/UMFPACK/Lib/libumfpack.a $(BTREE)/lib/libumfpack$(libext) )
		( cp fvn_sparse/AMD/Lib/libamd.a $(BTREE)/lib/libamd$(libext) )

%.o: %.f90
		$(F95) $(F95FLAGS) -c $< -o $@

$(objects):fvnlib.f90 fvn_quadpack/dqk15_2d_inner.f fvn_quadpack/dqk31_2d_outer.f \
fvn_quadpack/d1mach.f fvn_quadpack/dqk31_2d_inner.f fvn_quadpack/dqage.f \
fvn_quadpack/dqk15.f fvn_quadpack/dqk21.f fvn_quadpack/dqk31.f fvn_quadpack/dqk41.f \
fvn_quadpack/dqk51.f fvn_quadpack/dqk61.f fvn_quadpack/dqk41_2d_outer.f \
fvn_quadpack/dqk41_2d_inner.f fvn_quadpack/dqag_2d_outer.f fvn_quadpack/dqag_2d_inner.f \
fvn_quadpack/dqpsrt.f fvn_quadpack/dqag.f fvn_quadpack/dqage_2d_outer.f \
fvn_quadpack/dqage_2d_inner.f fvn_quadpack/dqk51_2d_outer.f fvn_quadpack/dqk51_2d_inner.f \
fvn_quadpack/dqk61_2d_outer.f fvn_quadpack/dqk21_2d_outer.f fvn_quadpack/dqk61_2d_inner.f \
fvn_quadpack/dqk21_2d_inner.f fvn_quadpack/dqk15_2d_outer.f

$(library): $(objects)
		$(AR) rcu $@ $(objects)
		$(AR) ru $@ fvn_sparse/umfpack_wrapper.o
		$(RANLIB) $@

umfpack:
		( cd fvn_sparse/UMFPACK ; make ) 
		( cd fvn_sparse ; $(CC) $(CFLAGS) -c umfpack_wrapper.c -IUMFPACK/Include -IAMD/Include -IUFconfig -o umfpack_wrapper.o)

fnlib:
		( cd fvn_fnlib ; make )