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

# User Rev Content
1 mmeineke 377 #####################################################
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 chuckv 436 MPI_DECLARES= -DIS_MPI
16 mmeineke 377
17     # include paths starting with "." are all relative to the SUBDIRS!!!
18    
19     INCLUDES= -I..
20 mmeineke 447 MPI_INCLUDES= -I$(MPICH_INC)
21 mmeineke 377
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 gezelter 385 SRCS := $(C_SRCS) $(CXX_SRCS)
72 mmeineke 377
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 mmeineke 379 all: Make.dep libBASS.a libBASS_MPI.a
90 mmeineke 377
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 gezelter 385 $(RM) libBASS.a libBASS_MPI.a *.o *~ Make.temp
117     $(RM) BASSyacc.h BASSyacc.c BASSlex.c
118 mmeineke 377
119     distclean : dummy
120     for i in $(LIBSUBDIRS); do \
121     (cd $$i; $(RM) *.o) || exit 1; \
122     done
123 gezelter 385 $(RM) libBASS.a libBASS_MPI.a *.o *~ Make.dep Make.temp
124     $(RM) BASSyacc.h BASSyacc.c BASSlex.c
125 mmeineke 377
126 gezelter 385 Make.dep : $(SRCS) BASSyacc.h BASSyacc.c BASSlex.c
127 mmeineke 377 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 mmeineke 573 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 mmeineke 377 $(RM) Make.temp
133    
134 gezelter 385 depend : Make.dep
135    
136 mmeineke 377 install : dummy
137    
138     links : dummy
139    
140     tests : dummy
141    
142     dummy :
143    
144     include Make.dep
145