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