diff --git a/lib/am/python.am b/lib/am/python.am index 21e6f842c..e29ecfcd0 100644 --- a/lib/am/python.am +++ b/lib/am/python.am @@ -97,7 +97,7 @@ endif %?INSTALL% if %?INSTALL% ?FIRST?am__pep3147_tweak = \ -?FIRST? sed -e 's|\.py$$||' -e 's|[^/]*$$|&.*.pyc\n&.*.pyo|' +?FIRST? sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|' .PHONY uninstall-am: uninstall-%DIR%PYTHON uninstall-%DIR%PYTHON: @@ -108,19 +108,26 @@ uninstall-%DIR%PYTHON: test -n "$$py_files" || exit 0; \ dir='$(DESTDIR)$(%NDIR%dir)'; \ ## Also remove the .pyc and .pyo byte compiled versions. +## This is somewhat tricky, because for newer pythons we have to take +## PEP-3147 into account. pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \ pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \ + py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \ + echo "$$py_files_pep3147";\ + pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \ + pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \ st=0; \ - for files in "$$py_files" "$$pyc_files" "$$pyo_files"; do \ + for files in \ + "$$py_files" \ + "$$pyc_files" \ + "$$pyo_files" \ +## Installation of '.py' files is not influenced by PEP-3147, so it +## is correct *not* to have $pyfiles_pep3147 here. + "$$pyc_files_pep3147" \ + "$$pyo_files_pep3147" \ + ; do \ $(am__uninstall_files_from_dir) || st=$$?; \ done; \ -## This is somewhat tricky, because for newer pythons we have to take PEP-3147 -## into account. Avoid exceeding the command-line length limit. - dir='$(DESTDIR)$(%NDIR%dir)/__pycache__'; \ - echo "$$py_files" | $(am__pep3147_tweak) | $(am__base_list) | \ - while read files; do \ - $(am__uninstall_files_from_dir) || st=$$?; \ - done || exit $$?; \ exit $$st endif %?INSTALL%