mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
Merged revisions 63955 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63955 | ronald.oussoren | 2008-06-05 14:58:24 +0200 (Thu, 05 Jun 2008) | 20 lines
MacOS X: Enable 4-way universal builds
This patch adds a new configure argument on OSX:
--with-universal-archs=[32-bit|64-bit|all]
When used with the --enable-universalsdk option this controls which
CPU architectures are includes in the framework. The default is 32-bit,
meaning i386 and ppc. The most useful alternative is 'all', which includes
all 4 CPU architectures supported by MacOS X (i386, ppc, x86_64 and ppc64).
This includes limited support for the Carbon bindings in 64-bit mode as well,
limited because (a) I haven't done extensive testing and (b) a large portion
of the Carbon API's aren't available in 64-bit mode anyway.
I've also duplicated a feature of Apple's build of python: setting the
environment variable 'ARCHFLAGS' controls the '-arch' flags used for building
extensions using distutils.
........
This commit is contained in:
parent
26adf520f3
commit
fcaf910a1f
14 changed files with 321 additions and 51 deletions
|
|
@ -13,7 +13,10 @@ os.chdir(os.path.expanduser('~/Documents'))
|
|||
# Make sure sys.executable points to the python interpreter inside the
|
||||
# framework, instead of at the helper executable inside the application
|
||||
# bundle (the latter works, but doesn't allow access to the window server)
|
||||
sys.executable = os.path.join(sys.prefix, 'bin', 'python')
|
||||
if sys.executable.endswith('-32'):
|
||||
sys.executable = os.path.join(sys.prefix, 'bin', 'python-32')
|
||||
else:
|
||||
sys.executable = os.path.join(sys.prefix, 'bin', 'python')
|
||||
|
||||
# Look for the -psn argument that the launcher adds and remove it, it will
|
||||
# only confuse the IDLE startup code.
|
||||
|
|
|
|||
|
|
@ -48,12 +48,42 @@ compileall=$(srcdir)/../Lib/compileall.py
|
|||
installapps: install_PythonLauncher install_IDLE checkapplepython install_pythonw \
|
||||
install_versionedtools
|
||||
|
||||
installapps4way: install_Python4way install_BuildApplet install_PythonLauncher install_IDLE install_pythonw4way install_versionedtools
|
||||
|
||||
|
||||
install_pythonw: pythonw
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) pythonw "$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)"
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) pythonw "$(DESTDIR)$(prefix)/bin/python$(VERSION)"
|
||||
ln -sf python$(VERSION) "$(DESTDIR)$(prefix)/bin/python"
|
||||
ln -sf pythonw$(VERSION) "$(DESTDIR)$(prefix)/bin/pythonw"
|
||||
|
||||
|
||||
# Install 3 variants of python/pythonw:
|
||||
# - 32-bit (i386 and ppc)
|
||||
# - 64-bit (x86_64 and ppc64)
|
||||
# - all (all four architectures)
|
||||
# - Make 'python' and 'pythonw' aliases for the 32-bit variant
|
||||
install_pythonw4way: pythonw-32 pythonw-64 pythonw
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) pythonw-64 "$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)-64"
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) pythonw-64 "$(DESTDIR)$(prefix)/bin/python$(VERSION)-64"
|
||||
ln -sf python$(VERSION)-64 "$(DESTDIR)$(prefix)/bin/python-64"
|
||||
ln -sf pythonw$(VERSION)-64 "$(DESTDIR)$(prefix)/bin/pythonw-64"
|
||||
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) pythonw-32 "$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)-32"
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) pythonw-32 "$(DESTDIR)$(prefix)/bin/python$(VERSION)-32"
|
||||
ln -sf python$(VERSION)-32 "$(DESTDIR)$(prefix)/bin/python-32"
|
||||
ln -sf pythonw$(VERSION)-32 "$(DESTDIR)$(prefix)/bin/pythonw-32"
|
||||
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) pythonw "$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)-all"
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) pythonw "$(DESTDIR)$(prefix)/bin/python$(VERSION)-all"
|
||||
ln -sf python$(VERSION)-all "$(DESTDIR)$(prefix)/bin/python-all"
|
||||
ln -sf pythonw$(VERSION)-all "$(DESTDIR)$(prefix)/bin/pythonw-all"
|
||||
|
||||
ln -sf pythonw$(VERSION)-32 "$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)"
|
||||
ln -sf python$(VERSION)-32 "$(DESTDIR)$(prefix)/bin/python$(VERSION)"
|
||||
ln -sf pythonw$(VERSION)-32 "$(DESTDIR)$(prefix)/bin/pythonw"
|
||||
ln -sf python$(VERSION)-32 "$(DESTDIR)$(prefix)/bin/python"
|
||||
|
||||
#
|
||||
# Install unix tools in /usr/local/bin. These are just aliases for the
|
||||
# actual installation inside the framework.
|
||||
|
|
@ -64,11 +94,16 @@ installunixtools:
|
|||
fi
|
||||
for fn in python pythonw idle pydoc python-config smtpd.py \
|
||||
python$(VERSION) pythonw$(VERSION) idle$(VERSION) \
|
||||
pydoc$(VERSION) python-config$(VERSION) smtpd$(VERSION).py ;\
|
||||
pydoc$(VERSION) python$(VERSION)-config smtpd$(VERSION).py ;\
|
||||
do \
|
||||
ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
|
||||
done
|
||||
|
||||
|
||||
# TODO: install symlinks for -32, -64 and -all as well
|
||||
installunixtools4way: installunixtools
|
||||
|
||||
|
||||
#
|
||||
# Like installunixtools, but only install links to the versioned binaries.
|
||||
#
|
||||
|
|
@ -77,18 +112,20 @@ altinstallunixtools:
|
|||
$(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ;\
|
||||
fi
|
||||
for fn in python$(VERSION) pythonw$(VERSION) idle$(VERSION) \
|
||||
pydoc$(VERSION) python-config$(VERSION) smtpd$(VERSION).py ;\
|
||||
pydoc$(VERSION) python$(VERSION)-config) smtpd$(VERSION).py ;\
|
||||
do \
|
||||
ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
|
||||
done
|
||||
|
||||
# TODO: -32, -64 and -all variants
|
||||
altinstallunixtools4way: altinstallunixtools
|
||||
|
||||
# By default most tools are installed without a version in their basename, to
|
||||
# make it easier to install (and use) several python versions side-by-side move
|
||||
# the tools to a version-specific name and add the non-versioned name as an
|
||||
# alias.
|
||||
install_versionedtools:
|
||||
for fn in idle pydoc python-config ;\
|
||||
for fn in idle pydoc ;\
|
||||
do \
|
||||
if [ -h "$(DESTDIR)$(prefix)/bin/$${fn}" ]; then \
|
||||
continue ;\
|
||||
|
|
@ -96,6 +133,10 @@ install_versionedtools:
|
|||
mv "$(DESTDIR)$(prefix)/bin/$${fn}" "$(DESTDIR)$(prefix)/bin/$${fn}$(VERSION)" ;\
|
||||
ln -sf "$${fn}$(VERSION)" "$(DESTDIR)$(prefix)/bin/$${fn}" ;\
|
||||
done
|
||||
if [ ! -h "$(DESTDIR)$(prefix)/bin/python-config" ]; then \
|
||||
mv "$(DESTDIR)$(prefix)/bin/python-config" "$(DESTDIR)$(prefix)/bin/python$(VERSION)-config" ;\
|
||||
ln -sf "python$(VERSION)-config" "$(DESTDIR)$(prefix)/bin/python-config" ; \
|
||||
fi
|
||||
if [ ! -h "$(DESTDIR)$(prefix)/bin/smtpd.py" ]; then \
|
||||
mv "$(DESTDIR)$(prefix)/bin/smtpd.py" "$(DESTDIR)$(prefix)/bin/smtpd$(VERSION).py" ;\
|
||||
ln -sf "smtpd$(VERSION).py" "$(DESTDIR)$(prefix)/bin/smtpd.py" ;\
|
||||
|
|
@ -106,6 +147,13 @@ pythonw: $(srcdir)/Tools/pythonw.c Makefile
|
|||
$(CC) $(LDFLAGS) -o $@ $(srcdir)/Tools/pythonw.c \
|
||||
-DPYTHONWEXECUTABLE='"$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"'
|
||||
|
||||
pythonw-32: $(srcdir)/Tools/pythonw.c Makefile
|
||||
$(CC) $(LDFLAGS) -o $@ -arch i386 -arch ppc $(srcdir)/Tools/pythonw.c \
|
||||
-DPYTHONWEXECUTABLE='"$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)-32"'
|
||||
|
||||
pythonw-64: $(srcdir)/Tools/pythonw.c Makefile
|
||||
$(CC) $(LDFLAGS) -o $@ -arch x86_64 -arch ppc64 $(srcdir)/Tools/pythonw.c \
|
||||
-DPYTHONWEXECUTABLE='"$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)-64"'
|
||||
|
||||
install_PythonLauncher:
|
||||
cd PythonLauncher && make install DESTDIR=$(DESTDIR)
|
||||
|
|
@ -158,6 +206,12 @@ install_Python:
|
|||
done
|
||||
$(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"
|
||||
|
||||
install_Python4way: install_Python
|
||||
lipo -extract i386 -extract ppc7400 -output "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)-32" "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"
|
||||
lipo -extract x86_64 -extract ppc64 -output "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)-64" "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"
|
||||
|
||||
|
||||
|
||||
install_IDLE:
|
||||
test -d "$(DESTDIR)$(PYTHONAPPSDIR)" || mkdir -p "$(DESTDIR)$(PYTHONAPPSDIR)"
|
||||
-test -d "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app" && rm -r "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue