EXTRA_DIST += \
	KNOWN_PROBLEMS \
	README.ChangeLog \
	RELNOTES \
	descrip.mms

# Tests
basic_tests:
	cd $(top_builddir)/tests && $(MAKE) tests_in

# Let Automake know how to perform basic tests
check-local tests_in:
	$(MAKE) basic_tests

test1 :
	echo "Running built-in test 1"
	cd tests ; $(PERL) ../$(top_srcdir)/tests/Scripts/run-basic-tests.pl built-in 1 $(abinit_srcdir)

test2 :
	echo "Running built-in test 2"
	cd tests ; $(PERL) ../$(top_srcdir)/tests/Scripts/run-basic-tests.pl built-in 2 $(abinit_srcdir)

test3 :
	echo "Running built-in test 3"
	cd tests ; $(PERL) ../$(top_srcdir)/tests/Scripts/run-basic-tests.pl built-in 3 $(abinit_srcdir)

test4 :
	echo "Running built-in test 4"
	cd tests ; $(PERL) ../$(top_srcdir)/tests/Scripts/run-basic-tests.pl built-in 4 $(abinit_srcdir)

test5 :
	echo "Running built-in test 5"
	cd tests ; $(PERL) ../$(top_srcdir)/tests/Scripts/run-basic-tests.pl built-in 5 $(abinit_srcdir)

# ---------------------------------------------------------------------------- #

# Help
help:
	@more $(top_srcdir)/doc/help_make/help_make_top

help_dev dev_help dev:
	@more $(top_srcdir)/doc/help_make/help_make_top_dev

# ---------------------------------------------------------------------------- #

# Install Arch hooks for selected developers
arch_hooks:
	@$(top_srcdir)/extras/arch_hooks/install-arch-hooks $(top_srcdir)

# ---------------------------------------------------------------------------- #

# robodoc-html-x.x.x.tar contains all html files produced by ROBODOC
robodoc:
	rm -rf ,,robodoc robodoc-html && mkdir ,,robodoc
	cp -rf src/defs src/[0-9]* src/main ,,robodoc
	cp config/robodoc/robodoc-html.rc ,,robodoc/robodoc.rc
	rm -fr ,,robodoc/*/.arch-ids
	cd ,,robodoc && robodoc > robodoc.log
	mv -f ,,robodoc/www/robodoc robodoc-html
	tardir=robodoc-html && \
	 $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >robodoc-html-$(VERSION).tar.gz
	rm -rf robodoc-html ,,robodoc

# infos_html-x.x.x.tar contains all html files needed for the Web site
infos_html:
	-rm -fr infos_htm* ,infos*
	cp -fr doc ,infos-$(VERSION)
	cp util/misc/var-file-index.py ,infos-$(VERSION)
	cp -fr KNOWN_PROBLEMS ,infos-$(VERSION)/known_problems
	mkdir ,infos-$(VERSION)/Tests
	mkdir ,infos-$(VERSION)/Tests/Test_fast ,infos-$(VERSION)/Tests/Test_v1 ,infos-$(VERSION)/Tests/Test_v2 
	mkdir ,infos-$(VERSION)/Tests/Test_v3 ,infos-$(VERSION)/Tests/Test_v4 ,infos-$(VERSION)/Tests/Test_v5 
	cp -fr tests/fast/Input ,infos-$(VERSION)/Tests/Test_fast
	cp -fr tests/v1/Input ,infos-$(VERSION)/Tests/Test_v1
	cp -fr tests/v2/Input ,infos-$(VERSION)/Tests/Test_v2
	cp -fr tests/v3/Input ,infos-$(VERSION)/Tests/Test_v3
	cp -fr tests/v4/Input ,infos-$(VERSION)/Tests/Test_v4
	cp -fr tests/v5/Input ,infos-$(VERSION)/Tests/Test_v5	
	cd ,infos-$(VERSION) ; python var-file-index.py
	cp ,infos-$(VERSION)/developers/contributing.html ,infos-$(VERSION)
	-rm -f ,infos-$(VERSION)/features/features.html ,infos-$(VERSION)/release_notes/release_notes.html ,infos-$(VERSION)/installation_notes/install.html
	cp -fr ,infos-$(VERSION)/features/features_v$(ABINIT_VERSION_MAJOR).$(ABINIT_VERSION_MINOR).html ,infos-$(VERSION)/features/features.html
	cp -fr ,infos-$(VERSION)/release_notes/rel*_v$(ABINIT_VERSION_MAJOR).$(ABINIT_VERSION_MINOR).html ,infos-$(VERSION)/release_notes/release_notes.html
	cp -fr ,infos-$(VERSION)/inst*_notes/inst*_v$(ABINIT_VERSION_MAJOR).$(ABINIT_VERSION_MINOR).html ,infos-$(VERSION)/install_notes/install.html
	-rm -fr ,infos-$(VERSION)/.arch-ids ,infos-$(VERSION)/*/.arch-ids ,infos-$(VERSION)/*/*/.arch-ids ,infos-$(VERSION)/*/*/*/.arch-ids
	tar -cvf infos_html-$(VERSION).tar                \
          ,infos-$(VERSION)/Tests \
          ,infos-$(VERSION)/input_variables ,infos-$(VERSION)/users ,infos-$(VERSION)/tutorial ,infos-$(VERSION)/known_problems \
          ,infos-$(VERSION)/gallery/Plot1.jpg ,infos-$(VERSION)/gallery/pcpm.gif ,infos-$(VERSION)/gallery/mode.png  \
          ,infos-$(VERSION)/*/*.css \
          ,infos-$(VERSION)/install_notes/install.html \
          ,infos-$(VERSION)/release_notes/release_notes.html \
          ,infos-$(VERSION)/features/features.html \
          ,infos-$(VERSION)/presentation/presentation.pdf
	gzip infos_html-$(VERSION).tar
	-rm -fr ,infos-$(VERSION)

# Prepare the theory documents
theory :
	cd doc/theory ; \
         latex geometry.tex ; latex geometry.tex ; dvips -f geometry.dvi > geometry.ps ; ps2pdf geometry.ps ; \
         latex 1WF.tex ;      latex 1WF.tex ;      dvips -f 1WF.dvi > 1WF.ps ;           ps2pdf 1WF.ps ; \
         latex set_WFs.tex ;  latex set_WFs.tex ;  dvips -f set_WFs.dvi > set_WFs.ps ;   ps2pdf set_WFs.ps ; \
         latex noncol.tex ;   latex noncol.tex ;   dvips -f noncol.dvi > noncol.ps ;     ps2pdf noncol.ps ; \
         rm -f *log *aux *dvi *ps
	cd doc/macroave ; \
         latex macroave.tex ; latex macroave.tex ; dvips -f macroave.dvi > macroave.ps ; ps2pdf macroave.ps ; \
         rm -f *log *aux *dvi *ps

# Prepare the presentation document
presentation :
	cd doc/presentation ; \
         latex presentation.tex ; latex presentation.tex ; dvips -f presentation.dvi > presentation.ps ; ps2pdf presentation.ps ; \
         rm -f *log *aux *dvi *ps ; \
         gzip presentation.pdf

# For SMP machines. Before starting the -j4 option, one needs some pre-compilation
# to avoid spurious effects. 
multi:
	cd lib/light ; make &
	cd lib/blas ; make &
	cd src/defs ; make
	cd src/main ; make abinip-abinit.o &
	cd src/01managempi ; make &
	cd src/08seqpar ; make 
	make -j4

# For SMP machines that cannot execute "make multi" because of "make -j4". Must be followed by the usual "make".
multi1:
	cd src/02nlstrain ; make
multi2:
	cd lib/macroav ; make
	cd src/01cg ; make
	cd src/01managempi ; make
	cd src/02parser ; make
	cd src/02psp ; make
	cd src/03nonlocal ; make
	cd src/03ionetcdf ; make
	cd src/03iovars ; make
	cd src/03paw ; make
	cd src/03xc ; make
	cd src/04bader ; make
	cd src/04occeig ; make
	cd src/04rsprc ; make
	cd src/05common ; make
	cd src/07lwf ; make
	cd src/07ddb ; make
	cd src/09cut3d ; make
multi3:
	cd lib/light ; make
	cd src/lib01fftnew ; make
	cd src/00basis ; make
	cd src/01contract ; make
	cd src/01util ; make
	cd src/03recipspace ; make
	cd src/03xml ; make
	cd src/05gw ; make
	cd src/06response ; make
	cd src/08seqpar ; make
multi4:
	cd lib/lapack ; make
	cd lib/numeric ; make
	cd lib/numericf90 ; make
	cd src/02ffts ; make
	cd src/02geometry ; make
	cd src/02spacepar ; make
	cd src/04iowfdenpot ; make
	cd src/04wfs ; make
	cd src/06geomoptim ; make
	cd src/07suscep ; make
	cd src/11drive ; make
multi_alt:
	cd src/defs ; make
	make multi1 &
	make multi2 &
	make multi3 &
check_list:
	@cat $(top_srcdir)/doc/maintainers/check_list.txt

split_dist:
	util/maintainers/make-splitted-dist.sh 1
	tar -cvf abinitE-$(VERSION).tar abinit-$(VERSION)/tests/v*
	rm -fr abinit-$(VERSION)/tests/v*
	tar -cvf abinitD-$(VERSION).tar abinit-$(VERSION)/tests/Psps_for_tests
	rm -fr abinit-$(VERSION)/tests/Psps_for_tests
	tar -cvf abinitC-$(VERSION).tar abinit-$(VERSION)/tests
	rm -fr abinit-$(VERSION)/tests
	tar -cvf abinitB-$(VERSION).tar abinit-$(VERSION)/src abinit-$(VERSION)/lib
	rm -fr abinit-$(VERSION)/src
	rm -fr abinit-$(VERSION)/lib
	tar -cvf abinitA-$(VERSION).tar abinit-$(VERSION)
	rm -fr abinit-$(VERSION)
	gzip abinitA-$(VERSION).tar
	gzip abinitB-$(VERSION).tar
	gzip abinitC-$(VERSION).tar
	gzip abinitD-$(VERSION).tar
	gzip abinitE-$(VERSION).tar

# ---------------------------------------------------------------------------- #

# Generate binary tarball
abinit_binpkgdir = $(ABINIT_BINARY_PACKAGE)
binary_package:
	-rm -rf $(abinit_binpkgdir) $(abinit_binpkgdir).tgz
	mkdir -p $(abinit_binpkgdir)
	$(MAKE) $(MAKEFLAGS) distdir && \
	 chmod -R u+w $(distdir) && \
	 mv $(distdir) $(abinit_binpkgdir)
	$(MAKE) $(MAKEFLAGS) install DESTDIR=$(PWD)/$(abinit_binpkgdir)
	mkdir -p $(abinit_binpkgdir)/$(abinit_datdir)
	cd $(abinit_binpkgdir); \
	 mv $(distdir)/tests ./$(abinit_datdir); \
	 mv $(distdir)/util/users ./$(abinit_datdir); \
	 mv $(distdir)/extras/matlab_data_analysis ./$(abinit_datdir); \
	 mv $(distdir)/extras/post_processing ./$(abinit_datdir); \
	 rm -rf $(distdir); \
	 tardir=. && \
	 $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >../$(abinit_binpkgdir).tgz

bin_prep:
	rm -fr abinitbin-$(VERSION) abinitbin.tar abinitbin_seq-$(VERSION)* abinitbin_seqpar-$(VERSION)*
	mkdir abinitbin-$(VERSION)
	tar -cvf abinitbin.tar AUTHORS COPYING INSTALL KNOWN_PROBLEMS NEWS README* RELNOTES THANKS bin src \
            doc extras util tests/Psps* tests/v*/Input tests/tutorial tests/paral tests/buil* tests/Scripts tests/cpu
	mv abinitbin.tar abinitbin-$(VERSION)
	cd abinitbin-$(VERSION) ; tar -xvf abinitbin.tar ; \
            rm -fr abinitbin.tar ; rm -fr .arch-* ; rm -fr */.arch-* ; \
            rm -fr */*/.arch-* ; rm -fr */*/*/.arch-* ; rm -fr */*/*/*/.arch-* ; \
            cd src ; rm -fr */*.a ; \
            rm -fr 00*/*.F90 ; rm -fr 00*/*.o ; \
            rm -fr 01*/*.F90 ; rm -fr 01*/*.o ; \
            rm -fr 02*/*.F90 ; rm -fr 02*/*.o ; \
            rm -fr 03*/*.F90 ; rm -fr 03*/*.o ; \
            rm -fr 04*/*.F90 ; rm -fr 04*/*.o ; \
            rm -fr 05*/*.F90 ; rm -fr 05*/*.o ; \
            rm -fr 06*/*.F90 ; rm -fr 06*/*.o ; \
            rm -fr 07*/*.F90 ; rm -fr 07*/*.o ; \
            rm -fr 08*/*.F90 ; rm -fr 08*/*.o ; \
            rm -fr 09*/*.F90 ; rm -fr 09*/*.o ; \
            rm -fr */*.F90 ; rm -fr */*.o ; \
            cd ../tests ; rm -fr */,* ; cd .. ; rm -fr extras/arch_hooks ; \
            mkdir opt ; mv src/main/* opt ; rm -fr src ; \
            cp ../util/maintainers/Makefile_topdir_binarypack Makefile ; \
            cp ../util/maintainers/Makefile_testdir_binarypack tests/Makefile ; \
            cp ../util/maintainers/tests.env_bin tests/tests.env

bin_seq: bin_prep
	cd abinitbin-$(VERSION) ; rm -fr tests/paral opt/abi*nip
	tar -cvf abinitbin_seq-$(VERSION).tar abinitbin-$(VERSION)
	chmod 644 abinitbin_seq-$(VERSION).tar
	gzip abinitbin_seq-$(VERSION).tar
	rm -fr abinitbin-$(VERSION)

bin_seqpar: bin_prep
	tar -cvf abinitbin_seqpar-$(VERSION).tar abinitbin-$(VERSION)
	chmod 644 abinitbin_seqpar-$(VERSION).tar
	gzip abinitbin_seqpar-$(VERSION).tar
	cd abinitbin-$(VERSION) ; rm opt/abinip ; rm -fr tests/paral
	tar -cvf abinitbin_seq-$(VERSION).tar abinitbin-$(VERSION)
	chmod 644 abinitbin_seq-$(VERSION).tar
	gzip abinitbin_seq-$(VERSION).tar
	rm -fr abinitbin-$(VERSION)



syntax highlighted by Code2HTML, v. 0.9.1