python-cross-compile.patch 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. --- Python-2.3.4/Makefile.pre.in.orig 2003-11-18 14:54:00.000000000 -0500
  2. +++ Python-2.3.4/Makefile.pre.in 2004-07-29 21:44:47.075924464 -0400
  3. @@ -159,6 +159,7 @@
  4. PYTHON= python$(EXE)
  5. BUILDPYTHON= python$(BUILDEXE)
  6. +HOSTPYTHON= ./$(BUILDPYTHON)
  7. # === Definitions added by makesetup ===
  8. @@ -186,6 +187,8 @@
  9. # Parser
  10. PGEN= Parser/pgen$(EXE)
  11. +HOSTPGEN= $(PGEN)
  12. +
  13. POBJS= \
  14. Parser/acceler.o \
  15. Parser/grammar1.o \
  16. @@ -314,8 +317,8 @@
  17. # Build the shared modules
  18. sharedmods: $(BUILDPYTHON)
  19. case $$MAKEFLAGS in \
  20. - *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
  21. - *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
  22. + *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CROSS_COMPILE='yes' OPT='$(OPT)' DESTDIR='$(DESTDIR)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
  23. + *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CROSS_COMPILE='yes' OPT='$(OPT)' DESTDIR='$(DESTDIR)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
  24. esac
  25. # buildno should really depend on something like LIBRARY_SRC
  26. @@ -432,7 +435,7 @@
  27. $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
  28. - -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
  29. + -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
  30. $(PGEN): $(PGENOBJS)
  31. $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
  32. @@ -705,19 +708,19 @@
  33. done
  34. $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
  35. PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
  36. - ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
  37. + $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
  38. -d $(LIBDEST) -f \
  39. -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
  40. PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
  41. - ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
  42. + $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
  43. -d $(LIBDEST) -f \
  44. -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
  45. PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
  46. - ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
  47. + $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
  48. -d $(LIBDEST)/site-packages -f \
  49. -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
  50. PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
  51. - ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
  52. + $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
  53. -d $(LIBDEST)/site-packages -f \
  54. -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
  55. @@ -812,7 +815,8 @@
  56. # Install the dynamically loadable modules
  57. # This goes into $(exec_prefix)
  58. sharedinstall:
  59. - $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
  60. + CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILE='$(CROSS_COMPILE)' \
  61. + $(HOSTPYTHON) -E $(srcdir)/setup.py install \
  62. --prefix=$(prefix) \
  63. --install-scripts=$(BINDIR) \
  64. --install-platlib=$(DESTSHARED) \
  65. --- Python-2.3.4/setup.py.orig 2004-07-29 21:32:12.993562408 -0400
  66. +++ Python-2.3.4/setup.py 2004-07-29 21:47:12.174866072 -0400
  67. @@ -213,6 +213,7 @@
  68. try:
  69. imp.load_dynamic(ext.name, ext_filename)
  70. except ImportError, why:
  71. + if os.environ.get('CROSS_COMPILE') != "yes":
  72. self.announce('*** WARNING: renaming "%s" since importing it'
  73. ' failed: %s' % (ext.name, why), level=3)
  74. assert not self.inplace
  75. @@ -233,6 +234,9 @@
  76. os.remove(filename)
  77. except AttributeError:
  78. self.announce('unable to remove files (ignored)')
  79. + else:
  80. + self.announce('WARNING: "%s" failed importing, but we leave it because we are cross-compiling' %
  81. + ext.name)
  82. except:
  83. exc_type, why, tb = sys.exc_info()
  84. self.announce('*** WARNING: importing extension "%s" '
  85. @@ -245,8 +245,9 @@
  86. def detect_modules(self):
  87. # Ensure that /usr/local is always used
  88. - add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
  89. - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
  90. + add_dir_to_list(self.compiler.library_dirs, os.getenv('DESTDIR') + '/lib')
  91. + add_dir_to_list(self.compiler.library_dirs, os.getenv('DESTDIR') + '/usr/lib')
  92. + add_dir_to_list(self.compiler.include_dirs, os.getenv('DESTDIR') + '/usr/include')
  93. # fink installs lots of goodies in /sw/... - make sure we
  94. # check there
  95. @@ -254,11 +255,6 @@
  96. add_dir_to_list(self.compiler.library_dirs, '/sw/lib')
  97. add_dir_to_list(self.compiler.include_dirs, '/sw/include')
  98. - if os.path.normpath(sys.prefix) != '/usr':
  99. - add_dir_to_list(self.compiler.library_dirs,
  100. - sysconfig.get_config_var("LIBDIR"))
  101. - add_dir_to_list(self.compiler.include_dirs,
  102. - sysconfig.get_config_var("INCLUDEDIR"))
  103. try:
  104. have_unicode = unicode