--- /dev/null
+VERSION=3.3
+NAME=superlu_dist_${VERSION}
+EXTRACTSTO=SuperLU_DIST_${VERSION}
+SOURCE=http://crd-legacy.lbl.gov/~xiaoye/SuperLU/
+PACKING=.tar.gz
+CHECKSUM=f4805659157d93a962500902c219046b
+#1d77f10a265f5751d4e4b59317d778f8 superlu_dist_3.0.tar.gz
+#5b114d6f97d9e94d643f51bb3c6cf03f superlu_dist_3.1.tar.gz
+#b67bab5bb1ee92d38ad6c345b3c2b18d superlu_dist_3.2.tar.gz
+#f4805659157d93a962500902c219046b superlu_dist_3.3.tar.gz
+BUILDCHAIN=custom
+
+package_specific_build() {
+ cp -rf ${UNPACK_PATH}/${EXTRACTSTO}/* .
+ mv make.inc make.inc.bak
+ #create make.inc
+echo "# The machine (platform) identifier to append to the library names
+#
+PLAT = _x86_64
+
+#
+# The name of the libraries to be created/linked to
+#
+DSuperLUroot = ${INSTALL_PATH}
+DSUPERLULIB = \$(DSuperLUroot)/lib/libsuperlu_dist_${VERSION}.a
+
+#
+BLASDEF = -DUSE_VENDOR_BLAS
+BLASLIB = -lblas
+
+## parmetis 4.x.x
+METISLIB = -L${PARMETIS_DIR}/lib -lmetis
+PARMETISLIB = -L${PARMETIS_DIR}/lib -lparmetis
+
+# Define the required Fortran libraries, if you use C compiler to link
+#FLIBS = -lpgf90 -lpgf90_rpm1
+
+# Define all the libraries
+LIBS = \$(DSUPERLULIB) \$(BLASLIB) \$(PARMETISLIB) \$(METISLIB) \$(FLIBS)
+
+#
+# The archiver and the flag(s) to use when building archive (library)
+# If your system has no ranlib, set RANLIB = echo.
+#
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = ranlib
+
+############################################################################
+# C compiler setup
+# CFLAGS should be set to be the C flags that include optimization
+CFLAGS = -fPIC -DDEBUGlevel=0 -DPRNTlevel=1 -DPROFlevel=0
+#
+# NOOPTS should be set to be the C flags that turn off any optimization
+NOOPTS = -fPIC -O0
+############################################################################
+# FORTRAN compiler setup
+FORTRAN = \$(FC)
+#F90FLAGS = -fast -Mipa=fast,safe
+############################################################################
+LOADER = \$(CC)
+#LOADOPTS = -fast
+############################################################################
+# C preprocessor defs for compilation (-DNoChange, -DAdd_, or -DUpCase)
+#
+# Need follow the convention of how C calls a Fortran routine.
+#
+CDEFS = -DAdd_
+" >> make.inc
+
+ # now compile superlu_dist
+ make superlulib
+ rm -f ${INSTALL_PATH}/lib/libsuperlu_dist.a
+ ln -s ${INSTALL_PATH}/lib/libsuperlu_dist_${VERSION}.a ${INSTALL_PATH}/lib/libsuperlu_dist.a
+ mkdir -p ${INSTALL_PATH}/include/superlu
+ cp SRC/*.h ${INSTALL_PATH}/include/superlu
+}
+
+package_specific_register () {
+ export SUPERLU_DIR=${INSTALL_PATH}
+}
+
CONFOPTS="-D Trilinos_ENABLE_OpenMP:BOOL=OFF \
-D TPL_ENABLE_TBB:BOOL=OFF \
- -D Trilinos_ENABLE_OPTIONAL_PACKAGES:BOOL=ON \
-D Trilinos_ENABLE_Didasko:BOOL=ON \
-D Trilinos_ENABLE_Sacado:BOOL=ON \
-D Trilinos_ENABLE_Stratimikos:BOOL=ON \
+ -D TPL_ENABLE_ParMETIS:BOOL=ON \
+ -D TPL_ParMETIS_LIBRARIES:PATH=${INSTALL_PATH}/lib \
+ -D TPL_ENABLE_SuperLUDist:BOOL=ON \
+ -D TPL_SuperLUDist_LIBRARIES:FILEPATH=${INSTALL_PATH}/lib/libsuperlu_dist.a \
+ -D SuperLUDist_INCLUDE_DIRS:PATH=${INSTALL_PATH}/include/superlu \
-D CMAKE_BUILD_TYPE:STRING=RELEASE \
-D CMAKE_CXX_FLAGS:STRING=-fPIC -g -O3 \
-D CMAKE_C_FLAGS:STRING=-fPIC -g -O3 \
-D TPL_ENABLE_MPI:BOOL=ON \
-D BUILD_SHARED_LIBS:BOOL=ON"
+package_specific_setup() {
+ # Apply patch to let Trilinos/Amesos work with SuperLUDist_3.3
+ cd ${UNPACK_PATH}/${EXTRACTSTO}/packages/amesos/src
+ patch Amesos_Superludist.cpp < ${ORIG_DIR}/${PROJECT}/patches/Amesos_Superludist.cpp.patch
+}
+
package_specific_register () {
export TRILINOS_DIR=${INSTALL_PATH}
}