Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion Mac/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ LDFLAGS=@LDFLAGS@
FRAMEWORKUNIXTOOLSPREFIX=@FRAMEWORKUNIXTOOLSPREFIX@
PYTHONFRAMEWORK=@PYTHONFRAMEWORK@
PYTHONFRAMEWORKIDENTIFIER=@PYTHONFRAMEWORKIDENTIFIER@
PYTHONFRAMEWORKDIR=@PYTHONFRAMEWORKDIR@
PYTHONFRAMEWORKPREFIX=@PYTHONFRAMEWORKPREFIX@
PYTHONFRAMEWORKINSTALLNAMEPREFIX=@PYTHONFRAMEWORKINSTALLNAMEPREFIX@
LIPO_32BIT_FLAGS=@LIPO_32BIT_FLAGS@
LIPO_INTEL64_FLAGS=@LIPO_INTEL64_FLAGS@
CC=@CC@
Expand Down Expand Up @@ -173,7 +176,8 @@ altinstallunixtools:
fi

pythonw: $(srcdir)/Tools/pythonw.c Makefile
$(CC) $(LDFLAGS) -DPYTHONFRAMEWORK='"$(PYTHONFRAMEWORK)"' -o $@ \
$(CC) $(LDFLAGS) -Wl,-headerpad_max_install_names \
-DPYTHONFRAMEWORK='"$(PYTHONFRAMEWORK)"' -o $@ \
$(srcdir)/Tools/pythonw.c -I.. -I$(srcdir)/../Include \
../$(PYTHONFRAMEWORK).framework/Versions/$(VERSION)/$(PYTHONFRAMEWORK)

Expand Down Expand Up @@ -224,6 +228,13 @@ install_Python:
done; \
done
$(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"
@# Use @rpath to avoid encoded actual prefix in Python.app
install_name_tool \
-change $(PYTHONFRAMEWORKINSTALLNAMEPREFIX)/$(PYTHONFRAMEWORK) \
@rpath/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
-add_rpath @executable_path/`$(RUNSHARED) $(BUILDPYTHON) -c \
"import os; print(os.path.relpath('$(PYTHONFRAMEWORKPREFIX)', '$(APPINSTALLDIR)/Contents/MacOS'))"` \
"$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"
sed -e "s!%bundleid%!$(PYTHONFRAMEWORKIDENTIFIER)!g" \
-e "s!%version%!`$(RUNSHARED) $(BUILDPYTHON) \
-c 'import platform; print(platform.python_version())'`!g" \
Expand Down
9 changes: 9 additions & 0 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -2457,6 +2457,12 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@
$(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
else \
$(INSTALL_PROGRAM) $(STRIPFLAG) Mac/pythonw $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
install_name_tool \
-change $(PYTHONFRAMEWORKINSTALLNAMEPREFIX)/$(PYTHONFRAMEWORK) \
@rpath/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
-add_rpath @executable_path/`$(RUNSHARED) ./$(BUILDPYTHON) -c \
"import os; print(os.path.relpath('$(PYTHONFRAMEWORKPREFIX)', '$(BINDIR)'))"` \
"$(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE)"; \
fi
-if test "$(VERSION)" != "$(LDVERSION)"; then \
if test -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) -o -h $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
Expand Down Expand Up @@ -3059,6 +3065,9 @@ frameworkinstallversionedstructure: $(LDLIBRARY)
$(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
$(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources
$(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)
@# Use @rpath-based install name to avoid encoded actual prefix
install_name_tool -id @rpath/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
"$(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)"

# iOS/tvOS/watchOS uses a non-versioned framework with Info.plist in the
# framework root, no .lproj data, and only stub compilation assistance binaries
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
macOS framework builds (``--enable-framework``) now produce relocatable
frameworks that can be moved after installation without requiring
``install_name_tool`` rewriting.
2 changes: 1 addition & 1 deletion configure

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -3633,7 +3633,7 @@ then
LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED"

if test "$enable_framework"; then
LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LINKFORSHARED="$LINKFORSHARED -Wl,-headerpad_max_install_names "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
fi
LINKFORSHARED="$LINKFORSHARED"
elif test $ac_sys_system = "iOS"; then
Expand Down
Loading