Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
ThirdParty-common
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
7
Issues
7
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Development
ThirdParty-common
Commits
348b8cd4
Commit
348b8cd4
authored
Jun 18, 2020
by
Mark Olesen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CONFIG: support inplace petsc installations
parent
b9ace75d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
107 additions
and
85 deletions
+107
-85
BUILD.md
BUILD.md
+5
-0
makeHYPRE
makeHYPRE
+18
-43
makePETSC
makePETSC
+84
-42
No files found.
BUILD.md
View file @
348b8cd4
...
@@ -420,6 +420,7 @@ you may have additional hurdles to using the newest versions of clang.
...
@@ -420,6 +420,7 @@ you may have additional hurdles to using the newest versions of clang.
|
[
CGAL
][
page CGAL
]
|
[
download
][
link CGAL
]
|
[
CGAL
][
page CGAL
]
|
[
download
][
link CGAL
]
|
[
FFTW
][
page FFTW
]
|
[
download
][
link FFTW
]
|
[
FFTW
][
page FFTW
]
|
[
download
][
link FFTW
]
|
[
PETSC
][
page PETSC
]
|
[
download
][
link PETSC
]
|
[
PETSC
][
page PETSC
]
|
[
download
][
link PETSC
]
|
[
HYPRE
][
page HYPRE
]
|
[
repo
][
repo HYPRE
]
or
[
download
][
link HYPRE
]
|
[
ADF/CGNS
][
page CGNS
]
, ccm |
[
link ccmio
][
link ccmio
]
|
[
ADF/CGNS
][
page CGNS
]
, ccm |
[
link ccmio
][
link ccmio
]
| gperftools |
[
repo
][
repo gperftools
]
or
[
download
][
link gperftools
]
| gperftools |
[
repo
][
repo gperftools
]
or
[
download
][
link gperftools
]
...
@@ -565,6 +566,10 @@ easier to use `grep` and find the relevant pages and links.
...
@@ -565,6 +566,10 @@ easier to use `grep` and find the relevant pages and links.
[
page petsc
]:
https://www.mcs.anl.gov/petsc/
[
page petsc
]:
https://www.mcs.anl.gov/petsc/
[
link petsc
]:
http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-3.13.2.tar.gz
[
link petsc
]:
http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-3.13.2.tar.gz
[
page hypre
]:
https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods/
[
repo hypre
]:
https://github.com/hypre-space/hypre/
[
link hypre
]:
https://github.com/hypre-space/hypre/archive/v2.19.0.tar.gz
[
page cgns
]:
http://cgns.github.io/
[
page cgns
]:
http://cgns.github.io/
[
link ccmio
]:
http://portal.nersc.gov/project/visit/third_party/libccmio-2.6.1.tar.gz
(check usage conditions)
[
link ccmio
]:
http://portal.nersc.gov/project/visit/third_party/libccmio-2.6.1.tar.gz
(check usage conditions)
[
altlink ccmio
]:
http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz
(check usage conditions)
[
altlink ccmio
]:
http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz
(check usage conditions)
...
...
makeHYPRE
View file @
348b8cd4
...
@@ -20,35 +20,7 @@
...
@@ -20,35 +20,7 @@
# ----------------------------------------------
# ----------------------------------------------
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Dynamic library ending (default is .so)
[
"
$(
uname
-s
)
"
=
Darwin
]
&&
EXT_SO
=
.dylib
||
EXT_SO
=
.so
# Short-circuit test for an installation
if
[
"
$1
"
=
"-test"
]
then
[
"$#"
-eq
2
]
||
{
echo
"
${
0
##*/
}
-test : needs 1 argument"
;
exit
1
;
}
dir
=
"
${
2
%/
}
"
# <- HYPRE_ARCH_PATH
if
[
-d
"
$dir
/include"
]
then
for
lib
in
\
$FOAM_EXT_LIBBIN
/libhypre
$EXT_SO
\
$dir
/lib/libhypre.a
\
$dir
/lib/libhypre
$EXT_SO
\
$dir
/lib
$WM_COMPILER_LIB_ARCH
/libhypre.a
\
$dir
/lib
$WM_COMPILER_LIB_ARCH
/libhypre
$EXT_SO
\
;
do
if
[
-r
"
$lib
"
]
then
echo
" hypre include:
$dir
/include"
echo
" hypre library:
${
lib
%/*
}
"
exit
0
fi
done
fi
exit
2
fi
#------------------------------------------------------------------------------
# Run from third-party directory only
# Run from third-party directory only
cd
"
${
0
%/*
}
"
||
exit
cd
"
${
0
%/*
}
"
||
exit
wmakeCheckPwd
"
$WM_THIRD_PARTY_DIR
"
2>/dev/null
||
{
wmakeCheckPwd
"
$WM_THIRD_PARTY_DIR
"
2>/dev/null
||
{
...
@@ -56,16 +28,11 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
...
@@ -56,16 +28,11 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
echo
" Check your OpenFOAM environment and installation"
echo
" Check your OpenFOAM environment and installation"
exit
1
exit
1
}
}
[
-n
"
$FOAM_EXT_LIBBIN
"
]
||
{
echo
"Error (
${
0
##*/
}
) :
\$
FOAM_EXT_LIBBIN not set"
echo
" Check your OpenFOAM environment and installation"
exit
1
}
.
etc/tools/ThirdPartyFunctions
.
etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
_foamConfig hypre
_foamConfig hypre
hyprePACKAGE
=
${
hypre_version
:-
hypre
-system
}
hyprePACKAGE
=
"
${
hypre_version
:-
hypre
-system
}
"
targetType
=
libso
targetType
=
libso
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
...
@@ -74,7 +41,7 @@ usage() {
...
@@ -74,7 +41,7 @@ usage() {
while
[
"$#"
-ge
1
]
;
do
echo
"
$1
"
;
shift
;
done
while
[
"$#"
-ge
1
]
;
do
echo
"
$1
"
;
shift
;
done
cat
<<
USAGE
cat
<<
USAGE
usage:
${
0
##*/
}
[OPTION] [lib|libso] [HYPRE-VERSION]
usage:
${
0
##*/
}
[OPTION] [lib|libso] [HYPRE-VERSION]
[-- configure-options]
options:
options:
-gcc Force use of gcc/g++
-gcc Force use of gcc/g++
-help
-help
...
@@ -83,6 +50,7 @@ options:
...
@@ -83,6 +50,7 @@ options:
${
hyprePACKAGE
:-
'unspecified hypre version'
}
${
hyprePACKAGE
:-
'unspecified hypre version'
}
USAGE
USAGE
showDownloadHint HYPRE
exit
1
exit
1
}
}
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
...
@@ -100,7 +68,7 @@ do
...
@@ -100,7 +68,7 @@ do
targetType
=
"
$1
"
targetType
=
"
$1
"
;;
;;
hypre-[0-9]
*
)
hypre-[0-9]
*
|
hypre-git
)
hyprePACKAGE
=
"
${
1
%%/
}
"
hyprePACKAGE
=
"
${
1
%%/
}
"
unset
HYPRE_ARCH_PATH
# Avoid inconsistency
unset
HYPRE_ARCH_PATH
# Avoid inconsistency
;;
;;
...
@@ -114,11 +82,11 @@ done
...
@@ -114,11 +82,11 @@ done
[
-n
"
$hyprePACKAGE
"
]
||
die
"The hypre-VERSION was not specified"
[
-n
"
$hyprePACKAGE
"
]
||
die
"The hypre-VERSION was not specified"
# Nothing to build
# Nothing to build
if
_foamIsNone
$hyprePACKAGE
if
_foamIsNone
"
$hyprePACKAGE
"
then
then
echo
"Using hypre-none (skip ThirdParty build of HYPRE)"
echo
"Using hypre-none (skip ThirdParty build of HYPRE)"
exit
0
exit
0
elif
_foamIsSystem
$hyprePACKAGE
elif
_foamIsSystem
"
$hyprePACKAGE
"
then
then
echo
"Using hypre-system"
echo
"Using hypre-system"
exit
0
exit
0
...
@@ -131,12 +99,12 @@ fi
...
@@ -131,12 +99,12 @@ fi
# HYPRE_ARCH_PATH : installation directory
# HYPRE_ARCH_PATH : installation directory
# HYPRE_SOURCE_DIR : location of the original sources
# HYPRE_SOURCE_DIR : location of the original sources
HYPRE_SOURCE_DIR
=
$sourceBASE
/
$hyprePACKAGE
HYPRE_SOURCE_DIR
=
"
$sourceBASE
/
$hyprePACKAGE
"
:
"
${
HYPRE_ARCH_PATH
:
=
$installBASE$WM_SIZE_OPTIONS
/
$hyprePACKAGE
}
"
:
"
${
HYPRE_ARCH_PATH
:
=
$installBASE$WM_SIZE_OPTIONS
/
$hyprePACKAGE
}
"
[
-d
"
$HYPRE_SOURCE_DIR
"
]
||
{
[
-d
"
$HYPRE_SOURCE_DIR
"
]
||
{
echo
"Missing sources: '
$hyprePACKAGE
'"
echo
"Missing sources: '
$hyprePACKAGE
'"
showDownloadHint HYP
ER
showDownloadHint HYP
RE
exit
1
exit
1
}
}
...
@@ -148,17 +116,24 @@ CXX="$(whichMpicxx)"
...
@@ -148,17 +116,24 @@ CXX="$(whichMpicxx)"
echo
"Starting build:
$hyprePACKAGE
(
$targetType
)"
echo
"Starting build:
$hyprePACKAGE
(
$targetType
)"
echo
echo
(
(
# Configuration options
:
# Configuration options
unset
configOpt
unset
configOpt
# Additional configure options
if
[
"
$1
"
=
"--"
]
then
shift
configOpt
=
"
$configOpt
$@
"
fi
cd
"
$HYPRE_SOURCE_DIR
/src"
||
exit
cd
"
$HYPRE_SOURCE_DIR
/src"
||
exit
export
GIT_DIR
=
"
$PWD
/.git"
# Mask seeing our own git-repo
export
GIT_DIR
=
"
$PWD
/.git"
# Mask seeing our own git-repo
rm
-rf
$HYPRE_ARCH_PATH
rm
-rf
"
$HYPRE_ARCH_PATH
"
[
-e
Makefile
]
&&
make distclean 2>/dev/null
[
-e
Makefile
]
&&
make distclean 2>/dev/null
./configure
\
./configure
\
--prefix
=
$HYPRE_ARCH_PATH
\
--prefix
=
"
$HYPRE_ARCH_PATH
"
\
--disable-fortran
\
--disable-fortran
\
--enable-shared
\
--enable-shared
\
$configOpt
\
$configOpt
\
...
...
makePETSC
View file @
348b8cd4
...
@@ -20,35 +20,7 @@
...
@@ -20,35 +20,7 @@
# ----------------------------------------------
# ----------------------------------------------
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Dynamic library ending (default is .so)
[
"
$(
uname
-s
)
"
=
Darwin
]
&&
EXT_SO
=
.dylib
||
EXT_SO
=
.so
# Short-circuit test for an installation
if
[
"
$1
"
=
"-test"
]
then
[
"$#"
-eq
2
]
||
{
echo
"
${
0
##*/
}
-test : needs 1 argument"
;
exit
1
;
}
dir
=
"
${
2
%/
}
"
# <- *_ARCH_PATH
if
[
-d
"
$dir
/include"
]
then
for
lib
in
\
$FOAM_EXT_LIBBIN
/libpetsc
$EXT_SO
\
$dir
/lib/libpetsc.a
\
$dir
/lib/libpetsc
$EXT_SO
\
$dir
/lib
$WM_COMPILER_LIB_ARCH
/libpetsc.a
\
$dir
/lib
$WM_COMPILER_LIB_ARCH
/libpetsc
$EXT_SO
\
;
do
if
[
-r
"
$lib
"
]
then
echo
" petsc include:
$dir
/include"
echo
" petsc library:
${
lib
%/*
}
"
exit
0
fi
done
fi
exit
2
fi
#------------------------------------------------------------------------------
# Run from third-party directory only
# Run from third-party directory only
cd
"
${
0
%/*
}
"
||
exit
cd
"
${
0
%/*
}
"
||
exit
wmakeCheckPwd
"
$WM_THIRD_PARTY_DIR
"
2>/dev/null
||
{
wmakeCheckPwd
"
$WM_THIRD_PARTY_DIR
"
2>/dev/null
||
{
...
@@ -56,38 +28,44 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
...
@@ -56,38 +28,44 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
echo
" Check your OpenFOAM environment and installation"
echo
" Check your OpenFOAM environment and installation"
exit
1
exit
1
}
}
[
-n
"
$FOAM_EXT_LIBBIN
"
]
||
{
echo
"Error (
${
0
##*/
}
) :
\$
FOAM_EXT_LIBBIN not set"
echo
" Check your OpenFOAM environment and installation"
exit
1
}
.
etc/tools/ThirdPartyFunctions
.
etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
_foamConfig hypre
_foamConfig petsc
_foamConfig petsc
petscPACKAGE
=
${
petsc_version
:-
petsc
-system
}
hyprePACKAGE
=
"
${
hypre_version
:-
hypre
-none
}
"
petscPACKAGE
=
"
${
petsc_version
:-
petsc
-system
}
"
targetType
=
libso
targetType
=
libso
# Should be possible to build with download, but seems to fail
# hypreURL="https://github.com/hypre-space/hypre/archive/v2.14.0.tar.gz"
unset
hypreURL
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
usage
()
{
usage
()
{
exec
1>&2
exec
1>&2
while
[
"$#"
-ge
1
]
;
do
echo
"
$1
"
;
shift
;
done
while
[
"$#"
-ge
1
]
;
do
echo
"
$1
"
;
shift
;
done
cat
<<
USAGE
cat
<<
USAGE
usage:
${
0
##*/
}
[OPTION] [lib|libso] [
PETSC-VERSION
]
usage:
${
0
##*/
}
[OPTION] [lib|libso] [
HYPRE-VERSION] [PETSC-VERSION] [-- configure-options
]
options:
options:
-gcc Force use of gcc/g++
-gcc Force use of gcc/g++
-inplace Build/install inplace (expert option)
-no-hype Disable automatic hypre detection
-help
-help
* build PETSC with
* build PETSC with
${
petscPACKAGE
:-
'unspecified petsc version'
}
${
petscPACKAGE
:-
'unspecified petsc version'
}
USAGE
USAGE
showDownloadHint PETSC
exit
1
exit
1
}
}
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
exportCompiler
# Compiler info for CMake/configure
exportCompiler
# Compiler info for CMake/configure
unset
optInplace
# Parse options
# Parse options
while
[
"$#"
-gt
0
]
while
[
"$#"
-gt
0
]
do
do
...
@@ -96,10 +74,24 @@ do
...
@@ -96,10 +74,24 @@ do
-h
|
-help
)
usage
;;
-h
|
-help
)
usage
;;
-gcc
)
useGcc
;;
-gcc
)
useGcc
;;
-inplace
)
optInplace
=
true
;;
lib|libso
)
lib|libso
)
targetType
=
"
$1
"
targetType
=
"
$1
"
;;
;;
-no-hypre
)
unset
hyprePACKAGE hypreURL
unset
HYPRE_ARCH_PATH
;;
hypre-[0-9]
*
|
hypre-git
)
hyprePACKAGE
=
"
${
1
%%/
}
"
unset
hypreURL
unset
HYPRE_ARCH_PATH
# Avoid inconsistency
;;
petsc-[0-9]
*
|
petsc-git
)
petsc-[0-9]
*
|
petsc-git
)
petscPACKAGE
=
"
${
1
%%/
}
"
petscPACKAGE
=
"
${
1
%%/
}
"
unset
PETSC_ARCH_PATH
# Avoid inconsistency
unset
PETSC_ARCH_PATH
# Avoid inconsistency
...
@@ -124,6 +116,20 @@ then
...
@@ -124,6 +116,20 @@ then
exit
0
exit
0
fi
fi
#------------------------------------------------------------------------------
# Integrations
# No hypre
if
_foamIsNone
"
$hyprePACKAGE
"
then
:
elif
[
-n
"
$hyprePACKAGE
"
]
then
# Clunky
:
"
${
HYPRE_ARCH_PATH
:
=
$installBASE$WM_SIZE_OPTIONS
/
$hyprePACKAGE
}
"
fi
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#
#
# Build PETSC
# Build PETSC
...
@@ -141,15 +147,47 @@ PETSC_SOURCE_DIR="$sourceBASE/$petscPACKAGE"
...
@@ -141,15 +147,47 @@ PETSC_SOURCE_DIR="$sourceBASE/$petscPACKAGE"
}
}
# PETSC arch - same root as WM_OPTIONS (eg, DPInt32)
archOpt
=
"
$WM_SIZE_OPTIONS
"
if
[
-n
"
$optInplace
"
]
then
unset
installPrefix
# No install stage requires
makeInstall
()
{
true
;
}
else
# Regular installation location
installPrefix
=
"
$PETSC_ARCH_PATH
"
makeInstall
()
{
make
PETSC_DIR
=
"
$PETSC_SOURCE_DIR
"
PETSC_ARCH
=
"
$archOpt
"
install
}
fi
echo
"Starting build:
$petscPACKAGE
(
$targetType
)"
echo
"Starting build:
$petscPACKAGE
(
$targetType
)"
echo
echo
(
(
# PETSC arch - same root as WM_OPTIONS (eg, DPInt32)
archOpt
=
"
$WM_SIZE_OPTIONS
"
# Configuration options
# Configuration options
configOpt
=
"--with-cc=
$(
whichMpicc
)
--with-cxx=
$(
whichMpicxx
)
"
configOpt
=
"--with-cc=
$(
whichMpicc
)
--with-cxx=
$(
whichMpicxx
)
"
# Normally want hypre but this is really clunky
if
[
-f
"
$HYPRE_ARCH_PATH
/include/HYPRE.h"
]
then
echo
"Has installed hypre:
$hyprePACKAGE
"
configOpt
=
"
$configOpt
--with-hypre-dir=
$HYPRE_ARCH_PATH
"
elif
[
-n
"
$urlHypre
"
]
then
configOpt
=
"
$configOpt
--download-hypre=
$urlHypre
"
fi
# Additional configure options
if
[
"
$1
"
=
"--"
]
then
shift
configOpt
=
"
$configOpt
$@
"
fi
if
[
"
$targetType
"
=
libso
]
if
[
"
$targetType
"
=
libso
]
then
then
configOpt
=
"
$configOpt
--with-shared-libraries"
configOpt
=
"
$configOpt
--with-shared-libraries"
...
@@ -179,25 +217,29 @@ echo
...
@@ -179,25 +217,29 @@ echo
export
GIT_DIR
=
"
$PWD
/.git"
# Mask seeing our own git-repo
export
GIT_DIR
=
"
$PWD
/.git"
# Mask seeing our own git-repo
rm
-rf
"
$PETSC_ARCH_PATH
"
rm
-rf
"
$PETSC_ARCH_PATH
"
# No clean here, if we have multiple arch in the same directory
## without tests? --testdir=..
## without tests? --testdir=..
## configOpt="$configOpt --download-f2cblaslapack=1"
set
-x
set
-x
./configure
\
./configure
\
--prefix
=
"
$PETSC_ARCH_PATH
"
\
${
installPrefix
:+--prefix
=
"
$installPrefix
"
}
\
--PETSC_DIR
=
"
$PETSC_SOURCE_DIR
"
\
--with-petsc-arch
=
"
$archOpt
"
\
--with-petsc-arch
=
"
$archOpt
"
\
--with-clanguage
=
C
\
--with-clanguage
=
C
\
--with-fc
=
0
\
--with-fc
=
0
\
--with-scalapack
=
0
\
--with-scalapack
=
0
\
--with-superlu_dist
=
0
\
--with-superlu_dist
=
0
\
--with-suitesparse
=
0
\
--with-suitesparse
=
0
\
--
download-f2cblaslapack
=
1
\
--
with-x
=
0
\
$configOpt
\
$configOpt
\
&&
set
+x
\
&&
set
+x
\
&&
echo
"Configured: petsc"
\
&&
echo
"Configured: petsc"
\
&&
make
PETSC_DIR
=
"
$PETSC_SOURCE_DIR
"
PETSC_ARCH
=
"
$archOpt
"
all
\
&&
make
${
WM_NCOMPPROCS
:+-j
$WM_NCOMPPROCS
}
\
PETSC_DIR
=
"
$PETSC_SOURCE_DIR
"
PETSC_ARCH
=
"
$archOpt
"
all
\
&&
echo
"Built: petsc"
\
&&
echo
"Built: petsc"
\
&&
make
PETSC_DIR
=
"
$PETSC_SOURCE_DIR
"
PETSC_ARCH
=
"
$archOpt
"
i
nstall
\
&&
make
I
nstall
\
&&
echo
"Installed: petsc - may require etc/pkgconfigPrefix to relocate"
&&
echo
"Installed: petsc - may require etc/pkgconfigPrefix to relocate"
)
||
{
)
||
{
echo
"Error building: petsc"
echo
"Error building: petsc"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment