mirror of https://github.com/TREX-CoE/qmckl.git
113 lines
3.0 KiB
Makefile
113 lines
3.0 KiB
Makefile
.POSIX:
|
|
.SUFFIXES:
|
|
|
|
package = @PACKAGE_TARNAME@
|
|
version = @PACKAGE_VERSION@
|
|
|
|
# VPATH-related substitution variables
|
|
srcdir = @srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
prefix = @prefix@
|
|
|
|
CC = @CC@
|
|
DEFS = @DEFS@
|
|
CFLAGS = @CFLAGS@ -I$(top_srcdir)/munit/ -I$(top_srcdir)/include -I.
|
|
CPPFLAGS = @CPPFLAGS@
|
|
LIBS = @LIBS@
|
|
|
|
FC = @FC@
|
|
FCFLAGS= @FCFLAGS@
|
|
|
|
OBJECT_FILES=qmckl_f.o qmckl_ao.o qmckl_ao_f.o qmckl_context.o qmckl_distance_f.o qmckl_electron.o qmckl_electron_f.o qmckl_error.o qmckl_memory.o qmckl_numprec.o
|
|
|
|
TESTS = test_qmckl_ao.o test_qmckl_context.o test_qmckl_distance.o test_qmckl_electron.o test_qmckl_error.o test_qmckl_memory.o test_qmckl_numprec.o
|
|
TESTS_F = test_qmckl_ao_f.o test_qmckl_distance_f.o
|
|
|
|
LIBS = @LIBS@
|
|
FCLIBS = @FCLIBS@
|
|
|
|
top_srcdir=$(srcdir)/..
|
|
shared_lib=$(top_srcdir)/lib/libqmckl.so
|
|
static_lib=$(top_srcdir)/lib/libqmckl.a
|
|
qmckl_h=$(top_srcdir)/include/qmckl.h
|
|
qmckl_f=$(top_srcdir)/share/qmckl/fortran/qmckl_f.f90
|
|
munit=$(top_srcdir)/munit/munit.c
|
|
|
|
datarootdir=$(prefix)/share
|
|
datadir=$(datarootdir)
|
|
docdir=$(datarootdir)/doc/$(package)
|
|
htmldir=$(docdir)/html
|
|
libdir=$(prefix)/lib
|
|
includedir=$(prefix)/include
|
|
fortrandir=$(datarootdir)/$(package)/fortran
|
|
|
|
|
|
shared: $(shared_lib)
|
|
static: $(static_lib)
|
|
|
|
|
|
all: shared static
|
|
|
|
$(shared_lib): $(OBJECT_FILES)
|
|
$(CC) -shared $(OBJECT_FILES) -o $(shared_lib)
|
|
|
|
$(static_lib): $(OBJECT_FILES)
|
|
$(AR) rcs $(static_lib) $(OBJECT_FILES)
|
|
|
|
|
|
# Test
|
|
|
|
qmckl_f.o: $(qmckl_f)
|
|
$(FC) $(FCFLAGS) -c $(qmckl_f) -o $@
|
|
|
|
test_qmckl: test_qmckl.c $(qmckl_h) $(static_lib) $(TESTS) $(TESTS_F)
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(munit) $(TESTS) $(TESTS_F) \
|
|
$(static_lib) $(LIBS) $(FCLIBS) test_qmckl.c -o $@
|
|
|
|
test_qmckl_shared: test_qmckl.c $(qmckl_h) $(shared_lib) $(TESTS) $(TESTS_F)
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) \
|
|
-Wl,-rpath,$(top_srcdir)/lib -L$(top_srcdir)/lib $(munit) $(TESTS) \
|
|
$(TESTS_F) -lqmckl $(LIBS) $(FCLIBS) test_qmckl.c -o $@
|
|
|
|
check: test_qmckl test_qmckl_shared
|
|
./test_qmckl
|
|
|
|
clean:
|
|
$(RM) -- *.o *.mod $(shared_lib) $(static_lib) test_qmckl
|
|
|
|
|
|
|
|
|
|
install:
|
|
install -d $(DESTDIR)$(prefix)/lib
|
|
install -d $(DESTDIR)$(prefix)/include
|
|
install -d $(DESTDIR)$(prefix)/share/qmckl/fortran
|
|
install -d $(DESTDIR)$(prefix)/share/doc/qmckl/html/
|
|
install -d $(DESTDIR)$(prefix)/share/doc/qmckl/text/
|
|
install $(shared_lib) $(DESTDIR)$(libdir)/
|
|
install $(static_lib) $(DESTDIR)$(libdir)/
|
|
install $(qmckl_h) $(DESTDIR)$(includedir)
|
|
install $(qmckl_f) $(DESTDIR)$(fortrandir)
|
|
install $(top_srcdir)/share/doc/qmckl/html/*.html $(DESTDIR)$(docdir)/html/
|
|
install $(top_srcdir)/share/doc/qmckl/html/*.css $(DESTDIR)$(docdir)/html/
|
|
install $(top_srcdir)/share/doc/qmckl/text/*.txt $(DESTDIR)$(docdir)/text/
|
|
|
|
uninstall:
|
|
rm $(DESTDIR)$(libdir)/libqmckl.so
|
|
rm $(DESTDIR)$(libdir)/libqmckl.a
|
|
rm $(DESTDIR)$(includedir)/qmckl.h
|
|
rm -rf $(DESTDIR)$(datarootdir)/$(package)
|
|
rm -rf $(DESTDIR)$(docdir)
|
|
|
|
.SUFFIXES: .c .f90 .o
|
|
|
|
.c.o:
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) -c $*.c -o $*.o
|
|
|
|
.f90.o: qmckl_f.o
|
|
$(FC) $(FCFLAGS) -c $*.f90 -o $*.o
|
|
|
|
.PHONY: check cppcheck clean all
|
|
|