ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/utils/sysbuilder/Makefile
Revision: 683
Committed: Tue Aug 12 18:01:05 2003 UTC (21 years, 11 months ago) by chuckv
File size: 3530 byte(s)
Log Message:
commit makefile

File Contents

# User Rev Content
1 chuckv 683 #####################################################
2     # Makefile for Oopse Utility Codes #
3     #####################################################
4     # You should not change anything here. #
5     #####################################################
6    
7     TOP=../../
8    
9     include $(TOP)/Make.conf
10    
11     .SUFFIXES : .cpp .c $(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.. -I../../../libBASS -I../../../libmdtools
20     MPI_INCLUDES= -I$(MPICH_INC) -I$(MPICH_INC)/mpi2c++
21     CFLAGS=$(CFLAGS_C) $(INCLUDES) $(DECLARES)
22     CXXFLAGS=$(CXXFLAGS_C) $(INCLUDES) $(DECLARES)
23     DEPFLAGS=$(CFLAGS_C) -I. -I$(SPRNG_INC) $(MPI_INCLUDES) -I../../libBASS -I../../libmdtools
24     MPI_CXXFLAGS=$(CXXFLAGS) $(MPI_INCLUDES) $(MPI_DECLARES)
25    
26    
27     SYSBUILD=sysBuild$(EXE)
28    
29     BASS_LIB=$(TOP)/libBASS/libBASS.a
30     BASS_MPI_LIB=$(TOP)/libBASS/libBASS_MPI.a
31     MD_LIB=$(TOP)/libmdtools/libmdtools.a
32     MD_MPI_LIB=$(TOP)/libmdtools/libmdtools_MPI.a
33     LIBS=$(BASS_LIB) $(MD_LIB)
34     MPI_LIBS=$(BASS_MPI_LIB) $(MD_MPI_LIB)
35    
36     SYSBUILD_LDFLAGS=-L$(TOP)/libBASS -L$(TOP)/libmdtools -L$(SPRNG_LIB)
37     SYSBUILD_LDADD=-lmdtools -lBASS -lsprng $(FLIBS) $(FLIBS_EXTRA)
38    
39     SRC_DIR := $(PWD)
40    
41     PREFS=-DOOPSE_HOME=\"$(OOPSE_HOME)\"
42    
43     obj/%.o: %.cpp
44     cd obj; $(CXX) $(CXXFLAGS) -c $(SRC_DIR)/$<
45    
46     MPIobj/%.o: %.cpp
47     cd MPIobj; $(CXX) $(MPI_CXXFLAGS) -c $(SRC_DIR)/$<
48    
49     obj/%.o: %.c
50     cd obj; $(CC) $(CFLAGS) -c $(SRC_DIR)/$<
51    
52     MPIobj/%.o: %.c
53     cd MPIobj; $(CC) $(MPI_CFLAGS) -c $(SRC_DIR)/$<
54    
55     # sysBuilder files
56    
57     SYSBUILD_C_FILES = $(DIR)/cmdline.c
58     SYSBUILD_CXX_FILES = \
59     $(DIR)/sysBuild.cpp \
60     $(DIR)/bilayerSys.cpp \
61     $(DIR)/MoLocator.cpp \
62     $(DIR)/latticeBuilder.cpp \
63     $(DIR)/nanoBuilder.cpp
64    
65     # the sources
66    
67     DIR:=.
68    
69     SYSBUILD_C_SRCS := $(SYSBUILD_C_FILES)
70     SYSBUILD_CXX_SRCS := $(SYSBUILD_CXX_FILES)
71     SYSBUILD_SRCS := $(SYSBUILD_C_SRCS) $(SYSBUILD_CXX_SRCS)
72    
73     C_CXX_SRCS := $(SYSBUILD_C_SRCS) $(SYSBUILD_CXX_SRCS)
74    
75     #the objects
76    
77     DIR:=obj
78    
79     SYSBUILD_C_OBJS := $(SYSBUILD_C_FILES:.c=.o)
80     SYSBUILD_CXX_OBJS := $(SYSBUILD_CXX_FILES:.cpp=.o)
81     SYSBUILD_OBJS := $(SYSBUILD_C_OBJS) $(SYSBUILD_CXX_OBJS)
82    
83     DIR:=MPIobj
84    
85     SYSBUILD_C_MPIOBJS := $(SYSBUILD_C_FILES:.c=.o)
86     SYSBUILD_CXX_MPIOBJS := $(SYSBUILD_CXX_FILES:.cpp=.o)
87     SYSBUILD_MPIOBJS := $(SYSBUILD_C_MPIOBJS) $(SYSBUILD_CXX_MPIOBJS)
88    
89     LIBSUBDIRS = \
90     obj \
91     MPIobj
92    
93     all : Make.dep $(SYSBUILD)
94    
95     depend: Make.dep
96    
97     sysBuild$(EXE) : $(SYSBUILD_OBJS) $(BASS_LIB) $(MD_LIB)
98     $(CXX) $(CXXFLAGS) $(SYSBUILD_OBJS) -o $@ $(SYSBUILD_LDFLAGS) $(SYSBUILD_LDADD)
99    
100     install : $(SYSBUILD)
101     $(MKINSTALLDIRS) $(OOPSE_HOME)/bin
102     $(INSTALL_PROGRAM) -s $(SYSBUILD) $(OOPSE_HOME)/bin/$(SYSBUILD)
103    
104    
105     tests : dummy
106    
107    
108     $(OOPSE_HOME)/bin/$(SYSBUILD) : $(SYSBUILD)
109     $(MAKE) install
110    
111     links : $(OOPSE_HOME)/bin/$(SYSBUILD)
112     $(MKINSTALLDIRS) $(PREFIX)/bin
113     cd $(PREFIX)/bin; $(LN_S) $(OOPSE_HOME)/bin/$(SYSBUILD) $(SYSBUILD)
114    
115     clean : dummy
116     for i in $(LIBSUBDIRS); do \
117     (cd $$i; $(RM) *.o) || exit 1; \
118     done
119     $(RM) $(SYSBUILD) *.o *~ Make.temp
120    
121     distclean : dummy
122     for i in $(LIBSUBDIRS); do \
123     (cd $$i; $(RM) *.o) || exit 1; \
124     done
125     $(RM) $(SYSBUILD) *.o *~ Make.temp Make.dep
126    
127     devclean : distclean
128    
129     Make.dep : $(C_CXX_SRCS)
130     echo "# DO NOT DELETE THIS LINE - used by make depend" > Make.dep
131     $(CC) $(DEPFLAGS) -MM $(C_CXX_SRCS) \
132     | sed 's/\.o:/\$$(O)\ :/g' > Make.temp
133     cat Make.temp | sed 's/^[a-zA-Z0-9]/obj\/&/g' >> Make.dep
134     cat Make.temp | sed 's/^[a-zA-Z0-9]/MPIobj\/&/g' >> Make.dep
135     $(RM) Make.temp
136    
137     tags : $(C_CXX_SRCS)
138     ctags $(C_CXX_SRCS)
139    
140     dummy :
141    
142     # DO NOT DELETE
143     include Make.dep