ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libBASS/Makefile
Revision: 379
Committed: Fri Mar 21 17:52:35 2003 UTC (21 years, 5 months ago) by mmeineke
File size: 3000 byte(s)
Log Message:
Makefile fixes for depends

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     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) -I$(MPICH_INC)/mpi2c++
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    
72     DIR:=obj
73     C_OBJS := $(C_FILES:.c=.o)
74     CXX_OBJS := $(CXX_FILES:.cpp=.o)
75     OBJS := $(C_OBJS) $(CXX_OBJS)
76    
77     DIR:=MPIobj
78     C_MPIOBJS := $(C_FILES:.c=.o)
79     CXX_MPIOBJS := $(CXX_FILES:.cpp=.o)
80     MPIOBJS := $(C_MPIOBJS) $(CXX_MPIOBJS)
81    
82     LIBSUBDIRS = \
83     obj \
84     MPIobj
85    
86     # Possible make targets:
87    
88 mmeineke 379 all: Make.dep libBASS.a libBASS_MPI.a
89 mmeineke 377
90 mmeineke 379 Make.dep: depend
91    
92 mmeineke 377 libBASS.a: BASSyacc.h $(OBJS)
93     $(RM) $@
94     $(AR) cr $@ $(OBJS)
95     $(RANLIB) $@
96    
97     libBASS_MPI.a: BASSyacc.h $(MPIOBJS)
98     $(RM) $@
99     $(AR) cr $@ $(MPIOBJS)
100     $(RANLIB) $@
101    
102     BASSyacc.h: BASSyacc.y
103     $(YACC) -d $? && mv y.tab.h $@
104    
105     BASSyacc.c: BASSyacc.y
106     $(YACC) -d $? && mv y.tab.c $@
107    
108     BASSlex.c: BASSlex.l
109     $(LEX) -o$@ $?
110    
111     .PHONY : clean
112    
113     clean : dummy
114     for i in $(LIBSUBDIRS); do \
115     (cd $$i; $(RM) *.o) || exit 1; \
116     done
117     $(RM) libBASS.a libBASS_MPI.a *.o *~ Make.temp BASSyacc.h BASSyacc.c \
118     BASSlex.c
119    
120     distclean : dummy
121     for i in $(LIBSUBDIRS); do \
122     (cd $$i; $(RM) *.o) || exit 1; \
123     done
124     $(RM) libBASS.a libBASS_MPI.a *.o *~ Make.temp BASSyacc.h
125    
126     depend : 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/^/obj\//' >> Make.dep
131     cat Make.temp | sed 's/^/MPIobj\//' >> Make.dep
132     $(RM) Make.temp
133    
134     install : dummy
135    
136     links : dummy
137    
138     tests : dummy
139    
140     dummy :
141    
142     include Make.dep
143