From 65fc312b3bd77411cc1db7e0b21c5acc83d1c760 Mon Sep 17 00:00:00 2001 From: Paolo Giannozzi Date: Fri, 4 Feb 2022 17:30:29 +0100 Subject: [PATCH] Compilation with make for MBD simplified Not sure what to do with the scalapack make (we do not use it) --- archive/README | 5 -- .../libmbd-0.10.3-non-cmake-makefiles.tar.gz | Bin 1006 -> 0 bytes external/mbd.make | 49 ++++++++++++++++++ install/extlibs_makefile | 11 ++-- 4 files changed, 54 insertions(+), 11 deletions(-) delete mode 100644 archive/README delete mode 100644 archive/libmbd-0.10.3-non-cmake-makefiles.tar.gz create mode 100644 external/mbd.make diff --git a/archive/README b/archive/README deleted file mode 100644 index b511785b0..000000000 --- a/archive/README +++ /dev/null @@ -1,5 +0,0 @@ -Archive contains the tarballs of external libraries and codes used by "make" -to build QE. Note that "CMake" stores such packages in external/ instead. -In the future, these files should be removed or replaced as follows: - -- libmbd-0.10.3-non-cmake-makefiles.tar.gz (patches for libmbd-0.10.3.tar.gz to add non-cmake support) diff --git a/archive/libmbd-0.10.3-non-cmake-makefiles.tar.gz b/archive/libmbd-0.10.3-non-cmake-makefiles.tar.gz deleted file mode 100644 index a24ae9f9eb8399f2a15591a99f6b8b65db6438a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1006 zcmVSHHkL1G1{1WZ~Emr zD=c*<3wQz3qE_tJP`Cal`W zs(*w-`q@KH{~lbOO(!Sa^X|BN@;+=Bjt9YXG&+9A<-P{)fm}BKoz56mouI5vF?YbA zY?=I=OgHMYmdr9{K~2NlRn1RfjV>%kf{Je0#**Q1-X~%iVbR7KC95Up*r3d{Op48* z4G@iZHNi)4Q-j+_|NN%NUW)_5uf`D5Ro#I69KPbSVqVx7z3F0^68til|Qh zg<7?CJ~$p8pH5Gv-SI$pAqkP~sx_UfP3*e0bmL}wQLTAH1OX9KqdG#&k8}|$5cHq} z?)Y^Zs&AnB4?_MSD4Ety+IM@CCM{F6SI{wIGj65nEwLSHnJDHFYl@-RUbD5{+DA6+ zApfA#+d(NE6hH|rwlQsN5mTu631twi;oJZj9?Qq>bQOh`M-P-+kmq18nlf@J|c@QB!40jrfyvi!tjnPldqeEF7SwYk4bSTb cNl(h~EK#CFi4rABl=!ar0`z>*KL98I0MASHHvj+t diff --git a/external/mbd.make b/external/mbd.make new file mode 100644 index 000000000..600b659f9 --- /dev/null +++ b/external/mbd.make @@ -0,0 +1,49 @@ +.SUFFIXES : .o .f90 .F90 + +%.o: %.f90 + $(FXX) $(FXXOPT) -c $< +%.o: %.F90 + $(FXX) $(FXXOPT) -c $< + +OBJS := mbd.o mbd_c_api.o mbd_constants.o mbd_coulomb.o mbd_damping.o mbd_dipole.o mbd_formulas.o mbd_geom.o mbd_gradients.o mbd_hamiltonian.o mbd_lapack.o mbd_linalg.o mbd_matrix.o mbd_methods.o mbd_rpa.o mbd_scs.o mbd_ts.o mbd_utils.o mbd_vdw_param.o +ifeq ($(LIBMBD_C_API),0) +OBJS := $(filter-out mbd_c_api.o,$(OBJS)) +endif + +libmbd.a: $(OBJS) + ar -r $@ $^ + + +mbd.o: mbd_constants.o mbd_damping.o mbd_formulas.o mbd_geom.o mbd_gradients.o mbd_methods.o mbd_ts.o mbd_utils.o mbd_vdw_param.o fallback_version +mbd_c_api.o: mbd_constants.o mbd_coulomb.o mbd_damping.o mbd_dipole.o mbd_geom.o mbd_gradients.o mbd_matrix.o mbd_methods.o mbd_ts.o mbd_utils.o +mbd_constants.o: +mbd_coulomb.o: mbd_constants.o mbd_damping.o mbd_dipole.o mbd_geom.o mbd_lapack.o mbd_linalg.o mbd_matrix.o +mbd_damping.o: mbd_constants.o mbd_gradients.o mbd_utils.o +mbd_dipole.o: mbd_constants.o mbd_damping.o mbd_geom.o mbd_gradients.o mbd_lapack.o mbd_linalg.o mbd_matrix.o mbd_utils.o +mbd_formulas.o: mbd_constants.o mbd_gradients.o mbd_utils.o +mbd_geom.o: mbd_constants.o mbd_lapack.o mbd_utils.o mbd_vdw_param.o +mbd_gradients.o: mbd_constants.o +mbd_hamiltonian.o: mbd_constants.o mbd_damping.o mbd_dipole.o mbd_geom.o mbd_gradients.o mbd_matrix.o mbd_utils.o +mbd_lapack.o: mbd_constants.o mbd_utils.o +mbd_linalg.o: mbd_constants.o +mbd_matrix.o: mbd_constants.o mbd_lapack.o mbd_utils.o +mbd_methods.o: mbd_constants.o mbd_damping.o mbd_formulas.o mbd_geom.o mbd_gradients.o mbd_hamiltonian.o mbd_lapack.o mbd_rpa.o mbd_scs.o mbd_utils.o +mbd_rpa.o: mbd_constants.o mbd_damping.o mbd_dipole.o mbd_formulas.o mbd_geom.o mbd_matrix.o mbd_utils.o +mbd_scs.o: mbd_constants.o mbd_damping.o mbd_dipole.o mbd_formulas.o mbd_geom.o mbd_gradients.o mbd_matrix.o mbd_utils.o +mbd_ts.o: mbd_constants.o mbd_damping.o mbd_geom.o mbd_utils.o +mbd_utils.o: mbd_constants.o mbd_gradients.o +mbd_vdw_param.o: mbd_constants.o mbd_utils.o + +fallback_version: + echo '#define MBD_VERSION_MAJOR 0' > version.h + echo '#define MBD_VERSION_MINOR 10'>> version.h + echo '#define MBD_VERSION_PATCH 0' >> version.h + echo '#define MBD_VERSION "0.10.0"' >> version.h + +.PHONY: clean distclean +clean: + rm -f *.o + +distclean: clean + rm -f *.mod + rm -f $(LIB) diff --git a/install/extlibs_makefile b/install/extlibs_makefile index fd23462a5..bc9fc94a1 100644 --- a/install/extlibs_makefile +++ b/install/extlibs_makefile @@ -99,20 +99,19 @@ libmbd: $(call update_submodule,external,mbd) if test ! -d ../MBD; then \ mkdir ../MBD; \ - cd $(TOPDIR)/external/mbd; \ - tar -xzvf $(TOPDIR)/archive/libmbd-0.10.3-non-cmake-makefiles.tar.gz --strip-components=1; \ - cd src; export FXX=$(F90); export FXXOPT="$(F90FLAGS)"; \ - cp serial.make Makefile; $(MAKE) ; cp *.mod *.a $(TOPDIR)/MBD; cd ../../.. ;fi + cd $(TOPDIR)/external/mbd/src; \ + export FXX=$(F90); export FXXOPT="$(F90FLAGS)"; \ + $(MAKE) -f ../../mbd.make; cp *.mod *.a $(TOPDIR)/MBD; cd ../../.. ;fi libmbd_clean: if test -d ../MBD; then (rm -R -f ../MBD); fi if test -d $(TOPDIR)/external/mbd/src; then cd $(TOPDIR)/external/mbd/src; \ - (if test -f ./serial.make; then $(MAKE) clean; fi); fi + $(MAKE) -f ../../mbd.make clean; fi libmbd_distclean: if test -d ../MBD; then (rm -R -f ../MBD); fi if test -d $(TOPDIR)/external/mbd/src; then cd $(TOPDIR)/external/mbd/src; \ - (if test -f ./serial.make; then $(MAKE) distclean; fi); fi + $(MAKE) -f ../../mbd.make distclean; fi ################################### # cleaning