Subversion Repositories OpenSees

Rev

Rev 2 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

############################################################################
#
#  Program:  OpenSees
#
#  Purpose:  A Top-level Makefile to create the libraries needed
#            to use the OpenSees framework.
#
#  Written: fmk 
#  Created: 10/99
#
#  Send bug reports, comments or suggestions to fmckenna@ce.berkeley.edu
#
############################################################################

# %---------------------------------%
# |  SECTION 1: PROGRAM             |
# %---------------------------------%
#
# Specify the location and name of the OpenSees interpreter program
# that will be created (if this all works!)

OpenSees_PROGRAM = $(HOME)/bin/OpenSees

# %---------------------------------%
# |  SECTION 2: PATHS               |
# %---------------------------------%
#
# Note: if vendor supplied BLAS and LAPACK libraries or if you have
# any of the libraries already leave the directory location blank
# and remove the directory from DIRS.

BASE            = /usr/local
HOME            = /work/g3/fmk
FE              = $(HOME)/OpenSees/SRC

BLASdir      = 
CBLASdir     = 
LAPACKdir    = 
SUPERLUdir   = $(HOME)/OpenSees/OTHER/SuperLU
ARPACKdir    = $(HOME)/OpenSees/OTHER/ARPACK
UMFPACKdir   = $(HOME)/OpenSees/OTHER/UMFPACK
METISdir     = $(HOME)/OpenSees/OTHER/METIS
SRCdir       = $(HOME)/OpenSees/SRC

DIRS        = $(SUPERLUdir) $(ARPACKdir) $(UMFPACKdir) $(METISdir) $(SRCdir)

# %-------------------------------------------------------%
# | SECTION 3: LIBRARIES                                  |
# |                                                       |
# | The following section defines the libraries that will |
# | be created and/or linked with when the libraries are  | 
# | being created or linked with.                         |
# %-------------------------------------------------------%
#
# Note: if vendor supplied BLAS and LAPACK libraries leave the
# libraries blank. You have to get your own copy of the tcl/tk 
# library!!

FE_LIBRARY      = $(HOME)/lib/libOpenSees.a
LAPACK_LIBRARY  = -ldxml
BLAS_LIBRARY    = 
SUPERLU_LIBRARY = $(HOME)/lib/libSuperLU.a
CBLAS_LIBRARY   = 
ARPACK_LIBRARY  = $(HOME)/lib/libArpack.a
UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a
METIS_LIBRARY   = $(HOME)/lib/libMetis.a
TCL_LIBRARY     = /usr/users/fmk/lib/libtk8.2.a -lX11 /usr/users/fmk/lib/libtcl8.2.a 

# WATCH OUT .. These libraries are removed when 'make wipe' is invoked.
WIPE_LIBS       = $(FE_LIBRARY) \
                $(SUPERLU_LIBRARY) \
                $(ARPACK_LIBRARY) \
                $(UMFPACK_LIBRARY) \
                $(METIS_LIBRARY)

# %---------------------------------------------------------%
# | SECTION 4: COMPILERS                                    |
# |                                                         |
# | The following macros specify compilers, linker/loaders, |
# | the archiver, and their options.  You need to make sure |
# | these are correct for your system.                      |
# %---------------------------------------------------------%

# Compilers
CC++    = /usr/bin/cxx
CC      = /usr/bin/cxx
Fort    = f90

AR              = ar 
ARFLAGS         = cqls
RANLIB          = ranlib

# Compiler Flags
#
# NOTES:
#    C++ FLAGS TAKE need _UNIX or _WIN32 for preprocessor dircetives
#         - the _WIN32 for the Windows95/98 or NT operating system.
#    C FLAGS used -DUSE_VENDOR_BLAS (needed in SuperLU) if UNIX in C++ FLAGS
#

C++FLAGS        = -O5 -w0 -DXWINDOWS -D_UNIX -D_ALPHA
CFLAGS          = -O5 -DUSE_VENDOR_BLAS -D_UNIX -D_ALPHA
FFLAGS          = -O

# Linker
LINKER          = $(CC)
LINKFLAGS       = -O5

# Misc
MAKE            = /usr/users/fmk/bin/make
CD              = cd
ECHO            = echo
RM              = rm
RMFLAGS         = -f
SHELL           = /bin/sh

# %---------------------------------------------------------%
# | SECTION 5: COMPILATION                                  |
# |                                                         |
# | The following macros specify the macros used in         |
# | to compile the source code into object code.            |
# %---------------------------------------------------------%

.SUFFIXES:
.SUFFIXES:      .C .c .f .f90 .cpp .o .cpp

#
# %------------------%
# | Default command. |
# %------------------%
#
.DEFAULT:
        @$(ECHO) "Unknown target $@, try:  make help"
#
# %-------------------------------------------%
# |  Command to build .o files from .f files. |
# %-------------------------------------------%
#

.cpp.o:
        @$(ECHO) Making $@ from $<
        $(CC++) $(C++FLAGS) $(INCLUDES) -c $< -o $@

.C.o:
        @$(ECHO) Making $@ from $<
        $(CC++) $(C++FLAGS) $(INCLUDES) -c $< -o $@
.c.o:
        @$(ECHO) Making $@ from $<
        $(CC) $(CFLAGS) -c $< -o $@
.f.o:      
        @$(ECHO) Making $@ from $<
        $(Fort) $(FFLAGS) -c $< -o $@

# %---------------------------------------------------------%
# | SECTION 6: OTHER LIBRARIES                              |
# |                                                         |
# | The following macros specify other libraries that must  |
# | be linked with when creating executables. These are     |
# | platform specific and typically order does matter!!     |
# %---------------------------------------------------------%
MACHINE_LINKLIBS  = -L$(BASE)/lib \
                -L/usr/users/fmk/lib \
                -lfor \
                -lots

MACHINE_NUMERICAL_LIBS  = -lm \
                $(ARPACK_LIBRARY) \
                $(SUPERLU_LIBRARY) \
                $(UMFPACK_LIBRARY) \
                $(LAPACK_LIBRARY) $(BLAS_LIBRARY)

MACHINE_SPECIFIC_LIBS = $(FE)/machine/etime.o  \
        $(FE)/tagged/storage/cxx_repository/NIL__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd45select1s094srqr.o \
        $(FE)/tagged/storage/cxx_repository/__distance__3stdXQ27__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rws017dgb8.o \
        $(FE)/tagged/storage/cxx_repository/__erase__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd45sele0r800ad.o \
        $(FE)/tagged/storage/cxx_repository/__insert__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd45sel0jnm3dl.o \
        $(FE)/tagged/storage/cxx_repository/deallocate_buffers__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__0oju3aj.o \
        $(FE)/tagged/storage/cxx_repository/equal_range__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd453uhp6ho.o \
        $(FE)/tagged/storage/cxx_repository/erase__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd45select04lsjhu.o \
        $(FE)/tagged/storage/cxx_repository/erase__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd45select1crospf.o \
        $(FE)/tagged/storage/cxx_repository/erase__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd45select3gf6evp.o \
        $(FE)/tagged/storage/cxx_repository/find__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd45select12tfrv4e.o \
        $(FE)/tagged/storage/cxx_repository/insert__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd45selec34hgppu.o \
        $(FE)/tagged/storage/cxx_repository/lower_bound__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd453uhp6ho.o \
        $(FE)/tagged/storage/cxx_repository/number_of_trees__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rws3ir3b3r.o \
        $(FE)/tagged/storage/cxx_repository/upper_bound__Q17__rwstd150rb_tree__TiQ13std24pair__TCiP12TaggedObjectQ17__rwstd453uhp6ho.o 



# %---------------------------------------------------------%
# | SECTION 7: INCLUDE FILES                                |
# |                                                         |
# | The following macros specify include files needed for   |
# | compilation.                                            |
# %---------------------------------------------------------%
MACHINE_INCLUDES        = -I/usr/include \
                          -I$(BASE)/include \
                          -I/usr/include/cxx \
                          -I$(HOME)/include

# this file contains all the OpenSees/SRC includes
include $(FE)/Makefile.incl

TCL_INCLUDES = -I/usr/users/fmk/include 

INCLUDES = $(TCL_INCLUDES) $(FE_INCLUDES) $(MACHINE_INCLUDES)