Rev 1094 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1094 | Rev 1886 | ||
|---|---|---|---|
| 1 | ############################################################################ |
1 | ############################################################################ |
| 2 | # |
2 | # |
| 3 | # Program: OpenSees |
3 | # Program: OpenSees |
| 4 | # |
4 | # |
| 5 | # Purpose: A Top-level Makefile to create the libraries needed |
5 | # Purpose: A Top-level Makefile to create the libraries needed |
| 6 | # to use the OpenSees framework. Works for MacOSX 10.1.3 and |
6 | # to use the OpenSees framework. Works for MacOSX 10.1.3 and |
| 7 | # above, modified to use the OpenGl and X11 libraries. |
7 | # above, modified to use the OpenGl and X11 libraries. |
| 8 | # |
8 | # |
| 9 | # Written: mackie |
9 | # Written: mackie |
| 10 | # Created: 08/2002 |
10 | # Created: 08/2002 |
| 11 | # |
11 | # |
| 12 | # Send bug reports, comments or suggestions to fmckenna@ce.berkeley.edu |
12 | # Send bug reports, comments or suggestions to fmckenna@ce.berkeley.edu |
| 13 | # |
13 | # |
| 14 | ############################################################################ |
14 | ############################################################################ |
| 15 | 15 | ||
| 16 | # %---------------------------------% |
16 | # %---------------------------------% |
| 17 | # | SECTION 1: PROGRAM | |
17 | # | SECTION 1: PROGRAM | |
| 18 | # %---------------------------------% |
18 | # %---------------------------------% |
| 19 | # |
19 | # |
| 20 | # Specify the location and name of the OpenSees interpreter program |
20 | # Specify the location and name of the OpenSees interpreter program |
| 21 | # that will be created (if this all works!) |
21 | # that will be created (if this all works!) |
| 22 | 22 | ||
| 23 | OpenSees_PROGRAM = $(HOME)/bin/OpenSees |
23 | OpenSees_PROGRAM = $(HOME)/bin/OpenSees |
| 24 | 24 | ||
| 25 | # %---------------------------------% |
25 | # %---------------------------------% |
| 26 | # | SECTION 2: MAKEFILE CONSTANTS | |
26 | # | SECTION 2: MAKEFILE CONSTANTS | |
| 27 | # %---------------------------------% |
27 | # %---------------------------------% |
| 28 | # |
28 | # |
| 29 | # Specify the constants the are used as control structure variables in the Makefiles. |
29 | # Specify the constants the are used as control structure variables in the Makefiles. |
| 30 | 30 | ||
| 31 | #OPERATING_SYSTEM = LINUX,MAC |
31 | #OPERATING_SYSTEM = LINUX,MAC |
| 32 | OPERATING_SYSTEM = -D_MAC |
32 | OPERATING_SYSTEM = -D_MAC |
| 33 | 33 | ||
| 34 | #GRAPHICS = UsingOpenGL, UsingX11 |
34 | #GRAPHICS = UsingOpenGL, UsingX11 |
| 35 | GRAPHICS = UsingX11 |
35 | GRAPHICS = UsingX11 |
| 36 | 36 | ||
| 37 | #PROGRAMMING_MODE = SEQUENTIAL, THREADS OR DISTRIBUTED_MPI |
37 | #PROGRAMMING_MODE = SEQUENTIAL, THREADS OR DISTRIBUTED_MPI |
| 38 | PROGRAMMING_MODE = SEQUENTIAL |
38 | PROGRAMMING_MODE = SEQUENTIAL |
| 39 | 39 | ||
| 40 | #COMPILER = GCC, KAI |
40 | #COMPILER = GCC, KAI |
| 41 | COMPILER = GCC |
41 | COMPILER = GCC |
| 42 | 42 | ||
| 43 | #DEBUG_MODE = DEBUG, NO_DEBUG |
43 | #DEBUG_MODE = DEBUG, NO_DEBUG |
| 44 | DEBUG_MODE = NO_DEBUG |
44 | DEBUG_MODE = NO_DEBUG |
| 45 | 45 | ||
| 46 | #RELIABILITY = YES_RELIABILITY, NO_RELIABILITY |
46 | #RELIABILITY = YES_RELIABILITY, NO_RELIABILITY |
| 47 | RELIABILITY = YES_RELIABILITY |
47 | RELIABILITY = YES_RELIABILITY |
| 48 | 48 | ||
| 49 | #COROT = YES_COROT, NO_COROT |
49 | #COROT = YES_COROT, NO_COROT |
| 50 | COROT = NO_COROT |
50 | COROT = NO_COROT |
| 51 | 51 | ||
| 52 | # %---------------------------------% |
52 | # %---------------------------------% |
| 53 | # | SECTION 3: PATHS | |
53 | # | SECTION 3: PATHS | |
| 54 | # %---------------------------------% |
54 | # %---------------------------------% |
| 55 | # |
55 | # |
| 56 | # Note: if vendor supplied BLAS and LAPACK libraries or if you have |
56 | # Note: if vendor supplied BLAS and LAPACK libraries or if you have |
| 57 | # any of the libraries already leave the directory location blank AND |
57 | # any of the libraries already leave the directory location blank AND |
| 58 | # remove the directory from DIRS. |
58 | # remove the directory from DIRS. |
| 59 | 59 | ||
| 60 | BASE = /usr/local |
60 | BASE = /usr/local |
| 61 | HOME = /Users/mackie |
61 | HOME = /Users/mackie |
| 62 | FE = $(HOME)/OpenSees/SRC |
62 | FE = $(HOME)/OpenSees/SRC |
| 63 | 63 | ||
| 64 | BLASdir = $(HOME)/OpenSees/OTHER/BLAS |
64 | BLASdir = $(HOME)/OpenSees/OTHER/BLAS |
| 65 | CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS |
65 | CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS |
| 66 | LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK |
66 | LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK |
| 67 | ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK |
67 | ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK |
| 68 | UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK |
68 | UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK |
| 69 | METISdir = $(HOME)/OpenSees/OTHER/METIS |
69 | METISdir = $(HOME)/OpenSees/OTHER/METIS |
| 70 | SRCdir = $(HOME)/OpenSees/SRC |
70 | SRCdir = $(HOME)/OpenSees/SRC |
| 71 | 71 | ||
| 72 | ifeq ($(PROGRAMMING_MODE), THREADS) |
72 | ifeq ($(PROGRAMMING_MODE), THREADS) |
| 73 | SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_MT |
73 | SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_MT |
| 74 | else |
74 | else |
| 75 | SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU |
75 | SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU |
| 76 | endif |
76 | endif |
| 77 | 77 | ||
| 78 | DIRS = $(BLASdir) $(CBLASdir) $(LAPACKdir) \ |
78 | DIRS = $(BLASdir) $(CBLASdir) $(LAPACKdir) \ |
| 79 | $(SUPERLUdir) $(ARPACKdir) $(UMFPACKdir) $(SRCdir) $(METISdir) |
79 | $(SUPERLUdir) $(ARPACKdir) $(UMFPACKdir) $(SRCdir) $(METISdir) |
| 80 | 80 | ||
| 81 | # %-------------------------------------------------------% |
81 | # %-------------------------------------------------------% |
| 82 | # | SECTION 4: LIBRARIES | |
82 | # | SECTION 4: LIBRARIES | |
| 83 | # | | |
83 | # | | |
| 84 | # | The following section defines the libraries that will | |
84 | # | The following section defines the libraries that will | |
| 85 | # | be created and/or linked with when the libraries are | |
85 | # | be created and/or linked with when the libraries are | |
| 86 | # | being created or linked with. | |
86 | # | being created or linked with. | |
| 87 | # %-------------------------------------------------------% |
87 | # %-------------------------------------------------------% |
| 88 | # |
88 | # |
| 89 | # Note: if vendor supplied BLAS and LAPACK libraries leave the |
89 | # Note: if vendor supplied BLAS and LAPACK libraries leave the |
| 90 | # libraries blank. You have to get your own copy of the tcl/tk |
90 | # libraries blank. You have to get your own copy of the tcl/tk |
| 91 | # library!! |
91 | # library!! |
| 92 | # |
92 | # |
| 93 | # Note: For libraries that will be created (any in DIRS above) |
93 | # Note: For libraries that will be created (any in DIRS above) |
| 94 | # make sure the directory exsists where you want the library to go! |
94 | # make sure the directory exsists where you want the library to go! |
| 95 | 95 | ||
| 96 | FE_LIBRARY = $(HOME)/lib/libOpenSees.a |
96 | FE_LIBRARY = $(HOME)/lib/libOpenSees.a |
| 97 | NDARRAY_LIBRARY = $(HOME)/lib/libndarray.a # BJ_UCD jeremic@ucdavis.edu |
97 | NDARRAY_LIBRARY = $(HOME)/lib/libndarray.a # BJ_UCD jeremic@ucdavis.edu |
| 98 | MATMOD_LIBRARY = $(HOME)/lib/libmatmod.a # BJ_UCD jeremic@ucdavis.edu |
98 | MATMOD_LIBRARY = $(HOME)/lib/libmatmod.a # BJ_UCD jeremic@ucdavis.edu |
| 99 | BJMISC_LIBRARY = $(HOME)/lib/libBJmisc.a # BJ_UCD jeremic@ucdavis.edu |
99 | BJMISC_LIBRARY = $(HOME)/lib/libBJmisc.a # BJ_UCD jeremic@ucdavis.edu |
| 100 | LAPACK_LIBRARY = $(HOME)/lib/libLapack.a |
100 | LAPACK_LIBRARY = $(HOME)/lib/libLapack.a |
| 101 | BLAS_LIBRARY = $(HOME)/lib/libBlas.a |
101 | BLAS_LIBRARY = $(HOME)/lib/libBlas.a |
| 102 | SUPERLU_LIBRARY = $(HOME)/lib/libSuperLU.a |
102 | SUPERLU_LIBRARY = $(HOME)/lib/libSuperLU.a |
| 103 | CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a |
103 | CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a |
| 104 | ARPACK_LIBRARY = $(HOME)/lib/libArpack.a |
104 | ARPACK_LIBRARY = $(HOME)/lib/libArpack.a |
| 105 | UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a |
105 | UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a |
| 106 | METIS_LIBRARY = $(HOME)/lib/libMetis.a |
106 | METIS_LIBRARY = $(HOME)/lib/libMetis.a |
| 107 | TCL_LIBRARY = /usr/local/lib/libtk83.a /usr/local/lib/libtcl83.a |
107 | TCL_LIBRARY = /usr/local/lib/libtk83.a /usr/local/lib/libtcl83.a |
| 108 | BLITZ_LIBRARY = |
108 | BLITZ_LIBRARY = |
| 109 | 109 | ||
| 110 | ifeq ($(COROT), YES_COROT) |
110 | ifeq ($(COROT), YES_COROT) |
| 111 | COROT_LIBRARY = $(HOME)/lib/libCorot.a |
111 | COROT_LIBRARY = $(HOME)/lib/libCorot.a |
| 112 | else |
112 | else |
| 113 | COROT_LIBRARY = |
113 | COROT_LIBRARY = |
| 114 | endif |
114 | endif |
| 115 | 115 | ||
| 116 | ifeq ($(GRAPHICS), UsingX11) |
116 | ifeq ($(GRAPHICS), UsingX11) |
| 117 | GRAPHIC_LIBRARY = /usr/X11R6/lib/libX11.a |
117 | GRAPHIC_LIBRARY = /usr/X11R6/lib/libX11.a |
| 118 | else |
118 | else |
| 119 | GRAPHIC_LIBRARY = /usr/X11R6/lib/libGL.a /usr/X11R6/lib/libX11.a /usr/X11R6/lib/libXext.a \ |
119 | GRAPHIC_LIBRARY = /usr/X11R6/lib/libGL.a /usr/X11R6/lib/libX11.a /usr/X11R6/lib/libXext.a \ |
| 120 | /usr/X11R6/lib/libGLU.a |
120 | /usr/X11R6/lib/libGLU.a |
| 121 | endif |
121 | endif |
| 122 | 122 | ||
| 123 | ifeq ($(RELIABILITY), YES_RELIABILITY) |
123 | ifeq ($(RELIABILITY), YES_RELIABILITY) |
| 124 | RELIABILITY_LIBRARY = $(HOME)/lib/libReliability.a |
124 | RELIABILITY_LIBRARY = $(HOME)/lib/libReliability.a |
| 125 | else |
125 | else |
| 126 | RELIABILITY_LIBRARY = |
126 | RELIABILITY_LIBRARY = |
| 127 | endif |
127 | endif |
| 128 | 128 | ||
| 129 | 129 | ||
| 130 | # WATCH OUT .. These libraries are removed when 'make wipe' is invoked. |
130 | # WATCH OUT .. These libraries are removed when 'make wipe' is invoked. |
| 131 | WIPE_LIBS = $(FE_LIBRARY) \ |
131 | WIPE_LIBS = $(FE_LIBRARY) \ |
| 132 | $(LAPACK_LIBRARY) \ |
132 | $(LAPACK_LIBRARY) \ |
| 133 | $(BLAS_LIBRARY) \ |
133 | $(BLAS_LIBRARY) \ |
| 134 | $(CBLAS_LIBRARY) \ |
134 | $(CBLAS_LIBRARY) \ |
| 135 | $(SUPERLU_LIBRARY) \ |
135 | $(SUPERLU_LIBRARY) \ |
| 136 | $(ARPACK_LIBRARY) \ |
136 | $(ARPACK_LIBRARY) \ |
| 137 | $(UMFPACK_LIBRARY) \ |
137 | $(UMFPACK_LIBRARY) \ |
| 138 | $(METIS_LIBRARY) \ |
138 | $(METIS_LIBRARY) \ |
| 139 | $(RELIABILITY_LIBRARY) |
139 | $(RELIABILITY_LIBRARY) |
| 140 | 140 | ||
| 141 | # %---------------------------------------------------------% |
141 | # %---------------------------------------------------------% |
| 142 | # | SECTION 5: COMPILERS | |
142 | # | SECTION 5: COMPILERS | |
| 143 | # | | |
143 | # | | |
| 144 | # | The following macros specify compilers, linker/loaders, | |
144 | # | The following macros specify compilers, linker/loaders, | |
| 145 | # | the archiver, and their options. You need to make sure | |
145 | # | the archiver, and their options. You need to make sure | |
| 146 | # | these are correct for your system. | |
146 | # | these are correct for your system. | |
| 147 | # %---------------------------------------------------------% |
147 | # %---------------------------------------------------------% |
| 148 | 148 | ||
| 149 | # Compilers |
149 | # Compilers |
| 150 | CC++ = g++ |
150 | CC++ = g++ |
| 151 | CC = gcc |
151 | CC = gcc |
| 152 | FC = fort77 |
152 | FC = fort77 |
| 153 | 153 | ||
| 154 | AR = ar |
154 | AR = ar |
| 155 | ARFLAGS = -cr |
155 | ARFLAGS = -cr |
| 156 | RANLIB = ranlib |
156 | RANLIB = ranlib |
| 157 | RANLIBFLAGS = -s |
157 | RANLIBFLAGS = -s |
| 158 | 158 | ||
| 159 | #GRAPHICS = UsingOpenGL, UsingX11 |
159 | #GRAPHICS = UsingOpenGL, UsingX11 |
| 160 | ifeq ($(GRAPHICS), UsingOpenGL) |
160 | ifeq ($(GRAPHICS), UsingOpenGL) |
| 161 | GRAPHIC_FLAG = -D_GLX |
161 | GRAPHIC_FLAG = -D_GLX |
| 162 | else |
162 | else |
| 163 | GRAPHIC_FLAG = -D_X11 |
163 | GRAPHIC_FLAG = -D_X11 |
| 164 | endif |
164 | endif |
| 165 | 165 | ||
| 166 | ifeq ($(PROGRAMMING_MODE), THREADS) |
166 | ifeq ($(PROGRAMMING_MODE), THREADS) |
| 167 | PROGRAMMING_FLAG = -D_THREADS -D_PTHREAD |
167 | PROGRAMMING_FLAG = -D_THREADS -D_PTHREAD |
| 168 | else |
168 | else |
| 169 | PROGRAMMING_FLAG = |
169 | PROGRAMMING_FLAG = |
| 170 | endif |
170 | endif |
| 171 | 171 | ||
| 172 | ifeq ($(DEBUG_MODE), DEBUG) |
172 | ifeq ($(DEBUG_MODE), DEBUG) |
| 173 | DEBUG_FLAG = -D_G3DEBUG |
173 | DEBUG_FLAG = -D_G3DEBUG |
| 174 | else |
174 | else |
| 175 | DEBUG_FLAG = |
175 | DEBUG_FLAG = |
| 176 | endif |
176 | endif |
| 177 | 177 | ||
| 178 | ifeq ($(RELIABILITY), YES_RELIABILITY) |
178 | ifeq ($(RELIABILITY), YES_RELIABILITY) |
| 179 | RELIABILITY_FLAG = -D_RELIABILITY |
179 | RELIABILITY_FLAG = -D_RELIABILITY |
| 180 | # add -D_MATLAB if you are going to use the Matlab gFunEvaluator in reliability |
180 | # add -D_MATLAB if you are going to use the Matlab gFunEvaluator in reliability |
| 181 | MATLAB_FLAG = |
181 | MATLAB_FLAG = |
| 182 | else |
182 | else |
| 183 | RELIABILITY_FLAG = |
183 | RELIABILITY_FLAG = |
| 184 | endif |
184 | endif |
| 185 | 185 | ||
| 186 | ifeq ($(COROT), YES_COROT) |
186 | ifeq ($(COROT), YES_COROT) |
| 187 | COROT_FLAG = -D_COROTATIONAL |
187 | COROT_FLAG = -D_COROTATIONAL |
| 188 | else |
188 | else |
| 189 | COROT_FLAG = |
189 | COROT_FLAG = |
| 190 | endif |
190 | endif |
| 191 | 191 | ||
| 192 | 192 | ||
| 193 | # Compiler Flags |
193 | # Compiler Flags |
| 194 | # |
194 | # |
| 195 | # NOTES: |
195 | # NOTES: |
| 196 | # C++ FLAGS TAKE need _UNIX or _WIN32 for preprocessor dircetives |
196 | # C++ FLAGS TAKE need _UNIX or _WIN32 for preprocessor dircetives |
| 197 | # - the _WIN32 for the Windows95/98 or NT operating system. |
197 | # - the _WIN32 for the Windows95/98 or NT operating system. |
| 198 | # C FLAGS used -DUSE_VENDOR_BLAS (needed in SuperLU) if UNIX in C++ FLAGS |
198 | # C FLAGS used -DUSE_VENDOR_BLAS (needed in SuperLU) if UNIX in C++ FLAGS |
| 199 | # |
199 | # |
| 200 | 200 | ||
| 201 | ifeq ($(DEBUG_MODE), DEBUG) |
201 | ifeq ($(DEBUG_MODE), DEBUG) |
| 202 | 202 | ||
| 203 | C++FLAGS = -Wall -funroll-loops -fcse-follow-jumps \ |
203 | C++FLAGS = -Wall -funroll-loops -fcse-follow-jumps \ |
| 204 | -fthread-jumps -fcse-skip-blocks -frerun-cse-after-loop \ |
204 | -fthread-jumps -fcse-skip-blocks -frerun-cse-after-loop \ |
| 205 | -felide-constructors \ |
205 | -felide-constructors \ |
| 206 | -fcaller-saves -ffloat-store -fforce-addr \ |
206 | -fcaller-saves -ffloat-store -fforce-addr \ |
| 207 | -fschedule-insns -fschedule-insns2 -D_UNIX \ |
207 | -fschedule-insns -fschedule-insns2 -D_UNIX \ |
| 208 | $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) \ |
208 | $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) \ |
| 209 | $(OPERATING_SYSTEM) $(MATLAB_FLAG) $(COROT_FLAG) \ |
209 | $(OPERATING_SYSTEM) $(MATLAB_FLAG) $(COROT_FLAG) \ |
| 210 | -fexpensive-optimizations \ |
210 | -fexpensive-optimizations \ |
| 211 | -fforce-addr -fforce-mem -finline-functions \ |
211 | -fforce-addr -fforce-mem -finline-functions \ |
| 212 | -fkeep-inline-functions \ |
212 | -fkeep-inline-functions \ |
| 213 | -fno-function-cse -fno-inline -fno-peephole \ |
213 | -fno-function-cse -fno-inline -fno-peephole \ |
| 214 | -fschedule-insns -fschedule-insns2 \ |
214 | -fschedule-insns -fschedule-insns2 \ |
| 215 | -fstrength-reduce -fthread-jumps -g -pg \ |
215 | -fstrength-reduce -fthread-jumps -g -pg \ |
| 216 | -ffloat-store |
216 | -ffloat-store |
| 217 | 217 | ||
| 218 | CFLAGS = -Wall -pg $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) |
218 | CFLAGS = -Wall -pg $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) |
| 219 | FFLAGS = -Wall |
219 | FFLAGS = -Wall |
| 220 | 220 | ||
| 221 | # Linker |
221 | # Linker |
| 222 | LINKER = $(CC++) |
222 | LINKER = $(CC++) |
| 223 | LINKFLAGS = -g -pg |
223 | LINKFLAGS = -g -pg |
| 224 | 224 | ||
| 225 | else |
225 | else |
| 226 | 226 | ||
| 227 | # modified as optimizaton currently causing problems with Steel01 code |
227 | # modified as optimizaton currently causing problems with Steel01 code |
| 228 | C++FLAGS = -Wall -O3 -D_UNIX -ftemplate-depth-30 $(OPERATING_SYSTEM) \ |
228 | C++FLAGS = -Wall -O3 -D_UNIX -ftemplate-depth-30 $(OPERATING_SYSTEM) \ |
| 229 | $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) \ |
229 | $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) \ |
| 230 | $(MATLAB_FLAG) $(COROT_FLAG) -ffloat-store -Wno-long-double |
230 | $(MATLAB_FLAG) $(COROT_FLAG) -ffloat-store -Wno-long-double |
| 231 | 231 | ||
| 232 | CFLAGS = -Wall -O3 $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) |
232 | CFLAGS = -Wall -O3 $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) |
| 233 | FFLAGS = -Wall -O |
233 | FFLAGS = -Wall -O |
| 234 | 234 | ||
| 235 | # Linker |
235 | # Linker |
| 236 | LINKER = $(CC++) |
236 | LINKER = $(CC++) |
| 237 | LINKFLAGS = |
237 | LINKFLAGS = |
| 238 | 238 | ||
| 239 | endif |
239 | endif |
| 240 | 240 | ||
| 241 | 241 | ||
| 242 | # Misc |
242 | # Misc |
| 243 | MAKE = gnumake |
243 | MAKE = gnumake |
| 244 | CD = cd |
244 | CD = cd |
| 245 | ECHO = echo |
245 | ECHO = echo |
| 246 | RM = rm |
246 | RM = rm |
| 247 | RMFLAGS = -f |
247 | RMFLAGS = -f |
| 248 | SHELL = /bin/sh |
248 | SHELL = /bin/sh |
| 249 | 249 | ||
| 250 | # %---------------------------------------------------------% |
250 | # %---------------------------------------------------------% |
| 251 | # | SECTION 6: COMPILATION | |
251 | # | SECTION 6: COMPILATION | |
| 252 | # | | |
252 | # | | |
| 253 | # | The following macros specify the macros used in | |
253 | # | The following macros specify the macros used in | |
| 254 | # | to compile the source code into object code. | |
254 | # | to compile the source code into object code. | |
| 255 | # %---------------------------------------------------------% |
255 | # %---------------------------------------------------------% |
| 256 | 256 | ||
| 257 | .SUFFIXES: |
257 | .SUFFIXES: |
| 258 | .SUFFIXES: .C .c .f .f90 .cpp .o .cpp |
258 | .SUFFIXES: .C .c .f .f90 .cpp .o .cpp |
| 259 | 259 | ||
| 260 | # |
260 | # |
| 261 | # %------------------% |
261 | # %------------------% |
| 262 | # | Default command. | |
262 | # | Default command. | |
| 263 | # %------------------% |
263 | # %------------------% |
| 264 | # |
264 | # |
| 265 | .DEFAULT: |
265 | .DEFAULT: |
| 266 | @$(ECHO) "Unknown target $@, try: make help" |
266 | @$(ECHO) "Unknown target $@, try: make help" |
| 267 | # |
267 | # |
| 268 | # %-------------------------------------------% |
268 | # %-------------------------------------------% |
| 269 | # | Command to build .o files from .f files. | |
269 | # | Command to build .o files from .f files. | |
| 270 | # %-------------------------------------------% |
270 | # %-------------------------------------------% |
| 271 | # |
271 | # |
| 272 | 272 | ||
| 273 | .cpp.o: |
273 | .cpp.o: |
| 274 | @$(ECHO) Making $@ from $< |
274 | @$(ECHO) Making $@ from $< |
| 275 | $(CC++) $(C++FLAGS) $(INCLUDES) -c $< -o $@ |
275 | $(CC++) $(C++FLAGS) $(INCLUDES) -c $< -o $@ |
| 276 | 276 | ||
| 277 | .C.o: |
277 | .C.o: |
| 278 | @$(ECHO) Making $@ from $< |
278 | @$(ECHO) Making $@ from $< |
| 279 | $(CC++) $(C++FLAGS) $(INCLUDES) -c $< -o $@ |
279 | $(CC++) $(C++FLAGS) $(INCLUDES) -c $< -o $@ |
| 280 | .c.o: |
280 | .c.o: |
| 281 | @$(ECHO) Making $@ from $< |
281 | @$(ECHO) Making $@ from $< |
| 282 | $(CC) $(CFLAGS) -c $< -o $@ |
282 | $(CC) $(CFLAGS) -c $< -o $@ |
| 283 | .f.o: |
283 | .f.o: |
| 284 | @$(ECHO) Making $@ from $< |
284 | @$(ECHO) Making $@ from $< |
| 285 | $(FC) $(FFLAGS) -c $< -o $@ |
285 | $(FC) $(FFLAGS) -c $< -o $@ |
| 286 | 286 | ||
| 287 | # %---------------------------------------------------------% |
287 | # %---------------------------------------------------------% |
| 288 | # | SECTION 7: OTHER LIBRARIES | |
288 | # | SECTION 7: OTHER LIBRARIES | |
| 289 | # | | |
289 | # | | |
| 290 | # | The following macros specify other libraries that must | |
290 | # | The following macros specify other libraries that must | |
| 291 | # | be linked with when creating executables. These are | |
291 | # | be linked with when creating executables. These are | |
| 292 | # | platform specific and typically order does matter!! | |
292 | # | platform specific and typically order does matter!! | |
| 293 | # %---------------------------------------------------------% |
293 | # %---------------------------------------------------------% |
| 294 | MACHINE_LINKLIBS = -L$(BASE)/lib \ |
294 | MACHINE_LINKLIBS = -L$(BASE)/lib \ |
| 295 | -L$(HOME)/lib \ |
295 | -L$(HOME)/lib \ |
| 296 | -L/usr/lib |
296 | -L/usr/lib |
| 297 | 297 | ||
| 298 | MACHINE_NUMERICAL_LIBS = -lm \ |
298 | MACHINE_NUMERICAL_LIBS = -lm \ |
| 299 | $(ARPACK_LIBRARY) \ |
299 | $(ARPACK_LIBRARY) \ |
| 300 | $(SUPERLU_LIBRARY) \ |
300 | $(SUPERLU_LIBRARY) \ |
| 301 | $(UMFPACK_LIBRARY) $(METIS_LIBRARY) \ |
301 | $(UMFPACK_LIBRARY) $(METIS_LIBRARY) \ |
| 302 | $(LAPACK_LIBRARY) $(BLAS_LIBRARY) $(CBLAS_LIBRARY) \ |
302 | $(LAPACK_LIBRARY) $(BLAS_LIBRARY) $(CBLAS_LIBRARY) \ |
| 303 | $(GRAPHIC_LIBRARY) $(RELIABILITY_LIBRARY) \ |
303 | $(GRAPHIC_LIBRARY) $(RELIABILITY_LIBRARY) \ |
| 304 | $(COROT_LIBRARY) -lf2c -ldl |
304 | $(COROT_LIBRARY) -lf2c -ldl |
| 305 | 305 | ||
| 306 | 306 | ||
| 307 | ifeq ($(PROGRAMMING_MODE), THREADS) |
307 | ifeq ($(PROGRAMMING_MODE), THREADS) |
| 308 | MACHINE_SPECIFIC_LIBS = -lpthread |
308 | MACHINE_SPECIFIC_LIBS = -lpthread |
| 309 | else |
309 | else |
| 310 | MACHINE_SPECIFIC_LIBS = |
310 | MACHINE_SPECIFIC_LIBS = |
| 311 | endif |
311 | endif |
| 312 | 312 | ||
| 313 | # %---------------------------------------------------------% |
313 | # %---------------------------------------------------------% |
| 314 | # | SECTION 8: INCLUDE FILES | |
314 | # | SECTION 8: INCLUDE FILES | |
| 315 | # | | |
315 | # | | |
| 316 | # | The following macros specify include files needed for | |
316 | # | The following macros specify include files needed for | |
| 317 | # | compilation. | |
317 | # | compilation. | |
| 318 | # %---------------------------------------------------------% |
318 | # %---------------------------------------------------------% |
| 319 | MACHINE_INCLUDES = -I/usr/include \ |
319 | MACHINE_INCLUDES = -I/usr/include \ |
| 320 | -I$(BASE)/include \ |
320 | -I$(BASE)/include \ |
| 321 | -I/usr/include/cxx \ |
321 | -I/usr/include/cxx \ |
| 322 | -I$(HOME)/include -I$(HOME)/blitz \ |
322 | -I$(HOME)/include -I$(HOME)/blitz \ |
| 323 | -I$(UMFPACKdir) -I$(SUPERLUdir) \ |
323 | -I$(UMFPACKdir) -I$(SUPERLUdir) \ |
| 324 | -I/usr/X11R6/include |
324 | -I/usr/X11R6/include |
| 325 | 325 | ||
| 326 | 326 | ||
| 327 | # this file contains all the OpenSees/SRC includes |
327 | # this file contains all the OpenSees/SRC includes |
| 328 | include $(FE)/Makefile.incl |
328 | include $(FE)/Makefile.incl |
| 329 | 329 | ||
| 330 | TCL_INCLUDES = -I/usr/local/include/tcl8.3/generic \ |
330 | TCL_INCLUDES = -I/usr/local/include/tcl8.3/generic \ |
| 331 | -I/usr/local/include/tk8.3/generic \ |
331 | -I/usr/local/include/tk8.3/generic \ |
| 332 | -I/usr/local/include/db3 |
332 | -I/usr/local/include/db3 |
| 333 | 333 | ||
| 334 | INCLUDES = $(TCL_INCLUDES) $(FE_INCLUDES) $(MACHINE_INCLUDES) |
334 | INCLUDES = $(TCL_INCLUDES) $(FE_INCLUDES) $(MACHINE_INCLUDES) |
| 335 | 335 | ||
| 336 | 336 | ||
| 337 | 337 | ||
| 338 | 338 | ||
| 339 | 339 | ||
| 340 | 340 | ||
| 341 | 341 | ||