Makefile 1.99 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Uncomment DEBUG to use OpenMM libraries instead of release libraries
# DEBUG=_d

# Default install directory
#
# Linux
# CFLAGS = -g -m32
#
# Mac
# CFLAGS = -g -m32 -bind_at_load

# Check whether this is the right capitalization for your install directory.
OpenMM_INSTALL_DIR=/usr/local/OpenMM
CFLAGS = -g 
Michael Sherman's avatar
Michael Sherman committed
15
FFLAGS = -g
16
17
18

LIB_DIR=$(OpenMM_INSTALL_DIR)/lib
INCLUDE_DIR=$(OpenMM_INSTALL_DIR)/include
Michael Sherman's avatar
Michael Sherman committed
19
20
# assume local directory for C and Fortran wrappers
WRAPPER_DIR=./wrappers
21
22
23
24
25
26
LIBS= -lOpenMM$(DEBUG)

ALL_CPP_EXAMPLES = HelloArgon HelloSodiumChloride HelloEthane HelloWaterBox
ALL_C_EXAMPLES   = HelloArgonInC HelloSodiumChlorideInC
ALL_F95_EXAMPLES = HelloArgonInFortran HelloSodiumChlorideInFortran

Michael Sherman's avatar
Michael Sherman committed
27
28
ALL_PROGS = $(ALL_CPP_EXAMPLES) $(ALL_C_EXAMPLES) $(ALL_F95_EXAMPLES)

29
30
31
32
default: HelloArgon

all : $(ALL_PROGS)

Michael Sherman's avatar
Michael Sherman committed
33
34
# Treat all .cpp source files the same way (except the one that 
# implements the C Wrappers).
35
36
37
.cpp : 
	g++ $(CFLAGS) $< -I$(INCLUDE_DIR) -L$(LIB_DIR) $(LIBS) -o $*

Michael Sherman's avatar
Michael Sherman committed
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
HelloArgonInC: HelloArgonInC.c OpenMM_CWrapper.o
	g++ $(CFLAGS) -I$(WRAPPER_DIR) HelloArgonInC.c OpenMM_CWrapper.o \
        -L$(LIB_DIR) $(LIBS) -o HelloArgonInC

HelloSodiumChlorideInC: HelloSodiumChlorideInC.c OpenMM_CWrapper.o
	g++ $(CFLAGS) -I$(WRAPPER_DIR) HelloSodiumChlorideInC.c OpenMM_CWrapper.o \
        -L$(LIB_DIR) $(LIBS) -o HelloSodiumChlorideInC

HelloArgonInFortran: HelloArgonInFortran.f90 openmm.mod
	gfortran $(FFLAGS) HelloArgonInFortran.f90 OpenMM_CWrapper.o \
	    -L$(LIB_DIR) $(LIBS) -o HelloArgonInFortran

HelloSodiumChlorideInFortran: HelloSodiumChlorideInFortran.f90 openmm.mod
	gfortran $(FFLAGS) HelloSodiumChlorideInFortran.f90 OpenMM_CWrapper.o \
	    -L$(LIB_DIR) $(LIBS) -o HelloSodiumChlorideInFortran

# Build C Wrappers (Fortran depends on this too)
OpenMM_CWrapper.o: 
	g++ -c $(CFLAGS) -I$(WRAPPER_DIR) -I$(INCLUDE_DIR) \
         $(WRAPPER_DIR)/OpenMM_CWrapper.cpp -o OpenMM_CWrapper.o
58

Michael Sherman's avatar
Michael Sherman committed
59
60
61
# Build Fortran 95 Module file
openmm.mod:
	gfortran -c $(FFLAGS) $(WRAPPER_DIR)/OpenMM_Module.f90
62
63

clean : 
Michael Sherman's avatar
Michael Sherman committed
64
	rm $(ALL_PROGS) *.o *.mod
65