mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-25 20:26:34 +00:00
update python ... this one should work a lot better than the old one
This commit is contained in:
parent
5226455eb4
commit
0efea03fab
@ -3,15 +3,13 @@
|
|||||||
# python
|
# python
|
||||||
#
|
#
|
||||||
#############################################################
|
#############################################################
|
||||||
PYTHON_VERSION=2.3.2
|
PYTHON_VERSION=2.3.4
|
||||||
PYTHON_SOURCE:=Python-$(PYTHON_VERSION).tgz
|
PYTHON_SOURCE:=Python-$(PYTHON_VERSION).tar.bz2
|
||||||
PYTHON_SITE:=http://python.org/ftp/python/$(PYTHON_VERSION)
|
PYTHON_SITE:=http://python.org/ftp/python/$(PYTHON_VERSION)
|
||||||
PYTHON_DIR:=$(BUILD_DIR)/Python-$(PYTHON_VERSION)
|
PYTHON_DIR:=$(BUILD_DIR)/Python-$(PYTHON_VERSION)
|
||||||
PYTHON_CAT:=zcat
|
PYTHON_CAT:=bzcat
|
||||||
PYTHON_BINARY:=python
|
PYTHON_BINARY:=python
|
||||||
PYTHON_INSTALL_DIR:=$(BUILD_DIR)/python_install
|
PYTHON_TARGET_BINARY:=usr/bin/python
|
||||||
PYTHON_TARGET_BINARY:=$(PYTHON_INSTALL_DIR)/bin/python
|
|
||||||
|
|
||||||
|
|
||||||
$(DL_DIR)/$(PYTHON_SOURCE):
|
$(DL_DIR)/$(PYTHON_SOURCE):
|
||||||
$(WGET) -P $(DL_DIR) $(PYTHON_SITE)/$(PYTHON_SOURCE)
|
$(WGET) -P $(DL_DIR) $(PYTHON_SITE)/$(PYTHON_SOURCE)
|
||||||
@ -22,36 +20,58 @@ $(PYTHON_DIR)/.unpacked: $(DL_DIR)/$(PYTHON_SOURCE)
|
|||||||
$(PYTHON_CAT) $(DL_DIR)/$(PYTHON_SOURCE) | tar -C $(BUILD_DIR) -xvf -
|
$(PYTHON_CAT) $(DL_DIR)/$(PYTHON_SOURCE) | tar -C $(BUILD_DIR) -xvf -
|
||||||
touch $(PYTHON_DIR)/.unpacked
|
touch $(PYTHON_DIR)/.unpacked
|
||||||
|
|
||||||
$(PYTHON_DIR)/.configured: $(PYTHON_DIR)/.unpacked
|
$(PYTHON_DIR)/.patched: $(PYTHON_DIR)/.unpacked
|
||||||
|
$(SOURCE_DIR)/patch-kernel.sh $(PYTHON_DIR) $(SOURCE_DIR) python*.patch
|
||||||
|
touch $(PYTHON_DIR)/.patched
|
||||||
|
|
||||||
|
$(PYTHON_DIR)/.hostpython: $(PYTHON_DIR)/.patched
|
||||||
|
(cd $(PYTHON_DIR); rm -rf config.cache; \
|
||||||
|
OPT="-O1" \
|
||||||
|
./configure \
|
||||||
|
--with-cxx=no \
|
||||||
|
$(DISABLE_NLS); \
|
||||||
|
make python Parser/pygen; \
|
||||||
|
mv python hostpython; \
|
||||||
|
mv Parser/pgen Parser/hostpgen; \
|
||||||
|
make distclean \
|
||||||
|
);
|
||||||
|
touch $(PYTHON_DIR)/.hostpython
|
||||||
|
|
||||||
|
$(PYTHON_DIR)/.configured: $(PYTHON_DIR)/.hostpython
|
||||||
(cd $(PYTHON_DIR); rm -rf config.cache; \
|
(cd $(PYTHON_DIR); rm -rf config.cache; \
|
||||||
$(TARGET_CONFIGURE_OPTS) \
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
|
OPT="$(TARGET_OPTIMIZATION)" \
|
||||||
./configure \
|
./configure \
|
||||||
--target=$(GNU_TARGET_NAME) \
|
--target=$(GNU_TARGET_NAME) \
|
||||||
--host=$(GNU_TARGET_NAME) \
|
--host=$(GNU_TARGET_NAME) \
|
||||||
--build=$(GNU_HOST_NAME) \
|
--build=$(GNU_HOST_NAME) \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
--sysconfdir=/etc \
|
--sysconfdir=/etc \
|
||||||
|
--with-cxx=no \
|
||||||
$(DISABLE_NLS) \
|
$(DISABLE_NLS) \
|
||||||
);
|
);
|
||||||
touch $(PYTHON_DIR)/.configured
|
touch $(PYTHON_DIR)/.configured
|
||||||
|
|
||||||
$(PYTHON_DIR)/$(PYTHON_BINARY): $(PYTHON_DIR)/.configured
|
$(PYTHON_DIR)/$(PYTHON_BINARY): $(PYTHON_DIR)/.configured
|
||||||
LD_LIBRARY_PATH=$(STAGING_DIR)/lib
|
$(MAKE) CC=$(TARGET_CC) -C $(PYTHON_DIR) DESTDIR=$(TARGET_DIR) \
|
||||||
$(MAKE) CC=$(TARGET_CC) -C $(PYTHON_DIR)
|
HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen
|
||||||
|
|
||||||
$(TARGET_DIR)/$(PYTHON_TARGET_BINARY): $(PYTHON_DIR)/$(PYTHON_BINARY)
|
$(TARGET_DIR)/$(PYTHON_TARGET_BINARY): $(PYTHON_DIR)/$(PYTHON_BINARY)
|
||||||
|
LD_LIBRARY_PATH=$(STAGING_DIR)/lib
|
||||||
python: uclibc $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)
|
$(MAKE) CC=$(TARGET_CC) -C $(PYTHON_DIR) install \
|
||||||
$(MAKE) CC=$(TARGET_CC) -C $(PYTHON_DIR) install
|
DESTDIR=$(TARGET_DIR) CROSS_COMPILE=yes \
|
||||||
rm $(PYTHON_INSTALL_DIR)/bin/idle
|
HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen
|
||||||
rm $(PYTHON_INSTALL_DIR)/bin/pydoc
|
rm $(TARGET_DIR)/usr/bin/idle
|
||||||
|
rm $(TARGET_DIR)/usr/bin/pydoc
|
||||||
|
find $(TARGET_DIR)/usr/lib/ -name '*.pyc' -o -name '*.pyo' | xargs rm
|
||||||
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
|
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
|
||||||
$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
|
$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
|
||||||
|
|
||||||
|
python: uclibc $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)
|
||||||
|
|
||||||
python-clean:
|
python-clean:
|
||||||
-$(MAKE) -C $(PYTHON_DIR) distclean
|
-$(MAKE) -C $(PYTHON_DIR) distclean
|
||||||
rm $(PYTHON_DIR)/.configured
|
rm $(PYTHON_DIR)/.configured
|
||||||
|
|
||||||
python-dirclean:
|
python-dirclean:
|
||||||
rm -rf $(PYTHON_DIR)
|
rm -rf $(PYTHON_DIR)
|
||||||
|
|
||||||
|
117
sources/python-cross-compile.patch
Normal file
117
sources/python-cross-compile.patch
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
--- Python-2.3.4/Makefile.pre.in.orig 2003-11-18 14:54:00.000000000 -0500
|
||||||
|
+++ Python-2.3.4/Makefile.pre.in 2004-07-29 21:44:47.075924464 -0400
|
||||||
|
@@ -159,6 +159,7 @@
|
||||||
|
|
||||||
|
PYTHON= python$(EXE)
|
||||||
|
BUILDPYTHON= python$(BUILDEXE)
|
||||||
|
+HOSTPYTHON= ./$(BUILDPYTHON)
|
||||||
|
|
||||||
|
# === Definitions added by makesetup ===
|
||||||
|
|
||||||
|
@@ -186,6 +187,8 @@
|
||||||
|
# Parser
|
||||||
|
PGEN= Parser/pgen$(EXE)
|
||||||
|
|
||||||
|
+HOSTPGEN= $(PGEN)
|
||||||
|
+
|
||||||
|
POBJS= \
|
||||||
|
Parser/acceler.o \
|
||||||
|
Parser/grammar1.o \
|
||||||
|
@@ -314,8 +317,8 @@
|
||||||
|
# Build the shared modules
|
||||||
|
sharedmods: $(BUILDPYTHON)
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
- *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
|
||||||
|
- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
|
||||||
|
+ *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CROSS_COMPILE='yes' OPT='$(OPT)' DESTDIR='$(DESTDIR)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
|
||||||
|
+ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CROSS_COMPILE='yes' OPT='$(OPT)' DESTDIR='$(DESTDIR)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
|
||||||
|
esac
|
||||||
|
|
||||||
|
# buildno should really depend on something like LIBRARY_SRC
|
||||||
|
@@ -432,7 +435,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
$(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
|
||||||
|
- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
||||||
|
+ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
||||||
|
|
||||||
|
$(PGEN): $(PGENOBJS)
|
||||||
|
$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
|
||||||
|
@@ -705,19 +708,19 @@
|
||||||
|
done
|
||||||
|
$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
|
||||||
|
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||||
|
- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
-d $(LIBDEST) -f \
|
||||||
|
-x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
|
||||||
|
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||||
|
- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
+ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
-d $(LIBDEST) -f \
|
||||||
|
-x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
|
||||||
|
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||||
|
- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
+ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
-d $(LIBDEST)/site-packages -f \
|
||||||
|
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||||||
|
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||||
|
- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
+ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
-d $(LIBDEST)/site-packages -f \
|
||||||
|
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||||||
|
|
||||||
|
@@ -812,7 +815,8 @@
|
||||||
|
# Install the dynamically loadable modules
|
||||||
|
# This goes into $(exec_prefix)
|
||||||
|
sharedinstall:
|
||||||
|
- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
|
||||||
|
+ CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILE='$(CROSS_COMPILE)' \
|
||||||
|
+ $(HOSTPYTHON) -E $(srcdir)/setup.py install \
|
||||||
|
--prefix=$(prefix) \
|
||||||
|
--install-scripts=$(BINDIR) \
|
||||||
|
--install-platlib=$(DESTSHARED) \
|
||||||
|
--- Python-2.3.4/setup.py.orig 2004-07-29 21:32:12.993562408 -0400
|
||||||
|
+++ Python-2.3.4/setup.py 2004-07-29 21:47:12.174866072 -0400
|
||||||
|
@@ -213,6 +213,7 @@
|
||||||
|
try:
|
||||||
|
imp.load_dynamic(ext.name, ext_filename)
|
||||||
|
except ImportError, why:
|
||||||
|
+ if os.environ.get('CROSS_COMPILE') != "yes":
|
||||||
|
self.announce('*** WARNING: renaming "%s" since importing it'
|
||||||
|
' failed: %s' % (ext.name, why), level=3)
|
||||||
|
assert not self.inplace
|
||||||
|
@@ -233,6 +234,9 @@
|
||||||
|
os.remove(filename)
|
||||||
|
except AttributeError:
|
||||||
|
self.announce('unable to remove files (ignored)')
|
||||||
|
+ else:
|
||||||
|
+ self.announce('WARNING: "%s" failed importing, but we leave it because we are cross-compiling' %
|
||||||
|
+ ext.name)
|
||||||
|
except:
|
||||||
|
exc_type, why, tb = sys.exc_info()
|
||||||
|
self.announce('*** WARNING: importing extension "%s" '
|
||||||
|
@@ -245,8 +245,9 @@
|
||||||
|
|
||||||
|
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, os.getenv('DESTDIR') + '/lib')
|
||||||
|
+ add_dir_to_list(self.compiler.library_dirs, os.getenv('DESTDIR') + '/usr/lib')
|
||||||
|
+ add_dir_to_list(self.compiler.include_dirs, os.getenv('DESTDIR') + '/usr/include')
|
||||||
|
|
||||||
|
# fink installs lots of goodies in /sw/... - make sure we
|
||||||
|
# check there
|
||||||
|
@@ -254,11 +255,6 @@
|
||||||
|
add_dir_to_list(self.compiler.library_dirs, '/sw/lib')
|
||||||
|
add_dir_to_list(self.compiler.include_dirs, '/sw/include')
|
||||||
|
|
||||||
|
- 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"))
|
||||||
|
|
||||||
|
try:
|
||||||
|
have_unicode = unicode
|
Loading…
x
Reference in New Issue
Block a user