@@ -128,7 +128,27 @@ PIP_PACKAGES = @SAGE_PIP_PACKAGES@
128
128
# Packages that use the 'script' package build rules
129
129
SCRIPT_PACKAGES = @SAGE_SCRIPT_PACKAGES@
130
130
131
-
131
+ # Packages for which we build wheels for PyPI
132
+ PYPI_WHEEL_PACKAGES = \
133
+ sage_sws2rst \
134
+ sage_setup \
135
+ sagemath_environment \
136
+ sagemath_objects \
137
+ sagemath_repl \
138
+ sagemath_categories \
139
+ sagemath_giac \
140
+ sagemath_flint_arb \
141
+ sagemath_gap \
142
+ sagemath_homfly
143
+
144
+ # sage_docbuild is here, not in PYPI_WHEEL_PACKAGES, because it depends on sagelib
145
+ WHEEL_PACKAGES = $(PYPI_WHEEL_PACKAGES ) \
146
+ sage_conf \
147
+ sagelib \
148
+ sage_docbuild
149
+
150
+ # Packages for which build sdists for PyPI
151
+ PYPI_SDIST_PACKAGES = $(WHEEL_PACKAGES )
132
152
133
153
# Generate the actual inst_<pkgname> variables; for each package that is
134
154
# actually built this generates a line like:
@@ -198,6 +218,7 @@ SAGE_I_TARGETS = sagelib doc
198
218
# Tell make not to look for files with these names:
199
219
.PHONY : all all-sage all-toolchain all-build all-sageruntime \
200
220
all-start build-start base toolchain toolchain-deps base-toolchain \
221
+ pypi-sdists pypi-wheels wheels \
201
222
sagelib \
202
223
doc doc-html doc-html-jsmath doc-html-mathjax doc-pdf \
203
224
doc-uninstall \
@@ -418,6 +439,25 @@ list-broken-packages: auditwheel_or_delocate
418
439
echo >&2 " $$ fix_broken_packages" ; \
419
440
fi
420
441
442
+ pypi-sdists : $(PYPI_SDIST_PACKAGES:%=%-sdist )
443
+ @echo " Built sdists are in upstream/"
444
+
445
+ # Ensuring wheels are present, even for packages that may have been installed
446
+ # as editable. Until we have better uninstallation of script packages, we
447
+ # just remove the timestamps, which will lead to rebuilds of the packages.
448
+ pypi-wheels :
449
+ for a in $( PYPI_WHEEL_PACKAGES) ; do \
450
+ rm -f venv/var/lib/sage/installed/$$ a-* ; \
451
+ done
452
+ $(MAKE_REC ) SAGE_EDITABLE=no SAGE_WHEELS=yes $(PYPI_WHEEL_PACKAGES )
453
+ @echo " Built wheels are in venv/var/lib/sage/wheels/"
454
+
455
+ wheels :
456
+ for a in $( WHEEL_PACKAGES) ; do \
457
+ rm -f venv/var/lib/sage/installed/$$ a-* ; \
458
+ done
459
+ $(MAKE_REC ) SAGE_EDITABLE=no SAGE_WHEELS=yes $(WHEEL_PACKAGES )
460
+ @echo " Built wheels are in venv/var/lib/sage/wheels/"
421
461
422
462
# ==============================================================================
423
463
# Setting SAGE_CHECK... variables
@@ -711,6 +751,13 @@ $(1)-uninstall: $(1)-$(4)-uninstall
711
751
712
752
$(1 ) -clean: $(1 ) -uninstall
713
753
754
+ $(1 ) -sdist: FORCE python_build sage_setup cython
755
+ $(AM_V_at ) cd '$$(SAGE_ROOT ) ' && \
756
+ . '$$(SAGE_ROOT ) /src/bin/sage-src-env-config' && \
757
+ . '$$(SAGE_ROOT ) /src/bin/sage-env-config' && \
758
+ . '$$(SAGE_ROOT ) /src/bin/sage-env' && \
759
+ '$$(SAGE_ROOT ) /build/pkgs/$(1 ) /spkg-src'
760
+
714
761
# Recursive tox invocation (note - we do not set the environment here).
715
762
# Setting SAGE_SPKG_WHEELS is for the benefit of sagelib's tox.ini
716
763
$(1 ) -tox-%: FORCE
0 commit comments