# Copyright (c) 2005 Sandia Corporation. Under the terms of Contract # DE-AC04-94AL85000 with Sandia Corporation, the U.S. Governement # retains certain rights in this software. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # * Neither the name of Sandia Corporation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # #======================================================================== # A platform must define: # # BITS either 32 or 64 depending on a 32-bit or 64-bit build # CC == the C compiler # FC == the Fortran compiler # CCOPTIONS == non-optimization related flags for C compiling on this platform # F77OPTIONS == non-optimization related flags for Fortran compiling on this platform # OS_TYPE == See listing in forbind/src/Imakefile # RANLIB == ranlib or 'true' if no ranlib # AR == command to build an archive library. # #======================================================================== SYSTEM := $(shell uname) # Default Compiler: COMPILER = GNU #======================================================================== # Linux #======================================================================== ifeq ($(SYSTEM),Linux) BITS = 32 RANLIB = ranlib OS_TYPE = linux AR = ar -rcv ifeq ($(COMPILER),intel11.1) CC = icc FC = ifort CCOPTIONS = -fPIC F77OPTIONS = -fPIC OPTIMIZE_FLAG = -O3 -axSSE4.2 endif ifeq ($(COMPILER),GNU) CC = gcc FC = gfortran CCOPTIONS = -fPIC F77OPTIONS = -fPIC OPTIMIZE_FLAG = -O3 endif ifeq ($(COMPILER),PGI) CC = pgcc FC = pgf77 CCOPTIONS = -fPIC F77OPTIONS = -fPIC OPTIMIZE_FLAG = -O3 endif endif #======================================================================== # Darwin (Apple OSX) #======================================================================== ifeq ($(SYSTEM),Darwin) BITS = 32 RANLIB = ranlib OS_TYPE = darwin AR = ar -crsv ifeq ($(COMPILER),intel11.1) CC = icc FC = ifort CCOPTIONS = -fPIC F77OPTIONS = -fPIC OPTIMIZE_FLAG = -O3 -axSSE4.2 endif ifeq ($(COMPILER),GNU) CC = gcc FC = gfortran CCOPTIONS = -fPIC F77OPTIONS = -fPIC OPTIMIZE_FLAG = -O3 endif endif #======================================================================== STD_DEFINES = -DVERBOSE # Use include files locates in exodusii/cbind/include LOC_EXOII_INC = -I../../cbind/include -I../../forbind/include NETCDF_INC = -I${NETCDF_DIR}/include NETCDF_LIB_DIR = ${NETCDF_DIR}/lib NETCDF_LIB = -L${NETCDF_LIB_DIR} -lnetcdf CFLAGS = $(OPTIMIZE_FLAG) $(CCOPTIONS) $(STD_DEFINES) $(LOC_EXOII_INC) $(NETCDF_INC) FFLAGS = $(OPTIMIZE_FLAG) $(F77OPTIONS) $(LOC_EXOII_INC) $(F77PREC) SUBDIRS = cbind/src forbind/src cbind/test forbind/test all:: libexoIIv2c.a libexoIIv2for.a libexoIIv2c.a:: echo "making exoIIv2c in cbind/src" (cd cbind/src && $(MAKE) $(MFLAGS) -f Makefile.standalone "AR=$(AR)" "CC=$(CC)" "CFLAGS=$(CFLAGS)" "RANLIB=$(RANLIB)" libexoIIv2c.a) cp cbind/src/libexoIIv2c.a . $(RANLIB) libexoIIv2c.a libexoIIv2for.a:: echo "making exoIIv2for in forbind/src" (cd forbind/src && $(MAKE) $(MFLAGS) -f Makefile.standalone "BITS=$(BITS)" "AR=$(AR)" "CC=$(CC)" "CFLAGS=$(CFLAGS)" "FC=$(FC)" "FFLAGS=$(FFLAGS)" "RANLIB=$(RANLIB)" "SYSTEM=$(SYSTEM)" "OS_TYPE=$(OS_TYPE)" libexoIIv2for.a) cp forbind/src/libexoIIv2for.a . $(RANLIB) libexoIIv2for.a check: test test:: libexoIIv2c.a libexoIIv2for.a test:: echo "making test in cbind/test" (cd cbind/test && $(MAKE) $(MFLAGS) -f Makefile.standalone "AR=$(AR)" "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LDFLAGS=$(LDFLAGS)" "RANLIB=$(RANLIB)" "NETCDF_LIB=$(NETCDF_LIB)" all) test:: echo "making test in forbind/test" (cd forbind/test && $(MAKE) $(MFLAGS) -f Makefile.standalone "BITS=$(BITS)" "AR=$(AR)" "CC=$(CC)" "CFLAGS=$(CFLAGS)" "FC=$(FC)" "FFLAGS=$(FFLAGS)" "LDFLAGS=$(LDFLAGS)" "RANLIB=$(RANLIB)" "NETCDF_LIB=$(NETCDF_LIB)" "SYSTEM=$(SYSTEM)" all) clean:: @for flag in $(MAKEFLAGS) ''; do \ case "$$flag" in *=*) ;; *[ik]*) set +e;; esac; done; \ for i in $(SUBDIRS) ;\ do \ if test -d $$i; then \ echo "cleaning" "in $(CURRENT_DIR)/$$i..."; \ (cd $$i && $(MAKE) -f Makefile.standalone $(MFLAGS) clean); \ fi; \ done CFLAGS = $(OPTIMIZE_FLAG) $(CCOPTIONS) $(STD_DEFINES) $(LOC_EXOII_INC) $(NETCDF_INC) FFLAGS = $(OPTIMIZE_FLAG) $(F77OPTIONS) $(LOC_EXOII_INC) $(F77PREC) SUBDIRS = cbind/src forbind/src cbind/test forbind/test all:: libexoIIv2c.a libexoIIv2for.a libexoIIv2c.a:: echo "making exoIIv2c in cbind/src" (cd cbind/src && $(MAKE) $(MFLAGS) -f Makefile.standalone "AR=$(AR)" "CC=$(CC)" "CFLAGS=$(CFLAGS)" "RANLIB=$(RANLIB)" libexoIIv2c.a) cp cbind/src/libexoIIv2c.a . $(RANLIB) libexoIIv2c.a libexoIIv2for.a:: echo "making exoIIv2for in forbind/src" (cd forbind/src && $(MAKE) $(MFLAGS) -f Makefile.standalone "BITS=$(BITS)" "AR=$(AR)" "CC=$(CC)" "CFLAGS=$(CFLAGS)" "FC=$(FC)" "FFLAGS=$(FFLAGS)" "RANLIB=$(RANLIB)" "SYSTEM=$(SYSTEM)" "OS_TYPE=$(OS_TYPE)" libexoIIv2for.a) cp forbind/src/libexoIIv2for.a . $(RANLIB) libexoIIv2for.a check: test test:: libexoIIv2c.a libexoIIv2for.a test:: echo "making test in cbind/test" (cd cbind/test && $(MAKE) $(MFLAGS) -f Makefile.standalone "AR=$(AR)" "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LDFLAGS=$(LDFLAGS)" "RANLIB=$(RANLIB)" "NETCDF_LIB=$(NETCDF_LIB)" all) test:: echo "making test in forbind/test" (cd forbind/test && $(MAKE) $(MFLAGS) -f Makefile.standalone "BITS=$(BITS)" "AR=$(AR)" "CC=$(CC)" "CFLAGS=$(CFLAGS)" "FC=$(FC)" "FFLAGS=$(FFLAGS)" "LDFLAGS=$(LDFLAGS)" "RANLIB=$(RANLIB)" "NETCDF_LIB=$(NETCDF_LIB)" "SYSTEM=$(SYSTEM)" all) clean:: @for flag in $(MAKEFLAGS) ''; do \ case "$$flag" in *=*) ;; *[ik]*) set +e;; esac; done; \ for i in $(SUBDIRS) ;\ do \ if test -d $$i; then \ echo "cleaning" "in $(CURRENT_DIR)/$$i..."; \ (cd $$i && $(MAKE) -f Makefile.standalone $(MFLAGS) clean); \ fi; \ done install: mkdir -p ${EXO_DIR}/lib cp libexoIIv2* ${EXO_DIR}/lib mkdir -p ${EXO_DIR}/cbind/include cp cbind/include/*h ${EXO_DIR}/cbind/include mkdir -p ${EXO_DIR}/forbind/include cp forbind/include/*inc ${EXO_DIR}/forbind/include