# This is trinary, ha ha!
export SAGE_DEBUG=no
+# Print the path to either ninja (default) or samurai (if set via
+# $NINJA).
+_sage_find_ninja(){
+ [ -z "${NINJA}" ] && NINJA=ninja
+ command -v "${NINJA}"
+}
+
+# We have to export this because sage likes to re-bootstrap and
+# re-configure itself every time you change a comment in an m4 file,
+# and it won't re-configure with this variable set. So then after
+# five minutes you'll get an error from --with-system-ninja=force.
+export ac_cv_path_NINJA=$(_sage_find_ninja)
+
# Run ./configure within the SageMath git repository. This tweaks all
# of the flags that I don't want to tweak manually:
#
# * --enable-download-from-upstream-url: needed when adding new SPKGs
# * --disable-r: I don't really use R
# * --disable-cvxopt: I don't really use cvxopt
+# * --disable-notebook: self-explanatory
+# * --disable-doc: when I'm building sage just to use it, I don't want
+# to double the build time to get the HTML docs.
+# Override with "sage-configure --enable-doc".
# * --with-system-foo=force: ensure that the system packages I have
# installed are actually used.
#
+# We also override the autoconf variable used to detect ninja, because
+# it does a version check that isn't compatible with samurai.
sage-configure() {
./configure \
--enable-download-from-upstream-url \
- --disable-r \
+ --enable-system-site-packages \
+ --disable-editable \
--disable-cvxopt \
+ --disable-doc \
--disable-notebook \
+ --disable-r \
--with-system-arb=force \
+ --with-system-asttokens=force \
+ --with-system-attrs=force \
+ --with-system-backcall=force \
+ --with-system-beniget=force \
--with-system-boost_cropped=force \
--with-system-brial=force \
--with-system-bzip2=force \
--with-system-cddlib=force \
+ --with-system-certifi=force \
+ --with-system-cffi=force \
+ --with-system-charset_normalizer=force \
--with-system-cliquer=force \
--with-system-cmake=force \
+ --with-system-contourpy=force \
+ --with-system-conway_polynomials=force \
+ --with-system-cppy=force \
--with-system-curl=force \
+ --with-system-cycler=force \
+ --with-system-cypari=force \
+ --with-system-cysignals=force \
+ --with-system-cython=force \
+ --with-system-dateutil=force \
+ --with-system-debugpy=force \
+ --with-system-decorator=force \
+ --with-system-docutils=force \
--with-system-ecl=force \
--with-system-eclib=force \
+ --with-system-editables=force \
+ --with-system-entrypoints=force \
+ --with-system-executing=force \
--with-system-fflas_ffpack=force \
--with-system-flint=force \
+ --with-system-flit_core=force \
+ --with-system-fonttools=force \
--with-system-fplll=force \
+ --with-system-fpylll=force \
+ --with-system-gast=force \
--with-system-gc=force \
--with-system-gcc=force \
--with-system-gengetopt=force \
--with-system-giac=force \
--with-system-git=force \
--with-system-givaro=force \
+ --with-system-gmpy2=force \
--with-system-gsl=force \
+ --with-system-hatchling=force \
--with-system-iconv=force \
+ --with-system-idna=force \
--with-system-iml=force \
+ --with-system-importlib_metadata=force \
+ --with-system-ipython=force \
+ --with-system-ipywidgets=force \
--with-system-isl=force \
+ --with-system-jedi=force \
+ --with-system-jinja2=force \
+ --with-system-kiwisolver=force \
--with-system-lcalc=force \
--with-system-libatomic_ops=force \
--with-system-libbraiding=force \
--with-system-libpng=force \
--with-system-linbox=force \
--with-system-lrcalc=force \
+ --with-system-lrcalc_python=force \
--with-system-m4ri=force \
--with-system-m4rie=force \
+ --with-system-markupsafe=force \
+ --with-system-matplotlib=force \
+ --with-system-matplotlib_inline=force \
+ --with-system-maxima=force \
+ --with-system-memory_allocator=force \
+ --with-system-meson=force \
+ --with-system-meson_python=force \
--with-system-mpfr=force \
+ --with-system-mpmath=force \
--with-system-nauty=force \
+ --with-system-nest_asyncio=force \
+ --with-system-networkx=force \
--with-system-ncurses=force \
--with-system-ninja_build=force \
--with-system-ntl=force \
+ --with-system-numpy=force \
--with-system-openblas=force \
+ --with-system-packaging=force \
--with-system-pari=force \
+ --with-system-parso=force \
--with-system-patch=force \
+ --with-system-patchelf=force \
+ --with-system-pathspec=force \
--with-system-perl_term_readline_gnu=force \
+ --with-system-pexpect=force \
+ --with-system-pickleshare=force \
+ --with-system-pillow=force \
+ --with-system-pip=force \
+ --with-system-pkgconfig=force \
--with-system-planarity=force \
+ --with-system-platformdirs=force \
+ --with-system-ply=force \
+ --with-system-pluggy=force \
--with-system-ppl=force \
+ --with-system-pplpy=force \
--with-system-primecount=force \
+ --with-system-primecountpy=force \
--with-system-primesieve=force \
+ --with-system-prompt_toolkit=force \
+ --with-system-ptyprocess=force \
+ --with-system-pure_eval=force \
+ --with-system-pybind11=force \
+ --with-system-pygments=force \
+ --with-system-pyparsing=force \
+ --with-system-pyproject_metadata=force \
--with-system-python3=force \
+ --with-system-pyrsistent=force \
+ --with-system-pythran=force \
+ --with-system-pyzmq=force \
--with-system-qhull=force \
--with-system-readline=force \
+ --with-system-requests=force \
--with-system-rw=force \
+ --with-system-scipy=force \
+ --with-system-setuptools_scm=force \
--with-system-singular=force \
+ --with-system-six=force \
--with-system-sqlite=force \
- --with-system-suitesparse=force \
+ --with-system-stack_data=force \
--with-system-symmetrica=force \
--with-system-sympow=force \
+ --with-system-sympy=force \
--with-system-tachyon=force \
+ --with-system-tomli=force \
+ --with-system-tornado=force \
--with-system-tox=force \
+ --with-system-traitlets=force \
+ --with-system-typing_extensions=force \
+ --with-system-urllib3=force \
+ --with-system-wcwidth=force \
+ --with-system-wheel=force \
--with-system-xz=force \
--with-system-zeromq=force \
+ --with-system-zipp=force \
--with-system-zlib=force \
"${@}"
}