diff options
author | Michele Mocciciola | 2016-10-01 17:39:01 +0200 |
---|---|---|
committer | Michele Mocciciola | 2016-10-01 17:39:01 +0200 |
commit | 16fc355db4e720c0998c8d89872d75159ea7b92d (patch) | |
tree | 67eb528dcaa4d7dcf40b14ef62ed847a7365cab0 | |
parent | d5e385d1fd9fcadd7887de97a574ac91083714ee (diff) | |
download | aur-16fc355db4e720c0998c8d89872d75159ea7b92d.tar.gz |
Updated to gcc-6. Introduced compilation of OpenSeesSP and OpenSeesMP. Executable links to metis-4. Many thanks to nema.arpit for his work.
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | Makefile.def | 145 | ||||
-rw-r--r-- | PKGBUILD | 42 | ||||
-rw-r--r-- | min-max-conflict.patch | 24 | ||||
-rw-r--r-- | png-miss-header.patch | 12 | ||||
-rw-r--r-- | steeldr.f-bug.patch | 26 |
6 files changed, 178 insertions, 86 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Tue May 3 21:39:13 UTC 2016 +# Sat Oct 1 15:35:57 UTC 2016 pkgbase = opensees pkgdesc = OpenSees, a software framework for developing applications to simulate the performance of structural and geotechnical systems subjected to earthquakes pkgver = 2.5.0 - pkgrel = 1 + pkgrel = 2 url = http://opensees.berkeley.edu/ arch = i686 arch = x86_64 @@ -15,8 +15,17 @@ pkgbase = opensees depends = libpng depends = mesa depends = lapack + depends = mumps4 + depends = glu + depends = openmpi source = Makefile.def - md5sums = ef90aba7305b6c5de948df9c5ba43df6 + source = png-miss-header.patch + source = min-max-conflict.patch + source = steeldr.f-bug.patch + md5sums = cfcbd913cf332951aa326614e161fee3 + md5sums = b8f21b0e77db6338fd6550ba3aaf8057 + md5sums = 2e451d6e144b0e1a61e4efe622ef39b0 + md5sums = b572eee6bfd3ca03c2e541cdb1dcfcc7 pkgname = opensees diff --git a/Makefile.def b/Makefile.def index d2cae4e20c2c..d1bcb88962e3 100644 --- a/Makefile.def +++ b/Makefile.def @@ -8,7 +8,8 @@ # # Written: mickele # Created: 12/2014 -# Last modified: 05/2016 +# Modified: nema.arpit +# Last modified: 09/2016 # # Send bug reports, comments or suggestions to # https://aur.archlinux.org/packages/opensees/ @@ -32,13 +33,13 @@ OpenSees_PROGRAM = $(INSTALLDIR)/bin/OpenSees OPERATING_SYSTEM = LINUX -#GRAPHICS = UsingOpenGL, UsingX11, NONE +# GRAPHICS = UsingOpenGL, UsingX11, NONE GRAPHICS = UsingOpenGL -#PROGRAMMING_MODE = SEQUENTIAL, THREADS OR DISTRIBUTED_MPI +# PROGRAMMING_MODE = SEQUENTIAL, THREADS, PARALLEL_INTERPRETERS, PARALLEL PROGRAMMING_MODE = SEQUENTIAL -#COMPILER = GCC +# COMPILER = GCC COMPILER = GCC #DEBUG_MODE = DEBUG, NO_DEBUG @@ -65,7 +66,7 @@ CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK -METISdir = $(HOME)/OpenSees/OTHER/METIS +# METISdir = $(HOME)/OpenSees/OTHER/METIS CSPARSEdir = $(HOME)/OpenSees/OTHER/CSPARSE SRCdir = $(HOME)/OpenSees/SRC @@ -74,11 +75,16 @@ ifeq ($(PROGRAMMING_MODE), THREADS) else SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_5.0/SRC endif -# SUPERLU_DISTdir = $(HOME)/OpenSees/OTHER/SuperLU_DIST_2.5/SRC +ifeq ($(PROGRAMMING_MODE), SEQUENTIAL) + SUPERLU_DISTdir = +else + SUPERLU_DISTdir = $(HOME)/OpenSees/OTHER/SuperLU_DIST_2.5/SRC +endif DIRS = $(BLASdir) $(CBLASdir) $(LAPACKdir) $(AMDdir) $(CSPARSEdir) \ - $(SUPERLUdir) $(ARPACKdir) $(UMFPACKdir) $(SRCdir) $(METISdir) + $(SUPERLUdir) $(ARPACKdir) $(UMFPACKdir) $(SRCdir) $(METISdir) \ + $(SUPERLU_DISTdir) # %-------------------------------------------------------% # | SECTION 4: LIBRARIES | @@ -109,18 +115,28 @@ CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a #CBLAS_LIBRARY = -lcblas ARPACK_LIBRARY = $(HOME)/lib/libArpack.a UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a -METIS_LIBRARY = $(HOME)/lib/libMetis.a +# METIS_LIBRARY = $(HOME)/lib/libMetis.a +METIS_LIBRARY = -lmetis-4 +METIS_INCLUDE = /usr/include/metis-4 CSPARSE_LIBRARY = $(HOME)/lib/libCSparse.a TCL_LIBRARY = -ltk8.6 -ltcl8.6 -BLITZ_LIBRARY = +TCL_INCLUDE = +BLITZ_LIBRARY = +BLITZ_INCLUDE = AMD_LIBRARY = $(HOME)/lib/libAmd.a +ifeq ($(PROGRAMMING_MODE), SEQUENTIAL) + DISTRIBUTED_SUPERLU_LIBRARY = +else + DISTRIBUTED_SUPERLU_LIBRARY = $(HOME)/lib/libDistributedSuperLU.a +endif + ifeq ($(GRAPHICS), UsingOpenGL) - GRAPHIC_LIBRARY = -lGL -lGLU -lX11 + GRAPHIC_LIBRARY = -lGL -lGLU -lX11 else - ifeq ($(GRAPHICS), UsingX11) - GRAPHIC_LIBRARY = -lX11 - endif + ifeq ($(GRAPHICS), UsingX11) + GRAPHIC_LIBRARY = -lX11 + endif endif ifeq ($(RELIABILITY), YES_RELIABILITY) @@ -139,10 +155,11 @@ WIPE_LIBS = $(FE_LIBRARY) \ $(SUPERLU_LIBRARY) \ $(ARPACK_LIBRARY) \ $(UMFPACK_LIBRARY) \ - $(METIS_LIBRARY) \ $(CSPARSE_LIBRARY) \ $(RELIABILITY_LIBRARY) +# $(METIS_LIBRARY) \ + # %---------------------------------------------------------% # | SECTION 5: COMPILERS | # | | @@ -186,6 +203,14 @@ else PROGRAMMING_FLAG = -DUSE_INTERP_RESULT endif +ifeq ($(PROGRAMMING_MODE), PARALLEL) + PROGRAMMING_FLAG = -D_PARALLEL_PROCESSING -DUSE_INTERP_RESULT -D_MUMPS -D_OPENMPI +endif + +ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS) + PROGRAMMING_FLAG = -D_PARALLEL_INTERPRETERS -DUSE_INTERP_RESULT -D_MUMPS -D_OPENMPI +endif + ifeq ($(DEBUG_MODE), DEBUG) DEBUG_FLAG = -D_G3DEBUG else @@ -232,7 +257,7 @@ ifeq ($(DEBUG_MODE), DEBUG) else # modified as optimizaton currently causing problems with Steel01 code - C++FLAGS = -Wall -O3 -D_UNIX -ftemplate-depth-30 -D_LINUX \ + C++FLAGS = -Wall -O3 -D_UNIX -D_LINUX -std=c++98 \ $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) \ -ffloat-store -fpermissive @@ -297,55 +322,28 @@ SHELL = /bin/sh # | be linked with when creating executables. These are | # | platform specific and typically order does matter!! | # %---------------------------------------------------------% -ifeq ($(PROGRAMMMING_MODE), SEQUENTIAL) +ifeq ($(PROGRAMMING_MODE), SEQUENTIAL) HAVEMUMPS = NO MUMPS_FLAG = MUMPS_INCLUDE = MUMPS_LIB = + DISTSUPERLU_INCLUDE = else HAVEMUMPS = YES + DISTSUPERLU_INCLUDE = -I$(SUPERLU_DISTdir) endif ifeq ($(HAVEMUMPS), YES) - - MUMPS = YES - MUMPS_FLAG = -D_MUMPS -D_OPENMPI - #MUMPS_DIR = /gpfs/fmk/MUMPS_4.6.4 - MUMPS_DIR = $(HOME)/PARALLEL_NUMERICAL_LIBS/MUMPS_4.10.0 - - PLAT = MPICHGM-INTEL80 - - SCALAP = $(BLACSlib) $(SCALAPlib) $(BLACSlib) - - BLACS_DIR = $(HOME)/PARALLEL_NUMERICAL_LIBS/BLAC - SCALAPACK_DIR = $(HOME)/PARALLEL_NUMERICAL_LIBS/SCALAPACK - LAPACK_DIR = $(HOME)/PARALLEL_NUMERICAL_LIBS/LAPACK - - BLACS_LIB = -L$(BLACS_DIR)/LIB -lblacs_MPI-LINUX-0 - SCALAPACK_LIB = -L$(SCALAPACK_DIR) -lscalapack - BLACS_LIB = -L$(BLACS_DIR)/INCLUDE - SCALAPACK_LIB = -L$(SCALAPACK_DIR) - - PLAT = LINUX - - SCALAP = $(BLACS_LIB) $(SCALAPACK_LIB) - - MUMPS_LIB = -L$(MUMPS_DIR)/lib \ - $(FE)/system_of_eqn/linearSOE/mumps/MumpsSOE.o \ - $(FE)/system_of_eqn/linearSOE/mumps/MumpsSolver.o \ - $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o \ - $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o \ - $(HOME)/lib/libdmumps.a \ - $(HOME)/lib/libmumps_common.a \ - $(HOME)/lib/libpord.a \ - $(HOME)/lib/libscalapack.a \ - $(HOME)/lib/blacs_MPI-LINUX-0.a \ - $(HOME)/lib/blacsCinit_MPI-LINUX-0.a \ - $(HOME)/lib/blacsF77init_MPI-LINUX-0.a \ - $(HOME)/PARALLEL_NUMERICAL_LIBS/BLACS/SRC/MPI/INTERNAL/bi_f77_get_constants.o \ - $(HOME)/lib/blas_LINUX.a - - MUMPS_INCLUDE = -I$(MUMPS_DIR)/include + MUMPS = YES + MUMPS_FLAG = -D_MUMPS -D_OPENMPI + MUMPS_DIR = /usr + MUMPS_LIB = $(FE)/system_of_eqn/linearSOE/mumps/MumpsSOE.o \ + $(FE)/system_of_eqn/linearSOE/mumps/MumpsSolver.o \ + $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o \ + $(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o \ + -L$(MUMPS_DIR)/lib \ + -ldmumps -lmumps_common -lesmumps -lscotch -lscotcherr -lpord -lscalapack + MUMPS_INCLUDE = -I$(MUMPS_DIR)/include endif MACHINE_LINKLIBS = -L$(BASE)/lib \ @@ -358,20 +356,21 @@ MACHINE_NUMERICAL_LIBS = $(RELIABILITY_LIBRARY) -lm \ $(LAPACK_LIBRARY) $(BLAS_LIBRARY) $(CBLAS_LIBRARY) \ $(GRAPHIC_LIBRARY) $(OPTIMIZATION_LIBRARY) \ $(AMD_LIBRARY) \ + $(METIS_LIBRARY) \ $(CSPARSE_LIBRARY) \ -ldl -lgfortran -lpng ifeq ($(PROGRAMMING_MODE), SEQUENTIAL) - PARALLEL_LIB = + PARALLEL_LIB = else ifeq ($(PROGRAMMING_MODE), PARALLEL) - PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \ - $(FE)/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSolver.o \ - $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \ - $(METIS_LIBRARY) $(HOME)/OpenSees/OTHER/METIS/frename.o $(METIS_LIBRARY) $(MUMPS_LIB) -lmpi -lmpi_f77 + PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \ + $(FE)/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSolver.o \ + $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \ + $(METIS_LIBRARY) $(MUMPS_LIB) -lmpi -lmpi_mpifh $(DISTRIBUTED_SUPERLU_LIBRARY) else ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS) PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \ - $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \ - $(METIS_LIBRARY) $(HOME)/OpenSees/OTHER/METIS/frename.o $(METIS_LIBRARY) $(MUMPS_LIB) -lmpi -lmpi_f77 + $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \ + $(METIS_LIBRARY) $(MUMPS_LIB) -lmpi -lmpi_mpifh $(DISTRIBUTED_SUPERLU_LIBRARY) endif ifeq ($(PROGRAMMING_MODE), THREADS) @@ -386,18 +385,18 @@ endif # | The following macros specify include files needed for | # | compilation. | # %---------------------------------------------------------% -MACHINE_INCLUDES = -I/usr/include \ - -I$(BASE)/include \ - -I/usr/include/cxx \ - $(MUMPS_INCLUDE) \ +MACHINE_INCLUDES = -I$(BASE)/include \ + -I$(BASE)/include/cxx \ -I$(HOME)/include \ - -I$(HOME)/blitz \ -I$(UMFPACKdir) \ - -I$(SUPERLUdir) - -# this file contains all the OpenSees/SRC includes + -I$(SUPERLUdir) \ + $(DISTSUPERLU_INCLUDE) \ + $(MUMPS_INCLUDE) \ + $(METIS_INCLUDE) \ + $(BLITZ_INCLUDE) \ + $(TCL_INCLUDE) + +# this file contains all the OpenSees/SRC includes FE_INCLUDES include $(FE)/Makefile.incl -TCL_INCLUDES = - -INCLUDES = $(TCL_INCLUDES) $(FE_INCLUDES) $(MACHINE_INCLUDES) +INCLUDES = $(FE_INCLUDES) $(MACHINE_INCLUDES) @@ -1,19 +1,21 @@ # Maintainer: mickele +#Contributor: nema.arpit pkgname=opensees pkgver=2.5.0 -pkgrel=1 +pkgrel=2 pkgdesc="OpenSees, a software framework for developing applications to simulate the performance of structural and geotechnical systems subjected to earthquakes" arch=("i686" "x86_64") url="http://opensees.berkeley.edu/" -depends=('tk>=8.6' 'openssl' 'libpng' 'mesa' 'lapack') +depends=('tk>=8.6' 'openssl' 'libpng' 'mesa' 'lapack' 'mumps4' 'glu' 'openmpi') makedepends=('svn' 'gcc-fortran') options=() license=("custom") +# source=("http://opensees.berkeley.edu/OpenSees/code/OpenSees${pkgver}.tar.gz" "Makefile.def") + # This release is available only through svn # http://opensees.berkeley.edu/OpenSees/changeLog.php -# source=("http://opensees.berkeley.edu/OpenSees/code/OpenSees${pkgver}.tar.gz" "Makefile.def") -source=("Makefile.def") +source=("Makefile.def" "png-miss-header.patch" "min-max-conflict.patch" "steeldr.f-bug.patch") # _svntrunk="svn://opensees.berkeley.edu/usr/local/svn/OpenSees/trunk" _svntrunk="svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk" @@ -39,30 +41,50 @@ prepare() { sed -e "s|\$(INSTALLDIR)|${srcdir}|" \ -e "s|\$(SRCDIR)|${srcdir}|" \ -i Makefile.def - + msg "Patching..." # Missing header # error: ‘Z_BEST_COMPRESSION’ was not declared in this scope - sed -e "s|#include <png.h>|#include <png.h>\n#include <zlib.h>|" \ - -i SRC/renderer/OpenGlDevice.cpp + svn patch "${srcdir}/png-miss-header.patch" + + # Patch DistributedSuperLu.cpp to avoid min max macro conflict + # between f2c.h and stl_algobase.h in gcc6 + svn patch "${srcdir}/min-max-conflict.patch" + + # Fix STEELDR.f, potential bug in ShellMITC4.cpp + svn patch "${srcdir}/steeldr.f-bug.patch" } build() { cd "${srcdir}/${_svnmod}" - - msg "Building..." + + msg "Building OpenSees..." mkdir -p "${srcdir}/lib" mkdir -p "${srcdir}/bin" + make wipe make + + msg "Building OpenSeesMP..." + make wipe + make "OpenSees_PROGRAM = ${srcdir}/bin/OpenSeesMP" "PROGRAMMING_MODE = PARALLEL_INTERPRETERS" + + msg "Building OpenSeesSP..." + make wipe + make "OpenSees_PROGRAM = ${srcdir}/bin/OpenSeesSP" "PROGRAMMING_MODE = PARALLEL" } package(){ msg "Istalling binary..." install -d -m755 "${pkgdir}${_installdir}/bin" install "${srcdir}/bin/OpenSees" "${pkgdir}${_installdir}/bin" + install "${srcdir}/bin/OpenSeesMP" "${pkgdir}${_installdir}/bin" + install "${srcdir}/bin/OpenSeesSP" "${pkgdir}${_installdir}/bin" msg "Istalling licence..." install -D -m644 "${srcdir}/OpenSees/COPYRIGHT" \ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" } -md5sums=('ef90aba7305b6c5de948df9c5ba43df6') +md5sums=('cfcbd913cf332951aa326614e161fee3' + 'b8f21b0e77db6338fd6550ba3aaf8057' + '2e451d6e144b0e1a61e4efe622ef39b0' + 'b572eee6bfd3ca03c2e541cdb1dcfcc7') diff --git a/min-max-conflict.patch b/min-max-conflict.patch new file mode 100644 index 000000000000..e5e3f4259fd4 --- /dev/null +++ b/min-max-conflict.patch @@ -0,0 +1,24 @@ +Index: SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.cpp +=================================================================== +--- SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.cpp (revision 6236) ++++ SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.cpp (working copy) +@@ -31,6 +31,7 @@ + + #include <DistributedSuperLU.h> + #include <SparseGenColLinSOE.h> ++#include <superlu_ddefs.h> + #include <f2c.h> + #include <math.h> + #include <Channel.h> +@@ -37,10 +38,10 @@ + #include <FEM_ObjectBroker.h> + #include <ID.h> + +-#include <superlu_ddefs.h> + + + ++ + superlu_options_t options; + SuperLUStat_t stat; + SuperMatrix A; diff --git a/png-miss-header.patch b/png-miss-header.patch new file mode 100644 index 000000000000..90f82ba3b7ea --- /dev/null +++ b/png-miss-header.patch @@ -0,0 +1,12 @@ +Index: SRC/renderer/OpenGlDevice.cpp +=================================================================== +--- SRC/renderer/OpenGlDevice.cpp (revision 6236) ++++ SRC/renderer/OpenGlDevice.cpp (working copy) +@@ -32,6 +32,7 @@ + #ifdef _GLX + #define _PNG + #include <png.h> ++#include <zlib.h> + #endif + + #include <iostream> diff --git a/steeldr.f-bug.patch b/steeldr.f-bug.patch new file mode 100644 index 000000000000..fed7407791f7 --- /dev/null +++ b/steeldr.f-bug.patch @@ -0,0 +1,26 @@ +Index: SRC/element/shell/ShellMITC4.cpp +=================================================================== +--- SRC/element/shell/ShellMITC4.cpp (revision 6236) ++++ SRC/element/shell/ShellMITC4.cpp (working copy) +@@ -1126,7 +1126,7 @@ + resid.Zero( ) ; + + //start Yuli Huang (yulihuang@gmail.com) & Xinzheng Lu (luxz@tsinghua.edu.cn) +- updateBasis( ); ++// updateBasis( ); + //end Yuli Huang (yulihuang@gmail.com) & Xinzheng Lu (luxz@tsinghua.edu.cn) + + double dx34 = xl[0][2]-xl[0][3]; +Index: SRC/material/uniaxial/STEELDR.f +=================================================================== +--- SRC/material/uniaxial/STEELDR.f (revision 6236) ++++ SRC/material/uniaxial/STEELDR.f (working copy) +@@ -288,6 +288,8 @@ + if(ep_s.le.ep_sushift(k)) then + fp_s=s1*fp_su + fps_s=fps_su ++ ep_sushift(k)=ep_s ++ ep_o(k)=ep_sushift(k)+ep_su + else + call Bauschinger(1,icheat,P_major,P_minor,region, + * ep_sushift,s1,fp_su,fps_su,Ep_u,f_y,ep_a,fp_a, |