ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libBASS/Makefile
Revision: 573
Committed: Thu Jul 3 19:41:26 2003 UTC (21 years ago) by mmeineke
File size: 3088 byte(s)
Log Message:
 cleaned up the dependecy scripts in the makefiles

File Contents

# Content
1 #####################################################
2 # Makefile for libBASS (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 .l .y .hpp .h $(O)
12
13 # First do compile-time flags:
14
15 MPI_DECLARES= -DIS_MPI
16
17 # include paths starting with "." are all relative to the SUBDIRS!!!
18
19 INCLUDES= -I..
20 MPI_INCLUDES= -I$(MPICH_INC)
21
22 CFLAGS=$(CFLAGS_C) $(INCLUDES) $(DECLARES) $(MPI_INCLUDES)
23 CXXFLAGS=$(CXXFLAGS_C) $(INCLUDES) $(DECLARES)
24 DEPFLAGS=$(CFLAGS_C) -I. -I$(SPRNG_INC) $(MPI_INCLUDES)
25
26 MPI_CFLAGS=$(CFLAGS) $(MPI_INCLUDES) $(MPI_DECLARES)
27 MPI_CXXFLAGS=$(CXXFLAGS) $(MPI_INCLUDES) $(MPI_DECLARES)
28
29 # Then do the compile rules:
30
31 obj/%.o: %.cpp
32 cd obj; $(CXX) $(CXXFLAGS) -c ../$<
33
34 MPIobj/%.o: %.cpp
35 cd MPIobj; $(CXX) $(MPI_CXXFLAGS) -c ../$<
36
37 obj/%.o: %.c
38 cd obj; $(CC) $(CFLAGS) -c ../$<
39
40 MPIobj/%.o: %.c
41 cd MPIobj; $(CC) $(MPI_CFLAGS) -c ../$<
42
43 # Then list what we have to compile
44
45 C_FILES = \
46 $(DIR)/BASS_parse.c \
47 $(DIR)/interface.c \
48 $(DIR)/make_nodes.c \
49 $(DIR)/mpiBASS.c \
50 $(DIR)/parse_tree.c \
51 $(DIR)/simError.c \
52 $(DIR)/BASSyacc.c \
53 $(DIR)/BASSlex.c
54
55 CXX_FILES = \
56 $(DIR)/AtomStamp.cpp \
57 $(DIR)/BASS_interface.cpp \
58 $(DIR)/BendStamp.cpp \
59 $(DIR)/BondStamp.cpp \
60 $(DIR)/Component.cpp \
61 $(DIR)/Globals.cpp \
62 $(DIR)/LinkedAssign.cpp \
63 $(DIR)/LinkedCommand.cpp \
64 $(DIR)/MakeStamps.cpp \
65 $(DIR)/MoleculeStamp.cpp \
66 $(DIR)/TorsionStamp.cpp
67
68 DIR:=.
69 C_SRCS := $(C_FILES)
70 CXX_SRCS := $(CXX_FILES)
71 SRCS := $(C_SRCS) $(CXX_SRCS)
72
73 DIR:=obj
74 C_OBJS := $(C_FILES:.c=.o)
75 CXX_OBJS := $(CXX_FILES:.cpp=.o)
76 OBJS := $(C_OBJS) $(CXX_OBJS)
77
78 DIR:=MPIobj
79 C_MPIOBJS := $(C_FILES:.c=.o)
80 CXX_MPIOBJS := $(CXX_FILES:.cpp=.o)
81 MPIOBJS := $(C_MPIOBJS) $(CXX_MPIOBJS)
82
83 LIBSUBDIRS = \
84 obj \
85 MPIobj
86
87 # Possible make targets:
88
89 all: Make.dep libBASS.a libBASS_MPI.a
90
91 libBASS.a: BASSyacc.h $(OBJS)
92 $(RM) $@
93 $(AR) cr $@ $(OBJS)
94 $(RANLIB) $@
95
96 libBASS_MPI.a: BASSyacc.h $(MPIOBJS)
97 $(RM) $@
98 $(AR) cr $@ $(MPIOBJS)
99 $(RANLIB) $@
100
101 BASSyacc.h: BASSyacc.y
102 $(YACC) -d $? && mv y.tab.h $@
103
104 BASSyacc.c: BASSyacc.y
105 $(YACC) -d $? && mv y.tab.c $@
106
107 BASSlex.c: BASSlex.l
108 $(LEX) -o$@ $?
109
110 .PHONY : clean
111
112 clean : dummy
113 for i in $(LIBSUBDIRS); do \
114 (cd $$i; $(RM) *.o) || exit 1; \
115 done
116 $(RM) libBASS.a libBASS_MPI.a *.o *~ Make.temp
117 $(RM) BASSyacc.h BASSyacc.c BASSlex.c
118
119 distclean : dummy
120 for i in $(LIBSUBDIRS); do \
121 (cd $$i; $(RM) *.o) || exit 1; \
122 done
123 $(RM) libBASS.a libBASS_MPI.a *.o *~ Make.dep Make.temp
124 $(RM) BASSyacc.h BASSyacc.c BASSlex.c
125
126 Make.dep : $(SRCS) BASSyacc.h BASSyacc.c BASSlex.c
127 echo "# DO NOT DELETE THIS LINE - used by make depend" > Make.dep
128 $(CC) $(DEPFLAGS) -MM $(C_SRCS) $(CXX_SRCS) \
129 | sed 's/\.o:/\$$(O)\ :/g' > Make.temp
130 cat Make.temp | sed 's/^[a-zA-Z0-9]/obj\/&/g' >> Make.dep
131 cat Make.temp | sed 's/^[a-zA-Z0-9]/MPIobj\/&/g' >> Make.dep
132 $(RM) Make.temp
133
134 depend : Make.dep
135
136 install : dummy
137
138 links : dummy
139
140 tests : dummy
141
142 dummy :
143
144 include Make.dep
145