ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Makefile.in
Revision: 1254
Committed: Wed Jun 9 16:16:33 2004 UTC (20 years, 1 month ago) by tim
File size: 13665 byte(s)
Log Message:
1. adding some useful math classes(Mat3x3d, Vector3d, Quaternion, Euler3)
 these classes use anonymous union and struct to support
 double[3], double[3][3] and double[4]
2. adding roll constraint algorithm

File Contents

# Content
1 #####################################################
2 # Makefile for libmdtools (bundled with OOPSE) #
3 #####################################################
4 # You should not change anything here. #
5 #####################################################
6
7 # No make rules by default
8 .SUFFIXES : .c .cpp .F90 .hpp .h $(O)
9
10 # Extension of object files
11 O=@OBJEXT@
12
13 # Extension of executables
14 EXE=@EXEEXT@
15
16 # Bourn shell
17 SHELL=/bin/sh
18
19 # Path prefix for installation links
20 PREFIX=@prefix@
21
22 # List of subdirectories
23 SUBDIRS=@SUBDIRS@
24
25 # Location of the oopse home
26 OOPSE_HOME=@OOPSE_HOME@
27
28 FORCE_PARAM_DIR=@OOPSE_HOME@/share/forceFields/
29 SAMPLE_SIM_DIR=@OOPSE_HOME@/share/samples/
30
31 # SPRNG library path
32 SPRNG_LIBDIR=@SPRNG_LIBDIR@
33
34 # SPRNG library
35 SPRNG_LIB=@SPRNG_LIB@
36
37 # SPRNG include path
38 SPRNG_INC=@SPRNG_INC@
39
40 # Compile MPI code?
41 USE_MPI=@USE_MPI@
42
43 # MPI include path
44 MPI_INC_DIR=@MPI_INC_DIR@
45
46 # MPI include path
47 MPI_F90_INC=@MPI_F90_INC@
48
49 # Compiler dependent Fortran module
50 FLIBS_EXTRA = @F90LIBS@
51
52 # Location of yacc (or its substitution)
53 YACC=@YACC@
54
55 #location of lex
56 LEX=@LEX@
57
58 # C compiler
59 CC=@CC@
60
61 # C++ compiler
62
63 CXX=@CXX@
64
65 # F90 compiler
66 F90=@F90@
67
68 # ar
69 AR=@AR@
70
71 # ranlib
72 RANLIB=@RANLIB@
73
74 # rm
75 RM=rm -f
76
77 # soft link
78 LN_S=@LN_S@
79
80 # BSD install
81 INSTALL=@INSTALL@
82 INSTALL_PROGRAM=@INSTALL_PROGRAM@
83 INSTALL_DATA=@INSTALL_DATA@
84 MKINSTALLDIRS=@MKINSTALLDIRS@
85
86 # CPP flags
87 CPPFLAGS=@CPPFLAGS@
88
89 # C flags
90 CFLAGS_C=@CFLAGS@
91
92 # C++ flags
93 CXXFLAGS_C=@CXXFLAGS@
94
95 # C++ template flags
96 OOPSE_TEMPLATE_FLAGS=@OOPSE_TEMPLATE_FLAGS@
97
98 # C++ namespace flags
99 EXTRA_CC_FLAG=@EXTRA_CC_FLAG@
100
101 # Preprocessor flag for fortran
102 PREPFLAG=@PREPFLAG@
103
104 # Preprocessor define flag for fortran
105 PREPDEFFLAG=@PREPDEFFLAG@
106
107 # Fortran flags
108 FFLAGS_C=@FFLAGS@
109
110 # Fortran90 flags
111 F90FLAGS_C=@F90FLAGS@
112
113 # LDFLAGS
114 LDFLAGS=@LDFLAGS@
115
116 # First do compile-time flags:
117
118 DECLARE=-DFRC_PATH="$(FORCE_PARAM_DIR)"
119 MPI_DECLARE=-DIS_MPI
120
121 # include paths starting with "." are all relative to the SUBDIRS!!!
122
123 INCLUDES= -I.. -I../../libBASS $(SPRNG_INC)
124 MPI_INCLUDES= -I$(MPI_INC_DIR)
125 MPI_F90_INCLUDES= -I$(MPI_F90_INC)
126
127 CFLAGS=$(CFLAGS_C) $(INCLUDES) $(DECLARE)
128 CXXFLAGS=$(CXXFLAGS_C) $(OOPSE_TEMPLATE_FLAGS) $(EXTRA_CC_FLAG) $(INCLUDES) $(DECLARE)
129 FFLAGS=$(PREPFLAG) $(FFLAGS_C)
130 F90FLAGS=$(PREPFLAG) $(F90FLAGS_C) -I../../libBASS
131 DEPFLAGS=$(CFLAGS_C) -I. -I../libBASS $(SPRNG_INC) $(MPI_INCLUDES)
132
133 MPI_CFLAGS=$(CFLAGS) $(MPI_INCLUDES) $(MPI_DECLARE)
134 MPI_CXXFLAGS=$(CXXFLAGS) $(MPI_INCLUDES) $(MPI_DECLARE)
135 MPI_F90FLAGS=$(F90FLAGS) $(MPI_F90_INCLUDES) $(PREPDEFFLAG)$(MPI_DECLARE)
136
137 SRC_DIR := ..
138
139 # Then do the compile rules:
140
141 obj/%.o: %.F90
142 cd obj; $(F90) $(F90FLAGS) -c $(SRC_DIR)/$<
143
144 MPIobj/%.o: %.F90
145 cd MPIobj; $(F90) $(MPI_F90FLAGS) -c $(SRC_DIR)/$<
146
147 obj/%.o: %.cpp
148 cd obj; $(CXX) $(CXXFLAGS) -c $(SRC_DIR)/$<
149
150 MPIobj/%.o: %.cpp
151 cd MPIobj; $(CXX) $(MPI_CXXFLAGS) -c $(SRC_DIR)/$<
152
153 obj/%.o: %.c
154 cd obj; $(CC) $(CFLAGS) -c $(SRC_DIR)/$<
155
156 MPIobj/%.o: %.c
157 cd MPIobj; $(CC) $(MPI_CFLAGS) -c $(SRC_DIR)/$<
158
159 # Then list what we have to compile
160
161 C_FILES = \
162 $(DIR)/mpiForceField.c \
163 $(DIR)/MatVec3.c
164
165 CXX_FILES = \
166 $(DIR)/Atom.cpp \
167 $(DIR)/AtomVisitor.cpp \
168 $(DIR)/Bend.cpp \
169 $(DIR)/BendExtensions.cpp \
170 $(DIR)/Bond.cpp \
171 $(DIR)/BondExtensions.cpp \
172 $(DIR)/CGFamilyMinimizer.cpp \
173 $(DIR)/CompositeVisitor.cpp \
174 $(DIR)/DirectionalAtom.cpp \
175 $(DIR)/DUFF.cpp \
176 $(DIR)/DumpReader.cpp \
177 $(DIR)/DumpWriter.cpp \
178 $(DIR)/EAM_FF.cpp \
179 $(DIR)/Exclude.cpp \
180 $(DIR)/ForceFields.cpp \
181 $(DIR)/fortranWrappers.cpp \
182 $(DIR)/GenericData.cpp \
183 $(DIR)/GhostBend.cpp \
184 $(DIR)/InitializeFromFile.cpp \
185 $(DIR)/Integrator.cpp \
186 $(DIR)/LJFF.cpp \
187 $(DIR)/mdProfile.cpp \
188 $(DIR)/Molecule.cpp \
189 $(DIR)/mpiSimulation.cpp \
190 $(DIR)/NPT.cpp \
191 $(DIR)/NPTf.cpp \
192 $(DIR)/NPTi.cpp \
193 $(DIR)/NPTxyz.cpp \
194 $(DIR)/NVT.cpp \
195 $(DIR)/OOPSEMinimizer.cpp \
196 $(DIR)/OtherVisitor.cpp \
197 $(DIR)/PRCG.cpp \
198 $(DIR)/randomSPRNG.cpp \
199 $(DIR)/Restraints.cpp \
200 $(DIR)/RigidBody.cpp \
201 $(DIR)/RigidBodyVisitor.cpp \
202 $(DIR)/SDMinimizer.cpp \
203 $(DIR)/SimInfo.cpp \
204 $(DIR)/SimSetup.cpp \
205 $(DIR)/SimState.cpp \
206 $(DIR)/SkipList.cpp \
207 $(DIR)/StatWriter.cpp \
208 $(DIR)/StreamTokenizer.cpp \
209 $(DIR)/StuntDouble.cpp \
210 $(DIR)/Thermo.cpp \
211 $(DIR)/Torsion.cpp \
212 $(DIR)/TorsionExtensions.cpp \
213 $(DIR)/Utility.cpp \
214 $(DIR)/WATER.cpp \
215 $(DIR)/ZConsReader.cpp \
216 $(DIR)/ZConstraint.cpp \
217 $(DIR)/ZconsVisitor.cpp \
218 $(DIR)/Restraints.cpp \
219 $(DIR)/ConstraintManager.cpp \
220 $(DIR)/ConstraintAlgorithm.cpp \
221 $(DIR)/Shake.cpp \
222 $(DIR)/Rattle.cpp \
223 $(DIR)/ShakeMin.cpp \
224 $(DIR)/CallbackFunctor.cpp \
225 $(DIR)/ConstraintElement.cpp \
226 $(DIR)/ZConsWriter.cpp \
227 $(DIR)/Vector3d.cpp \
228 $(DIR)/Quaternion.cpp \
229 $(DIR)/Mat3x3d.cpp \
230 $(DIR)/Euler3.cpp \
231 $(DIR)/Roll.cpp
232
233 F90_FILES= \
234 $(DIR)/atype_module.F90 \
235 $(DIR)/calc_charge_charge.F90 \
236 $(DIR)/calc_dipole_dipole.F90 \
237 $(DIR)/calc_eam.F90 \
238 $(DIR)/calc_gb.F90 \
239 $(DIR)/calc_LJ_FF.F90 \
240 $(DIR)/calc_reaction_field.F90 \
241 $(DIR)/calc_sticky_pair.F90 \
242 $(DIR)/definitions_module.F90 \
243 $(DIR)/do_Forces.F90 \
244 $(DIR)/force_globals.F90 \
245 $(DIR)/mpiSimulation_module.F90 \
246 $(DIR)/neighborLists.F90 \
247 $(DIR)/notifyCutoffs.F90 \
248 $(DIR)/oopseMPI_module.F90 \
249 $(DIR)/simulation_module.F90 \
250 $(DIR)/status_module.F90 \
251 $(DIR)/switch_module.F90 \
252 $(DIR)/timing.F90 \
253 $(DIR)/vector_class.F90 \
254 $(DIR)/wrappers.F90
255
256 DIR:=.
257 C_SRCS := $(C_FILES)
258 CXX_SRCS := $(CXX_FILES)
259 F90_SRCS := $(F90_FILES)
260 SRCS := $(C_SRCS) $(CXX_SRCS) $(F90_SRCS)
261
262 DIR:=obj
263 C_OBJS := $(C_FILES:.c=.o)
264 CXX_OBJS := $(CXX_FILES:.cpp=.o)
265 F90_OBJS := $(F90_FILES:.F90=.o)
266 OBJS := $(C_OBJS) $(CXX_OBJS) $(F90_OBJS)
267
268 DIR:=MPIobj
269 C_MPIOBJS := $(C_FILES:.c=.o)
270 CXX_MPIOBJS := $(CXX_FILES:.cpp=.o)
271 F90_MPIOBJS := $(F90_FILES:.F90=.o)
272 MPIOBJS := $(C_MPIOBJS) $(CXX_MPIOBJS) $(F90_MPIOBJS)
273
274 LIBSUBDIRS = \
275 obj \
276 MPIobj
277
278 # Possible make targets:
279
280 ifeq ($(USE_MPI),yes)
281 all: libmdtools.a libmdtools_MPI.a
282 else
283 all: libmdtools.a
284 endif
285
286
287 libmdtools.a: $(OBJS)
288 $(RM) $@
289 $(AR) cr $@ $(OBJS)
290 $(RANLIB) $@
291
292 libmdtools_MPI.a: $(MPIOBJS)
293 $(RM) $@
294 $(AR) cr $@ $(MPIOBJS)
295 $(RANLIB) $@
296
297 .PHONY : clean
298
299 clean : dummy
300 for i in $(LIBSUBDIRS); do \
301 (cd $$i; $(RM) *.o *.mod) || exit 1; \
302 done
303 $(RM) libmdtools.a libmdtools_MPI.a *.o *.mod *~ Make.temp Make.ftemp
304
305 distclean : dummy
306 for i in $(LIBSUBDIRS); do \
307 (cd $$i; $(RM) *.o *.mod) || exit 1; \
308 done
309 $(RM) libmdtools.a libmdtools_MPI.a *.o *.mod *~ Make.temp Make.ftemp
310
311 depend : Make.dep
312
313 Make.dep :
314 echo "Only C dependencies are made automagically!"
315 echo "# DO NOT DELETE THIS LINE - used by make depend" > Make.dep
316 $(CC) $(DEPFLAGS) -MM $(C_SRCS) \
317 | sed 's/\.o:/\$$(O)\ :/g' > Make.temp
318 $(CXX) $(DEPFLAGS) -MM $(CXX_SRCS) \
319 | sed 's/\.o:/\$$(O)\ :/g' >> Make.temp
320 cat Make.temp | sed 's/^[a-zA-Z0-9]/obj\/&/g' >> Make.dep
321 cat Make.temp | sed 's/^[a-zA-Z0-9]/MPIobj\/&/g' >> Make.dep
322 # ../scripts/sfmakedepend -I $(MPI_F90_MODS) -d obj -f ./Make.ftemp -h *.F90
323 # ../scripts/sfmakedepend -I $(MPI_F90_MODS) -d MPIobj -f ./Make.ftemp -h *.F90
324 # cat Make.ftemp | sed 's/\.o:/\$$(O)\ :/g' >> Make.dep
325 $(RM) Make.ftemp Make.temp
326
327 install : dummy
328
329 links : dummy
330
331 tests : dummy
332
333 dummy :
334
335 include Make.dep
336
337 obj/definitions_module$(O): ./definitions_module.F90
338
339 obj/vector_class$(O): ./vector_class.F90
340
341 obj/status_module$(O): ./status_module.F90
342
343 obj/force_globals$(O): ./force_globals.F90 \
344 obj/definitions_module$(O)
345
346 obj/neighborLists$(O): ./neighborLists.F90 \
347 obj/definitions_module$(O)
348
349 obj/calc_sticky_pair$(O): ./calc_sticky_pair.F90 \
350 obj/definitions_module$(O) \
351 obj/simulation_module$(O) \
352 obj/force_globals$(O)
353
354 obj/calc_eam$(O): ./calc_eam.F90 \
355 obj/definitions_module$(O) \
356 obj/atype_module$(O) \
357 obj/simulation_module$(O) \
358 obj/vector_class$(O) \
359 obj/force_globals$(O) \
360 obj/status_module$(O)
361
362 obj/calc_gb$(O): ./calc_gb.F90 \
363 obj/definitions_module$(O) \
364 obj/simulation_module$(O) \
365 obj/force_globals$(O)
366
367 obj/atype_module$(O): ./atype_module.F90 \
368 obj/definitions_module$(O) \
369 obj/vector_class$(O)
370
371 obj/simulation_module$(O): ./simulation_module.F90 \
372 obj/definitions_module$(O) \
373 obj/vector_class$(O) \
374 obj/force_globals$(O) \
375 obj/atype_module$(O) \
376 obj/switch_module$(O) \
377 obj/neighborLists$(O)
378
379 obj/calc_LJ_FF$(O): ./calc_LJ_FF.F90 \
380 obj/definitions_module$(O) \
381 obj/atype_module$(O) \
382 obj/switch_module$(O) \
383 obj/simulation_module$(O) \
384 obj/vector_class$(O) \
385 obj/force_globals$(O)
386
387 obj/calc_reaction_field$(O): ./calc_reaction_field.F90 \
388 obj/definitions_module$(O) \
389 obj/vector_class$(O) \
390 obj/atype_module$(O) \
391 obj/simulation_module$(O) \
392 obj/status_module$(O) \
393 obj/force_globals$(O)
394
395 obj/calc_dipole_dipole$(O): ./calc_dipole_dipole.F90 \
396 obj/definitions_module$(O) \
397 obj/atype_module$(O) \
398 obj/simulation_module$(O) \
399 obj/force_globals$(O) \
400 obj/status_module$(O) \
401 obj/vector_class$(O)
402
403 obj/calc_charge_charge$(O): ./calc_charge_charge.F90 \
404 obj/definitions_module$(O) \
405 obj/atype_module$(O) \
406 obj/simulation_module$(O) \
407 obj/force_globals$(O) \
408 obj/status_module$(O) \
409 obj/vector_class$(O)
410
411 obj/do_Forces$(O): ./do_Forces.F90 \
412 obj/definitions_module$(O) \
413 obj/atype_module$(O) \
414 obj/switch_module$(O) \
415 obj/simulation_module$(O) \
416 obj/neighborLists$(O) \
417 obj/calc_LJ_FF$(O) \
418 obj/calc_sticky_pair$(O) \
419 obj/calc_dipole_dipole$(O) \
420 obj/calc_reaction_field$(O) \
421 obj/calc_gb$(O) \
422 obj/force_globals$(O) \
423 obj/status_module$(O) \
424 obj/vector_class$(O)
425
426 obj/notifyCutoffs$(O): ./notifyCutoffs.F90 \
427 obj/definitions_module$(O) \
428 obj/atype_module$(O) \
429 obj/calc_LJ_FF$(O) \
430 obj/calc_eam$(O) \
431 obj/calc_dipole_dipole$(O) \
432 obj/calc_reaction_field$(O) \
433 obj/switch_module$(O) \
434 obj/do_Forces$(O)
435
436 obj/wrappers$(O): ./wrappers.F90 \
437 obj/definitions_module$(O) \
438 obj/atype_module$(O) \
439 obj/simulation_module$(O) \
440 obj/calc_sticky_pair$(O) \
441 obj/calc_gb$(O) \
442 obj/do_Forces$(O) \
443 obj/notifyCutoffs$(O)
444
445 obj/timing$(O): ./timing.F90 \
446 obj/do_Forces$(O)
447
448
449
450 #MPI dependencies:
451
452 MPIobj/definitions_module$(O): ./definitions_module.F90
453
454 MPIobj/vector_class$(O): ./vector_class.F90
455
456 MPIobj/status_module$(O): ./status_module.F90
457
458 MPIobj/oopseMPI_module$(O): ./oopseMPI_module.F90
459
460 MPIobj/mpiSimulation_module$(O): ./mpiSimulation_module.F90 \
461 MPIobj/oopseMPI_module$(O)
462
463 MPIobj/force_globals$(O): ./force_globals.F90 \
464 MPIobj/mpiSimulation_module$(O) \
465 MPIobj/definitions_module$(O)
466
467 MPIobj/neighborLists$(O): ./neighborLists.F90 \
468 MPIobj/definitions_module$(O) \
469 MPIobj/mpiSimulation_module$(O)
470
471 MPIobj/calc_sticky_pair$(O): ./calc_sticky_pair.F90 \
472 MPIobj/definitions_module$(O) \
473 MPIobj/simulation_module$(O) \
474 MPIobj/mpiSimulation_module$(O) \
475 MPIobj/force_globals$(O)
476
477 MPIobj/calc_gb$(O): ./calc_gb.F90 \
478 MPIobj/definitions_module$(O) \
479 MPIobj/simulation_module$(O) \
480 MPIobj/mpiSimulation_module$(O) \
481 MPIobj/force_globals$(O)
482
483 MPIobj/calc_eam$(O): ./calc_eam.F90 \
484 MPIobj/definitions_module$(O) \
485 MPIobj/atype_module$(O) \
486 MPIobj/simulation_module$(O) \
487 MPIobj/mpiSimulation_module$(O) \
488 MPIobj/vector_class$(O) \
489 MPIobj/force_globals$(O) \
490 MPIobj/status_module$(O)
491
492 MPIobj/atype_module$(O): ./atype_module.F90 \
493 MPIobj/definitions_module$(O) \
494 MPIobj/vector_class$(O)
495
496 MPIobj/simulation_module$(O): ./simulation_module.F90 \
497 MPIobj/definitions_module$(O) \
498 MPIobj/atype_module$(O) \
499 MPIobj/vector_class$(O) \
500 MPIobj/force_globals$(O) \
501 MPIobj/mpiSimulation_module$(O) \
502 MPIobj/atype_module$(O) \
503 MPIobj/switch_module$(O) \
504 MPIobj/neighborLists$(O)
505
506 MPIobj/calc_LJ_FF$(O): ./calc_LJ_FF.F90 \
507 MPIobj/definitions_module$(O) \
508 MPIobj/atype_module$(O) \
509 MPIobj/switch_module$(O) \
510 MPIobj/simulation_module$(O) \
511 MPIobj/mpiSimulation_module$(O) \
512 MPIobj/atype_module$(O) \
513 MPIobj/vector_class$(O) \
514 MPIobj/force_globals$(O)
515
516 MPIobj/calc_reaction_field$(O): ./calc_reaction_field.F90 \
517 MPIobj/definitions_module$(O) \
518 MPIobj/atype_module$(O) \
519 MPIobj/simulation_module$(O) \
520 MPIobj/mpiSimulation_module$(O) \
521 MPIobj/vector_class$(O) \
522 MPIobj/atype_module$(O) \
523 MPIobj/status_module$(O) \
524 MPIobj/force_globals$(O)
525
526 MPIobj/calc_dipole_dipole$(O): ./calc_dipole_dipole.F90 \
527 MPIobj/definitions_module$(O) \
528 MPIobj/atype_module$(O) \
529 MPIobj/simulation_module$(O) \
530 MPIobj/mpiSimulation_module$(O) \
531 MPIobj/force_globals$(O) \
532 MPIobj/status_module$(O) \
533 MPIobj/vector_class$(O)
534
535 MPIobj/calc_charge_charge$(O): ./calc_charge_charge.F90 \
536 MPIobj/definitions_module$(O) \
537 MPIobj/atype_module$(O) \
538 MPIobj/simulation_module$(O) \
539 MPIobj/mpiSimulation_module$(O) \
540 MPIobj/force_globals$(O) \
541 MPIobj/status_module$(O) \
542 MPIobj/vector_class$(O)
543
544 MPIobj/do_Forces$(O): ./do_Forces.F90 \
545 MPIobj/definitions_module$(O) \
546 MPIobj/mpiSimulation_module$(O) \
547 MPIobj/atype_module$(O) \
548 MPIobj/switch_module$(O) \
549 MPIobj/simulation_module$(O) \
550 MPIobj/neighborLists$(O) \
551 MPIobj/calc_LJ_FF$(O) \
552 MPIobj/calc_sticky_pair$(O) \
553 MPIobj/calc_dipole_dipole$(O) \
554 MPIobj/calc_reaction_field$(O) \
555 MPIobj/calc_gb$(O) \
556 MPIobj/force_globals$(O) \
557 MPIobj/status_module$(O) \
558 MPIobj/vector_class$(O)
559
560 MPIobj/notifyCutoffs$(O): ./notifyCutoffs.F90 \
561 MPIobj/definitions_module$(O) \
562 MPIobj/atype_module$(O) \
563 MPIobj/calc_LJ_FF$(O) \
564 MPIobj/calc_eam$(O) \
565 MPIobj/calc_dipole_dipole$(O) \
566 MPIobj/calc_reaction_field$(O) \
567 MPIobj/switch_module$(O) \
568 MPIobj/do_Forces$(O)
569
570 MPIobj/wrappers$(O): ./wrappers.F90 \
571 MPIobj/definitions_module$(O) \
572 MPIobj/mpiSimulation_module$(O) \
573 MPIobj/atype_module$(O) \
574 MPIobj/simulation_module$(O) \
575 MPIobj/calc_sticky_pair$(O) \
576 MPIobj/calc_gb$(O) \
577 MPIobj/do_Forces$(O) \
578 MPIobj/notifyCutoffs$(O)
579
580 MPIobj/timing$(O): ./timing.F90 \
581 MPIobj/do_Forces$(O) \
582 MPIobj/mpiSimulation_module$(O)