ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Makefile.in
Revision: 840
Committed: Wed Oct 29 14:29:12 2003 UTC (20 years, 8 months ago) by gezelter
File size: 11688 byte(s)
Log Message:
C++ compatibility for templates

File Contents

# User Rev Content
1 gezelter 747 #####################################################
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     # MPICH library path
41     MPI_LIBDIR=@MPI_LIBDIR@
42    
43     # MPICH library
44     MPI_LIB=@MPI_LIB@
45    
46     # MPICH include path
47     MPI_INC=@MPI_INC@
48    
49 gezelter 826 # MODDIRFLAG
50     MODDIRFLAG=@MODDIRFLAG@
51    
52 gezelter 747 # MPI F90 Module path
53     MPI_F90_MODS=@MPI_F90_MODS@
54    
55     # Compiler dependent Fortran module
56     FLIBS_EXTRA = @F90LIBS@
57    
58     # Location of yacc (or its substitution)
59     YACC=@YACC@
60    
61     #location of lex
62     LEX=@LEX@
63    
64     # C compiler
65     CC=@CC@
66    
67     # C++ compiler
68    
69     CXX=@CXX@
70    
71     # F90 compiler
72     F90=@F90@
73    
74     # ar
75     AR=@AR@
76    
77     # ranlib
78     RANLIB=@RANLIB@
79    
80     # rm
81     RM=rm -f
82    
83     # soft link
84     LN_S=@LN_S@
85    
86     # BSD install
87     INSTALL=@INSTALL@
88     INSTALL_PROGRAM=@INSTALL_PROGRAM@
89     INSTALL_DATA=@INSTALL_DATA@
90     MKINSTALLDIRS=@MKINSTALLDIRS@
91    
92     # CPP flags
93     CPPFLAGS=@CPPFLAGS@
94    
95     # C flags
96     CFLAGS_C=@CFLAGS@
97    
98     # C++ flags
99     CXXFLAGS_C=@CXXFLAGS@
100    
101 gezelter 840 # C++ template flags
102     OOPSE_TEMPLATE_FLAGS=@OOPSE_TEMPLATE_FLAGS@
103    
104     # C++ namespace flags
105     EXTRA_CC_FLAG=@EXTRA_CC_FLAG@
106    
107 gezelter 747 # Preprocessor flag for fortran
108     PREPFLAG=@PREPFLAG@
109    
110     # Preprocessor define flag for fortran
111     PREPDEFFLAG=@PREPDEFFLAG@
112    
113     # Fortran flags
114 gezelter 785 FFLAGS_C=@FFLAGS@
115 gezelter 747
116 gezelter 785 # Fortran90 flags
117     F90FLAGS_C=@F90FLAGS@
118    
119 gezelter 747 # LDFLAGS
120     LDFLAGS=@LDFLAGS@
121    
122     # First do compile-time flags:
123    
124     DECLARE=-DFRC_PATH="$(FORCE_PARAM_DIR)"
125     MPI_DECLARE=-DIS_MPI
126    
127     # include paths starting with "." are all relative to the SUBDIRS!!!
128    
129     INCLUDES= -I.. -I../../libBASS $(SPRNG_INC)
130 gezelter 826 MPI_INCLUDES= -I$(MPI_INC) $(MODDIRFLAG)$(MPI_F90_MODS)
131 gezelter 747
132     CFLAGS=$(CFLAGS_C) $(INCLUDES) $(DECLARE) $(MPI_INCLUDES) $(FUNCWRAP)
133 gezelter 840 CXXFLAGS=$(CXXFLAGS_C) $(OOPSE_TEMPLATE_FLAGS) $(EXTRA_CC_FLAG) $(INCLUDES) $(DECLARE) $(FUNCWRAP)
134 gezelter 747 FFLAGS=$(PREPFLAG) $(FFLAGS_C)
135 gezelter 785 F90FLAGS=$(PREPFLAG) $(F90FLAGS_C)
136 gezelter 747 DEPFLAGS=$(CFLAGS_C) -I. -I../libBASS $(SPRNG_INC) $(MPI_INCLUDES)
137    
138     MPI_CFLAGS=$(CFLAGS) $(MPI_INCLUDES) $(MPI_DECLARE)
139     MPI_CXXFLAGS=$(CXXFLAGS) $(MPI_INCLUDES) $(MPI_DECLARE)
140 gezelter 785 MPI_F90FLAGS=$(F90FLAGS) $(PREPDEFFLAG)$(MPI_DECLARE) $(MPI_INCLUDES)
141 gezelter 747
142 gezelter 829 SRC_DIR := ..
143 gezelter 747
144     # Then do the compile rules:
145    
146     obj/%.o: %.F90
147 gezelter 785 cd obj; $(F90) $(F90FLAGS) -c $(SRC_DIR)/$<
148 gezelter 747
149     MPIobj/%.o: %.F90
150 gezelter 785 cd MPIobj; $(F90) $(MPI_F90FLAGS) -c $(SRC_DIR)/$<
151 gezelter 747
152     obj/%.o: %.cpp
153     cd obj; $(CXX) $(CXXFLAGS) -c $(SRC_DIR)/$<
154    
155     MPIobj/%.o: %.cpp
156     cd MPIobj; $(CXX) $(MPI_CXXFLAGS) -c $(SRC_DIR)/$<
157    
158     obj/%.o: %.c
159     cd obj; $(CC) $(CFLAGS) -c $(SRC_DIR)/$<
160    
161     MPIobj/%.o: %.c
162     cd MPIobj; $(CC) $(MPI_CFLAGS) -c $(SRC_DIR)/$<
163    
164     # Then list what we have to compile
165    
166     C_FILES = \
167     $(DIR)/mpiForceField.c \
168     $(DIR)/fInfo.c
169    
170     CXX_FILES = \
171     $(DIR)/Atom.cpp \
172     $(DIR)/Bend.cpp \
173     $(DIR)/BendExtensions.cpp \
174     $(DIR)/Bond.cpp \
175     $(DIR)/BondExtensions.cpp \
176     $(DIR)/DirectionalAtom.cpp \
177     $(DIR)/DumpWriter.cpp \
178 mmeineke 804 $(DIR)/DumpReader.cpp \
179 gezelter 747 $(DIR)/Exclude.cpp \
180     $(DIR)/InitializeFromFile.cpp \
181     $(DIR)/LJFF.cpp \
182     $(DIR)/EAM_FF.cpp \
183     $(DIR)/SimInfo.cpp \
184     $(DIR)/SimSetup.cpp \
185     $(DIR)/StatWriter.cpp \
186     $(DIR)/Integrator.cpp \
187     $(DIR)/Thermo.cpp \
188     $(DIR)/GhostBend.cpp \
189     $(DIR)/Torsion.cpp \
190     $(DIR)/TorsionExtensions.cpp \
191     $(DIR)/DUFF.cpp \
192     $(DIR)/randomSPRNG.cpp \
193     $(DIR)/fortranWrappers.cpp \
194     $(DIR)/ForceFields.cpp \
195     $(DIR)/mpiSimulation.cpp \
196     $(DIR)/Molecule.cpp \
197 gezelter 761 $(DIR)/NPTf.cpp \
198     $(DIR)/NPTi.cpp \
199 mmeineke 812 $(DIR)/NPTxyz.cpp \
200 gezelter 761 $(DIR)/NVT.cpp \
201 gezelter 747 $(DIR)/SimState.cpp \
202     $(DIR)/ZConstraint.cpp \
203     $(DIR)/ZConsWriter.cpp \
204     $(DIR)/GenericData.cpp
205    
206     F90_FILES= \
207     $(DIR)/definitions_module.F90 \
208     $(DIR)/status_module.F90 \
209     $(DIR)/atype_module.F90 \
210     $(DIR)/calc_dipole_dipole.F90 \
211     $(DIR)/calc_reaction_field.F90 \
212     $(DIR)/calc_LJ_FF.F90 \
213     $(DIR)/calc_eam.F90 \
214     $(DIR)/calc_sticky_pair.F90 \
215     $(DIR)/do_Forces.F90 \
216     $(DIR)/vector_class.F90 \
217     $(DIR)/simulation_module.F90 \
218     $(DIR)/wrappers.F90 \
219     $(DIR)/neighborLists.F90 \
220     $(DIR)/calc_gb.F90 \
221     $(DIR)/force_globals.F90 \
222     $(DIR)/mpiSimulation_module.F90 \
223     $(DIR)/notifyCutoffs.F90
224    
225     DIR:=.
226     C_SRCS := $(C_FILES)
227     CXX_SRCS := $(CXX_FILES)
228     F90_SRCS := $(F90_FILES)
229     SRCS := $(C_SRCS) $(CXX_SRCS) $(F90_SRCS)
230    
231     DIR:=obj
232     C_OBJS := $(C_FILES:.c=.o)
233     CXX_OBJS := $(CXX_FILES:.cpp=.o)
234     F90_OBJS := $(F90_FILES:.F90=.o)
235     OBJS := $(C_OBJS) $(CXX_OBJS) $(F90_OBJS)
236    
237     DIR:=MPIobj
238     C_MPIOBJS := $(C_FILES:.c=.o)
239     CXX_MPIOBJS := $(CXX_FILES:.cpp=.o)
240     F90_MPIOBJS := $(F90_FILES:.F90=.o)
241     MPIOBJS := $(C_MPIOBJS) $(CXX_MPIOBJS) $(F90_MPIOBJS)
242    
243     LIBSUBDIRS = \
244     obj \
245     MPIobj
246    
247     # Possible make targets:
248    
249     all: libmdtools.a libmdtools_MPI.a
250    
251     libmdtools.a: $(OBJS)
252     $(RM) $@
253     $(AR) cr $@ $(OBJS)
254     $(RANLIB) $@
255    
256     libmdtools_MPI.a: $(MPIOBJS)
257     $(RM) $@
258     $(AR) cr $@ $(MPIOBJS)
259     $(RANLIB) $@
260    
261     .PHONY : clean
262    
263     clean : dummy
264     for i in $(LIBSUBDIRS); do \
265     (cd $$i; $(RM) *.o *.mod) || exit 1; \
266     done
267     $(RM) libmdtools.a libmdtools_MPI.a *.o *.mod *~ Make.temp Make.ftemp
268    
269     distclean : dummy
270     for i in $(LIBSUBDIRS); do \
271     (cd $$i; $(RM) *.o *.mod) || exit 1; \
272     done
273     $(RM) libmdtools.a libmdtools_MPI.a *.o *.mod *~ Make.temp Make.ftemp
274    
275     depend : Make.dep
276    
277     Make.dep :
278     echo "Only C dependencies are made automagically!"
279     echo "# DO NOT DELETE THIS LINE - used by make depend" > Make.dep
280     $(CC) $(DEPFLAGS) -MM $(C_SRCS) \
281     | sed 's/\.o:/\$$(O)\ :/g' > Make.temp
282     $(CXX) $(DEPFLAGS) -MM $(CXX_SRCS) \
283     | sed 's/\.o:/\$$(O)\ :/g' >> Make.temp
284     cat Make.temp | sed 's/^[a-zA-Z0-9]/obj\/&/g' >> Make.dep
285     cat Make.temp | sed 's/^[a-zA-Z0-9]/MPIobj\/&/g' >> Make.dep
286     # ../scripts/sfmakedepend -I $(MPI_F90_MODS) -d obj -f ./Make.ftemp -h *.F90
287     # ../scripts/sfmakedepend -I $(MPI_F90_MODS) -d MPIobj -f ./Make.ftemp -h *.F90
288     # cat Make.ftemp | sed 's/\.o:/\$$(O)\ :/g' >> Make.dep
289     $(RM) Make.ftemp Make.temp
290    
291     install : dummy
292    
293     links : dummy
294    
295     tests : dummy
296    
297     dummy :
298    
299     include Make.dep
300    
301     obj/definitions_module$(O): ./definitions_module.F90
302    
303     obj/vector_class$(O): ./vector_class.F90
304    
305     obj/status_module$(O): ./status_module.F90
306    
307     obj/force_globals$(O): ./force_globals.F90 \
308     obj/definitions_module$(O)
309    
310     obj/neighborLists$(O): ./neighborLists.F90 \
311     obj/definitions_module$(O)
312    
313     obj/calc_sticky_pair$(O): ./calc_sticky_pair.F90 \
314     obj/definitions_module$(O) \
315     obj/simulation_module$(O) \
316     obj/force_globals$(O)
317    
318     obj/calc_eam$(O): ./calc_eam.F90 \
319     obj/definitions_module$(O) \
320     obj/atype_module$(O) \
321     obj/simulation_module$(O) \
322     obj/vector_class$(O) \
323     obj/force_globals$(O) \
324     obj/status_module$(O)
325    
326     obj/calc_gb$(O): ./calc_gb.F90 \
327     obj/definitions_module$(O) \
328     obj/simulation_module$(O) \
329     obj/force_globals$(O)
330    
331     obj/atype_module$(O): ./atype_module.F90 \
332     obj/definitions_module$(O) \
333     obj/vector_class$(O)
334    
335     obj/simulation_module$(O): ./simulation_module.F90 \
336     obj/definitions_module$(O) \
337     obj/vector_class$(O) \
338     obj/force_globals$(O) \
339     obj/atype_module$(O) \
340     obj/neighborLists$(O)
341    
342     obj/calc_LJ_FF$(O): ./calc_LJ_FF.F90 \
343     obj/definitions_module$(O) \
344     obj/atype_module$(O) \
345     obj/simulation_module$(O) \
346     obj/vector_class$(O) \
347     obj/force_globals$(O)
348    
349     obj/calc_reaction_field$(O): ./calc_reaction_field.F90 \
350     obj/definitions_module$(O) \
351     obj/vector_class$(O) \
352     obj/atype_module$(O) \
353     obj/simulation_module$(O) \
354     obj/force_globals$(O)
355    
356     obj/calc_dipole_dipole$(O): ./calc_dipole_dipole.F90 \
357     obj/definitions_module$(O) \
358     obj/atype_module$(O) \
359     obj/simulation_module$(O) \
360     obj/force_globals$(O) \
361     obj/vector_class$(O)
362    
363     obj/do_Forces$(O): ./do_Forces.F90 \
364     obj/definitions_module$(O) \
365     obj/atype_module$(O) \
366     obj/simulation_module$(O) \
367     obj/neighborLists$(O) \
368     obj/calc_LJ_FF$(O) \
369     obj/calc_sticky_pair$(O) \
370     obj/calc_dipole_dipole$(O) \
371     obj/calc_reaction_field$(O) \
372     obj/calc_gb$(O) \
373     obj/force_globals$(O) \
374     obj/vector_class$(O)
375    
376     obj/notifyCutoffs$(O): ./notifyCutoffs.F90 \
377     obj/definitions_module$(O) \
378     obj/atype_module$(O) \
379     obj/calc_LJ_FF$(O) \
380     obj/calc_eam$(O) \
381     obj/calc_dipole_dipole$(O) \
382     obj/calc_reaction_field$(O) \
383     obj/do_Forces$(O)
384    
385     obj/wrappers$(O): ./wrappers.F90 \
386     obj/definitions_module$(O) \
387     obj/atype_module$(O) \
388     obj/simulation_module$(O) \
389     obj/calc_sticky_pair$(O) \
390     obj/calc_gb$(O) \
391     obj/do_Forces$(O) \
392     obj/notifyCutoffs$(O)
393    
394    
395    
396    
397    
398    
399     #MPI dependencies:
400    
401     MPIobj/definitions_module$(O): ./definitions_module.F90
402    
403     MPIobj/vector_class$(O): ./vector_class.F90
404    
405     MPIobj/status_module$(O): ./status_module.F90
406    
407     MPIobj/mpiSimulation_module$(O): ./mpiSimulation_module.F90
408    
409     MPIobj/force_globals$(O): ./force_globals.F90 \
410     MPIobj/mpiSimulation_module$(O) \
411     MPIobj/definitions_module$(O)
412    
413     MPIobj/neighborLists$(O): ./neighborLists.F90 \
414     MPIobj/definitions_module$(O) \
415     MPIobj/mpiSimulation_module$(O)
416    
417     MPIobj/calc_sticky_pair$(O): ./calc_sticky_pair.F90 \
418     MPIobj/definitions_module$(O) \
419     MPIobj/simulation_module$(O) \
420     MPIobj/mpiSimulation_module$(O) \
421     MPIobj/force_globals$(O)
422    
423     MPIobj/calc_gb$(O): ./calc_gb.F90 \
424     MPIobj/definitions_module$(O) \
425     MPIobj/simulation_module$(O) \
426     MPIobj/mpiSimulation_module$(O) \
427     MPIobj/force_globals$(O)
428    
429     MPIobj/calc_eam$(O): ./calc_eam.F90 \
430     MPIobj/definitions_module$(O) \
431     MPIobj/atype_module$(O) \
432     MPIobj/simulation_module$(O) \
433     MPIobj/mpiSimulation_module$(O) \
434     MPIobj/vector_class$(O) \
435     MPIobj/force_globals$(O) \
436     MPIobj/status_module$(O)
437    
438     MPIobj/atype_module$(O): ./atype_module.F90 \
439     MPIobj/definitions_module$(O) \
440     MPIobj/vector_class$(O)
441    
442     MPIobj/simulation_module$(O): ./simulation_module.F90 \
443     MPIobj/definitions_module$(O) \
444     MPIobj/atype_module$(O) \
445     MPIobj/vector_class$(O) \
446     MPIobj/force_globals$(O) \
447     MPIobj/mpiSimulation_module$(O) \
448     MPIobj/atype_module$(O) \
449     MPIobj/neighborLists$(O)
450    
451     MPIobj/calc_LJ_FF$(O): ./calc_LJ_FF.F90 \
452     MPIobj/definitions_module$(O) \
453     MPIobj/atype_module$(O) \
454     MPIobj/simulation_module$(O) \
455     MPIobj/mpiSimulation_module$(O) \
456     MPIobj/atype_module$(O) \
457     MPIobj/vector_class$(O) \
458     MPIobj/force_globals$(O)
459    
460     MPIobj/calc_reaction_field$(O): ./calc_reaction_field.F90 \
461     MPIobj/definitions_module$(O) \
462     MPIobj/atype_module$(O) \
463     MPIobj/simulation_module$(O) \
464     MPIobj/mpiSimulation_module$(O) \
465     MPIobj/vector_class$(O) \
466     MPIobj/atype_module$(O) \
467     MPIobj/force_globals$(O)
468    
469     MPIobj/calc_dipole_dipole$(O): ./calc_dipole_dipole.F90 \
470     MPIobj/definitions_module$(O) \
471     MPIobj/atype_module$(O) \
472     MPIobj/simulation_module$(O) \
473     MPIobj/mpiSimulation_module$(O) \
474     MPIobj/force_globals$(O) \
475     MPIobj/vector_class$(O)
476    
477     MPIobj/do_Forces$(O): ./do_Forces.F90 \
478     MPIobj/definitions_module$(O) \
479     MPIobj/mpiSimulation_module$(O) \
480     MPIobj/atype_module$(O) \
481     MPIobj/simulation_module$(O) \
482     MPIobj/neighborLists$(O) \
483     MPIobj/calc_LJ_FF$(O) \
484     MPIobj/calc_sticky_pair$(O) \
485     MPIobj/calc_dipole_dipole$(O) \
486     MPIobj/calc_reaction_field$(O) \
487     MPIobj/calc_gb$(O) \
488     MPIobj/force_globals$(O) \
489     MPIobj/vector_class$(O)
490    
491     MPIobj/notifyCutoffs$(O): ./notifyCutoffs.F90 \
492     MPIobj/definitions_module$(O) \
493     MPIobj/atype_module$(O) \
494     MPIobj/calc_LJ_FF$(O) \
495     MPIobj/calc_eam$(O) \
496     MPIobj/calc_dipole_dipole$(O) \
497     MPIobj/calc_reaction_field$(O) \
498     MPIobj/do_Forces$(O)
499    
500     MPIobj/wrappers$(O): ./wrappers.F90 \
501     MPIobj/definitions_module$(O) \
502     MPIobj/mpiSimulation_module$(O) \
503     MPIobj/atype_module$(O) \
504     MPIobj/simulation_module$(O) \
505     MPIobj/calc_sticky_pair$(O) \
506     MPIobj/calc_gb$(O) \
507     MPIobj/do_Forces$(O) \
508     MPIobj/notifyCutoffs$(O)
509