mirror of
https://github.com/openmm/openmm
synced 2026-06-03 06:39:48 +09:00
72 lines
2.5 KiB
Makefile
72 lines
2.5 KiB
Makefile
# ----------------------------------------------------------------------
|
|
# Makefile for OpenMM "hello world" examples.
|
|
# August 18, 2009
|
|
# ----------------------------------------------------------------------
|
|
# This assumes you have gcc compilers for whatever language you are
|
|
# using: g++ for C++ and C, gfortran for Fortran 95.
|
|
#
|
|
# For the C and Fortran examples, we're depending on your version of
|
|
# OpenMM to have been built with the automatically-generated API
|
|
# wrappers.
|
|
#
|
|
# This has had only minimal testing, although it has been known to
|
|
# work. It is likely to work fine for C and C++. For Fortran, you
|
|
# may need to add some of the C/C++ libraries:
|
|
# -lc -lm -lstdc++ (or -lstdc++.6) -lgcc -lgcc_s
|
|
# but this wasn't required for these examples on Centos 5.2 using
|
|
# gcc 4.1.2.
|
|
|
|
# Check whether this is the right capitalization for your install directory.
|
|
OpenMM_INSTALL_DIR=/usr/local/openmm
|
|
CFLAGS = -g
|
|
FFLAGS = -g -ffree-line-length-none
|
|
|
|
# Extra libraries required when gfortran links with a C++ module.
|
|
# If this doesn't work, look in /usr/lib to
|
|
# see what versions of libstdc++.so you have and try different
|
|
# versions.
|
|
FCPPLIBS = -lstdc++
|
|
|
|
LIB_DIR=$(OpenMM_INSTALL_DIR)/lib
|
|
INCLUDE_DIR=$(OpenMM_INSTALL_DIR)/include
|
|
LIBS= -lOpenMM
|
|
|
|
ALL_CPP_EXAMPLES = HelloArgon HelloSodiumChloride HelloEthane HelloWaterBox
|
|
ALL_C_EXAMPLES = HelloArgonInC HelloSodiumChlorideInC
|
|
ALL_F95_EXAMPLES = HelloArgonInFortran HelloSodiumChlorideInFortran
|
|
|
|
ALL_PROGS = $(ALL_CPP_EXAMPLES) $(ALL_C_EXAMPLES) $(ALL_F95_EXAMPLES)
|
|
|
|
default: HelloArgon
|
|
|
|
all : $(ALL_PROGS)
|
|
|
|
# Treat all .cpp source files the same way.
|
|
.cpp :
|
|
g++ $(CFLAGS) -I$(INCLUDE_DIR) $< -L$(LIB_DIR) $(LIBS) -o $*
|
|
|
|
HelloArgonInC: HelloArgonInC.c
|
|
g++ $(CFLAGS) -I$(INCLUDE_DIR) HelloArgonInC.c \
|
|
-L$(LIB_DIR) $(LIBS) -o HelloArgonInC
|
|
|
|
HelloSodiumChlorideInC: HelloSodiumChlorideInC.c
|
|
g++ $(CFLAGS) -I$(INCLUDE_DIR) HelloSodiumChlorideInC.c \
|
|
-L$(LIB_DIR) $(LIBS) -o HelloSodiumChlorideInC
|
|
|
|
HelloArgonInFortran: HelloArgonInFortran.f90 openmm.mod
|
|
gfortran $(FFLAGS) HelloArgonInFortran.f90 \
|
|
-I$(INCLUDE_DIR) -L$(LIB_DIR) $(LIBS) $(FCPPLIBS) -o HelloArgonInFortran
|
|
|
|
HelloSodiumChlorideInFortran: HelloSodiumChlorideInFortran.f90 openmm.mod
|
|
gfortran $(FFLAGS) HelloSodiumChlorideInFortran.f90 \
|
|
-I$(INCLUDE_DIR) -L$(LIB_DIR) $(LIBS) $(FCPPLIBS) -o HelloSodiumChlorideInFortran
|
|
|
|
|
|
# Build Fortran 95 Module file
|
|
openmm.mod:
|
|
gfortran -c $(FFLAGS) $(INCLUDE_DIR)/OpenMMFortranModule.f90
|
|
|
|
clean :
|
|
rm $(ALL_PROGS) *.o *.mod *.obj *.exe
|
|
|