diff --git a/Makefile b/Makefile index 0cd5bd2..20fbd45 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,15 @@ 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 ) @@ -19,7 +26,7 @@ sub: ( cd fvn_misc && make && make install ) clean: - rm -f {*.o,*.oo,*.ipo,*.a,*.mod} + rm -f {*.o,*.oo,*.ipo,*.a,*.mod,*.so} ( cd fvn_common && make clean ) ( cd fvn_linear && make clean ) ( cd fvn_integ && make clean ) @@ -31,6 +38,9 @@ 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 $@ @@ -51,3 +61,8 @@ $(library): $(objects) sub $(AR) ru $@ fvn_misc/*.o $(RANLIB) $@ + +ifeq ($(BUILDSO),y) +$(libso): $(library) + ld -shared -soname $(libso) -o $(libso) --whole-archive $(library) +endif