diff options
author | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2011-06-06 20:09:06 +0200 |
---|---|---|
committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2011-06-06 20:09:06 +0200 |
commit | 41893e087a482da83e80cc553f225d877a776f1d (patch) | |
tree | 30de2122f2b1213a598bb4e3615ad260dcfe3fd0 /pyuno/zipcore | |
parent | 47a7b9021f07f368c9c2f02cb10417d4a3acb6bf (diff) |
allow to use internal Python on Mac (Python built as framework)
Diffstat (limited to 'pyuno/zipcore')
-rwxr-xr-x | pyuno/zipcore/makefile.mk | 20 | ||||
-rwxr-xr-x | pyuno/zipcore/makefile.mk.orig | 132 | ||||
-rw-r--r-- | pyuno/zipcore/python.sh | 13 |
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" "$@" |