$(foreach file,$(PKG_PAM_FILES),$(call __INSTALL_PAM,$(file)))
endef
+define DO_PYTHON_COMPILE
+ @find $(BUILDROOT) -name "*.py" | xargs $(DIR_TOOLS)/py-compile
+endef
+
define DO_PREPARE
@echo "#####################################################################"
@echo "# $(PKG_NAME) - Preparation started"
$(DO_INSTALL_INIT)
$(DO_INSTALL_PAM)
+ $(DO_PYTHON_COMPILE)
+
@echo "#####################################################################"
@echo "# $(PKG_NAME) - Install finished"
@echo "#####################################################################"
#!/bin/sh
-# called as "py-compile [--basedir DIR] PY_FILES ...
-if [ -z "$PYTHON" ]; then
- PYTHON=python
-fi
-
-basedir=
+PYTHON=$(which python 2>/dev/null)
-case "$1" in
- --basedir)
- basedir=$2
- shift 2
- ;;
- --help)
- echo "Usage: py-compile [--basedir DIR] PY_FILES ..."
- echo "Byte compile some python scripts. This should be performed"
- echo "after they have been moved to the final installation location"
- exit 0
- ;;
- --version)
- echo "py-compile version 0.0"
+if [ -z "${PYTHON}" ]; then
+ # Python is not present. Fail silently.
exit 0
- ;;
-esac
-
-if [ $# = 0 ]; then
- echo "No files given to $0" 1>&2
- exit 1
fi
files=""
files="$files $i"
done
-# if basedir was given, then it should be prepended to filenames before
-# byte compilation.
-if [ -z "$basedir" ]; then
- trans="path = file"
-else
- trans="path = os.path.join('$basedir', file)"
+if [ -z "${files}" ]; then
+ # No files need to be proceeded.
+ exit 0
fi
$PYTHON -c "
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'):
continue
print file,
files = '''$files'''
print 'Byte-compiling python modules (optimised versions) ...'
for file in string.split(files):
- $trans
if not os.path.exists(path) or not (len(path) >= 3 and path[-3:] == '.py'):
continue
print file,
sys.stdout.flush()
py_compile.compile(path)
print" 2>/dev/null || :
-