#
# Makefile for BNCpack
#

include bncmake.inc

# ---------------------------------------------------
all: libbnc libbncode libmpibnc
#all: libbnc libbncode libmpibnc test bench cee

libbnc:
	(cd $(SRC); $(MAKE); cd ../;)

libbncode:
	(cd $(ODE); $(MAKE); cd ../;)

libmpibnc:
	(cd $(MPI); $(MAKE); cd ../;)

test:
	(cd $(TEST); $(MAKE); cd ../;)

bench:
	(cd $(BENCH); $(MAKE); cd ../;)

document:
	(cd $(DOC); $(MAKE); cd ../;)

distzip:
	(cd ../; \
	rm $(BNCDIR).tar.gz; \
	rm $(BNCDIR).tar; \
	touch $(BNCDIR).tar; \
	tar cvf $(BNCDIR).tar $(BNCDIR)/License.txt; \
	tar rvf $(BNCDIR).tar $(BNCDIR)/bncmake.inc $(BNCDIR)/Makefile $(BNCDIR)/*.h; \
	tar rvf $(BNCDIR).tar $(BNCDIR)/$(DOC)/bnc.texi; \
	tar rvf $(BNCDIR).tar $(BNCDIR)/$(SRC)/*.c $(BNCDIR)/$(SRC)/Makefile; \
	tar rvf $(BNCDIR).tar $(BNCDIR)/$(MPI)/*.c $(BNCDIR)/$(MPI)/*.h $(BNCDIR)/$(MPI)/*.dat $(BNCDIR)/$(MPI)/Makefile; \
	tar rvf $(BNCDIR).tar $(BNCDIR)/$(TEST)/*.c $(BNCDIR)/$(TEST)/Makefile; \
	tar rvf $(BNCDIR).tar $(BNCDIR)/$(BENCH)/*.c $(BNCDIR)/$(BENCH)/Makefile; \
	tar rvf $(BNCDIR).tar $(BNCDIR)/$(ODE)/Makefile* $(BNCDIR)/$(ODE)/*.c $(BNCDIR)/$(ODE)/*.h; \
	gzip -f $(BNCDIR).tar; \
	cd $(BNCDIR);)
zip:
	-rm bnc.tar.gz
	-rm bnc.tar
	-touch bnc.tar
	-tar cvf bnc.tar License.txt
	-tar rvf bnc.tar bncmake.inc Makefile *.h
	-tar rvf bnc.tar $(DOC)/bnc.texi
	-tar rvf bnc.tar $(SRC)/*.c $(SRC)/Makefile
	-tar rvf bnc.tar $(MPI)/*.c $(MPI)/*.h $(MPI)/*.dat $(MPI)/Makefile
	-tar rvf bnc.tar $(TEST)/*.c $(TEST)/Makefile
	-tar rvf bnc.tar $(BENCH)/*.c $(BENCH)/Makefile
	-tar rvf bnc.tar $(WIN32)/*
	-tar rvf bnc.tar $(PTHREAD)/*.c
	-tar rvf bnc.tar mm/Makefile* mm/*.c mm/*.h
	-tar rvf bnc.tar $(ODE)/Makefile* $(ODE)/*.c $(ODE)/*.h
	-tar rvf bnc.tar $(CEE)/*
	-gzip -f bnc.tar

install:
	(cp bnc.h $(PREFIX)/include; chmod +r $(PREFIX)/include/bnc.h;)
	(cp _bnc_mpf.h $(PREFIX)/include; chmod +r $(PREFIX)/include/_bnc_mpf.h;)
	(cp $(ODE)/bncode.h $(PREFIX)/include; chmod +r $(PREFIX)/include/bncode.h;)
	(cp $(MPI)/mpi_gmp.h $(PREFIX)/include; chmod +r $(PREFIX)/include/mpi_gmp.h; cp $(MPI)/mpi_bnc.h $(PREFIX)/include; chmod +r $(PREFIX)/include/mpi_bnc.h;)
	(cp $(SRC)/libbnc.a $(PREFIX)/lib; chmod +r $(PREFIX)/lib/libbnc.a;)
	(cp $(ODE)/libbncode.a $(PREFIX)/lib; chmod +r $(PREFIX)/lib/libbncode.a;)
	(cp $(MPI)/libmpibnc.a $(PREFIX)/lib; chmod +r $(PREFIX)/lib/libmpibnc.a;)

clean:
	(cd $(SRC); $(MAKE) clean; cd ../;)
	(cd $(ODE); $(MAKE) clean; cd ../;)
	(cd $(MPI); $(MAKE) clean; cd ../;)
	(cd $(TEST); $(MAKE) clean; cd ../;)
	(cd $(BENCH); $(MAKE) clean; cd ../;)
