On 15 March 2016 at 08:04, Nick Coghlan <ncogh...@gmail.com> wrote: > On 15 March 2016 at 15:15, Martin Panter <vadmium...@gmail.com> wrote: >> _freeze_importlib.o: _freeze_importlib.c Makefile >> >> _freeze_importlib: _freeze_importlib.o [. . .] >> $(LINKCC) [. . .] >> >> importlib_external.h: _bootstrap_external.py _freeze_importlib >> _freeze_importlib _bootstrap_external.py importlib_external.h >> >> importlib.h: _bootstrap.py _freeze_importlib >> _freeze_importlib _bootstrap.py importlib.h > > Ah, I understand now - the fundamental problem is with a checked in > file depending on a non-checked-in file, so if you clean out all the > native build artifacts when cross-compiling, the makefile will attempt > to create target versions of all the helper utilities (pgen, > _freeze_importlib, argument clinic, etc). > > Would it help to have a "make bootstrap" target that touched all the > checked in generated files with build dependencies on non-checked-in > files, but only after first touching the expected locations of the > built binaries they depend on?
That sounds similar to “make touch”, with a couple differences. One trouble I forsee is the conflict with shared prerequisites. E.g. “make bootstrap” would have to create some dummy object files as prerequisites of the pgen program, but we would first have build others e.g. Parser/acceler.o properly for the main Python library. It all feels way too complicated to me. The Python build system is complicated enough as it is. Maybe it is simplest to just add something in the spirit of Xavier’s suggested patch. This would mean that we keep the generated files checked in (to help with Windows and cross compiled builds), we keep the current rules that force normal makefile builds to blindly regenerate the files, but we add some flag or configure.ac check to disable this regeneration if desired. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com