ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/mmeineke/OOPSE/libBASS/Makefile
Revision: 377
Committed: Fri Mar 21 17:42:12 2003 UTC (21 years, 5 months ago) by mmeineke
File size: 2973 byte(s)
Log Message:
New OOPSE Tree

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     all: libBASS.a libBASS_MPI.a
89    
90     libBASS.a: BASSyacc.h $(OBJS)
91     $(RM) $@
92     $(AR) cr $@ $(OBJS)
93     $(RANLIB) $@
94    
95     libBASS_MPI.a: BASSyacc.h $(MPIOBJS)
96     $(RM) $@
97     $(AR) cr $@ $(MPIOBJS)
98     $(RANLIB) $@
99    
100     BASSyacc.h: BASSyacc.y
101     $(YACC) -d $? && mv y.tab.h $@
102    
103     BASSyacc.c: BASSyacc.y
104     $(YACC) -d $? && mv y.tab.c $@
105    
106     BASSlex.c: BASSlex.l
107     $(LEX) -o$@ $?
108    
109     .PHONY : clean
110    
111     clean : dummy
112     for i in $(LIBSUBDIRS); do \
113     (cd $$i; $(RM) *.o) || exit 1; \
114     done
115     $(RM) libBASS.a libBASS_MPI.a *.o *~ Make.temp BASSyacc.h BASSyacc.c \
116     BASSlex.c
117    
118     distclean : dummy
119     for i in $(LIBSUBDIRS); do \
120     (cd $$i; $(RM) *.o) || exit 1; \
121     done
122     $(RM) libBASS.a libBASS_MPI.a *.o *~ Make.temp BASSyacc.h
123    
124     depend : BASSyacc.h BASSyacc.c BASSlex.c
125     echo "# DO NOT DELETE THIS LINE - used by make depend" > Make.dep
126     $(CC) $(DEPFLAGS) -MM $(C_SRCS) $(CXX_SRCS) \
127     | sed 's/\.o:/\$$(O)\ :/g' > Make.temp
128     cat Make.temp | sed 's/^/obj\//' >> Make.dep
129     cat Make.temp | sed 's/^/MPIobj\//' >> Make.dep
130     $(RM) Make.temp
131    
132     install : dummy
133    
134     links : dummy
135    
136     tests : dummy
137    
138     dummy :
139    
140     include Make.dep
141