xref: /petsc/configure (revision 9355304c20c4807d03520f8f9d708220690b2263)
13f0ec617SSatish Balay#!/bin/sh
23f0ec617SSatish Balay
33f0ec617SSatish Balay"true" '''\'
43f0ec617SSatish Balayfor pyimpl in python3 python python2; do
585290d95SSatish Balay  which $pyimpl > /dev/null 2>&1
685290d95SSatish Balay  if [ $? -eq 0 ]; then
7a619e86cSBarry Smith    exec $pyimpl "$0" "$@"
885290d95SSatish Balay  fi
93f0ec617SSatish Balaydone
10becf0a19SJed Brownecho "Error! Could not locate Python! Please install and have python3, python, or python2 in PATH."
113f0ec617SSatish Balayecho "Or use: /path/to/valid/python configure $@"
123f0ec617SSatish Balayexit 127
133f0ec617SSatish Balay'''
14a8bae526SJed Brown
15a3e07f7dSJed Brownimport sys, os
167fe2cf7aSSatish Balay
17*9355304cSJacob Faibussowitschbanner_length = 93
18*9355304cSJacob Faibussowitschbanner_sep    = '*'
19*9355304cSJacob Faibussowitschbanner_line   = banner_sep*banner_length
20d1c7e401SJacob Faibussowitsch
21*9355304cSJacob Faibussowitschif sys.version_info < (3,0):
22*9355304cSJacob Faibussowitsch  print(banner_line)
23*9355304cSJacob Faibussowitsch  print(banner_sep+'python2 support in configure is deprecated'.center(banner_length-2)+banner_sep)
24*9355304cSJacob Faibussowitsch  print(banner_sep+'PETSc version 3.18+ will require at least python3.4'.center(banner_length-2)+banner_sep)
25*9355304cSJacob Faibussowitsch  print(banner_line)
26*9355304cSJacob Faibussowitsch
27*9355304cSJacob Faibussowitschif sys.version_info < (2,7) or ((3,0) <= sys.version_info < (3,4)):
28*9355304cSJacob Faibussowitsch  print(banner_line)
29*9355304cSJacob Faibussowitsch  print(banner_sep+'Python version 2.7 or 3.4+ is required to run ./configure'.center(banner_length-2)+banner_sep)
30*9355304cSJacob Faibussowitsch  print(banner_sep+'Try: "python3 ./configure" or "python2.7 ./configure"'.center(banner_length-2)+banner_sep)
31*9355304cSJacob Faibussowitsch  print(banner_line)
327fe2cf7aSSatish Balay  sys.exit(4)
337fe2cf7aSSatish Balay
34813ae6e9SJed Brownsys.path.insert(0, os.path.abspath('config'))
35813ae6e9SJed Brownimport configure
36813ae6e9SJed Brownconfigure.petsc_configure([])
37