Index: ChangeLog =================================================================== RCS file: /cvs/automake/automake/ChangeLog,v retrieving revision 1.2688 diff -u -r1.2688 ChangeLog --- ChangeLog 10 Nov 2004 20:12:22 -0000 1.2688 +++ ChangeLog 16 Nov 2004 02:57:09 -0000 @@ -1,3 +1,12 @@ +2004-11-15 Toshio Kuratomi + + * lib/py-compile: Add --destdir switch to py-compile that takes a + path argument that is not compiled into the file when byte compiling. + * lib/am/python.am: Use the new py-compile arguments to not include + DESTDIR in the byte compiled files. + * tests/python12.test: Test that DESTDIR won't be byte compiled into + python files. + 2004-11-10 Alexandre Duret-Lutz * m4/python.m4 (AM_PATH_PYTHON): Fix the invocation of Index: lib/py-compile =================================================================== RCS file: /cvs/automake/automake/lib/py-compile,v retrieving revision 1.5 diff -u -r1.5 py-compile --- lib/py-compile 12 Jan 2004 22:56:48 -0000 1.5 +++ lib/py-compile 16 Nov 2004 02:57:09 -0000 @@ -1,7 +1,8 @@ #!/bin/sh # py-compile - Compile a Python program -scriptversion=2004-01-12.23 +scriptversion=2004-11-15.14 +#scriptversion=2004-01-12.23 # Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc. @@ -34,34 +35,54 @@ fi basedir= +destdir= +files= +while test $# -ne 0; do + case "$1" in + --basedir) + basedir=$2 + if test -z "$basedir"; then + echo "$0: Missing argument to --basedir." 1>&2 + exit 1 + fi + shift 1 + ;; + --destdir) + destdir=$2 + if test -z "$destdir"; then + echo "$0: Missing argument to --destdir." 1>&2 + exit 1 + fi + shift 1 + ;; + -h|--h*) + cat <<\EOF +Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..." + +Byte compile some python scripts FILES. Use --destdir to specify any +leading directory path to the FILES that you don't want to include in the +byte compiled file. Specify --basedir for any additional path information you +do want to be shown in the byte compiled file. -case "$1" in - --basedir) - basedir=$2 - if test -z "$basedir"; then - echo "$0: Missing argument to --basedir." 1>&2 - exit 1 - fi - shift 2 - ;; - -h|--h*) - cat <<\EOF -Usage: py-compile [--help] [--version] [--basedir DIR] FILES..." - -Byte compile some python scripts FILES. This should be performed -after they have been moved to the final installation location +Example: + py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py Report bugs to . EOF - exit 0 - ;; - -v|--v*) - echo "py-compile $scriptversion" - exit 0 - ;; -esac + exit 0 + ;; + -v|--v*) + echo "py-compile $scriptversion" + exit 0 + ;; + *) + files="$files $1" + ;; + esac + shift 1 +done -if [ $# = 0 ]; then +if test -z "$files"; then echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 exit 1 fi @@ -69,38 +90,49 @@ # if basedir was given, then it should be prepended to filenames before # byte compilation. if [ -z "$basedir" ]; then - trans="path = file" + pathtrans="path = file" else - trans="path = os.path.join('$basedir', file)" + pathtrans="path = os.path.join('$basedir', file)" +fi + +# if destdir was given, then it needs to be prepended to the filename to +# byte compile but not go into the compiled file. +if [ -z "$destdir" ]; then + filetrans="filepath = path" +else + filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)" fi $PYTHON -c " import sys, os, string, py_compile -files = '''$*''' +files = '''$files''' + print 'Byte-compiling python modules...' for file in string.split(files): - $trans - if not os.path.exists(path) or not (len(path) >= 3 and path[-3:] == '.py'): + $pathtrans + $filetrans + if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue print file, sys.stdout.flush() - py_compile.compile(path) + py_compile.compile(filepath, filepath+'c', path) print" || exit $? # this will fail for python < 1.5, but that doesn't matter ... $PYTHON -O -c " import sys, os, string, py_compile -files = '''$*''' +files = '''$files''' print 'Byte-compiling python modules (optimized versions) ...' for file in string.split(files): - $trans - if not os.path.exists(path) or not (len(path) >= 3 and path[-3:] == '.py'): + $pathtrans + $filetrans + if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue print file, sys.stdout.flush() - py_compile.compile(path) + py_compile.compile(filepath, filepath+'o', path) print" 2>/dev/null || : # Local Variables: Index: lib/am/python.am =================================================================== RCS file: /cvs/automake/automake/lib/am/python.am,v retrieving revision 1.23 diff -u -r1.23 python.am --- lib/am/python.am 28 Jan 2004 20:50:43 -0000 1.23 +++ lib/am/python.am 16 Nov 2004 02:57:09 -0000 @@ -52,8 +52,13 @@ done; \ ## Byte-compile must be done at install time, since file times are ## encoded in the actual files. - test -z "$$dlist" || \ - PYTHON=$(PYTHON) $(py_compile) --basedir "$(DESTDIR)$(%NDIR%dir)" $$dlist + if test -z "$(DESTDIR)"; then \ + test -z "$$dlist" || \ + PYTHON=$(PYTHON) $(py_compile) --basedir "$(%NDIR%dir)" $$dlist; \ + else \ + test -z "$$dlist" || \ + PYTHON=$(PYTHON) $(py_compile) --destdir $(DESTDIR) --basedir "$(%NDIR%dir)" $$dlist; \ + fi endif %?INSTALL% Index: tests/Makefile.am =================================================================== RCS file: /cvs/automake/automake/tests/Makefile.am,v retrieving revision 1.572 diff -u -r1.572 Makefile.am --- tests/Makefile.am 10 Nov 2004 20:12:30 -0000 1.572 +++ tests/Makefile.am 16 Nov 2004 02:57:10 -0000 @@ -418,6 +418,7 @@ python9.test \ python10.test \ python11.test \ +python12.test \ recurs.test \ recurs2.test \ remake.test \