ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Makefile
Revision: 385
Committed: Fri Mar 21 20:37:58 2003 UTC (21 years, 3 months ago) by gezelter
File size: 7805 byte(s)
Log Message:
Makefile fixes, directory re-org, autoconf fixes

File Contents

# User Rev Content
1 mmeineke 377 #####################################################
2     # Makefile for libmdtools (bundled with OOPSE) #
3     #####################################################
4     # You should not change anything here. #
5     #####################################################
6    
7     TOP=..
8    
9     include $(TOP)/Make.conf
10    
11     .SUFFIXES : .c .cpp .F90 .hpp .h $(O)
12    
13     # First do compile-time flags:
14    
15 gezelter 385 DECLARES= -DFRC_PATH="$(FORCE_PARAM_DIR)"
16 mmeineke 377 MPI_DECLARES= -DIS_MPI
17    
18     # include paths starting with "." are all relative to the SUBDIRS!!!
19    
20     INCLUDES= -I.. -I../../libBASS -I$(SPRNG_INC)
21     MPI_INCLUDES= -I$(MPICH_INC) -I$(MPICH_INC)/mpi2c++ -I$(MPI_F90_MODS)
22    
23     CFLAGS=$(CFLAGS_C) $(INCLUDES) $(DECLARES) $(MPI_INCLUDES)
24     CXXFLAGS=$(CXXFLAGS_C) $(INCLUDES) $(DECLARES)
25     FFLAGS=$(FFLAGS_C) $(DECLARES)
26     DEPFLAGS=$(CFLAGS_C) -I. -I../libBASS -I$(SPRNG_INC) $(MPI_INCLUDES)
27    
28     MPI_CFLAGS=$(CFLAGS) $(MPI_INCLUDES) $(MPI_DECLARES)
29     MPI_CXXFLAGS=$(CXXFLAGS) $(MPI_INCLUDES) $(MPI_DECLARES)
30     MPI_FFLAGS=$(FFLAGS) $(MPI_INCLUDES) $(MPI_DECLARES)
31    
32     # Then do the compile rules:
33    
34     obj/%.o: %.F90
35     cd obj; $(FC) $(FFLAGS) -c ../$<
36    
37     MPIobj/%.o: %.F90
38     cd MPIobj; $(FC) $(MPI_FFLAGS) -c ../$<
39    
40     obj/%.o: %.cpp
41     cd obj; $(CXX) $(CXXFLAGS) -c ../$<
42    
43     MPIobj/%.o: %.cpp
44     cd MPIobj; $(CXX) $(MPI_CXXFLAGS) -c ../$<
45    
46     obj/%.o: %.c
47     cd obj; $(CC) $(CFLAGS) -c ../$<
48    
49     MPIobj/%.o: %.c
50     cd MPIobj; $(CC) $(MPI_CFLAGS) -c ../$<
51    
52     # Then list what we have to compile
53    
54     C_FILES = $(DIR)/mpiForceField.c
55    
56     CXX_FILES = \
57     $(DIR)/Bend.cpp \
58     $(DIR)/BendExtensions.cpp \
59     $(DIR)/Bond.cpp \
60     $(DIR)/BondExtensions.cpp \
61     $(DIR)/DipoleTestFF.cpp \
62     $(DIR)/DirectionalAtom.cpp \
63     $(DIR)/DumpWriter.cpp \
64     $(DIR)/InitializeFromFile.cpp \
65     $(DIR)/LJ_FF.cpp \
66     $(DIR)/SimInfo.cpp \
67     $(DIR)/SimSetup.cpp \
68     $(DIR)/StatWriter.cpp \
69     $(DIR)/Symplectic.cpp \
70     $(DIR)/Thermo.cpp \
71     $(DIR)/GhostBend.cpp \
72     $(DIR)/Torsion.cpp \
73     $(DIR)/TorsionExtensions.cpp \
74     $(DIR)/TraPPE_ExFF.cpp \
75     $(DIR)/TraPPEFF.cpp \
76     $(DIR)/Verlet.cpp \
77     $(DIR)/randomSPRNG.cpp \
78     $(DIR)/fortranWrappers.cpp \
79     $(DIR)/ForceFields.cpp \
80     $(DIR)/mpiSimulation.cpp
81    
82    
83     F90_FILES= \
84     $(DIR)/Linux_ifc_machdep.F90 \
85     $(DIR)/atype_module.F90 \
86     $(DIR)/f_verlet_constrained.F90 \
87     $(DIR)/calc_dipole_dipole.F90 \
88     $(DIR)/calc_reaction_field.F90 \
89     $(DIR)/calc_LJ_FF.F90 \
90     $(DIR)/calc_sticky_pair.F90 \
91     $(DIR)/do_Forces.F90 \
92     $(DIR)/vector_class.F90 \
93     $(DIR)/simulation_module.F90 \
94     $(DIR)/wrappers.F90 \
95     $(DIR)/neighborLists.F90 \
96     $(DIR)/calc_gb.F90 \
97     $(DIR)/force_globals.F90 \
98     $(DIR)/mpiSimulation_module.F90
99    
100     DIR:=.
101     C_SRCS := $(C_FILES)
102     CXX_SRCS := $(CXX_FILES)
103     F90_SRCS := $(F90_FILES)
104 gezelter 385 SRCS := $(C_SRCS) $(CXX_SRCS) $(F90_SRCS)
105 mmeineke 377
106     DIR:=obj
107     C_OBJS := $(C_FILES:.c=.o)
108     CXX_OBJS := $(CXX_FILES:.cpp=.o)
109     F90_OBJS := $(F90_FILES:.F90=.o)
110     OBJS := $(C_OBJS) $(CXX_OBJS) $(F90_OBJS)
111    
112     DIR:=MPIobj
113     C_MPIOBJS := $(C_FILES:.c=.o)
114     CXX_MPIOBJS := $(CXX_FILES:.cpp=.o)
115     F90_MPIOBJS := $(F90_FILES:.F90=.o)
116     MPIOBJS := $(C_MPIOBJS) $(CXX_MPIOBJS) $(F90_MPIOBJS)
117    
118     LIBSUBDIRS = \
119     obj \
120     MPIobj
121    
122     # Possible make targets:
123    
124 mmeineke 379 all: Make.dep libmdtools.a libmdtools_MPI.a
125 mmeineke 377
126     libmdtools.a: $(OBJS)
127     $(RM) $@
128     $(AR) cr $@ $(OBJS)
129     $(RANLIB) $@
130    
131     libmdtools_MPI.a: $(MPIOBJS)
132     $(RM) $@
133     $(AR) cr $@ $(MPIOBJS)
134     $(RANLIB) $@
135    
136     .PHONY : clean
137    
138     clean : dummy
139     for i in $(LIBSUBDIRS); do \
140     (cd $$i; $(RM) *.o *.mod) || exit 1; \
141     done
142     $(RM) libmdtools.a libmdtools_MPI.a *.o *.mod *~ Make.temp Make.ftemp
143    
144     distclean : dummy
145     for i in $(LIBSUBDIRS); do \
146     (cd $$i; $(RM) *.o *.mod) || exit 1; \
147     done
148 gezelter 385 $(RM) libmdtools.a libmdtools_MPI.a *.o *.mod *~ Make.temp Make.ftemp Make.dep
149 mmeineke 377
150 gezelter 385 depend : Make.dep
151 mmeineke 379
152 gezelter 385 Make.dep : $(SRCS)
153 mmeineke 377 echo "Only C dependencies are made automagically!"
154     echo "# DO NOT DELETE THIS LINE - used by make depend" > Make.dep
155     $(CC) $(DEPFLAGS) -MM $(C_SRCS) $(CXX_SRCS) \
156     | sed 's/\.o:/\$$(O)\ :/g' > Make.temp
157     cat Make.temp | sed 's/^/obj\//' >> Make.dep
158     cat Make.temp | sed 's/^/MPIobj\//' >> Make.dep
159 gezelter 385 # ../scripts/sfmakedepend -I $(MPI_F90_MODS) -d obj -f ./Make.ftemp -h *.F90
160     # ../scripts/sfmakedepend -I $(MPI_F90_MODS) -d MPIobj -f ./Make.ftemp -h *.F90
161 mmeineke 377 # cat Make.ftemp | sed 's/\.o:/\$$(O)\ :/g' >> Make.dep
162     $(RM) Make.ftemp Make.temp
163    
164     install : dummy
165    
166     links : dummy
167    
168     tests : dummy
169    
170     dummy :
171    
172     include Make.dep
173    
174     # known dependencies
175    
176     obj/$(F_MACH_DEFS): Linux_ifc_machdep.F90
177    
178     obj/vector_class$(O): vector_class.F90
179    
180     obj/force_globals$(O): force_globals.F90 \
181     obj/$(F_MACH_DEFS)
182    
183     obj/neighborLists$(O): neighborLists.F90 \
184     obj/$(F_MACH_DEFS)
185    
186     obj/calc_sticky_pair$(O): calc_sticky_pair.F90 \
187     obj/$(F_MACH_DEFS) \
188     obj/force_globals$(O)
189    
190     obj/calc_gb$(O): calc_gb.F90 \
191     obj/$(F_MACH_DEFS) \
192     obj/force_globals$(O)
193    
194     obj/atype_module$(O): atype_module.F90 \
195     obj/$(F_MACH_DEFS) \
196     obj/vector_class$(O) \
197     obj/calc_sticky_pair$(O) \
198     obj/calc_gb$(O)
199    
200     obj/simulation_module$(O): simulation_module.F90 \
201     obj/$(F_MACH_DEFS) \
202     obj/atype_module$(O) \
203     obj/neighborLists$(O)
204    
205     obj/calc_LJ_FF$(O): calc_LJ_FF.F90 \
206     obj/$(F_MACH_DEFS) \
207     obj/atype_module$(O) \
208     obj/vector_class$(O) \
209     obj/force_globals$(O)
210    
211     obj/calc_reaction_field$(O): calc_reaction_field.F90 \
212     obj/$(F_MACH_DEFS) \
213     obj/vector_class$(O) \
214     obj/atype_module$(O) \
215     obj/force_globals$(O)
216    
217     obj/calc_dipole_dipole$(O): calc_dipole_dipole.F90 \
218     obj/$(F_MACH_DEFS) \
219     obj/atype_module$(O) \
220     obj/force_globals$(O) \
221     obj/vector_class$(O)
222    
223     obj/do_Forces$(O): do_Forces.F90 \
224     obj/$(F_MACH_DEFS) \
225     obj/simulation_module$(O) \
226     obj/atype_module$(O) \
227     obj/neighborLists$(O) \
228     obj/calc_LJ_FF$(O) \
229     obj/calc_sticky_pair$(O) \
230     obj/calc_dipole_dipole$(O) \
231     obj/calc_reaction_field$(O) \
232     obj/calc_gb$(O) \
233     obj/force_globals$(O)
234    
235     obj/wrappers$(O): wrappers.F90 \
236     obj/$(F_MACH_DEFS) \
237     obj/simulation_module$(O) \
238     obj/atype_module$(O) \
239     obj/do_Forces$(O)
240    
241     #MPI dependencies:
242    
243     MPIobj/$(F_MACH_DEFS): Linux_ifc_machdep.F90
244    
245     MPIobj/vector_class$(O): vector_class.F90
246    
247     MPIobj/mpiSimulation_module$(O): mpiSimulation_module.F90
248    
249     MPIobj/force_globals$(O): force_globals.F90 \
250     MPIobj/mpiSimulation_module$(O) \
251     MPIobj/$(F_MACH_DEFS)
252    
253     MPIobj/neighborLists$(O): neighborLists.F90 \
254     MPIobj/$(F_MACH_DEFS) \
255     MPIobj/mpiSimulation_module$(O)
256    
257     MPIobj/calc_sticky_pair$(O): calc_sticky_pair.F90 \
258     MPIobj/$(F_MACH_DEFS) \
259     MPIobj/mpiSimulation_module$(O) \
260     MPIobj/force_globals$(O)
261    
262     MPIobj/calc_gb$(O): calc_gb.F90 \
263     MPIobj/$(F_MACH_DEFS) \
264     MPIobj/mpiSimulation_module$(O) \
265     MPIobj/force_globals$(O)
266    
267     MPIobj/atype_module$(O): atype_module.F90 \
268     MPIobj/$(F_MACH_DEFS) \
269     MPIobj/vector_class$(O) \
270     MPIobj/calc_sticky_pair$(O) \
271     MPIobj/calc_gb$(O)
272    
273     MPIobj/simulation_module$(O): simulation_module.F90 \
274     MPIobj/$(F_MACH_DEFS) \
275     MPIobj/mpiSimulation_module$(O) \
276     MPIobj/atype_module$(O) \
277     MPIobj/neighborLists$(O)
278    
279     MPIobj/calc_LJ_FF$(O): calc_LJ_FF.F90 \
280     MPIobj/$(F_MACH_DEFS) \
281     MPIobj/mpiSimulation_module$(O) \
282     MPIobj/atype_module$(O) \
283     MPIobj/vector_class$(O) \
284     MPIobj/force_globals$(O)
285    
286     MPIobj/calc_reaction_field$(O): calc_reaction_field.F90 \
287     MPIobj/$(F_MACH_DEFS) \
288     MPIobj/mpiSimulation_module$(O) \
289     MPIobj/vector_class$(O) \
290     MPIobj/atype_module$(O) \
291     MPIobj/force_globals$(O)
292    
293     MPIobj/calc_dipole_dipole$(O): calc_dipole_dipole.F90 \
294     MPIobj/$(F_MACH_DEFS) \
295     MPIobj/mpiSimulation_module$(O) \
296     MPIobj/atype_module$(O) \
297     MPIobj/force_globals$(O) \
298     MPIobj/vector_class$(O)
299    
300     MPIobj/do_Forces$(O): do_Forces.F90 \
301     MPIobj/$(F_MACH_DEFS) \
302     MPIobj/mpiSimulation_module$(O) \
303     MPIobj/simulation_module$(O) \
304     MPIobj/atype_module$(O) \
305     MPIobj/neighborLists$(O) \
306     MPIobj/calc_LJ_FF$(O) \
307     MPIobj/calc_sticky_pair$(O) \
308     MPIobj/calc_dipole_dipole$(O) \
309     MPIobj/calc_reaction_field$(O) \
310     MPIobj/calc_gb$(O) \
311     MPIobj/force_globals$(O)
312    
313     MPIobj/wrappers$(O): wrappers.F90 \
314     MPIobj/$(F_MACH_DEFS) \
315     MPIobj/mpiSimulation_module$(O) \
316     MPIobj/simulation_module$(O) \
317     MPIobj/atype_module$(O) \
318     MPIobj/do_Forces$(O)