
-include make.inc

PKG=fgsl-0.7

ifeq ($(F90),)
all :
	@echo "Please run configure to set up build"
else
all : lib 
endif

test : lib test_fgsl.exe test_fgslerr.exe
	./test_fgsl.exe
	cd tests; $(MAKE) clean; $(MAKE) run


lib : libfgsl_$(F90).a 

libfgsl_$(F90).a : fgsl.o fgslaux.o
	ar -crsv libfgsl_$(F90).a $^
test_fgsl.exe : test_fgsl.f90 fgsl.o fgslaux.o tmod.o tmodaux.o
	$(F90) $(FFLAGS) $(LDFLAGS) -o $@ $^ $(GSL_LIB) 
test_fgslerr.exe : test_fgslerr.f90 fgsl.o fgslaux.o tmod.o
	$(F90) $(FFLAGS) $(LDFLAGS) -o $@ $^ $(GSL_LIB)


%.o : %.f90
	$(F90) $(FFLAGS) -c -o $@ $^

%.o : %.c
	$(CC) -c $(GSL_INC) -o $@ $^

install : lib
	cp -p libfgsl_$(F90).a $(PREFIX)/$(LIB)
	chmod ugo+r $(PREFIX)/$(LIB)/libfgsl_$(F90).a
	mkdir -p $(PREFIX)/include/$(F90)
	cp -p fgsl.mod $(PREFIX)/include/$(F90)

doc : 
	cd doc; $(MAKE)

clean :
	rm -f a.out *.exe *.o *.mod *~ *.a typesizes.out *.tar.gz

distclean : clean
	cd doc; $(MAKE) clean
	cd doc/examples; $(MAKE) clean
	cd tests; $(MAKE) clean
	rm -f make.inc integer.finc

package :
	-ln -s . $(PKG)
	tar -czf $(PKG).tar.gz --exclude .svn --exclude forum --exclude .texi $(PKG)/*.f90 $(PKG)/*.c $(PKG)/Makefile $(PKG)/configure $(PKG)/README $(PKG)/api $(PKG)/doc $(PKG)/interface $(PKG)/tests
	rm -f $(PKG)

count :
	@echo -n "Fortran code: "; cat f*.f90 */*.finc | grep -v "^\!" | wc -l
	@echo -n "C code:       "; cat fgslaux.c | wc -l
	@echo -n "Test code:    "; cat tests/*.f90  | grep -v "^\!" | wc -l
	@echo -n "Example code: "; cat doc/examples/*.f90  | grep -v "^\!" | wc -l
