office-gobmx/python/makefile.mk

242 lines
8.1 KiB
Makefile
Raw Normal View History

2003-03-31 07:08:05 -06:00
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# Copyright 2000, 2010 Oracle and/or its affiliates.
2003-03-31 07:08:05 -06:00
#
# OpenOffice.org - a multi-platform office productivity suite
2003-03-31 07:08:05 -06:00
#
# This file is part of OpenOffice.org.
2003-03-31 07:08:05 -06:00
#
# 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.
2003-03-31 07:08:05 -06:00
#
# 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).
2003-03-31 07:08:05 -06:00
#
# 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.
2003-03-31 07:08:05 -06:00
#
#*************************************************************************
PRJ=.
PRJNAME=so_python
TARGET=so_python
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
.IF "$(DISABLE_PYTHON)"!="TRUE"
2003-03-31 07:08:05 -06:00
.INCLUDE : pyversion.mk
.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."
.ENDIF
2003-03-31 07:08:05 -06:00
# --- Files --------------------------------------------------------
TARFILE_NAME=Python-$(PYVERSION)
TARFILE_MD5=e81c2f0953aa60f8062c05a4673f2be0
PATCH_FILES=\
Python-$(PYVERSION).patch \
Python-parallel-make.patch \
2010-10-13 08:42:06 -05:00
Python-ssl.patch \
Python-aix.patch \
Python-2.6.1-urllib.patch \
Python-2.6.1-sysbase.patch \
Python-2.6.1-nohardlink.patch \
Python-2.6.1-py2422.patch \
Python-2.6.1-py4768.patch
2003-03-31 07:08:05 -06:00
CONFIGURE_DIR=
2003-03-31 07:08:05 -06:00
2003-06-17 10:22:30 -05:00
.IF "$(GUI)"=="UNX"
BUILD_DIR=
MYCWD=$(shell @pwd)/$(INPATH)/misc/build
# CLFLAGS get overwritten in Makefile.pre.in
.IF "$(SYSBASE)"!=""
CC+:=-I$(SYSBASE)$/usr$/include
python_LDFLAGS+=-L$(SYSBASE)/usr/lib
.IF "$(COMNAME)"=="sunpro5"
CC+:=$(C_RESTRICTIONFLAGS)
.ENDIF # "$(COMNAME)"=="sunpro5"
.ENDIF # "$(SYSBASE)"!=""
.IF "$(OS)$(CPU)"=="SOLARISU"
CC+:=$(ARCH_FLAGS)
python_LDFLAGS+=$(ARCH_FLAGS)
.ENDIF
2010-10-13 08:42:06 -05:00
.IF "$(OS)"=="AIX"
python_CFLAGS=-g0
.ENDIF
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
2004-11-24 04:17:42 -06:00
.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
2011-07-25 18:00:40 -05:00
CONFIGURE_ACTION+=--enable-universalsdk=$(MACOSX_SDK_PATH) --with-universal-archs=32-bit --enable-framework=/python-inst --with-framework-name=OOoPython
ALLTAR: $(MISC)/OOoPython.framework.zip
.ENDIF
2010-10-13 08:42:06 -05:00
.IF "$(OS)"=="AIX"
CONFIGURE_ACTION += --disable-ipv6 --with-threads
.ENDIF
BUILD_ACTION=$(ENV_BUILD) $(GNUMAKE) -j$(EXTMAXPROCESS) && $(GNUMAKE) install DESTDIR=$(MYCWD) && chmod -R ug+w $(MYCWD)/python-inst && chmod g+w Include
.ELSE
# ----------------------------------
# WINDOWS
# ----------------------------------
.IF "$(COM)"=="GCC"
PATCH_FILES=Python-$(PYVERSION)-mingw.patch
BUILD_DIR=
MYCWD=$(shell cygpath -m $(shell @pwd))/$(INPATH)/misc/build
CWS-TOOLING: integrate CWS python26 2009-04-22 11:57:41 +0200 obo r271091 : #i101079# mingw port (by tono) 2009-04-22 11:56:37 +0200 obo r271090 : #i101079# mingw port (by tono) 2009-04-22 11:55:55 +0200 obo r271089 : #i101079# mingw port (by tono) 2009-04-22 11:26:00 +0200 obo r271084 : #i100492# Patch for FreeBSD (by maho) 2009-04-21 10:19:01 +0200 obo r271020 : #i92413# make python buildable in Hamburg RE environment 2009-04-17 15:52:57 +0200 obo r270952 : #i10000# fix for 4NT shell support 2009-04-17 15:16:39 +0200 hjs r270951 : #i92413# - remove gcc warnings about new struct member. fetched fomr DEV300 2009-04-17 10:30:28 +0200 sb r270927 : #i92413# adaptions for Solaris and/or bash 2009-04-16 00:36:32 +0200 jbu r270861 : #i101080# patch for bash environment provided by tono 2009-04-15 13:50:01 +0200 rene r270842 : #i100997# allow also python < 2.6 again 2009-03-12 14:23:32 +0100 rene r269410 : cleanup: remove Python 2.3.4 - not referenced anymore 2009-03-11 21:48:58 +0100 jbu r269356 : native python modules pyuno.dll -> pyuno.pyd (required by 2.6 python runtime) 2009-03-11 11:11:43 +0100 rene r269307 : fix typo; regen configure 2009-03-10 11:44:54 +0100 rene r269262 : update _AM_PYTHON_INTERPRETER_LIST 2009-03-10 00:30:09 +0100 jbu r269233 : python26 now builds on windows (installation set not built yet) 2009-03-06 21:45:20 +0100 jbu r269050 : python 2.6.1-linuxx86: PYTHONHOME variable removed from set_soenv.in (is now unecessary), added new and removed old python blob, linux x86 builds without patches, windows build still needs to be done and is now broken 2009-03-06 14:08:33 +0100 rene r269004 : #i92413#
2009-04-22 09:05:37 -05:00
python_CFLAGS=-mno-cygwin -mthreads
python_LDFLAGS=-mno-cygwin -mthreads
.IF "$(MINGW_SHARED_GCCLIB)"=="YES"
python_LDFLAGS+=-shared-libgcc
.ENDIF
python_LDFLAGS+=-shared-libgcc -Wl,--enable-runtime-pseudo-reloc-v2
CWS-TOOLING: integrate CWS python26 2009-04-22 11:57:41 +0200 obo r271091 : #i101079# mingw port (by tono) 2009-04-22 11:56:37 +0200 obo r271090 : #i101079# mingw port (by tono) 2009-04-22 11:55:55 +0200 obo r271089 : #i101079# mingw port (by tono) 2009-04-22 11:26:00 +0200 obo r271084 : #i100492# Patch for FreeBSD (by maho) 2009-04-21 10:19:01 +0200 obo r271020 : #i92413# make python buildable in Hamburg RE environment 2009-04-17 15:52:57 +0200 obo r270952 : #i10000# fix for 4NT shell support 2009-04-17 15:16:39 +0200 hjs r270951 : #i92413# - remove gcc warnings about new struct member. fetched fomr DEV300 2009-04-17 10:30:28 +0200 sb r270927 : #i92413# adaptions for Solaris and/or bash 2009-04-16 00:36:32 +0200 jbu r270861 : #i101080# patch for bash environment provided by tono 2009-04-15 13:50:01 +0200 rene r270842 : #i100997# allow also python < 2.6 again 2009-03-12 14:23:32 +0100 rene r269410 : cleanup: remove Python 2.3.4 - not referenced anymore 2009-03-11 21:48:58 +0100 jbu r269356 : native python modules pyuno.dll -> pyuno.pyd (required by 2.6 python runtime) 2009-03-11 11:11:43 +0100 rene r269307 : fix typo; regen configure 2009-03-10 11:44:54 +0100 rene r269262 : update _AM_PYTHON_INTERPRETER_LIST 2009-03-10 00:30:09 +0100 jbu r269233 : python26 now builds on windows (installation set not built yet) 2009-03-06 21:45:20 +0100 jbu r269050 : python 2.6.1-linuxx86: PYTHONHOME variable removed from set_soenv.in (is now unecessary), added new and removed old python blob, linux x86 builds without patches, windows build still needs to be done and is now broken 2009-03-06 14:08:33 +0100 rene r269004 : #i92413#
2009-04-22 09:05:37 -05:00
CONFIGURE_ACTION=./configure --prefix=$(MYCWD)/python-inst --enable-shared CC="$(CC:s/guw.exe //)" CXX="$(CXX:s/guw.exe //)" MACHDEP=MINGW32 LN="cp -p" CFLAGS="$(python_CFLAGS)" LDFLAGS="$(python_LDFLAGS)"
BUILD_ACTION=$(ENV_BUILD) make && make install
.ELSE
.IF "$(CCNUMVER)" >= "001600000000"
PATCH_FILES+=Python-$(PYVERSION)-vc10.patch
BUILD_DIR=PC/VS10.0
.ELIF "$(CCNUMVER)" >= "001500000000"
BUILD_DIR=PCbuild
.ELIF "$(CCNUMVER)" >= "001400000000"
BUILD_DIR=PC/VS8.0
.ELIF "$(CCNUMVER)" >= "001310000000"
BUILD_DIR=PC/VS7.1
.ELSE
BUILD_DIR=PC/VC6
.ENDIF
2011-01-23 12:55:04 -06:00
.IF "$(CPU)" == "I"
ARCH=Win32
.ELSE
ARCH=x64
.ENDIF
.IF "$(debug)"!=""
CONF=Debug
.ELSE
CONF=Release
.ENDIF
# Build python executable and then runs a minimal script. Running the minimal script
# ensures that certain *.pyc files are generated which would otherwise be created on
# solver during registration in insetoo_native
.IF "$(CCNUMVER)" >= "001600000000"
BUILD_ACTION=MSBuild.exe pcbuild.sln /t:Build /p:Configuration=$(CONF) /ToolsVersion:4.0
.ELSE
BUILD_ACTION=$(COMPATH)$/vcpackages$/vcbuild.exe pcbuild.sln "$(CONF)|$(ARCH)"
2003-03-31 07:08:05 -06:00
.ENDIF
.ENDIF
.ENDIF
2003-03-31 07:08:05 -06:00
PYVERSIONFILE=$(MISC)$/pyversion.mk
# --- Targets ------------------------------------------------------
.INCLUDE : set_ext.mk
.ENDIF # DISABLE_PYTHON != TRUE
2003-03-31 07:08:05 -06:00
.INCLUDE : target.mk
.IF "$(DISABLE_PYTHON)"!="TRUE"
2003-03-31 07:08:05 -06:00
.INCLUDE : tg_ext.mk
.IF "$(L10N_framework)"==""
.IF "$(GUI)" != "UNX"
.IF "$(COM)"!="GCC"
PYCONFIG:=$(MISC)$/build$/pyconfig.h
$(MISC)$/build$/$(TARFILE_NAME)$/PC$/pyconfig.h : $(PACKAGE_DIR)$/$(CONFIGURE_FLAG_FILE)
2003-06-17 10:22:30 -05:00
$(PACKAGE_DIR)$/$(BUILD_FLAG_FILE) : $(PYCONFIG)
2003-06-17 10:22:30 -05:00
$(PYCONFIG) : $(MISC)$/build$/$(TARFILE_NAME)$/PC$/pyconfig.h
2003-03-31 07:08:05 -06:00
-rm -f $@
cat $(MISC)$/build$/$(TARFILE_NAME)$/PC$/pyconfig.h > $@
2011-02-14 07:01:54 -06:00
# We know that the only thing guarded with #ifdef _DEBUG in PC/pyconfig.h is
# the line defining Py_DEBUG.
.IF "$(debug)"!=""
# If Python is built with debugging, then the modules we build need to be built with
# Py_DEBUG defined too because of the Py_InitModule4 redefining magic in modsupport.h
sed -e 's/^#ifdef _DEBUG$/#if 1/' <$@ >$@.new && mv $@.new $@
.ELSE
# Correspondingly, if Python is not built with debugging, it won't use the Py_InitModule4 redefining
# magic, so our Python modules should not be built to provide that either.
sed -e 's/^#ifdef _DEBUG$/#if 0/' <$@ >$@.new && mv $@.new $@
.ENDIF
.ENDIF
.ENDIF
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)
2003-03-31 07:08:05 -06:00
2003-06-17 10:22:30 -05:00
$(PYVERSIONFILE) : pyversion.mk $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
@-rm -f $@
$(COMMAND_ECHO)$(COPY) pyversion.mk $@
2003-06-17 10:22:30 -05:00
.ENDIF # DISABLE_PYTHON != TRUE