quantum-espresso/install/plugins_makefile

661 lines
19 KiB
Plaintext

# Copyright (C) 2001-2016 Quantum ESPRESSO group
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License. See the file `License' in the root directory
# of the present distribution.
#
# Makefile for plugins
sinclude ../make.inc
include plugins_list
# MAIN target
EXTLIBS=liblapack libblas libiotk
###########################################################
# Template function
# $(1) = package name
# $(2) = package URL
# $(3) = directory name
# $(4) = plugin/code name
###########################################################
define download_and_unpack
@(if test ! -s ../archive/$(1).tar.gz && test ! -d ../$(3) ; then \
wget -O ../archive/$(1).tar.gz $(2) > /dev/null 2>&1; \
if test "`echo $$?`" -ne "0" ; then \
curl -o ../archive/$(1).tar.gz $(2) > /dev/null 2>&1; \
if test "`echo $$?`" -ne "0" ; then \
echo "*** Unable to download $(4). Test whether curl or wget is installed and working," ; \
echo "*** if you have direct access to internet. If not, copy into archive/ the file" ; \
echo "*** $(1).tar.gz from $(2)." ; \
exit 1 ; fi ; fi ; fi)
if test ! -d ../$(3); then \
(gzip -dc ../archive/$(1).tar.gz | (cd ../ ; tar -xvf -)) ; fi
if test ! -d ../$(3); then \
(cd ../ ; ln -s $(1) $(3)) ; fi
endef
###########################################################
# LD1
###########################################################
ld1: uncompress-ld1
if test -d ../atomic; then \
cd ../atomic; $(MAKE) all || exit 1; cd ../bin; ln -fs ../atomic/src/ld1.x . ; fi
touch make-ld1
uncompress-ld1: touch-dummy
$(call download_and_unpack,$(LD1),$(LD1_URL),atomic,ld1)
touch uncompress-ld1
###########################################################
# XSpectra
###########################################################
xspectra: uncompress-xspectra
if test -d ../XSpectra; then \
cd ../XSpectra; $(MAKE) all || exit 1; cd ../bin; ln -fs ../XSpectra/src/xspectra.x . ; fi
touch make-xspectra
uncompress-xspectra: touch-dummy
$(call download_and_unpack,$(XSPECTRA),$(XSPECTRA_URL),XSpectra,xspectra)
touch uncompress-xspectra
###########################################################
# PWCOND
###########################################################
pwcond: uncompress-pwcond
if test -d ../PWCOND; then \
cd ../PWCOND; $(MAKE) all || exit 1; cd ../bin; ln -fs ../PWCOND/src/pwcond.x . ; fi
touch make-pwcond
uncompress-pwcond: touch-dummy
$(call download_and_unpack,$(PWCOND),$(PWCOND_URL),PWCOND,pwcond)
touch uncompress-pwcond
###########################################################
# NEB
###########################################################
neb: uncompress-neb
if test -d ../NEB; then \
cd ../NEB; $(MAKE) all || exit 1; cd ../bin; ln -fs ../NEB/src/neb.x . ; fi
touch make-neb
uncompress-neb: touch-dummy
$(call download_and_unpack,$(NEB),$(NEB_URL),NEB,neb)
touch uncompress-neb
###########################################################
# TDDFPT
###########################################################
tddfpt: uncompress-tddfpt
if test -d ../TDDFPT; then \
cd ../TDDFPT; $(MAKE) all || exit 1; cd ../bin; ln -fs ../TDDFPT/src/turbo_lanczos.x . ; \
ln -fs ../TDDFPT/tools/turbo_spectrum.x . ; fi
touch make-tddfpt
uncompress-tddfpt: touch-dummy
$(call download_and_unpack,$(TDDFPT),$(TDDFPT_URL),TDDFPT,tddfpt)
touch uncompress-tddfpt
###########################################################
# PHonon
###########################################################
phonon: uncompress-phonon
if test -d ../PHonon; then \
cd ../PHonon; $(MAKE) all || exit 1; cd ../bin; \
ln -fs ../PHonon/PH/ph.x . ; \
ln -fs ../PHonon/PH/dynmat.x . ; \
ln -fs ../PHonon/PH/matdyn.x . ; \
ln -fs ../PHonon/PH/q2r.x . ; \
ln -fs ../PHonon/PH/q2qstar.x . ; \
ln -fs ../PHonon/PH/lambda.x . ; \
ln -fs ../PHonon/PH/fqha.x . ; \
ln -fs ../PHonon/Gamma/phcg.x . ; \
ln -fs ../PHonon/D3/d3.x . ; \
fi
touch make-phonon
uncompress-phonon: touch-dummy
$(call download_and_unpack,$(PHONON),$(PHONON_URL),PHonon,phonon)
touch uncompress-phonon
###########################################################
# test-suite
###########################################################
test-suite: uncompress-test-suite
if test -d ../test-suite ; then \
( cd ../test-suite ; $(MAKE) TLDEPS= run-tests || exit 1) ; fi
uncompress-test-suite: touch-dummy
$(call download_and_unpack,$(TESTSUITE),$(TESTSUITE_URL),test-suite,test-suite)
touch uncompress-test-suite
##########################################################
# GIPAW
###########################################################
gipaw: uncompress-gipaw configure-gipaw
if test -d ../GIPAW; then \
cd ../GIPAW; $(MAKE) all || exit 1; cd ../bin; ln -fs ../GIPAW/src/gipaw.x . ; fi
touch make-gipaw
uncompress-gipaw: touch-dummy
$(call download_and_unpack,$(GIPAW),$(GIPAW_URL),GIPAW,qe-gipaw)
touch uncompress-gipaw
configure-gipaw: touch-dummy
cd ../GIPAW ; \
./configure --with-qe-source=${TOPDIR}
touch ./configure-gipaw
###########################################################
# EPW
###########################################################
epw: extlibs uncompress-epw
if test -d ../EPW; then \
cd ../EPW ; $(MAKE) all ; $(MAKE) all || exit 1; cd ../bin; ln -fs ../EPW/bin/epw.x . ; fi
-(cd ../bin; ln -fs ../EPW/src/epw.x .)
touch ./make-epw
uncompress-epw: touch-dummy
$(call download_and_unpack,$(EPW),$(EPW_URL),EPW,EPW)
touch uncompress-epw
###########################################################
# wannier90
###########################################################
w90: uncompress-w90 configure-w90
if test -d ../W90; then \
cd ../W90; $(MAKE) all || exit 1; cd ../bin; ln -fs ../W90/wannier90.x . ; fi
-(cd ../bin; ln -fs ../W90/wannier90.x .)
touch make-w90
uncompress-w90: touch-dummy
$(call download_and_unpack,$(W90),$(W90_URL),W90,wannier90)
touch uncompress-w90
configure-w90: touch-dummy
cd ../W90 ; \
if (test -e ../install/make_wannier90.sys) || (test -d ../W90); then \
(cp ../install/make_wannier90.inc ../W90/make.sys); fi
touch ./configure-w90
###########################################################
# WANT
###########################################################
want: extlibs uncompress-want configure-want
if test -d ../WANT; then \
cd ../WANT; $(MAKE) all || exit 1; fi
# - ( cd ../bin ; ln -sf ../WANT/bin/* . )
touch ./make-want
uncompress-want: touch-dummy
$(call download_and_unpack,$(WANT),$(WANT_URL),WANT,want)
touch uncompress-want
configure-want: touch-dummy
cd ../WANT ; \
./configure \
--with-external-iotk \
IOTK_LIBS="-L../../../S3DE/iotk/src -liotk" \
IOTK_INCLUDE="$(MOD_FLAG)../../../S3DE/iotk/src" \
CC="$(CC)" \
F90="$(F90)" \
MPIF90="$(MPIF90)" \
F90FLAGS="$(F90FLAGS) $($PRE_FDFLAGS) $(FDFLAGS) $(IFLAGS) $(MODFLAGS)" \
F77="$(F77)" \
FFLAGS="$(FFLAGS)" \
FFLAGS_NOOPT="$(FFLAGS_NOOPT)" \
LD="$(LD)" \
LDFLAGS="$(LDFLAGS)" \
AR="$(AR)" \
ARFLAGS="$(ARFLAGS)" \
RANLIB="$(RANLIB)" \
DFLAGS="$(DFLAGS)" \
FDFLAGS="$(DFLAGS)" \
LAPACK_LIBS="$(LAPACK_LIBS)" \
BLAS_LIBS="$(BLAS_LIBS)" \
FFT_LIBS="$(FFT_LIBS)"
touch ./configure-want
###########################################################
# YAMBO
###########################################################
yambo: extlibs uncompress-yambo configure-yambo
if test -d ../YAMBO; then \
cd ../YAMBO; $(MAKE) yambo interfaces ypp || exit 1; fi
touch ./make-yambo
uncompress-yambo: touch-dummy
$(call download_and_unpack,$(YAMBO),$(YAMBO_URL),YAMBO,yambo)
touch uncompress-yambo
configure-yambo: touch-dummy
@(if test -z "$(F90)" ; then \
echo "*** F90 is not defined; please define F90 or edit make.inc" ; exit 1 ; fi)
cd ../YAMBO ; \
./configure \
--with-blas-libs="$(BLAS_LIBS)" \
--with-lapack-libs="$(LAPACK_LIBS) $(BLAS_LIBS)" \
--with-iotk-path="$(TOPDIR)/iotk" \
--with-fft-libs="$(FFT_LIBS)" \
--with-scalapack-libs="$(SCALAPACK_LIBS)" \
--with-blacs-libs="$(SCALAPACK_LIBS)" \
PFC="$(MPIF90)" \
FC="$(F90)" \
F77="$(F77)"
touch ./configure-yambo
yambo-devel: extlibs uncompress-yambo-devel configure-yambo-devel
if test -d ../YAMBO_DEVEL; then \
cd ../YAMBO_DEVEL; $(MAKE) yambo interfaces ypp || exit 1; fi
touch ./make-yambo-devel
uncompress-yambo-devel: touch-dummy
$(call download_and_unpack,$(YAMBO_DEVEL),$(YAMBO_DEVEL_URL),YAMBO_DEVEL,yambo-devel)
touch uncompress-yambo-devel
configure-yambo-devel: touch-dummy
@(if test -z "$(F90)" ; then \
echo "*** F90 is not defined; please define F90 or edit make.inc" ; exit 1 ; fi)
cd ../YAMBO_DEVEL ; \
./configure \
--with-blas-libs="$(BLAS_LIBS)" \
--with-lapack-libs="$(LAPACK_LIBS) $(BLAS_LIBS)" \
--with-iotk-path="$(TOPDIR)/iotk" \
--with-fft-libs="$(FFT_LIBS)" \
--with-scalapack-libs="$(SCALAPACK_LIBS)" \
--with-blacs-libs="$(SCALAPACK_LIBS)" \
PFC="$(MPIF90)" \
FC="$(F90)" \
F77="$(F77)"
touch ./configure-yambo-devel
touch-dummy:
$(dummy-variable)
###########################################################
# plumed
###########################################################
plumed: test-plumed uncompress-plumed patch-plumed
if test -d ../PLUMED; then \
cd ../; $(MAKE) pw; $(MAKE) cp; fi
touch make-plumed
test-plumed: touch-dummy
@(if test ! -s ../archive/$(PLUMED).tar.gz && test ! -d ../PLUMED; then \
echo "The release contains no PLUMED package. Trying to download it from qe-forge."; fi)
touch ./test-plumed
uncompress-plumed: touch-dummy
$(call download_and_unpack,$(PLUMED),$(PLUMED_URL),PLUMED,plumed)
touch uncompress-plumed
patch-plumed: touch-dummy
if test -d ../PLUMED; then \
(cd ../PLUMED ; export plumedir="`pwd`" ; \
cp patches/plumedpatch_qespresso_5.2.sh ../ ; \
cd ../ ; ./plumedpatch_qespresso_5.2.sh -patch) ; fi
touch ./patch-plumed
###########################################################
# SaX
###########################################################
sax: extlibs uncompress-sax configure-sax
if test -d ../SaX; then \
cd ../SaX; $(MAKE) sax_all; fi
# - ( cd ../bin ; ln -sf ../SaX/sax/bin/* . )
touch ./make-sax
uncompress-sax: touch-dummy
$(call download_and_unpack,$(SAX),$(SAX_URL),SaX,$(SAX))
touch uncompress-sax
configure-sax: touch-dummy
cd ../SaX ; \
./configure \
--with-external-iotk \
IOTK_LIBS="-L../../S3DE/iotk/src -liotk" \
IOTK_INCLUDE="$(MOD_FLAG)../../S3DE/iotk/src" \
CC="$(CC)" \
F90="$(F90)" \
MPIF90="$(MPIF90)" \
F90FLAGS="$(F90FLAGS) $($PRE_FDFLAGS) $(FDFLAGS) $(IFLAGS) $(MODFLAGS)" \
F77="$(F77)" \
FFLAGS="$(FFLAGS)" \
FFLAGS_NOOPT="$(FFLAGS_NOOPT)" \
LD="$(LD)" \
LDFLAGS="$(LDFLAGS)" \
AR="$(AR)" \
ARFLAGS="$(ARFLAGS)" \
RANLIB="$(RANLIB)" \
LIB_LAPACK="$(LAPACK_LIBS)" \
LIB_BLAS="$(BLAS_LIBS)"
touch ./configure-sax
###########################################################
# WEST
###########################################################
west: extlibs uncompress-west
if test -d ../West; then \
cd ../West; $(MAKE) -j1 all || exit 1; fi
touch ./make-west
uncompress-west: touch-dummy
$(call download_and_unpack,$(WEST),$(WEST_URL),West,WEST)
touch uncompress-west
###########################################################
# extlibs
###########################################################
extlibs:
test -n "$(EXTLIBS)" && ( cd .. ; $(MAKE) $(EXTLIBS) || exit 1) || :
###########################################################
# GUI
###########################################################
gui: uncompress-gui
touch make-gui
uncompress-gui: touch-dummy
$(call download_and_unpack,$(GUI),$(GUI_URL),GUI,pwGUI)
touch uncompress-gui
###########################################################
# GPU
###########################################################
gpu: uncompress-gpu
touch make-gpu
uncompress-gpu: touch-dummy
$(call download_and_unpack,$(GPU),$(GPU_URL),GPU,QE-GPU)
@ echo ""
@ echo " *****************************************************************************"
@ echo " * QE-GPU has been downloaded under ./archive Please follow the instructions *"
@ echo " * reported here: http://qe-forge.org/gf/project/q-e-gpu/ *"
@ echo " *****************************************************************************"
@ echo ""
touch uncompress-gpu
###########################################################
# cleaning
###########################################################
# each lib independently
ld1_clean:
if test -d ../atomic; then (cd ../atomic; \
$(MAKE) clean); fi
rm -f ../bin/ld1.x
rm -rf ./make-ld1
ld1_veryclean: ld1_clean
# dir is not deleted for compatibility with the repository
ld1_distclean:
rm -f ../archive/$(LD1).tar.gz
xspectra_clean:
if test -d ../XSpectra; then (cd ../XSpectra; \
$(MAKE) clean); fi
rm -f ../bin/xspectra.x
rm -rf ./make-xspectra
xspectra_veryclean: xspectra_clean
# dir is not deleted for compatibility with the repository
xspectra_distclean:
rm -f ../archive/$(XSPECTRA).tar.gz
pwcond_clean:
if test -d ../PWCOND; then (cd ../PWCOND; \
$(MAKE) clean); fi
rm -f ../bin/pwcond.x
rm -rf ./make-pwcond
pwcond_veryclean: pwcond_clean
# dir is not deleted for compatibility with the repository
pwcond_distclean:
rm -f ../archive/$(PWCOND).tar.gz
neb_clean:
if test -d ../NEB; then (cd ../NEB; \
$(MAKE) clean); fi
rm -f ../bin/neb.x
rm -rf ./make-neb
neb_veryclean: neb_clean
# dir is not deleted for compatibility with the repository
neb_distclean:
rm -f ../archive/$(NEB).tar.gz
tddfpt_clean:
if test -d ../TDDFPT; then (cd ../TDDFPT; \
$(MAKE) clean); fi
rm -f ../bin/turbo_lanczos.x
rm -f ../bin/turbo_davidson.x
rm -f ../bin/turbo_eels.x
rm -f ../bin/turbo_spectrum.x
rm -rf ./make-tddfpt
tddfpt_veryclean: tddfpt_clean
# dir is not deleted for compatibility with the repository
tddfpt_distclean:
rm -f ../archive/$(TDDFPT).tar.gz
phonon_clean:
if test -d ../PHonon; then (cd ../PHonon; \
$(MAKE) clean); fi
rm -rf ../bin/ph.x
rm -rf ../bin/dynmat.x
rm -rf ../bin/matdyn.x
rm -rf ../bin/q2r.x
rm -rf ../bin/q2qstar.x
rm -rf ../bin/lambda.x
rm -rf ../bin/fqha.x
rm -rf ../bin/phcg.x
rm -rf ../bin/d3.x
rm -rf ./make-phonon
phonon_veryclean: phonon_clean
# dir is not deleted for compatibility with the repository
# exe links to main bin dir are deleted by PHonon Makefile
phonon_distclean:
rm -f ../archive/$(PHONON).tar.gz
gipaw_clean:
if test -d ../GIPAW; then (cd ../GIPAW; $(MAKE) clean); fi
rm -f ../bin/gipaw.x
rm -rf ./make-gipaw
gipaw_veryclean: gipaw_clean
if test -d ../GIPAW; then (cd ../GIPAW; \
rm -f config.log config.status ); fi
rm -rf ./configure-gipaw
gipaw_distclean:
#if test -d ../GIPAW; then (rm -R -f ../GIPAW ); fi
#if test -d ../$(GIPAW); then (rm -R -f ../$(GIPAW) ); fi
rm -f ../archive/$(GIPAW).tar.gz
epw_clean:
if test -d ../EPW; then (cd ../EPW; \
$(MAKE) clean); fi
- rm -rf ./make-epw ./configure-epw
epw_veryclean: epw_clean
# dir is not deleted for compatibility with the repository
epw_distclean:
if test -d ../EPW; then (cd ../EPW; \
$(MAKE) distclean); fi
rm -f ../archive/$(EPW).tar.gz
w90_clean:
if test -d ../W90; then (cd ../W90; \
$(MAKE) veryclean); fi
rm -f ../bin/wannier90.x
rm -rf ./make-w90 ./configure-w90
w90_veryclean: w90_clean
if test -d ../W90; then (rm -R -f ../W90); fi
if test -d ../$(W90); then (rm -R -f ../$(W90)); fi
rm -f ../bin/wannier90.x
rm -rf ./uncompress-w90
w90_distclean:
rm -f ../archive/$(W90).tar.gz
want_clean:
if test -d ../WANT; then (cd ../WANT; \
$(MAKE) clean); fi
- rm -rf ./make-want ./configure-want
want_veryclean: want_clean
if test -d ../WANT; then (rm -R -f ../WANT); fi
if test -d ../$(WANT); then (rm -R -f ../$(WANT)); fi
if test -e ../archive/$(WANT).tar.gz ; then (rm -f ../archive/$(WANT).tar.gz); fi
- rm -rf ./uncompress-want ./configure.h
want_distclean:
rm -f ../archive/$(WANT).tar.gz
yambo_clean:
if test -d ../YAMBO; then (cd ../YAMBO; \
$(MAKE) clean); fi
- rm -rf ./make-yambo ./configure-yambo
yambo_veryclean: yambo_clean
if test -d ../YAMBO; then (rm -R -f ../YAMBO); fi
if test -d ../$(YAMBO); then (rm -R -f ../$(YAMBO)); fi
- rm -rf ./uncompress-yambo
yambo_distclean:
if test -e ../archive/$(YAMBO).tar.gz ; then \
rm -f ../archive/$(YAMBO).tar.gz; fi
yambo-devel_clean:
if test -d ../YAMBO_DEVEL; then (cd ../YAMBO_DEVEL; \
$(MAKE) clean); fi
- rm -rf ./make-yambo-devel ./configure-yambo-devel
yambo-devel_veryclean: yambo-devel_clean
if test -d ../YAMBO_DEVEL; then (rm -R -f ../YAMBO_DEVEL); fi
if test -d ../$(YAMBO_DEVEL); then (rm -R -f ../$(YAMBO_DEVEL)); fi
- rm -rf ./uncompress-yambo-devel
yambo-devel_distclean:
if test -e ../archive/$(YAMBO_DEVEL).tar.gz ; then \
rm -f ../archive/$(YAMBO_DEVEL).tar.gz; fi
plumed_clean:
if test -d ../PLUMED; then (cd ../PLUMED; \
export plumedir="`pwd`" ; \
cd ../ ; ./plumedpatch_qespresso_5.2.sh -revert); fi
cd ../PW ; $(MAKE) clean; cd ../CPV ; $(MAKE) clean
rm -rf ./make-plumed ./patch-plumed
plumed_veryclean: plumed_clean
if test -d ../PLUMED; then (rm -R -f ../PLUMED); fi
if test -d ../$(PLUMED); then (rm -R -f ../$(PLUMED)); fi
rm -rf ./uncompress-plumed ../plumedpatch_qespresso_5.2.sh
plumed_distclean:
# Nothing to do here
sax_clean:
if test -d ../SaX; then (cd ../SaX; \
$(MAKE) clean); fi
- rm -rf ./make-sax ./configure-sax
sax_veryclean: sax_clean
if test -d ../SaX; then (rm -R -f ../SaX); fi
if test -d ../$(SAX); then (rm -R -f ../$(SAX)); fi
- rm -rf ./uncompress-sax
sax_distclean:
rm -f ../archive/$(SAX).tar.gz
west_clean:
if test -d ../West; then (cd ../West; \
$(MAKE) clean); fi
- rm -rf ./make-west ./configure-west
west_veryclean: west_clean
# dir is not deleted for compatibility with the repository
west_distclean:
rm -f ../archive/$(WEST).tar.gz
gui_clean:
rm -rf ./make-gui
gui_veryclean: gui_clean
# dir is not deleted for compatibility with the repository
gui_distclean:
test-suite_clean:
if test -d ../test-suite; then (cd ../test-suite; \
$(MAKE) clean); fi
test-suite_veryclean: test-suite_clean
test-suite_distclean:
rm -f ../archive/$(TESTSUITE).tar.gz
gpu_clean:
rm -f ./make-gpu
gpu_veryclean: gpu_clean
# dir is not deleted for compatibility with the repository
gpu_distclean:
rm -f ../archive/$(GPU).tar.gz
##########################################################
# general cleaning
##########################################################
clean: w90_clean want_clean yambo_clean yambo-devel_clean plumed_clean \
epw_clean gui_clean phonon_clean tddfpt_clean xspectra_clean neb_clean \
pwcond_clean ld1_clean gipaw_clean gpu_clean west_clean test-suite_clean \
sax_clean
veryclean: w90_veryclean want_veryclean yambo_veryclean yambo-devel_veryclean \
plumed_veryclean epw_veryclean gui_veryclean phonon_veryclean \
tddfpt_veryclean xspectra_veryclean neb_veryclean pwcond_veryclean \
ld1_veryclean gipaw_veryclean gpu_veryclean west_veryclean \
test-suite_veryclean sax_veryclean
#distclean : veryclean
distclean: w90_distclean want_distclean yambo_distclean yambo-devel_distclean \
epw_distclean gui_distclean phonon_distclean test-suite_distclean \
tddfpt_distclean xspectra_distclean neb_distclean pwcond_distclean \
ld1_distclean gipaw_distclean gpu_distclean west_distclean sax_distclean