-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
69 lines (54 loc) · 1.65 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
include config.h
.NOTPARALLEL:clean install all
.PHONY: test pytcpb
LIBSRC := src/exceptions.cpp \
src/client.cpp \
src/input.cpp \
src/output.cpp \
src/socket.cpp \
src/terachem_server.pb.cpp \
src/utils.cpp \
src/api.cpp
LIBOBJS := $(patsubst src/%.cpp, src/%.o, $(LIBSRC))
LIBNAME = libtcpb
all: src/terachem_server.pb.cpp $(LIBNAME).so
$(LIBNAME).so: $(LIBOBJS)
@echo "[TCPB] CXX $@"
$(VB)$(CXX) $(TCPB_CXXFLAGS) -shared -o $(LIBNAME).so $(LIBOBJS) -L$(LIBDIR) $(TCPB_LDFLAGS)
install: src/terachem_server.pb.cpp $(LIBNAME).so
@mkdir -p $(LIBDIR)
/bin/mv $(LIBNAME).so $(LIBDIR)
@mkdir -p $(INCDIR)/tcpb
@cp -v src/*.h $(INCDIR)/tcpb
uninstall:
/bin/rm -Rf "$(INCDIR)/tcpb" "$(LIBDIR)/$(LIBNAME).so" "config.h"
.SUFFIXES: .F90 .cpp .o
.F90.o:
@echo "[TCPB] FC $<"
$(VB)$(FC) $(FCFLAGS) -c $*.F90 -o $*.o
.cpp.o:
@echo "[TCPB] CXX $<"
$(VB)$(CXX) $(TCPB_CXXFLAGS) -c $*.cpp -o $*.o -I$(INCDIR)
src/terachem_server.pb.cpp: proto/terachem_server.proto
@echo "[TCPB] PROTOC $<"
$(PROTOC) $< --proto_path=proto --cpp_out=.
@mv terachem_server.pb.cc src/terachem_server.pb.cpp
@mv terachem_server.pb.h src
clean:
/bin/rm -f $(LIBOBJS)
$(MAKE) -C examples/qm clean
$(MAKE) -C examples/qmmm clean
$(MAKE) -C examples/api/fortran clean
$(MAKE) -C examples/api/fortran_openmm clean
$(MAKE) -C examples/api/cpp clean
$(MAKE) -C examples/api/cpp_openmm clean
example:
@cd examples/qm && make
@cd examples/qmmm && make
@cd examples/api/fortran && make
@cd examples/api/fortran_openmm && make
@cd examples/api/cpp && make
@cd examples/api/cpp_openmm && make
pytcpb:
@echo "[pyTCPB] Installing pyTCPB"
@cd pytcpb && python setup.py install