@@ -86,19 +86,28 @@ GCC_DEP = @SAGE_GCC_DEP@
8686
8787@SAGE_PACKAGE_DEPENDENCIES@
8888
89- # All standard packages
90- STANDARD_PACKAGES = @SAGE_STANDARD_PACKAGES@
91- STANDARD_PACKAGE_INSTS = \
92- $(foreach pkgname,$(STANDARD_PACKAGES ) ,$(inst_$(pkgname ) ) )
89+ # Installation trees for all packages, in the format:
90+ #
91+ # - for a non-Python package:
92+ #
93+ # trees_<pkgname1> = SAGE_LOCAL
94+ #
95+ # - for a Python package:
96+ #
97+ # trees_<pkgname2> = SAGE_VENV
98+
99+ @SAGE_PACKAGE_TREES@
93100
94- # All optional installed packages (triggers the auto-update)
101+ # All standard/ optional/experimental installed packages (triggers the auto-update)
95102OPTIONAL_INSTALLED_PACKAGES = @SAGE_OPTIONAL_INSTALLED_PACKAGES@
96- OPTIONAL_INSTALLED_PACKAGE_INSTS = \
97- $(foreach pkgname,$(OPTIONAL_INSTALLED_PACKAGES ) ,$(inst_$(pkgname ) ) )
103+ INSTALLED_PACKAGES = $(OPTIONAL_INSTALLED_PACKAGES )
104+ INSTALLED_PACKAGE_INSTS = \
105+ $(foreach pkgname,$(INSTALLED_PACKAGES ) ,$(inst_$(pkgname ) ) )
98106
99- # All previously installed optional packages that are to be uninstalled
100- OPTIONAL_CLEANED_PACKAGES = @SAGE_OPTIONAL_CLEANED_PACKAGES@
101- OPTIONAL_CLEANED_PACKAGES_CLEANS = $(OPTIONAL_CLEANED_PACKAGES:%=%-clean )
107+ # All previously installed standard/optional/experimental packages that are to be uninstalled
108+ OPTIONAL_UNINSTALLED_PACKAGES = @SAGE_OPTIONAL_UNINSTALLED_PACKAGES@
109+ UNINSTALLED_PACKAGES = $(OPTIONAL_UNINSTALLED_PACKAGES )
110+ UNINSTALLED_PACKAGES_CLEANS = $(UNINSTALLED_PACKAGES:%=%-clean )
102111
103112# All packages which should be downloaded
104113SDIST_PACKAGES = @SAGE_SDIST_PACKAGES@
@@ -146,6 +155,18 @@ $(INST)/.dummy:
146155 touch $@
147156
148157
158+ # Filtered by installation tree
159+ $(foreach tree,SAGE_LOCAL SAGE_VENV, \
160+ $(eval $(tree)_INSTALLED_PACKAGE_INSTS = \
161+ $(foreach pkgname,$(INSTALLED_PACKAGES), \
162+ $(if $(findstring $(tree),$(trees_$(pkgname))), \
163+ $(inst_$(pkgname))))) \
164+ $(eval $(tree)_CLEANED_PACKAGE_CLEANS = \
165+ $(foreach pkgname,$(INSTALLED_PACKAGES), \
166+ $(if $(findstring $(tree),$(trees_$(pkgname))), \
167+ $(inst_$(pkgname))))))
168+
169+
149170# ##############################################################################
150171
151172# Silent rules
@@ -211,9 +232,19 @@ base-toolchain: _clean-broken-gcc base
211232# All targets except for the base packages
212233all-sage : \
213234 sagelib \
214- $(STANDARD_PACKAGE_INSTS ) \
215- $(OPTIONAL_INSTALLED_PACKAGE_INSTS ) \
216- $(OPTIONAL_CLEANED_PACKAGES_CLEANS)
235+ $(INSTALLED_PACKAGE_INSTS ) \
236+ $(UNINSTALLED_PACKAGES_CLEANS)
237+
238+ # Same but filtered by installation trees:
239+ all-build-local : toolchain-deps
240+ +$(MAKE_REC ) all-sage-local
241+
242+ all-sage-local : $(SAGE_LOCAL_INSTALLED_PACKAGE_INSTS ) $(SAGE_LOCAL_UNINSTALLED_PACKAGES_CLEANS )
243+
244+ all-build-venv : toolchain-deps
245+ +$(MAKE_REC ) all-sage-venv
246+
247+ all-sage-venv : $(SAGE_VENV_INSTALLED_PACKAGE_INSTS ) $(SAGE_VENV_UNINSTALLED_PACKAGES_CLEANS )
217248
218249# Download all packages which should be inside an sdist tarball (the -B
219250# option to make forces all targets to be built unconditionally)
@@ -268,7 +299,7 @@ build-start: all-build
268299# We make this depend on all standard packages because running
269300# sage-starts runs sage-location, which should be run after installing
270301# any package.
271- $(STARTED ) : $(STANDARD_PACKAGE_INSTS )
302+ $(STARTED ) : $(OPTIONAL_INSTALLED_PACKAGE_INSTS )
272303 $(AM_V_at ) " $( SAGE_ROOT) /build/bin/sage-starts"
273304
274305
0 commit comments