Kaydet (Commit) e9d4bad4 authored tarafından Christian Lohmaier's avatar Christian Lohmaier

allow building internal Python on Mac (needs to be built as framework)

fixes #i111496# (meta), #i111498# & #i111500#
(along with the similar commits to the other repos)
üst 251b4d28
--- misc/Python-2.6.1/configure 2010-05-06 20:24:36.000000000 +0200
+++ misc/build/Python-2.6.1/configure 2010-05-06 20:25:17.000000000 +0200
@@ -4653,7 +4653,7 @@
if test "${enable_universalsdk}"; then
UNIVERSAL_ARCH_FLAGS=""
if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
- UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
+ UNIVERSAL_ARCH_FLAGS="-arch i386"
ARCH_RUN_32BIT=""
elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
--- misc/Python-2.6.1/configure 2010-05-06 20:24:36.000000000 +0200
+++ misc/build/Python-2.6.1/configure 2010-05-06 20:25:17.000000000 +0200
@@ -4653,7 +4653,7 @@
if test "${enable_universalsdk}"; then
UNIVERSAL_ARCH_FLAGS=""
if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
- UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
+ UNIVERSAL_ARCH_FLAGS="-arch ppc"
ARCH_RUN_32BIT=""
elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
http://bugs.python.org/issue8067 - needed for building on Mac OSX >= 10.6
--- misc/Python-2.6.1/configure 2010-05-06 20:59:52.000000000 +0200
+++ misc/build/Python-2.6.1/configure 2010-05-06 20:59:46.000000000 +0200
@@ -2120,6 +2120,8 @@
# has no effect, don't bother defining them
Darwin/[6789].*)
define_xopen_source=no;;
+ Darwin/1[0-9].*)
+ define_xopen_source=no;;
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
# or has another value. By not (re)defining it, the defaults come in place.
......@@ -40,8 +40,8 @@ TARGET=so_python
.IF "$(SYSTEM_PYTHON)" == "YES"
all:
@echo "An already available installation of python should exist on your system."
@echo "Therefore the version provided here does not need to be built in addition."
@echo "An already available installation of python should exist on your system."
@echo "Therefore the version provided here does not need to be built in addition."
.ENDIF
# --- Files --------------------------------------------------------
......@@ -81,14 +81,27 @@ python_LDFLAGS+=$(ARCH_FLAGS)
python_CFLAGS=-g0
.ENDIF
CONFIGURE_ACTION=$(AUGMENT_LIBRARY_PATH) ./configure --prefix=$(MYCWD)/python-inst --enable-shared CFLAGS="$(python_CFLAGS)" LDFLAGS="$(python_LDFLAGS)"
CONFIGURE_ACTION=$(AUGMENT_LIBRARY_PATH) ./configure --prefix=/python-inst --enable-shared CFLAGS="$(python_CFLAGS)" LDFLAGS="$(python_LDFLAGS)"
.IF "$(OS)$(CPU)" == "SOLARISI"
CONFIGURE_ACTION += --disable-ipv6
.ENDIF
.IF "$(OS)" == "MACOSX"
PATCH_FILES+=Python-2.6.1-py8067.patch
# don't build dual-arch version as OOo itself is not universal binary either
PATCH_FILES+=Python-2.6.1-arch_$(eq,$(CPU),I i386 ppc).patch
MACDEVSDK*=/Developer/SDKs/MacOSX10.4u.sdk
CONFIGURE_ACTION+=--enable-universalsdk=$(MACDEVSDK) --with-universal-archs=32-bit --enable-framework=/python-inst --with-framework-name=OOoPython
ALLTAR: $(MISC)/OOoPython.framework.zip
.ENDIF
.IF "$(OS)"=="AIX"
CONFIGURE_ACTION += --disable-ipv6 --with-threads
.ENDIF
BUILD_ACTION=$(ENV_BUILD) $(GNUMAKE) -j$(EXTMAXPROCESS) && $(GNUMAKE) install && chmod -R ug+w $(MYCWD)/python-inst && chmod g+w Include
BUILD_ACTION=$(ENV_BUILD) $(GNUMAKE) -j$(EXTMAXPROCESS) && $(GNUMAKE) install DESTDIR=$(MYCWD) && chmod -R ug+w $(MYCWD)/python-inst && chmod g+w Include
.ELSE
# ----------------------------------
# WINDOWS
......@@ -182,9 +195,47 @@ $(PYCONFIG) : $(MISC)$/build$/$(TARFILE_NAME)$/PC$/pyconfig.h
ALLTAR : $(PYVERSIONFILE)
.ENDIF # "$(L10N_framework)"==""
# rule to allow relocating the whole framework, removing reference to buildinstallation directory
$(PACKAGE_DIR)/fixscripts: $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
@echo remove build installdir from scripts
$(COMMAND_ECHO)for file in \
$(MYCWD)/python-inst/OOoPython.framework/Versions/$(PYMAJOR).$(PYMINOR)/bin/2to3 \
$(MYCWD)/python-inst/OOoPython.framework/Versions/$(PYMAJOR).$(PYMINOR)/bin/idle$(PYMAJOR).$(PYMINOR) \
$(MYCWD)/python-inst/OOoPython.framework/Versions/$(PYMAJOR).$(PYMINOR)/bin/pydoc$(PYMAJOR).$(PYMINOR) \
$(MYCWD)/python-inst/OOoPython.framework/Versions/$(PYMAJOR).$(PYMINOR)/bin/python$(PYMAJOR).$(PYMINOR)-config \
$(MYCWD)/python-inst/OOoPython.framework/Versions/$(PYMAJOR).$(PYMINOR)/bin/smtpd$(PYMAJOR).$(PYMINOR).py ; do \
{{ rm "$$file" && awk '\
BEGIN {{print "\
#!/bin/bash\n\
origpath=$$(pwd)\n\
bindir=$$(cd $$(dirname \"$$0\") ; pwd)\n\
cd \"$$origpath\"\n\
\"$$bindir/../Resources/Python.app/Contents/MacOS/OOoPython\" - $$@ <<EOF"}} \
FNR==1{{next}} \
{{print}} \
END {{print "EOF"}}' > "$$file" ; }} < "$$file" ; chmod +x "$$file" ; done
@touch $@
$(PACKAGE_DIR)/fixinstallnames: $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
@echo remove build installdir from OOoPython
$(COMMAND_ECHO)install_name_tool -change \
/python-inst/OOoPython.framework/Versions/$(PYMAJOR).$(PYMINOR)/OOoPython \
@executable_path/../../../../OOoPython \
$(MYCWD)/python-inst/OOoPython.framework/Versions/$(PYMAJOR).$(PYMINOR)/Resources/Python.app/Contents/MacOS/OOoPython
@touch $@
$(MISC)/OOoPython.framework.zip: $(PACKAGE_DIR)/fixinstallnames $(PACKAGE_DIR)/fixscripts
@-rm -f $@
@echo creating $@
$(COMMAND_ECHO)cd $(MISC)/build/python-inst && find OOoPython.framework \
-not -type l -not -name Info.plist.in \
-not -name pythonw$(PYMAJOR).$(PYMINOR) \
-not -name python$(PYMAJOR).$(PYMINOR) -print0 | \
xargs -0 zip $(ZIP_VERBOSITY) ../../$(@:f)
$(PYVERSIONFILE) : pyversion.mk $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
-rm -f $@
cat $? > $@
@-rm -f $@
@echo process $@
$(COMMAND_ECHO)sed 's#%%replaceme%%#$(MYCWD)/python-inst#g' < pyversion.mk > $@
.ENDIF # DISABLE_PYTHON != TRUE
# MACOSX - start
mkdir: %_DEST%\lib\OOoPython.framework\Versions\2.6\include\python2.6
..\%__SRC%\misc\build\python-inst\OOoPython.framework\OOoPython %_DEST%\lib\OOoPython.framework\OOoPython
..\%__SRC%\misc\build\python-inst\OOoPython.framework\Versions\2.6\* %_DEST%\lib\OOoPython.framework\Versions\2.6\*
..\%__SRC%\misc\build\python-inst\OOoPython.framework\Versions\2.6\include\python2.6\* %_DEST%\lib\OOoPython.framework\Versions\2.6\include\python2.6\*
..\%__SRC%\misc\OOoPython.framework.zip %_DEST%\bin\OOoPython.framework.zip
# MACOSX - end
..\%__SRC%\misc\pyversion.mk %_DEST%\inc\pyversion.mk
mkdir: %_DEST%\lib\python
mkdir: %_DEST%\lib\python\lib-old
mkdir: %_DEST%\lib\python\lib-tk
......@@ -69,8 +80,6 @@ mkdir: %_DEST%\lib\python\ctypes\macholib
..\%__SRC%\misc\build\Python-2.6.1\Lib\ctypes\macholib\* %_DEST%\lib\python\ctypes\macholib\*
..\%__SRC%\misc\build\Python-2.6.1\Lib\xml\etree\* %_DEST%\lib\python\xml\etree
..\pyversion.mk %_DEST%\inc\pyversion.mk
..\%__SRC%\misc\build\Python-2.6.1\Include\* %_DEST%\inc\python\*
#unix ONLY !
......@@ -81,9 +90,6 @@ mkdir: %_DEST%\lib\python\ctypes\macholib
..\%__SRC%\misc\build\python-inst\lib\libpython2.6.so.1.0 %_DEST%\lib\libpython2.6.so.1.0
symlink: %_DEST%\lib\libpython2.6.so.1.0 %_DEST%\lib\libpython2.6.so
# MacOS X
..\%__SRC%\misc\build\python-inst\lib\libpython2.6.dylib %_DEST%\lib\libpython2.6.dylib
#MingW ONLY !
..\%__SRC%\misc\build\python-inst\bin\python.exe %_DEST%\bin\python.exe
..\%__SRC%\misc\build\Python-2.6.1\libpython2.6.dll %_DEST%\bin\libpython2.6.dll
......
......@@ -7,11 +7,15 @@ PYVERSION=$(PYMAJOR).$(PYMINOR).$(PYMICRO)
.IF "$(GUI)" == "UNX"
.IF "$(OS)" == "MACOSX"
PY_FULL_DLL_NAME=libpython$(PYMAJOR).$(PYMINOR).dylib
PY_FULL_DLL_NAME=libpython$(PYMAJOR).$(PYMINOR).a
PYTHONLIB=-F$(SOLARLIBDIR) -framework OOoPython
CFLAGS+=-I$(SOLARLIBDIR)/OOoPython.framework/Versions/$(PYMAJOR).$(PYMINOR)/include/python$(PYMAJOR).$(PYMINOR)
# needed to fix install_name in pyuno
PYTHON_MAKEINSTALLDIR=%%replaceme%%
.ELSE
PY_FULL_DLL_NAME=libpython$(PYMAJOR).$(PYMINOR).so.1.0
.ENDIF
PYTHONLIB=-lpython$(PYMAJOR).$(PYMINOR)
.ENDIF
.ELSE
.IF "$(COM)" == "GCC"
PY_FULL_DLL_NAME=libpython$(PYMAJOR).$(PYMINOR).dll
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment