bpo-37725: have "make clean" remove PGO task data (#15033) · python/cpython@c6bbcd2 (original) (raw)

`@@ -461,7 +461,7 @@ check-clean-src:

`

461

461

``

462

462

`# Profile generation build must start from a clean tree.

`

463

463

`profile-clean-stamp:

`

464

``

`-

$(MAKE) clean profile-removal

`

``

464

`+

$(MAKE) clean

`

465

465

` touch $@

`

466

466

``

467

467

`# Compile with profile generation enabled.

`

`@@ -485,7 +485,7 @@ profile-run-stamp:

`

485

485

` $(MAKE) run_profile_task

`

486

486

` $(MAKE) build_all_merge_profile

`

487

487

` # Remove profile generation binary since we are done with it.

`

488

``

`-

$(MAKE) clean

`

``

488

`+

$(MAKE) clean-retain-profile

`

489

489

` # This is an expensive target to build and it does not have proper

`

490

490

` # makefile dependency information. So, we create a "stamp" file

`

491

491

` # to record its completion and avoid re-running it.

`

`@@ -512,7 +512,7 @@ profile-opt: profile-run-stamp

`

512

512

`.PHONY=coverage coverage-lcov coverage-report

`

513

513

`coverage:

`

514

514

` @echo "Building with support for coverage checking:"

`

515

``

`-

$(MAKE) clean profile-removal

`

``

515

`+

$(MAKE) clean

`

516

516

` (MAKE)@DEFMAKERULE@CFLAGS="(MAKE) @DEF_MAKE_RULE@ CFLAGS="(MAKE)@DEFMAKERULE@CFLAGS="(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"

`

517

517

``

518

518

`coverage-lcov:

`

`@@ -1752,7 +1752,9 @@ docclean:

`

1752

1752

` -rm -rf Doc/build

`

1753

1753

` -rm -rf Doc/tools/sphinx Doc/tools/pygments Doc/tools/docutils

`

1754

1754

``

1755

``

`-

clean: pycremoval

`

``

1755

`+

like the 'clean' target but retain the profile guided optimization (PGO)

`

``

1756

`+

data. The PGO data is only valid if source code remains unchanged.

`

``

1757

`+

clean-retain-profile: pycremoval

`

1756

1758

` find . -name '*.[oa]' -exec rm -f {} ';'

`

1757

1759

` find . -name '*.s[ol]' -exec rm -f {} ';'

`

1758

1760

` find . -name '.so.[0-9].[0-9]*' -exec rm -f {} ';'

`

`@@ -1774,14 +1776,19 @@ profile-removal:

`

1774

1776

` rm -rf $(COVERAGE_REPORT)

`

1775

1777

` rm -f profile-run-stamp

`

1776

1778

``

1777

``

`-

clobber: clean profile-removal

`

``

1779

`+

clean: clean-retain-profile

`

``

1780

`+

@if test @DEF_MAKE_ALL_RULE@ = profile-opt; then \

`

``

1781

`+

rm -f profile-gen-stamp profile-clean-stamp; \

`

``

1782

`+

$(MAKE) profile-removal; \

`

``

1783

`+

fi

`

``

1784

+

``

1785

`+

clobber: clean

`

1778

1786

` -rm -f (BUILDPYTHON)(BUILDPYTHON) (BUILDPYTHON)(LIBRARY) (LDLIBRARY)(LDLIBRARY) (LDLIBRARY)(DLLLIBRARY) \

`

1779

1787

` tags TAGS \

`

1780

1788

` config.cache config.log pyconfig.h Modules/config.c

`

1781

1789

` -rm -rf build platform

`

1782

1790

` -rm -rf $(PYTHONFRAMEWORKDIR)

`

1783

1791

` -rm -f python-config.py python-config

`

1784

``

`-

-rm -f profile-gen-stamp profile-clean-stamp

`

1785

1792

``

1786

1793

`# Make things extra clean, before making a distribution:

`

1787

1794

`# remove all generated files, even Makefile[.pre]

`

`@@ -1855,6 +1862,8 @@ Python/thread.o: @THREADHEADERS@ $(srcdir)/Python/condvar.h

`

1855

1862

`.PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools

`

1856

1863

`.PHONY: frameworkaltinstallunixtools recheck clean clobber distclean

`

1857

1864

`.PHONY: smelly funny patchcheck touch altmaninstall commoninstall

`

``

1865

`+

.PHONY: clean-retain-profile profile-removal run_profile_task

`

``

1866

`+

.PHONY: build_all_generate_profile build_all_merge_profile

`

1858

1867

`.PHONY: gdbhooks

`

1859

1868

``

1860

1869

`# IF YOU PUT ANYTHING HERE IT WILL GO AWAY

`