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


objects = fvnlib.o
modobjects = $(objects)

library = libfvn$(libext)
libso   = libfvn$(soext)

ifeq ($(BUILDSO),y)
all: sub $(library) $(libso)
else
all: sub $(library)
endif



sub:
		( cd fvn_common && make && make install )
		( cd fvn_linear && make && make install )
		( cd fvn_integ && make && make install )
		( cd fvn_interpol && make && make install )
		( cd fvn_sparse && make && make install )
		( cd fvn_fnlib && make && make install )
		( cd fvn_misc && make && make install )

clean:
		rm -f {*.o,*.oo,*.ipo,*.a,*.mod,*.so}
		( cd fvn_common && make clean )
		( cd fvn_linear && make clean )
		( cd fvn_integ && make clean )
		( cd fvn_interpol && make clean )
		( cd fvn_sparse && make clean )
		( cd fvn_fnlib && make clean )
		( cd fvn_misc && make clean)

install:
		cp fvn.mod $(BTREE)/modules
		cp $(library) $(BTREE)/lib
ifeq ($(BUILDSO),y)
		cp $(libso) $(BTREE)/lib
endif

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

# cette ligne est elle utile et nécessaire?
#$(objects):fvnlib.f90

$(library): $(objects) sub
		$(AR) rcu $@ $(objects)
		$(AR) ru $@ fvn_common/*.o
		$(AR) ru $@ fvn_linear/*.o
		$(AR) ru $@ fvn_integ/*.o
		$(AR) ru $@ fvn_interpol/*.o
		$(AR) ru $@ fvn_sparse/*.o
		$(AR) ru $@ fvn_sparse/AMD/Lib/*.o
		$(AR) ru $@ fvn_sparse/UMFPACK/Lib/*.o
		$(AR) ru $@ fvn_fnlib/*.o
		$(AR) ru $@ fvn_misc/*.o
		$(RANLIB) $@


ifeq ($(BUILDSO),y)
$(libso): $(library)
		ld -shared -soname $(libso) -o $(libso) --whole-archive $(library)
endif