[Pythonmac-SIG] broken symlinks when building framework

Nat Echols nathaniel.echols at gmail.com
Fri Feb 15 22:20:13 CET 2013


On Fri, Feb 15, 2013 at 1:11 PM, Ned Deily <nad at acm.org> wrote:
> Framework builds can be confusing.  Without seeing exactly what
> "configure" options and "make" commands you are using, I can only
> speculate.  But, normally, the versioned symlinks in the framework bin
> directory for things like 2to3-2 are created by the
> "install_versionedtools" target of the Mac/Makefile and that should be
> part of the dependency chain for the main Makefile "install" target when
> configured with --enable-framework.  The "-2" symlinks are new in 2.7.3
> (Issue #12627: PEP 394 support).
>
> FWIW, here's an example of a framework build and install that uses
> non-standard locations.  You likely wouldn't need all of the options.
>
> export INSTALL_ROOT=/path/to/root
>
> ./configure \
>   --enable-universalsdk=$(xcodebuild -version -sdk macosx Path) \
>   --with-universal-archs=intel
>   --enable-framework="${INSTALL_ROOT}"/Library/Frameworks \
>   --with-framework-name=Pytest  \
>   CC=clang \
>   MACOSX_DEPLOYMENT_TARGET=10.8
>
> make && make install
>
> That should build and install into Applications, Library/Frameworks, and
> bin directories under ${INSTALL_ROOT}.

Thanks, I took a closer look at our install script, and it does this:

  ./configure --prefix="${install_build}/base"
--enable-framework=${install_build}/base >& "$py_install_log"
  make -j "$number_of_cpus" >>& "$py_install_log"
  make -j "$number_of_cpus" bininstall libinstall libainstall
inclinstall sharedinstall >>& "$py_install_log"
  cd Mac
  make install_Python install_pythonw  >>& "$py_install_log"
  cd ..
  make frameworkinstallstructure frameworkinstallmaclib \
    frameworkinstallunixtools
FRAMEWORKUNIXTOOLSPREFIX=${install_build}/base >>& "$py_install_log"

which looks to me like it isn't going to include the versioned tools.
I'm not sure why it's written this way instead of using the simpler
targets - it's not my code, but I assume there was a reason for this -
but I'm going to try adding "install_versionedtools" after
"install_pythonw" and see if that solves the problem.

-Nat


More information about the Pythonmac-SIG mailing list