kumquat-buildroot/package/python/python.mk

233 lines
6.4 KiB
Makefile
Raw Normal View History

################################################################################
#
# python
#
################################################################################
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_VERSION_MAJOR = 2.7
PYTHON_VERSION = $(PYTHON_VERSION_MAJOR).11
.mk files: bulk aligment and whitespace cleanup of assignments The Buildroot coding style defines one space around make assignments and does not align the assignment symbols. This patch does a bulk fix of offending packages. The package infrastructures (or more in general assignments to calculated variable names, like $(2)_FOO) are not touched. Alignment of line continuation characters (\) is kept as-is. The sed command used to do this replacement is: find * -name "*.mk" | xargs sed -i \ -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*$#\1 \2#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\]\+\)$#\1 \2 \3#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\ \t]\+\s*\\\)\s*$#\1 \2 \3#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\(\s*\\\)#\1 \2\3#' Brief explanation of this command: ^\([A-Z0-9a-z_]\+\) a regular variable at the beginning of the line \([?:+]\?=\) any assignment character =, :=, ?=, += \([^\\]\+\) any string not containing a line continuation \([^\\ \t]\+\s*\\\) string, optional whitespace, followed by a line continuation character \(\s*\\\) optional whitespace, followed by a line continuation character Hence, the first subexpression handles empty assignments, the second handles regular assignments, the third handles regular assignments with line continuation, and the fourth empty assignments with line continuation. This expression was tested on following test text: (initial tab not included) FOO = spaces before FOO = spaces before and after FOO = tab before FOO = tab and spaces before FOO = tab after FOO = tab and spaces after FOO = spaces and tab after FOO = \ FOO = bar \ FOO = bar space \ FOO = \ GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse FOO += spaces before FOO ?= spaces before and after FOO := FOO = FOO = FOO = FOO = $(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C AT91BOOTSTRAP3_DEFCONFIG = \ AXEL_DISABLE_I18N=--i18n=0 After this bulk change, following manual fixups were done: - fix line continuation alignment in cegui06 and spice (the sed expression leaves the number of whitespace between the value and line continuation character intact, but the whitespace before that could have changed, causing misalignment. - qt5base was reverted, as this package uses extensive alignment which actually makes the code more readable. Finally, the end result was manually reviewed. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Cc: Yann E. Morin <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-07 09:06:03 +02:00
PYTHON_SOURCE = Python-$(PYTHON_VERSION).tar.xz
PYTHON_SITE = http://python.org/ftp/python/$(PYTHON_VERSION)
PYTHON_LICENSE = Python software foundation license v2, others
PYTHON_LICENSE_FILES = LICENSE
PYTHON_LIBTOOL_PATCH = NO
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
# Python needs itself to be built, so in order to cross-compile
# Python, we need to build a host Python first. This host Python is
# also installed in $(HOST_DIR), as it is needed when cross-compiling
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
# third-party Python modules.
HOST_PYTHON_CONF_OPTS += \
--enable-static \
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
--without-cxx-main \
--disable-sqlite3 \
--disable-tk \
--with-expat=system \
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
--disable-curses \
--disable-codecs-cjk \
--disable-nis \
--enable-unicodedata \
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
--disable-dbm \
--disable-gdbm \
--disable-bsddb \
--disable-test-modules \
--disable-bz2 \
--disable-ssl \
--disable-ossaudiodev \
--disable-pyo-build
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
# Make sure that LD_LIBRARY_PATH overrides -rpath.
# This is needed because libpython may be installed at the same time that
# python is called.
HOST_PYTHON_CONF_ENV += \
LDFLAGS="$(HOST_LDFLAGS) -Wl,--enable-new-dtags"
# Building host python in parallel sometimes triggers a "Bus error"
# during the execution of "./python setup.py build" in the
# installation step. It is probably due to the installation of a
# shared library taking place in parallel to the execution of
# ./python, causing spurious Bus error. Building host-python with
# MAKE1 has shown to workaround the problem.
HOST_PYTHON_MAKE = $(MAKE1)
.mk files: bulk aligment and whitespace cleanup of assignments The Buildroot coding style defines one space around make assignments and does not align the assignment symbols. This patch does a bulk fix of offending packages. The package infrastructures (or more in general assignments to calculated variable names, like $(2)_FOO) are not touched. Alignment of line continuation characters (\) is kept as-is. The sed command used to do this replacement is: find * -name "*.mk" | xargs sed -i \ -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*$#\1 \2#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\]\+\)$#\1 \2 \3#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\ \t]\+\s*\\\)\s*$#\1 \2 \3#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\(\s*\\\)#\1 \2\3#' Brief explanation of this command: ^\([A-Z0-9a-z_]\+\) a regular variable at the beginning of the line \([?:+]\?=\) any assignment character =, :=, ?=, += \([^\\]\+\) any string not containing a line continuation \([^\\ \t]\+\s*\\\) string, optional whitespace, followed by a line continuation character \(\s*\\\) optional whitespace, followed by a line continuation character Hence, the first subexpression handles empty assignments, the second handles regular assignments, the third handles regular assignments with line continuation, and the fourth empty assignments with line continuation. This expression was tested on following test text: (initial tab not included) FOO = spaces before FOO = spaces before and after FOO = tab before FOO = tab and spaces before FOO = tab after FOO = tab and spaces after FOO = spaces and tab after FOO = \ FOO = bar \ FOO = bar space \ FOO = \ GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse FOO += spaces before FOO ?= spaces before and after FOO := FOO = FOO = FOO = FOO = $(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C AT91BOOTSTRAP3_DEFCONFIG = \ AXEL_DISABLE_I18N=--i18n=0 After this bulk change, following manual fixups were done: - fix line continuation alignment in cegui06 and spice (the sed expression leaves the number of whitespace between the value and line continuation character intact, but the whitespace before that could have changed, causing misalignment. - qt5base was reverted, as this package uses extensive alignment which actually makes the code more readable. Finally, the end result was manually reviewed. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Cc: Yann E. Morin <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-07 09:06:03 +02:00
PYTHON_DEPENDENCIES = host-python libffi
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
HOST_PYTHON_DEPENDENCIES = host-expat host-zlib
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_INSTALL_STAGING = YES
ifeq ($(BR2_PACKAGE_PYTHON_READLINE),y)
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_DEPENDENCIES += readline
endif
ifeq ($(BR2_PACKAGE_PYTHON_CURSES),y)
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_DEPENDENCIES += ncurses
else
PYTHON_CONF_OPTS += --disable-curses
endif
ifeq ($(BR2_PACKAGE_PYTHON_PYEXPAT),y)
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_DEPENDENCIES += expat
PYTHON_CONF_OPTS += --with-expat=system
else
PYTHON_CONF_OPTS += --with-expat=none
endif
ifeq ($(BR2_PACKAGE_PYTHON_BSDDB),y)
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_DEPENDENCIES += berkeleydb
else
PYTHON_CONF_OPTS += --disable-bsddb
endif
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
ifeq ($(BR2_PACKAGE_PYTHON_SQLITE),y)
PYTHON_DEPENDENCIES += sqlite
else
PYTHON_CONF_OPTS += --disable-sqlite3
endif
ifeq ($(BR2_PACKAGE_PYTHON_SSL),y)
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_DEPENDENCIES += openssl
else
PYTHON_CONF_OPTS += --disable-ssl
endif
ifneq ($(BR2_PACKAGE_PYTHON_CODECSCJK),y)
PYTHON_CONF_OPTS += --disable-codecs-cjk
endif
ifneq ($(BR2_PACKAGE_PYTHON_UNICODEDATA),y)
PYTHON_CONF_OPTS += --disable-unicodedata
endif
# Default is UCS2 w/o a conf opt
ifeq ($(BR2_PACKAGE_PYTHON_UCS4),y)
PYTHON_CONF_OPTS += --enable-unicode=ucs4
endif
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
ifeq ($(BR2_PACKAGE_PYTHON_BZIP2),y)
PYTHON_DEPENDENCIES += bzip2
else
PYTHON_CONF_OPTS += --disable-bz2
endif
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
ifeq ($(BR2_PACKAGE_PYTHON_ZLIB),y)
PYTHON_DEPENDENCIES += zlib
else
PYTHON_CONF_OPTS += --disable-zlib
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
endif
ifeq ($(BR2_PACKAGE_PYTHON_HASHLIB),y)
PYTHON_DEPENDENCIES += openssl
endif
ifeq ($(BR2_PACKAGE_PYTHON_OSSAUDIODEV),y)
PYTHON_CONF_OPTS += --enable-ossaudiodev
else
PYTHON_CONF_OPTS += --disable-ossaudiodev
endif
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_CONF_ENV += \
ac_cv_have_long_long_format=yes \
ac_cv_file__dev_ptmx=yes \
ac_cv_file__dev_ptc=yes \
ac_cv_working_tzset=yes
PYTHON_CONF_OPTS += \
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
--without-cxx-main \
--without-doc-strings \
--with-system-ffi \
--disable-pydoc \
--disable-test-modules \
--disable-lib2to3 \
--disable-gdbm \
--disable-tk \
--disable-nis \
--disable-dbm \
--disable-pyo-build
# This is needed to make sure the Python build process doesn't try to
# regenerate those files with the pgen program. Otherwise, it builds
# pgen for the target, and tries to run it on the host.
define PYTHON_TOUCH_GRAMMAR_FILES
touch $(@D)/Include/graminit.h $(@D)/Python/graminit.c
endef
PYTHON_POST_PATCH_HOOKS += PYTHON_TOUCH_GRAMMAR_FILES
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
#
# Remove useless files. In the config/ directory, only the Makefile
# and the pyconfig.h files are needed at runtime.
#
# idle & smtpd.py have bad shebangs and are mostly samples
#
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
define PYTHON_REMOVE_USELESS_FILES
rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON_VERSION_MAJOR)-config
rm -f $(TARGET_DIR)/usr/bin/python2-config
rm -f $(TARGET_DIR)/usr/bin/python-config
rm -f $(TARGET_DIR)/usr/bin/smtpd.py
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/config/ \
-type f -not -name pyconfig.h -a -not -name Makefile` ; do \
rm -f $$i ; \
done
endef
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_REMOVE_USELESS_FILES
#
# Make sure libpython gets stripped out on target
#
define PYTHON_ENSURE_LIBPYTHON_STRIPPED
chmod u+w $(TARGET_DIR)/usr/lib/libpython$(PYTHON_VERSION_MAJOR)*.so
endef
PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_ENSURE_LIBPYTHON_STRIPPED
# Always install the python symlink in the target tree
define PYTHON_INSTALL_TARGET_PYTHON_SYMLINK
ln -sf python2 $(TARGET_DIR)/usr/bin/python
endef
PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_INSTALL_TARGET_PYTHON_SYMLINK
# Always install the python-config symlink in the staging tree
define PYTHON_INSTALL_STAGING_PYTHON_CONFIG_SYMLINK
ln -sf python2-config $(STAGING_DIR)/usr/bin/python-config
endef
PYTHON_POST_INSTALL_STAGING_HOOKS += PYTHON_INSTALL_STAGING_PYTHON_CONFIG_SYMLINK
python: convert to autotargets, bump to 2.7.1, many improvements This commit does a number of changes and improvements to the Python interpreter package : * It converts the .mk file to the AUTOTARGETS infrastructure. Even though Python uses only autoconf and not automake, the AUTOTARGETS is a fairly good fit for the Python interpreter, so we make use of it. * It bumps the version to 2.7.1. As this is a minor release compared to 2.7, there are no particular changes needed because of this bump. All changes done to the package are cleanups and improvements unrelated to the version bump. * It uses the system libffi. Until now, Python was building its own libffi (a library used by interprets to build code that makes function call at runtime). Using the Python internal libffi was not working as Python was not passing the appropriate arguments down to libffi ./configure script. And it sounded better to use a system-wide libffi, that could potentially be used by other packages as well. This libffi is needed for the ctypes Python module. * Remove all "depends on BR2_PACKAGE_PYTHON" by moving all Python-related options under a "if BR2_PACKAGE_PYTHON ... endif" condition. * Make the installation of pre-compiled Python modules (.pyc) the default, since they are smaller and do not need to be compiled on the target. It is still possible to install uncompiled modules, or both the uncompiled and pre-compiled versions. * The options to select the set of Python modules to compile has been moved to a submenu. * The codecscjk (Japanese, Korean and Chinese codecs) module is no longer enabled by default. * The commented options for gdbm and nis in Python have been removed. Those were not supported, so let's get rid of unused code. * The option for the tkinker module in Python has been removed, since we don't have a package for Tk in Buildroot. * Options for the bzip2, sqlite and zlib modules have been added, since those modules have external dependencies. * The set of patches has been completely reworked and extended, with more fine-grained patches and newer functionalities. The patches are split in two categories: - Patches that make various modifications to the Python build system to support cross-compilation or make some minor modifications. Those patches are numbered from 0 to 100. - Patches that add configuration options to the Python build system in order to enable/disable the compilation of Python extensions or modules (test modules, pydoc, lib2to3, sqlite, tk, curses, expat, codecs-cjk, nis, unicodedata, database modules, ssl, bzip2, zlib). These patches are numbered from 100 to 200. All features of the previous four patches are preserved, but they are organized differently and the patches have been renamed. This makes it difficult to see the differences from the existing patches. * The host Python interpreter is now installed in $(HOST_DIR), since it is used to build third party Python modules. * The BR2_PACKAGE_PYTHON_DEV option is removed since BR2_HAVE_DEVFILES already does the necessary work. * The "make -i install" workaround introduced by Maxime Ripard is no longer needed. It was caused by the compilation of the tests that required the unicodedata module (which wasn't built in the host Python interpreter). Since we no longer compile the Python tests, the problem doesn't exist anymore and we can avoid this "-i" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-12-26 10:28:49 +01:00
PYTHON_AUTORECONF = YES
# Some packages may have build scripts requiring python2.
# Only install the python symlink in the host tree if python3 is not enabled
# for the target, otherwise the default python program may be missing.
ifneq ($(BR2_PACKAGE_PYTHON3),y)
define HOST_PYTHON_INSTALL_PYTHON_SYMLINK
ln -sf python2 $(HOST_DIR)/usr/bin/python
ln -sf python2-config $(HOST_DIR)/usr/bin/python-config
endef
HOST_PYTHON_POST_INSTALL_HOOKS += HOST_PYTHON_INSTALL_PYTHON_SYMLINK
endif
# Provided to other packages
PYTHON_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/sysconfigdata/:$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/
$(eval $(autotools-package))
$(eval $(host-autotools-package))
ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY),y)
define PYTHON_FINALIZE_TARGET
find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.py' -print0 | xargs -0 rm -f
endef
endif
ifeq ($(BR2_PACKAGE_PYTHON_PY_ONLY),y)
define PYTHON_FINALIZE_TARGET
find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.pyc' -print0 | xargs -0 rm -f
endef
endif
TARGET_FINALIZE_HOOKS += PYTHON_FINALIZE_TARGET