summaryrefslogtreecommitdiff
path: root/pyuno/zipcore
diff options
context:
space:
mode:
authorChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2011-06-06 20:09:06 +0200
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2011-06-06 20:09:06 +0200
commit41893e087a482da83e80cc553f225d877a776f1d (patch)
tree30de2122f2b1213a598bb4e3615ad260dcfe3fd0 /pyuno/zipcore
parent47a7b9021f07f368c9c2f02cb10417d4a3acb6bf (diff)
allow to use internal Python on Mac (Python built as framework)
Diffstat (limited to 'pyuno/zipcore')
-rwxr-xr-xpyuno/zipcore/makefile.mk20
-rwxr-xr-xpyuno/zipcore/makefile.mk.orig132
-rw-r--r--pyuno/zipcore/python.sh13
3 files changed, 155 insertions, 10 deletions
diff --git a/pyuno/zipcore/makefile.mk b/pyuno/zipcore/makefile.mk
index 51cc6eb62841..cd9439b48e20 100755
--- a/pyuno/zipcore/makefile.mk
+++ b/pyuno/zipcore/makefile.mk
@@ -37,7 +37,7 @@ UWINAPILIB =
.IF "$(SYSTEM_PYTHON)" == "YES"
systempython:
- @echo "Not building python-core because system python is being used"
+ @echo "Not building python-core because system python is being used"
.ELSE
.INCLUDE : pyversion.mk
@@ -54,6 +54,7 @@ PYTHONBINARY=$(DESTROOT)$/bin$/python$(EXECPOST)
.ENDIF
.ENDIF
+.IF "$(OS)" != "MACOSX"
FINDLIBFILES_TMP:=$(subst,/,$/ \
$(shell @$(FIND) $(SOLARLIBDIR)$/python -type f| $(GREP) -v "\.pyc" |$(GREP) -v "\.py~" |$(GREP) -v .orig | $(GREP) -v _failed))
FINDLIBFILES=$(subst,$(SOLARLIBDIR)$/python, $(FINDLIBFILES_TMP))
@@ -75,15 +76,18 @@ OBJFILES = $(OBJ)$/python.obj
ALLTAR: \
$(BIN)$/$(PYDIRNAME).zip
+.ENDIF
.IF "$(GUI)" == "UNX"
ALLTAR : $(BIN)$/python.sh
+
+STRIPMAC=-e '/^NONMACSECTION/d' -e '/^MACSECTION/,$$d'
+STRIPNONMAC=-e '/^NONMACSECTION/,/^MACSECTION/d'
+
$(BIN)$/python.sh : python.sh
- -rm -f $@
- cat $? > $@
- sed 's/%%PYVERSION%%/$(PYVERSION)/g' < $@ | sed 's/%%OOO_LIBRARY_PATH_VAR%%/$(OOO_LIBRARY_PATH_VAR)/g' > $@.new
- mv $@.new $@
- chmod +x $@
+ $(COMMAND_ECHO)sed -e 's/%%PYVERSION%%/$(eq,$(OS),MACOSX $(PYMAJOR).$(PYMINOR) $(PYVERSION))/g' -e 's/%%OOO_LIBRARY_PATH_VAR%%/$(OOO_LIBRARY_PATH_VAR)/g' \
+ $(!eq,$(OS),MACOSX $(STRIPNONMAC) $(STRIPMAC)) < $? > $@
+ @chmod +x $@
.ENDIF
$(OBJ)$/python.obj: $(OUT)$/inc$/pyversion.hxx
@@ -93,7 +97,7 @@ $(OUT)$/inc$/pyversion.hxx: pyversion.inc
$(BIN)$/$(PYDIRNAME).zip : $(FILES)
.IF "$(GUI)" == "UNX"
-.IF "$(OS)" != "MACOSX" && "$(OS)" != "AIX"
+.IF "$(OS)" != "AIX"
cd $(DESTROOT) && find . -name '*$(DLLPOST)' | xargs strip
.ENDIF
.ENDIF
@@ -127,6 +131,4 @@ $(DESTROOT)$/bin$/python$(EXECPOST) : $(SOLARBINDIR)$/python$(EXECPOST)
.ENDIF
.ELSE
-ivo:
- $(ECHO)
.ENDIF # L10N_framework
diff --git a/pyuno/zipcore/makefile.mk.orig b/pyuno/zipcore/makefile.mk.orig
new file mode 100755
index 000000000000..51cc6eb62841
--- /dev/null
+++ b/pyuno/zipcore/makefile.mk.orig
@@ -0,0 +1,132 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME=pyuno
+PRJ=..
+
+TARGET=zipcore
+LIBTARGET=NO
+
+.INCLUDE : settings.mk
+.IF "$(L10N_framework)"==""
+UWINAPILIB =
+
+.IF "$(SYSTEM_PYTHON)" == "YES"
+systempython:
+ @echo "Not building python-core because system python is being used"
+.ELSE
+
+.INCLUDE : pyversion.mk
+
+PYDIRNAME=python-core-$(PYVERSION)
+DESTROOT=$(BIN)$/$(PYDIRNAME)
+.IF "$(GUI)" == "UNX"
+PYTHONBINARY=$(BIN)$/python$(EXECPOST).bin
+.ELSE
+.IF "$(COM)" == "GCC"
+PYTHONBINARY=$(DESTROOT)$/bin$/python.bin
+.ELSE
+PYTHONBINARY=$(DESTROOT)$/bin$/python$(EXECPOST)
+.ENDIF
+.ENDIF
+
+FINDLIBFILES_TMP:=$(subst,/,$/ \
+ $(shell @$(FIND) $(SOLARLIBDIR)$/python -type f| $(GREP) -v "\.pyc" |$(GREP) -v "\.py~" |$(GREP) -v .orig | $(GREP) -v _failed))
+FINDLIBFILES=$(subst,$(SOLARLIBDIR)$/python, $(FINDLIBFILES_TMP))
+
+FILES=\
+ $(PYTHONBINARY) \
+ $(foreach,i,$(FINDLIBFILES) $(DESTROOT)$/lib$(i))
+
+.IF "$(OS)" == "WNT"
+APP1TARGET = python
+APP1OBJS = $(OBJFILES) $(SOLARLIBDIR)$/pathutils-obj.obj
+APP1STDLIBS =
+APP1RPATH = BRAND
+OBJFILES = $(OBJ)$/python.obj
+.ENDIF
+
+
+.INCLUDE: target.mk
+
+ALLTAR: \
+ $(BIN)$/$(PYDIRNAME).zip
+
+.IF "$(GUI)" == "UNX"
+ALLTAR : $(BIN)$/python.sh
+$(BIN)$/python.sh : python.sh
+ -rm -f $@
+ cat $? > $@
+ sed 's/%%PYVERSION%%/$(PYVERSION)/g' < $@ | sed 's/%%OOO_LIBRARY_PATH_VAR%%/$(OOO_LIBRARY_PATH_VAR)/g' > $@.new
+ mv $@.new $@
+ chmod +x $@
+.ENDIF
+
+$(OBJ)$/python.obj: $(OUT)$/inc$/pyversion.hxx
+
+$(OUT)$/inc$/pyversion.hxx: pyversion.inc
+ $(SED) $(USQ)s/@/$(PYVERSION)/g$(USQ) < $< > $@
+
+$(BIN)$/$(PYDIRNAME).zip : $(FILES)
+.IF "$(GUI)" == "UNX"
+.IF "$(OS)" != "MACOSX" && "$(OS)" != "AIX"
+ cd $(DESTROOT) && find . -name '*$(DLLPOST)' | xargs strip
+.ENDIF
+.ENDIF
+ -rm -f $@
+ cd $(BIN) && zip -r $(PYDIRNAME).zip $(PYDIRNAME)
+
+$(DESTROOT)$/lib$/% : $(SOLARLIBDIR)$/python$/%
+ -$(MKDIRHIER) $(@:d)
+ -rm -f $@
+ cat $< > $@
+
+.IF "$(GUI)"== "UNX"
+$(BIN)$/python$(EXECPOST).bin : $(SOLARBINDIR)$/python$(EXECPOST)
+ -$(MKDIRHIER) $(@:d)
+ -rm -f $@
+ cat $< > $@
+.IF "$(OS)" != "MACOSX" && "$(OS)" != "AIX"
+ strip $@
+.ENDIF
+ chmod +x $@
+.ELSE
+.IF "$(COM)" == "GCC"
+$(DESTROOT)$/bin$/python.bin : $(SOLARBINDIR)$/python$(EXECPOST)
+.ELSE
+$(DESTROOT)$/bin$/python$(EXECPOST) : $(SOLARBINDIR)$/python$(EXECPOST)
+.ENDIF
+ -$(MKDIRHIER) $(@:d)
+ -rm -f $@
+ cat $< > $@
+.ENDIF
+
+.ENDIF
+.ELSE
+ivo:
+ $(ECHO)
+.ENDIF # L10N_framework
diff --git a/pyuno/zipcore/python.sh b/pyuno/zipcore/python.sh
index d32158fe491e..e32f1370a0d0 100644
--- a/pyuno/zipcore/python.sh
+++ b/pyuno/zipcore/python.sh
@@ -30,7 +30,7 @@
sd_cwd="`pwd`"
if [ -h "$0" ] ; then
sd_basename=`basename "$0"`
- sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
+ sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
cd "`dirname "$0"`"
cd "`dirname "$sd_script"`"
else
@@ -56,6 +56,7 @@ export UNO_PATH
: ${URE_BOOTSTRAP=vnd.sun.star.pathname:$sd_prog/fundamentalrc}
export URE_BOOTSTRAP
+NONMACSECTION
PYTHONPATH=$sd_prog/../basis-link/program:$sd_prog/../basis-link/program/python-core-%%PYVERSION%%/lib:$sd_prog/../basis-link/program/python-core-%%PYVERSION%%/lib/lib-dynload:$sd_prog/../basis-link/program/python-core-%%PYVERSION%%/lib/lib-tk:$sd_prog/../basis-link/program/python-core-%%PYVERSION%%/lib/site-packages${PYTHONPATH+:$PYTHONPATH}
export PYTHONPATH
PYTHONHOME=$sd_prog/../basis-link/program/python-core-%%PYVERSION%%
@@ -63,3 +64,13 @@ export PYTHONHOME
# execute binary
exec "$sd_prog/../basis-link/program/python.bin" "$@"
+MACSECTION
+PYTHONHOME=$sd_prog/../basis-link/program/OOoPython.framework
+export PYTHONHOME
+
+pybasislibdir=$PYTHONHOME/Versions/%%PYVERSION%%/lib/python%%PYVERSION%%
+PYTHONPATH=$sd_prog/../basis-link/program:$pybasislibdir:$pybasislibdir/lib-dynload:$pybasislibdir/lib-tk:$pybasislibdir/site-packages${PYTHONPATH+:$PYTHONPATH}
+export PYTHONPATH
+
+# execute binary
+exec "$PYTHONHOME/Versions/%%PYVERSION%%/Resources/Python.app/Contents/MacOS/OOoPython" "$@"