Rev 4212 | Go to most recent revision | Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 3445 | fmk | 1 | ############################################################################ |
| 2 | # |
||
| 3 | # Program: OpenSees |
||
| 4 | # |
||
| 5 | # Purpose: A Top-level Makefile to create the libraries needed |
||
| 6 | # to use the OpenSees framework. |
||
| 7 | # |
||
| 8 | # version created for SDSC datastar sequential |
||
| 9 | # |
||
| 10 | # Written: fmk |
||
| 11 | # Created: 01/2003 |
||
| 12 | # |
||
| 13 | # |
||
| 14 | ############################################################################ |
||
| 15 | |||
| 16 | # %---------------------------------% |
||
| 17 | # | SECTION 1: PROGRAM | |
||
| 18 | # %---------------------------------% |
||
| 19 | # |
||
| 20 | # Specify the location and name of the OpenSees interpreter program |
||
| 21 | # that will be created (if this all works!) |
||
| 22 | |||
| 23 | OpenSees_PROGRAM = $(HOME)/bin/OpenSees |
||
| 24 | OpenSees_PROGRAM_MPI = $(HOME)/bin/OpenSeesMPI |
||
| 25 | |||
| 26 | # %---------------------------------% |
||
| 27 | # | SECTION 2: MAKEFILE CONSTANTS | |
||
| 28 | # %---------------------------------% |
||
| 29 | # |
||
| 30 | # Specify the constants the are used as control structure variables in the Makefiles. |
||
| 31 | |||
| 32 | OPERATING_SYSTEM = LINUX |
||
| 33 | #GRAPHICS = UsingOpenGL |
||
| 34 | GRAPHICS = |
||
| 35 | PROGRAMMING_MODE = PARALLEL_INTERPRETERS |
||
| 36 | |||
| 37 | #DEBUG_MODE = DEBUG, NO_DEBUG |
||
| 38 | DEBUG_MODE = NO_DEBUG |
||
| 39 | |||
| 40 | #RELIABILITY = YES_RELIABILITY, NO_RELIABILITY |
||
| 41 | RELIABILITY = NO_RELIABILITY |
||
| 42 | |||
| 43 | |||
| 44 | # %---------------------------------% |
||
| 45 | # | SECTION 3: PATHS | |
||
| 46 | # %---------------------------------% |
||
| 47 | # |
||
| 48 | # Note: if vendor supplied BLAS and LAPACK libraries or if you have |
||
| 49 | # any of the libraries already leave the directory location blank AND |
||
| 50 | # remove the directory from DIRS. |
||
| 51 | |||
| 52 | BASE = |
||
| 53 | # PUT YOUR HOME DIRECTOREY HERE |
||
| 54 | HOME = /u/ac/gpetropo/fmk |
||
| 55 | FE = $(HOME)/OpenSees/SRC |
||
| 56 | |||
| 57 | |||
| 58 | BLASdir = $(HOME)/OpenSees/OTHER/BLAS |
||
| 59 | CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS |
||
| 60 | LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK |
||
| 61 | ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK |
||
| 62 | UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK |
||
| 63 | METISdir = $(HOME)/OpenSees/OTHER/METIS |
||
| 64 | SRCdir = $(HOME)/OpenSees/SRC |
||
| 65 | SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_3.0/SRC |
||
| 66 | SUPERLU_DISTdir = $(HOME)/OpenSees/OTHER/SuperLU_DIST_2.0/SRC |
||
| 67 | |||
| 68 | DIRS = $(BLASdir) \ |
||
| 69 | $(CBLASdir) \ |
||
| 70 | $(LAPACKdir) \ |
||
| 71 | $(SUPERLUdir) \ |
||
| 72 | $(SUPERLU_DISTdir) \ |
||
| 73 | $(ARPACKdir) \ |
||
| 74 | $(UMFPACKdir) \ |
||
| 75 | $(METISdir) \ |
||
| 76 | $(SRCdir) |
||
| 77 | |||
| 78 | # %-------------------------------------------------------% |
||
| 79 | # | SECTION 4: LIBRARIES | |
||
| 80 | # | | |
||
| 81 | # | The following section defines the libraries that will | |
||
| 82 | # | be created and/or linked with when the libraries are | |
||
| 83 | # | being created or linked with. | |
||
| 84 | # %-------------------------------------------------------% |
||
| 85 | # |
||
| 86 | # Note: if vendor supplied BLAS and LAPACK libraries leave the |
||
| 87 | # libraries blank. You have to get your own copy of the tcl/tk |
||
| 88 | # library!! |
||
| 89 | # |
||
| 90 | # Note: For libraries that will be created (any in DIRS above) |
||
| 91 | # make sure the directory exsists where you want the library to go! |
||
| 92 | |||
| 93 | FE_LIBRARY = $(HOME)/lib/libOpenSees.a |
||
| 94 | NDARRAY_LIBRARY = $(HOME)/lib/libndarray.a # BJ_UCD jeremic@ucdavis.edu |
||
| 95 | MATMOD_LIBRARY = $(HOME)/lib/libmatmod.a # BJ_UCD jeremic@ucdavis.edu |
||
| 96 | BJMISC_LIBRARY = $(HOME)/lib/libBJmisc.a # BJ_UCD jeremic@ucdavis.edu |
||
| 97 | LAPACK_LIBRARY = $(HOME)/lib/libLapack.a |
||
| 98 | BLAS_LIBRARY = $(HOME)/lib/libBlas.a |
||
| 99 | SUPERLU_LIBRARY = $(HOME)/lib/libSuperLU.a |
||
| 100 | CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a |
||
| 101 | ARPACK_LIBRARY = $(HOME)/lib/libArpack.a |
||
| 102 | UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a |
||
| 103 | METIS_LIBRARY = $(HOME)/lib/libMetis.a |
||
| 104 | DISTRIBUTED_SUPERLU_LIBRARY = $(HOME)/lib/libDistributedSuperLU.a |
||
| 105 | |||
| 106 | TCL_LIBRARY = /usr/local/tcl8.4/lib64/libtcl8.4.so \ |
||
| 107 | /usr/local/tk8.4/lib64/libtk8.4.so |
||
| 108 | |||
| 109 | GRAPHIC_LIBRARY = -L/usr/include/GL -lGL -lGLU |
||
| 110 | |||
| 111 | |||
| 112 | #RELIABILITY_LIBRARY = $(HOME)/lib/libReliability.a |
||
| 113 | RELIABILITY_LIBRARY = |
||
| 114 | |||
| 115 | |||
| 116 | # WATCH OUT .. These libraries are removed when 'make wipe' is invoked. |
||
| 117 | |||
| 118 | WIPE_LIBS = $(FE_LIBRARY) \ |
||
| 119 | $(NDARRAY_LIBRARY) \ |
||
| 120 | $(MATMOD_LIBRARY) \ |
||
| 121 | $(ARPACK_LIBRARY) \ |
||
| 122 | $(DISTRIBUTED_SUPERLU_LIBRARY) \ |
||
| 123 | $(SUPERLU_LIBRARY) \ |
||
| 124 | $(UMFPACK_LIBRARY) \ |
||
| 125 | $(METIS_LIBRARY) \ |
||
| 126 | $(LAPACK_LIBRARY) \ |
||
| 127 | $(BLAS_LIBRARY) \ |
||
| 128 | $(CBLAS_LIBRARY) \ |
||
| 129 | $(RELIABILITY_LIBRARY) |
||
| 130 | |||
| 131 | # %---------------------------------------------------------% |
||
| 132 | # | SECTION 5: COMPILERS | |
||
| 133 | # | | |
||
| 134 | # | The following macros specify compilers, linker/loaders, | |
||
| 135 | # | the archiver, and their options. You need to make sure | |
||
| 136 | # | these are correct for your system. | |
||
| 137 | # %---------------------------------------------------------% |
||
| 138 | |||
| 139 | # ################################################### |
||
| 140 | # # Compilers |
||
| 141 | # ################################################### |
||
| 142 | |||
| 143 | #CC++ = xlC_r |
||
| 144 | #CC = xlc_r |
||
| 145 | #FC = xlf_r |
||
| 146 | |||
| 147 | #F90 = xlf90_r |
||
| 148 | #LINKER = xlC_r |
||
| 149 | |||
| 150 | CC++ = mpicxx |
||
| 151 | CC = mpicc |
||
| 152 | FC = mpif77 |
||
| 153 | |||
| 154 | F90 = mpif90 |
||
| 155 | FORTRAN = $(FC) |
||
| 156 | |||
| 157 | LINKER = $(CC++) |
||
| 158 | |||
| 159 | AR = ar |
||
| 160 | ARCH = ar |
||
| 161 | |||
| 162 | ARFLAGS = -v -q |
||
| 163 | #ARCHFLAGS = cqls |
||
| 164 | ARCHFLAGS = -v -q |
||
| 165 | |||
| 166 | RANLIB = ranlib |
||
| 167 | |||
| 168 | RANLIBFLAGS = |
||
| 169 | |||
| 170 | |||
| 171 | GRAPHIC_FLAG = -D_NOGRAPHICS -D_GLX |
||
| 172 | GRAPHIC_FLAG = -D_NOGRAPHICS |
||
| 173 | PROGRAMMING_FLAG = |
||
| 174 | |||
| 175 | PROGRAMMING_FLAG = |
||
| 176 | |||
| 177 | ifeq ($(PROGRAMMING_MODE), PARALLEL) |
||
| 178 | PROGRAMMING_FLAG = -D_PARALLEL_PROCESSING |
||
| 179 | endif |
||
| 180 | |||
| 181 | ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS) |
||
| 182 | PROGRAMMING_FLAG = -D_PARALLEL_INTERPRETERS |
||
| 183 | endif |
||
| 184 | |||
| 185 | |||
| 186 | #RELIABILITY_FLAG = -D_RELIABILITY |
||
| 187 | RELIABILITY_FLAG = |
||
| 188 | |||
| 189 | #DEBUG_FLAG = -D_G3DEBUG |
||
| 190 | DEBUG_FLAG = |
||
| 191 | |||
| 192 | OPT_FLAG = -O3 |
||
| 193 | #-qstrict -q64 |
||
| 194 | PROF_FLAG = |
||
| 195 | #-g -pg |
||
| 196 | COMP_FLAG = -D_TCL84 -DMPICH_IGNORE_CXX_SEEK |
||
| 197 | #-qnoipa |
||
| 198 | C++FLAGS = -D_LINUX -D_UNIX $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(OPT_FLAG) $(COMP_FLAG)\ |
||
| 199 | $(PROGRAMMING_FLAG) -D_KAI -cpp $(PROF_FLAG) |
||
| 200 | |||
| 201 | CFLAGS = $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) -D_KAI -D_PARALLEL_PROCESSING $(OPT_FLAG) $(COMP_FLAG) $(PROF_FLAG) |
||
| 202 | FFLAGS = -qextname $(OPT_FLAG) $(COMP_FLAG) $(PROF_FLAG) |
||
| 203 | LINKFLAGS = $(PROF_FLAG) |
||
| 204 | |||
| 205 | #-bnoquiet -bbigtoc |
||
| 206 | |||
| 207 | # Misc |
||
| 208 | MAKE = /usr/bin/gmake |
||
| 209 | CD = cd |
||
| 210 | ECHO = echo |
||
| 211 | RM = rm |
||
| 212 | RMFLAGS = -f |
||
| 213 | SHELL = /bin/sh |
||
| 214 | |||
| 215 | # %---------------------------------------------------------% |
||
| 216 | # | SECTION 6: COMPILATION | |
||
| 217 | # | | |
||
| 218 | # | The following macros specify the macros used in | |
||
| 219 | # | to compile the source code into object code. | |
||
| 220 | # %---------------------------------------------------------% |
||
| 221 | |||
| 222 | .SUFFIXES: |
||
| 223 | .SUFFIXES: .C .c .f .f90 .cpp .o .cpp |
||
| 224 | |||
| 225 | # |
||
| 226 | # %------------------% |
||
| 227 | # | Default command. | |
||
| 228 | # %------------------% |
||
| 229 | # |
||
| 230 | .DEFAULT: |
||
| 231 | @$(ECHO) "Unknown target $@, try: make help" |
||
| 232 | # |
||
| 233 | # %-----------------------------------------------% |
||
| 234 | # | Command to build .o files from source files. | |
||
| 235 | # %-----------------------------------------------% |
||
| 236 | # |
||
| 237 | |||
| 238 | |||
| 239 | .cpp.o: |
||
| 240 | @$(ECHO) Making $@ from $< $@ with $(CC++) $(C++FLAGS) $(INCLUDES) -c $< |
||
| 241 | @$(CC++) $(C++FLAGS) $(INCLUDES) -c $< |
||
| 242 | |||
| 243 | |||
| 244 | .C.o: |
||
| 245 | @$(ECHO) Making $@ from $< |
||
| 246 | $(CC++) $(C++FLAGS) $(INCLUDES) -c $< |
||
| 247 | |||
| 248 | .c.o: |
||
| 249 | @$(ECHO) Making $@ from $< |
||
| 250 | $(CC) $(CFLAGS) -c $< |
||
| 251 | |||
| 252 | .f.o: |
||
| 253 | @$(ECHO) Making $@ from $< |
||
| 254 | $(FC) $(FFLAGS) -c $< |
||
| 255 | |||
| 256 | .f77.o: |
||
| 257 | @$(ECHO) Making $@ from $< |
||
| 258 | $(FC) $(FFLAGS) -c $< |
||
| 259 | |||
| 260 | .f90.o: |
||
| 261 | @$(ECHO) Making $@ from $< |
||
| 262 | $(FC90) $(FFLAGS) -c $< |
||
| 263 | |||
| 264 | # %---------------------------------------------------------% |
||
| 265 | # | SECTION 7: OTHER LIBRARIES | |
||
| 266 | # | | |
||
| 267 | # | The following macros specify other libraries that must | |
||
| 268 | # | be linked with when creating executables. These are | |
||
| 269 | # | platform specific and typically order does matter!! | |
||
| 270 | # %---------------------------------------------------------% |
||
| 271 | |||
| 272 | |||
| 273 | |||
| 274 | MACHINE_LINKLIBS = -L$(BASE)/lib \ |
||
| 275 | -L$(HOME)/lib |
||
| 276 | |||
| 277 | |||
| 278 | HAVEPETSC = NO |
||
| 279 | PETSCINC = |
||
| 280 | PETSC_LIB = |
||
| 281 | PETSC_FLAG = |
||
| 282 | |||
| 283 | ifeq ($(HAVEPETSC), YES) |
||
| 284 | |||
| 285 | PETSC_DIR = /usr/local/apps/petsc-2.2.1-64 |
||
| 286 | PETSC_ARCH = rs6000_64 |
||
| 287 | BOPT = O |
||
| 288 | |||
| 289 | PETSC = YES |
||
| 290 | PETSC_FLAG = -D_PETSC |
||
| 291 | PETSCINC = -I$(PETSC_DIR)/include -I$(PETSC_DIR)/bmake/$(PETSC_ARCH) -D_PETSC -DPETSC_USE_BOPT_g -DPETSC_USE_EXTERN_CXX |
||
| 292 | |||
| 293 | |||
| 294 | PETSC_LIB = -L$(PETSC_DIR)/lib/libg/$(PETSC_ARCH) \ |
||
| 295 | -lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc \ |
||
| 296 | $(FE)/system_of_eqn/linearSOE/petsc/PetscSOE.o \ |
||
| 297 | $(FE)/system_of_eqn/linearSOE/petsc/PetscSolver.o \ |
||
| 298 | $(FE)/system_of_eqn/linearSOE/petsc/PetscSparseSeqSolver.o |
||
| 299 | |||
| 300 | endif |
||
| 301 | |||
| 302 | HAVEMUMPS = NO |
||
| 303 | MUMPS_INCLUDE = |
||
| 304 | MUMPS_LIB = |
||
| 305 | |||
| 306 | ifeq ($(HAVEMUMPS), YES) |
||
| 307 | |||
| 308 | MUMPS_DIR = /users/ucb/ux455280/MUMPS_4.7.3 |
||
| 309 | MUMPS = YES |
||
| 310 | MUMPS_FLAG = -D_MUMPS |
||
| 311 | MUMPS_LIB = -L$(MUMPS_DIR)/lib \ |
||
| 312 | -ldmumps -lpord -lpesslsmp -lblacssmp \ |
||
| 313 | $(FE)/system_of_eqn/linearSOE/mumps/MumpsSOE.o \ |
||
| 314 | $(FE)/system_of_eqn/linearSOE/mumps/MumpsSolver.o \ |
||
| 315 | $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o \ |
||
| 316 | $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o |
||
| 317 | |||
| 318 | MUMPS_INCLUDE = -I$(MUMPS_DIR)/include |
||
| 319 | |||
| 320 | endif |
||
| 321 | |||
| 322 | #PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o \ |
||
| 323 | # $(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o \ |
||
| 324 | # $(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o \ |
||
| 325 | # $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \ |
||
| 326 | # $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o |
||
| 327 | |||
| 328 | |||
| 329 | HPM_LIB = |
||
| 330 | |||
| 331 | MACHINE_NUMERICAL_LIBS = -lm \ |
||
| 332 | $(ARPACK_LIBRARY) \ |
||
| 333 | $(SUPERLU_LIBRARY) \ |
||
| 334 | $(UMFPACK_LIBRARY) \ |
||
| 335 | $(LAPACK_LIBRARY) \ |
||
| 336 | $(BLAS_LIBRARY) \ |
||
| 337 | $(CBLAS_LIBRARY) \ |
||
| 338 | $(GRAPHIC_LIBRARY)\ |
||
| 339 | $(RELIABILITY_LIBRARY) \ |
||
| 340 | $(DISTRIBUTED_SUPERLU_LIBRARY) \ |
||
| 341 | $(METIS_LIBRARY) $(PARALLEL_LIB) $(PETSC_LIB) $(HPM_LIB) |
||
| 342 | |||
| 343 | |||
| 344 | MACHINE_SPECIFIC_LIBS = -L${MKL_HOME}/lib/em64t -lmkl -lguide -lpthread -lmkl_gfortran -lmkl_lapack \ |
||
| 345 | -L${INTEL_HOME}/lib -lifport -lifcore -lsvml -lipgo -lirc -lirc_s -ldl |
||
| 346 | |||
| 347 | |||
| 348 | |||
| 349 | # %---------------------------------------------------------% |
||
| 350 | # | SECTION 8: INCLUDE FILES | |
||
| 351 | # | | |
||
| 352 | # | The following macros specify include files needed for | |
||
| 353 | # | compilation. | |
||
| 354 | # %---------------------------------------------------------% |
||
| 355 | |||
| 356 | |||
| 357 | |||
| 358 | MACHINE_INCLUDES = -I/usr/local/BerkeleyDB.4.0/include \ |
||
| 359 | -I/usr/include/mysql \ |
||
| 360 | -I/usr/local/apps/hpm/include \ |
||
| 361 | -I$(HOME)/include \ |
||
| 362 | -I$(UMFPACKdir) \ |
||
| 363 | -I$(SUPERLUdir) \ |
||
| 364 | -I$(SUPERLU_DISTdir) \ |
||
| 365 | -I/usr/lpp/ppe.poe/include \ |
||
| 366 | $(PETSCINC) |
||
| 367 | |||
| 368 | |||
| 369 | |||
| 370 | # this file contains all the OpenSees/SRC includes |
||
| 371 | include $(FE)/Makefile.incl |
||
| 372 | |||
| 373 | #TCL_INCLUDES = -I/home/fmk/tcl8.3.3/generic |
||
| 374 | |||
| 375 | INCLUDES = $(MACHINE_INCLUDES) $(TCL_INCLUDES) $(FE_INCLUDES) |