ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/oopse-1.0/utils/Makefile
Revision: 1447
Committed: Fri Jul 30 21:01:35 2004 UTC (19 years, 11 months ago) by gezelter
File size: 5552 byte(s)
Log Message:
Initial import of OOPSE sources into cvs tree

File Contents

# Content
1 #####################################################
2 # Makefile for Oopse Utility Codes #
3 #####################################################
4 # You should not change anything here. #
5 #####################################################
6
7 TOP=..
8
9 .SUFFIXES : .cpp .c $(O)
10
11 # Extension of object files
12 O=.o
13
14 # Extension of executables
15 EXE=
16
17 # Bourn shell
18 SHELL=/bin/sh
19
20 # Path prefix for installation links
21 PREFIX=/usr/local
22
23 # List of subdirectories
24 SUBDIRS=libBASS libmdtools src forceFields samples utils utils/sysbuilder third-party
25
26 # Location of the oopse home
27 OOPSE_HOME=/usr/local/oopse
28
29 FORCE_PARAM_DIR=/usr/local/oopse/share/forceFields/
30 SAMPLE_SIM_DIR=/usr/local/oopse/share/samples/
31
32 # SPRNG library path
33 SPRNG_LIB_DIR=/usr/local/lib
34
35 # SPRNG library
36 SPRNG_LIB=-lsprng
37
38 # SPRNG include path
39 SPRNG_INC_DIR=/usr/local/include
40
41 # MPICH library path
42 MPI_LIBDIR=@MPI_LIBDIR@
43
44 # MPICH library
45 MPI_LIB=-lmpich
46
47 # MPICH include path
48 MPI_INC=@MPI_INC@
49
50 # MPI F90 Module path
51 MPI_F90_MODS=@MPI_F90_MODS@
52
53 # Compiler dependent Fortran module
54 F90LIBS = -L/usr/local/intel/compiler80/lib -L/usr/lib -lifport -lifcoremt -limf -lm -lcxa -lunwind -lpthread -lirc
55
56 # Location of yacc (or its substitution)
57 YACC=bison -y
58
59 #location of lex
60 LEX=flex
61
62 # C compiler
63 CC=icc
64
65 # C++ compiler
66
67 CXX=icpc
68
69 # F90 compiler
70 F90=ifort
71
72 # ar
73 AR=ar
74
75 # ranlib
76 RANLIB=ranlib
77
78 # rm
79 RM=rm -f
80
81 # soft link
82 LN_S=ln -s
83
84 # BSD install
85 INSTALL=/usr/bin/install -c
86 INSTALL_PROGRAM=${INSTALL}
87 INSTALL_DATA=${INSTALL} -m 644
88 MKINSTALLDIRS=/home/maul/gezelter/gezelter/OOPSE-1.0/ac-tools/shtool mkdir -p -f
89
90 # CPP flags
91 CPPFLAGS=
92
93 # C flags
94 CFLAGS_C=-O
95
96 # C++ flags
97 CXXFLAGS_C=-O
98
99 # Preprocessor flag for fortran
100 PREPFLAG=-fpp1
101
102 # Preprocessor define flag for fortran
103 PREPDEFFLAG=
104
105 # Fortran flags
106 FFLAGS_C=
107
108 # Fortran90 flags
109 F90FLAGS_C=-O
110
111 # LDFLAGS
112 LDFLAGS= -L/usr/local/mpich/lib -L/usr/local/lib
113
114 # LIBOBJS
115 LIBOBJS=
116
117 # First do compile-time flags:
118
119 MPI_DECLARES= -DIS_MPI
120
121 # include paths starting with "." are all relative to the SUBDIRS!!!
122
123 INCLUDES= -I.. -I../../libBASS -I../../libmdtools
124 MPI_INCLUDES= $(MPI_INC)
125 CFLAGS=$(CFLAGS_C) $(INCLUDES) $(DECLARES)
126 CXXFLAGS=$(CXXFLAGS_C) $(INCLUDES) $(DECLARES)
127 DEPFLAGS=$(CFLAGS_C) -I. -I$(SPRNG_INC_DIR) $(MPI_INCLUDES) -I../libBASS -I../libmdtools
128 MPI_CXXFLAGS=$(CXXFLAGS) $(MPI_INCLUDES) $(MPI_DECLARES)
129
130 QUICKLATE=quickLate$(EXE)
131 DUMP2XYZ=Dump2XYZ$(EXE)
132
133 BASS_LIB=$(TOP)/libBASS/libBASS.a
134 BASS_MPI_LIB=$(TOP)/libBASS/libBASS_MPI.a
135 MD_LIB=$(TOP)/libmdtools/libmdtools.a
136 MD_MPI_LIB=$(TOP)/libmdtools/libmdtools_MPI.a
137 LIBS=$(BASS_LIB) $(MD_LIB)
138 MPI_LIBS=$(BASS_MPI_LIB) $(MD_MPI_LIB)
139
140 LDFLAGS=-L$(TOP)/libBASS -L$(TOP)/libmdtools -L$(SPRNG_LIB_DIR)
141 LDADD=-lmdtools -lBASS -lsprng $(F90LIBS)
142
143 SRC_DIR := $(PWD)
144
145 PREFS=-DOOPSE_HOME=\"$(OOPSE_HOME)\"
146
147 obj/%.o: %.cpp
148 cd obj; $(CXX) $(CXXFLAGS) -c ../$<
149
150 MPIobj/%.o: %.cpp
151 cd MPIobj; $(CXX) $(MPI_CXXFLAGS) -c ../$<
152
153 obj/%.o: %.c
154 cd obj; $(CC) $(CFLAGS) -c ../$<
155
156 MPIobj/%.o: %.c
157 cd MPIobj; $(CC) $(MPI_CFLAGS) -c ../$<
158
159
160 # quicklate files
161
162 QUICK_C_FILES = \
163 $(DIR)/quickLate.c
164 DUMP2XYZ_C_FILES = \
165 $(DIR)/Dump2XYZCmd.c
166 DUMP2XYZ_CXX_FILES = \
167 $(DIR)/Dump2XYZ.cpp
168
169 DIR:=.
170 C_SRCS := $(QUICK_C_FILES) $(DUMP2XYZ_C_FILES)
171 CXX_SRCS := $(DUMP2XYZ_CXX_FILES)
172
173 C_CXX_SRCS := $(C_SRCS) $(CXX_SRCS)
174
175 #the objects
176
177 DIR:=obj
178 QUICK_C_OBJS := $(QUICK_C_FILES:.c=.o)
179 QUICK_OBJS := $(QUICK_C_OBJS)
180 DUMP2XYZ_C_OBJS := $(DUMP2XYZ_C_FILES:.c=.o)
181 DUMP2XYZ_CXX_OBJS := $(DUMP2XYZ_CXX_FILES:.cpp=.o)
182 DUMP2XYZ_OBJS := $(DUMP2XYZ_CXX_OBJS) $(DUMP2XYZ_C_OBJS)
183 LIB_OBJS := $(LIBOBJS:%.o= $(DIR)/%.o)
184
185 DIR:=MPIobj
186 QUICK_C_MPIOBJS := $(QUICK_C_FILES:.c=.o)
187 QUICK_MPIOBJS := $(QUICK_C_MPIOBJS)
188 DUMP2XYZ_C_MPIOBJS := $(DUMP2XYZ_C_FILES:.c=.o)
189 DUMP2XYZ_CXX_MPIOBJS := $(DUMP2XYZ_CXX_FILES:.cpp=.o)
190 DUMP2XYZ_MPIOBJS := $(DUMP2XYZ_C_MPIOBJS) $(DUMP2XYZ_CXX_MPIOBJS)
191 LIB_MPIOBJS := $(LIBOBJS:%.o= $(DIR)/%.o)
192
193 LIBSUBDIRS = \
194 obj \
195 MPIobj
196
197 all : $(QUICKLATE) $(DUMP2XYZ)
198
199 depend: Make.dep
200
201 quickLate$(EXE) : $(QUICK_OBJS) $(BASS_LIB) $(MD_LIB)
202 $(CC) $(CFLAGS) $(QUICK_OBJS) -o $@ $(LDFLAGS) $(LDADD)
203
204 Dump2XYZ$(EXE) : $(DUMP2XYZ_OBJS) $(BASS_LIB) $(MD_LIB) $(LIB_OBJS)
205 $(CXX) $(CXXFLAGS) $(DUMP2XYZ_OBJS) $(LIB_OBJS) -o $@ $(LDFLAGS) $(LDADD)
206
207 install : $(QUICKLATE) $(DUMP2XYZ)
208 $(MKINSTALLDIRS) $(OOPSE_HOME)/bin
209 $(INSTALL_PROGRAM) -s $(QUICKLATE) $(OOPSE_HOME)/bin/$(QUICKLATE)
210 $(INSTALL_PROGRAM) -s $(DUMP2XYZ) $(OOPSE_HOME)/bin/$(DUMP2XYZ)
211
212 tests : dummy
213
214 $(OOPSE_HOME)/bin/$(QUICKLATE) : $(QUICKLATE)
215 $(MAKE) install
216
217 $(OOPSE_HOME)/bin/$(DUMP2XYZ) : $(DUMP2XYZ)
218 $(MAKE) install
219
220 links : $(OOPSE_HOME)/bin/$(QUICKLATE) $(OOPSE_HOME)/bin/$(DUMP2XYZ)
221 $(MKINSTALLDIRS) $(PREFIX)/bin
222 cd $(PREFIX)/bin; $(LN_S) -f $(OOPSE_HOME)/bin/$(QUICKLATE) $(QUICKLATE)
223 cd $(PREFIX)/bin; $(LN_S) -f $(OOPSE_HOME)/bin/$(DUMP2XYZ) $(DUMP2XYZ)
224
225 clean : dummy
226 for i in $(LIBSUBDIRS); do \
227 (cd $$i; $(RM) *.o) || exit 1; \
228 done
229 $(RM) $(QUICKLATE) $(DUMP2XYZ) *.o *~ Make.temp
230
231 distclean : dummy
232 for i in $(LIBSUBDIRS); do \
233 (cd $$i; $(RM) *.o) || exit 1; \
234 done
235 $(RM) $(QUICKLATE) $(DUMP2XYZ) *.o *~ Make.temp
236
237 devclean : distclean
238
239 Make.dep :
240 echo "# DO NOT DELETE THIS LINE - used by make depend" > Make.dep
241 $(CC) $(DEPFLAGS) -MM $(C_CXX_SRCS) \
242 | sed 's/\.o:/\$$(O)\ :/g' > Make.temp
243 cat Make.temp | sed 's/^[a-zA-Z0-9]/obj\/&/g' >> Make.dep
244 cat Make.temp | sed 's/^[a-zA-Z0-9]/MPIobj\/&/g' >> Make.dep
245 $(RM) Make.temp
246
247 tags : $(C_CXX_SRCS)
248 ctags $(C_CXX_SRCS)
249
250 dummy :
251
252 # DO NOT DELETE
253 include Make.dep