summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2009-09-28 19:46:42 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2009-09-28 19:46:42 +0200
commitf53612bc7414c0d9e4700f957d6a1a1742574c67 (patch)
treec4a5b3ffafbb2d7f7983f5f47cf62385f753ebc8 /package
parentb90cc7f1ad47a02d811f45b1b6fa0c5fc5bf0edf (diff)
fix cross-compile at least from x86 to x86_64
Diffstat (limited to 'package')
-rw-r--r--package/python/Makefile18
-rw-r--r--package/python/patches/patch-Makefile_pre_in11
-rw-r--r--package/python/patches/patch-setup_py83
3 files changed, 103 insertions, 9 deletions
diff --git a/package/python/Makefile b/package/python/Makefile
index a602c6706..d80b3a05a 100644
--- a/package/python/Makefile
+++ b/package/python/Makefile
@@ -15,18 +15,20 @@ PKG_SITES:= http://www.python.org/ftp/python/3.1.1/
DISTFILES= Python-${PKG_VERSION}.tgz
WRKDIST= ${WRKDIR}/Python-${PKG_VERSION}
+DISMOD:= readline _curses _curses_panel _tkinter nis
+
include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,PYTHON,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
MAKE_ENV+= OPT="$(TARGET_CFLAGS)" \
- HOSTPYTHON=hostpython \
- HOSTPGEN=hostpgen \
- CROSS_COMPILE=yes
+ HOSTPYTHON=./hostpython \
+ HOSTPGEN=./Parser/hostpgen \
+ PYTHON_DISABLE_MODULES="$(DISMOD)"
CONFIGURE_STYLE:= gnu
CONFIGURE_ENV+= OPT="$(TARGET_CFLAGS)"
-CONFGIURE_ARGS:= --with-threads \
+CONFIGURE_ARGS:= --with-threads \
--with-system-ffi \
--without-cxx-main
BUILD_STYLE:= auto
@@ -39,10 +41,10 @@ pre-configure:
--prefix=$(STAGING_TOOLS) \
);
$(MAKE) -C ${WRKBUILD} python Parser/pgen
- ${CP} ${WRKBUILD}/Parser/pgen ${STAGING_TOOLS}/bin/hostpgen
- ${CP} ${WRKBUILD}/python ${STAGING_TOOLS}/bin/hostpython
- PATH='${TARGET_PATH}' \
- $(MAKE) -C ${WRKBUILD} HOSTPYTHON="hostpython" sharedmods install
+ ${CP} ${WRKBUILD}/Parser/pgen ${STAGING_TOOLS}/bin/pgen
+ ${CP} ${WRKBUILD}/python ${STAGING_TOOLS}/bin/python
+ ${CP} ${WRKBUILD}/Parser/pgen ${WRKBUILD}/Parser/hostpgen
+ ${CP} ${WRKBUILD}/python ${WRKBUILD}/hostpython
$(MAKE) -C ${WRKBUILD} distclean
post-install:
diff --git a/package/python/patches/patch-Makefile_pre_in b/package/python/patches/patch-Makefile_pre_in
index ac6c129ee..00504cb16 100644
--- a/package/python/patches/patch-Makefile_pre_in
+++ b/package/python/patches/patch-Makefile_pre_in
@@ -1,5 +1,14 @@
--- Python-3.1.1.orig/Makefile.pre.in 2009-06-12 00:54:11.000000000 +0200
-+++ Python-3.1.1/Makefile.pre.in 2009-09-23 21:48:18.000000000 +0200
++++ Python-3.1.1/Makefile.pre.in 2009-09-28 19:01:13.167748736 +0200
+@@ -52,7 +52,7 @@ INSTALL_DATA= @INSTALL_DATA@
+ # Shared libraries must be installed with executable mode on some systems;
+ # rather than figuring out exactly which, we always give them executable mode.
+ # Also, making them read-only seems to be a good idea...
+-INSTALL_SHARED= ${INSTALL} -m 555
++INSTALL_SHARED= ${INSTALL} -m 755
+
+ MAKESETUP= $(srcdir)/Modules/makesetup
+
@@ -177,6 +177,7 @@ LIBOBJS= @LIBOBJS@
PYTHON= python$(EXE)
diff --git a/package/python/patches/patch-setup_py b/package/python/patches/patch-setup_py
new file mode 100644
index 000000000..c9f3dfe08
--- /dev/null
+++ b/package/python/patches/patch-setup_py
@@ -0,0 +1,83 @@
+--- Python-3.1.1.orig/setup.py 2009-08-12 20:39:44.000000000 +0200
++++ Python-3.1.1/setup.py 2009-09-28 19:12:33.550271196 +0200
+@@ -255,36 +255,6 @@ class PyBuildExt(build_ext):
+ # cached. Clear that cache before trying to import.
+ sys.path_importer_cache.clear()
+
+- try:
+- imp.load_dynamic(ext.name, ext_filename)
+- except ImportError as why:
+- self.failed.append(ext.name)
+- self.announce('*** WARNING: renaming "%s" since importing it'
+- ' failed: %s' % (ext.name, why), level=3)
+- assert not self.inplace
+- basename, tail = os.path.splitext(ext_filename)
+- newname = basename + "_failed" + tail
+- if os.path.exists(newname):
+- os.remove(newname)
+- os.rename(ext_filename, newname)
+-
+- # XXX -- This relies on a Vile HACK in
+- # distutils.command.build_ext.build_extension(). The
+- # _built_objects attribute is stored there strictly for
+- # use here.
+- # If there is a failure, _built_objects may not be there,
+- # so catch the AttributeError and move on.
+- try:
+- for filename in self._built_objects:
+- os.remove(filename)
+- except AttributeError:
+- self.announce('unable to remove files (ignored)')
+- except:
+- exc_type, why, tb = sys.exc_info()
+- self.announce('*** WARNING: importing extension "%s" '
+- 'failed with %s: %s' % (ext.name, exc_type, why),
+- level=3)
+- self.failed.append(ext.name)
+
+ def get_platform(self):
+ # Get value of sys.platform
+@@ -295,8 +265,8 @@ class PyBuildExt(build_ext):
+
+ def detect_modules(self):
+ # Ensure that /usr/local is always used
+- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
++ #add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
++ #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+
+ # Add paths specified in the environment variables LDFLAGS and
+ # CPPFLAGS for header and library files.
+@@ -332,20 +302,22 @@ class PyBuildExt(build_ext):
+ for directory in reversed(options.dirs):
+ add_dir_to_list(dir_list, directory)
+
+- if os.path.normpath(sys.prefix) != '/usr':
+- add_dir_to_list(self.compiler.library_dirs,
+- sysconfig.get_config_var("LIBDIR"))
+- add_dir_to_list(self.compiler.include_dirs,
+- sysconfig.get_config_var("INCLUDEDIR"))
++ #if os.path.normpath(sys.prefix) != '/usr':
++ # add_dir_to_list(self.compiler.library_dirs,
++ # sysconfig.get_config_var("LIBDIR"))
++ # add_dir_to_list(self.compiler.include_dirs,
++ # sysconfig.get_config_var("INCLUDEDIR"))
+
+ # lib_dirs and inc_dirs are used to search for files;
+ # if a file is found in one of those directories, it can
+ # be assumed that no additional -I,-L directives are needed.
+- lib_dirs = self.compiler.library_dirs + [
+- '/lib64', '/usr/lib64',
+- '/lib', '/usr/lib',
+- ]
+- inc_dirs = self.compiler.include_dirs + ['/usr/include']
++ #lib_dirs = self.compiler.library_dirs + [
++ # '/lib64', '/usr/lib64',
++ # '/lib', '/usr/lib',
++ # ]
++ #inc_dirs = self.compiler.include_dirs + ['/usr/include']
++ inc_dirs = self.compiler.include_dirs
++ lib_dirs = self.compiler.library_dirs
+ exts = []
+ missing = []
+