[Pythonmac-SIG] Can't build 2.4.3 against X11 Tcl/Tk

Ronald Oussoren ronaldoussoren at mac.com
Sun Jun 18 09:48:21 CEST 2006


On 18-jun-2006, at 4:51, Bob Ippolito wrote:

>
> On Jun 17, 2006, at 4:18 PM, Kevin Walzer wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Bob Ippolito wrote:
>>>
>>> On Jun 16, 2006, at 9:40 AM, Kevin Walzer wrote:
>>>
>>>> This is a new twist on an old problem.
>>>>
>>>> I'm trying to build a standard Unix version of Python (without
>>>> - -enable-framework) and link it against an X11-based version of
>>>> Tcl/Tk.
>>>> However, no matter what I do, it builds against the system- 
>>>> installed
>>>> Tk/Aqua.
>>>>
>>>> Googling for some solutions to this problem has turned up lots of
>>>> complaints about Python linking against an X11 version of Tk
>>>> (usually
>>>> Fink's). How far we've come! :-)
>>>>
>>>> Anyway, here are the flags I'm using to run the build:
>>>>
>>>> export CFLAGS="-arch ppc -arch i386 -isysroot
>>>> /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4
>>>> - -I/usr/local/tcl-tk-unix/include"
>>>>
>>>> export LDFLAGS="-L/usr/local/tcl-tk-unix/lib"
>>>>
>>>>
>>>> ./configure --prefix=/usr/local/python-unix --enable-threads
>>>>
>>>> I know it would be simple to use a Fink or DarwinPorts version of
>>>> Python, but I want this version to link against the universal X11
>>>> build
>>>> of Tcl/Tk I have installed.
>>>>
>>>> Any advice?
>>>
>>> Edit setup.py, remove the "if platform == 'darwin':
>>> self.detect_tkinter_darwin..."
>>>
>>> -bob
>>>
>>>
>>>
>> I've done this, and it builds, but not universal. This holds true for
>> both the universal "fat" code in SVN and for the official 2.4.3  
>> distro
>> from Python.org--it's PPC only.
>>
>> Is there anything special I can look at, apart from the flags above?
>> I've confirmed that the Tcl/Tk libs I'm linking against are  
>> universal:
>>
>> /usr/local/tcl-tk-unix/bin/tclsh8.4: Mach-O fat file with 2
>> architectures
>> /usr/local/tcl-tk-unix/bin/tclsh8.4 (for architecture ppc):      
>> Mach-O
>> executable ppc
>> /usr/local/tcl-tk-unix/bin/tclsh8.4 (for architecture i386):     
>> Mach-O
>> executable i386
>
> Universal builds are currently only supported --enable-framework --
> enable-universalsdk. I doubt that TCL is the problem here. I don't
> know what it would take to get --enable-universalsdk to work without
> --enable-framework. Maybe it already does. It hasn't been tried and
> it's not yet supported.

For 2.5 --universalsdk also works for normal unix builds and I don't  
think I changed anything substantial for that.

Are you (Kevin) sure that the build picks up the right copy of tcl/ 
tk? /usr/local/tcl-tk-unix/ isn't on the default search path and  
setup.py ignores extra CFLAGS and LDFLAGS when looking for libraries.

Ronald



More information about the Pythonmac-SIG mailing list