From 1b9cdb47165d048a72acb062ead0a15fa722c256 Mon Sep 17 00:00:00 2001 From: das Date: Sun, 27 Nov 2005 02:36:46 +0000 Subject: * unix/tcl.m4 (Darwin): add 64bit support, check for Tiger copyfile(), add CFLAGS to SHLIB_LD to support passing -isysroot in env(CFLAGS) to configure (flag can't be present twice, so can't be in both CFLAGS and LDFLAGS during configure), don't use -prebind when deploying on 10.4, define TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING (rdar://3171542). (SC_ENABLE_LANGINFO, SC_TIME_HANDLER): add/fix caching, fix obsolete autoconf macros. Sync with tk/unix/tcl.m4, sync whitespace with HEAD. * unix/configure.in: fix obsolete autoconf macros, sync gratuitous formatting/ordering differences with tcl/unix/configure.in. * unix/Makefile.in: add CFLAGS to wish/tktest link to make executable linking the same as during configure (needed to avoid loosing any linker relevant flags in CFLAGS, in particular flags that can't be in LDFLAGS). Avoid concurrent linking of wish and compiling of tkTestInit.o during parallel make, fix dependencies and flags for building tkMacOSXInit.o (checkstubs, checkexports): dependency and Darwin fixes * macosx/tkMacOSXEvent.c (TkMacOSXProcessEvent): * macosx/tkMacOSXEvent.h: * macosx/tkMacOSXMouseEvent.c (TkMacOSXProcessMouseEvent): * macosx/tkMacOSXCarbonEvents.c: install standard application event handler, add & call functions to start and stop carbon even timer that runs the tcl event loop periodically during a nested carbon event loop in the toolbox (e.g. during menutracking) to ensure tcl timers etc continue to fire, register app event handler for menu tracking and HI command carbon events, move menu event handling to new handlers for those carbon events, no longer register for/handle appleevent carbon event (now dealt with by standard application event handler), event debugging code dynamically acquires carbon event debugging functions to allow use on Tiger where they are no longer exported from HIToolbox. * macosx/tkMacOSXFont.c (TkMacOSXUseAntialiasedText): * macosx/tkMacOSXKeyEvent.c (GetKeyboardLayout): * macosx/tkMacOSXCarbonEvents.c (TkMacOSXInitCarbonEvents): * macosx/tkMacOSXInit.c: * macosx/tkMacOSXInt.h: abstract common code to dynamically acquire address of a named symbol (from a loaded dynamic library) into new function TkMacOSXGetNamedSymbol() and macro TkMacOSXInitNamedSymbol. * macosx/tkMacOSXMenu.c (TkpNewMenu): * macosx/tkMacOSXMenubutton.c (MenuButtonInitControl): * macosx/tkMacOSXMenus.c (TkMacOSXHandleMenuSelect): switch to modern utf8 aware menu manager API, remove obsolete code, add error handling. * macosx/tkMacOSXMouseEvent.c: define OSX 10.3 or later only constants if necessary to allow compilation on OSX 10.2 * macosx/tkMacOSXWm.c (UpdateSizeHints): remove code that is never executed. * generic/tk.h: add/correct location of version numbers in macosx files. * generic/tkInt.h: clarify fat compile comment. * macosx/Wish.pbproj/default.pbxuser (new file): * macosx/Wish.pbproj/jingham.pbxuser: * macosx/Wish.pbproj/project.pbxproj: sync with HEAD. * macosx/buildTkConfig.tcl (removed): remove obsolete build files. * macosx/README: clarification/cleanup, sync with HEAD, document universal (fat) builds via CFLAGS (i.e. ppc and i386 at the same time). * macosx/Makefile: add support for reusing configure cache, build target fixes. * generic/tkMenu.c: * macosx/tkMacOSXButton.c: * macosx/tkMacOSXDebug.c: * macosx/tkMacOSXDebug.h: * macosx/tkMacOSXDialog.c: * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXXStubs.c: * macosx/tkMacOSXSubwindows.c: * xlib/xgc.c: declare functions and globals used only in own file as static, #ifdef out a few Xlib and aqua functions that are never called (sync with HEAD). * macosx/tkMacOSXPort.h: * generic/tkInt.decls: correct signature of TkMacOSXHandleMenuSelect, add XSync to aqua Xlib stubs. * generic/tkTest.c: #ifdef unix only declarations. (TestmetricsCmd): unify win and mac implementation. * generic/tkTextDisp.c: * generic/tkTextBTree.c: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXXStubs.c: fix gcc 4 warnings. * macosx/tkMacOSXNotify.c: * macosx/tkMacOSXTest.c: sync with HEAD. * generic/tkIntPlatDecls.h: * generic/tkIntXlibDecls.h: * generic/tkStubInit.c: * unix/configure: regen. --- ChangeLog | 112 +- generic/tk.h | 4 +- generic/tkInt.decls | 7 +- generic/tkInt.h | 6 +- generic/tkIntPlatDecls.h | 8 +- generic/tkIntXlibDecls.h | 9 +- generic/tkMenu.c | 16 +- generic/tkStubInit.c | 3 +- generic/tkTest.c | 56 +- generic/tkTextBTree.c | 4 +- generic/tkTextDisp.c | 5 +- macosx/Makefile | 14 +- macosx/README | 221 ++-- macosx/Wish.pbproj/default.pbxuser | 178 +++ macosx/Wish.pbproj/jingham.pbxuser | 1012 ++------------- macosx/Wish.pbproj/project.pbxproj | 2488 ++++-------------------------------- macosx/buildTkConfig.tcl | 44 - macosx/tkMacOSXButton.c | 4 +- macosx/tkMacOSXCarbonEvents.c | 428 +++++-- macosx/tkMacOSXDebug.c | 50 +- macosx/tkMacOSXDebug.h | 7 +- macosx/tkMacOSXDialog.c | 8 +- macosx/tkMacOSXDraw.c | 20 +- macosx/tkMacOSXEntry.c | 6 +- macosx/tkMacOSXEvent.c | 171 ++- macosx/tkMacOSXEvent.h | 9 +- macosx/tkMacOSXFont.c | 17 +- macosx/tkMacOSXInit.c | 65 +- macosx/tkMacOSXInt.h | 10 +- macosx/tkMacOSXKeyEvent.c | 70 +- macosx/tkMacOSXMenu.c | 45 +- macosx/tkMacOSXMenubutton.c | 58 +- macosx/tkMacOSXMenus.c | 46 +- macosx/tkMacOSXMouseEvent.c | 42 +- macosx/tkMacOSXNotify.c | 3 +- macosx/tkMacOSXPort.h | 4 +- macosx/tkMacOSXSubwindows.c | 6 +- macosx/tkMacOSXTest.c | 5 +- macosx/tkMacOSXWindowEvent.c | 18 +- macosx/tkMacOSXWm.c | 76 +- macosx/tkMacOSXXStubs.c | 24 +- unix/Makefile.in | 42 +- unix/configure | 1485 +++++++++++---------- unix/configure.in | 160 ++- unix/tcl.m4 | 142 +- xlib/xgc.c | 9 +- 46 files changed, 2629 insertions(+), 4588 deletions(-) create mode 100644 macosx/Wish.pbproj/default.pbxuser delete mode 100755 macosx/buildTkConfig.tcl diff --git a/ChangeLog b/ChangeLog index 33b1077..bdbad91 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,109 @@ +2005-11-27 Daniel Steffen + + * unix/tcl.m4 (Darwin): add 64bit support, check for Tiger copyfile(), + add CFLAGS to SHLIB_LD to support passing -isysroot in env(CFLAGS) to + configure (flag can't be present twice, so can't be in both CFLAGS and + LDFLAGS during configure), don't use -prebind when deploying on 10.4, + define TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING (rdar://3171542). + (SC_ENABLE_LANGINFO, SC_TIME_HANDLER): add/fix caching, fix obsolete + autoconf macros. Sync with tk/unix/tcl.m4, sync whitespace with HEAD. + + * unix/configure.in: fix obsolete autoconf macros, sync gratuitous + formatting/ordering differences with tcl/unix/configure.in. + + * unix/Makefile.in: add CFLAGS to wish/tktest link to make executable + linking the same as during configure (needed to avoid loosing any linker + relevant flags in CFLAGS, in particular flags that can't be in LDFLAGS). + Avoid concurrent linking of wish and compiling of tkTestInit.o during + parallel make, fix dependencies and flags for building tkMacOSXInit.o + (checkstubs, checkexports): dependency and Darwin fixes + + * macosx/tkMacOSXEvent.c (TkMacOSXProcessEvent): + * macosx/tkMacOSXEvent.h: + * macosx/tkMacOSXMouseEvent.c (TkMacOSXProcessMouseEvent): + * macosx/tkMacOSXCarbonEvents.c: install standard application event + handler, add & call functions to start and stop carbon even timer that + runs the tcl event loop periodically during a nested carbon event loop + in the toolbox (e.g. during menutracking) to ensure tcl timers etc + continue to fire, register app event handler for menu tracking and HI + command carbon events, move menu event handling to new handlers for + those carbon events, no longer register for/handle appleevent carbon + event (now dealt with by standard application event handler), event + debugging code dynamically acquires carbon event debugging functions to + allow use on Tiger where they are no longer exported from HIToolbox. + + * macosx/tkMacOSXFont.c (TkMacOSXUseAntialiasedText): + * macosx/tkMacOSXKeyEvent.c (GetKeyboardLayout): + * macosx/tkMacOSXCarbonEvents.c (TkMacOSXInitCarbonEvents): + * macosx/tkMacOSXInit.c: + * macosx/tkMacOSXInt.h: abstract common code to dynamically acquire + address of a named symbol (from a loaded dynamic library) into new + function TkMacOSXGetNamedSymbol() and macro TkMacOSXInitNamedSymbol. + + * macosx/tkMacOSXMenu.c (TkpNewMenu): + * macosx/tkMacOSXMenubutton.c (MenuButtonInitControl): + * macosx/tkMacOSXMenus.c (TkMacOSXHandleMenuSelect): switch to modern + utf8 aware menu manager API, remove obsolete code, add error handling. + + * macosx/tkMacOSXMouseEvent.c: define OSX 10.3 or later only constants + if necessary to allow compilation on OSX 10.2 + + * macosx/tkMacOSXWm.c (UpdateSizeHints): remove code that is never + executed. + + * generic/tk.h: add/correct location of version numbers in macosx files. + + * generic/tkInt.h: clarify fat compile comment. + + * macosx/Wish.pbproj/default.pbxuser (new file): + * macosx/Wish.pbproj/jingham.pbxuser: + * macosx/Wish.pbproj/project.pbxproj: sync with HEAD. + + * macosx/buildTkConfig.tcl (removed): remove obsolete build files. + + * macosx/README: clarification/cleanup, sync with HEAD, document + universal (fat) builds via CFLAGS (i.e. ppc and i386 at the same time). + + * macosx/Makefile: add support for reusing configure cache, build target + fixes. + + * generic/tkMenu.c: + * macosx/tkMacOSXButton.c: + * macosx/tkMacOSXDebug.c: + * macosx/tkMacOSXDebug.h: + * macosx/tkMacOSXDialog.c: + * macosx/tkMacOSXDraw.c: + * macosx/tkMacOSXEntry.c: + * macosx/tkMacOSXMenu.c: + * macosx/tkMacOSXMouseEvent.c: + * macosx/tkMacOSXXStubs.c: + * macosx/tkMacOSXSubwindows.c: + * xlib/xgc.c: declare functions and globals used only in own file as + static, #ifdef out a few Xlib and aqua functions that are never called + (sync with HEAD). + + * macosx/tkMacOSXPort.h: + * generic/tkInt.decls: correct signature of TkMacOSXHandleMenuSelect, + add XSync to aqua Xlib stubs. + + * generic/tkTest.c: #ifdef unix only declarations. + (TestmetricsCmd): unify win and mac implementation. + + * generic/tkTextDisp.c: + * generic/tkTextBTree.c: + * macosx/tkMacOSXInit.c: + * macosx/tkMacOSXKeyEvent.c: + * macosx/tkMacOSXWindowEvent.c: + * macosx/tkMacOSXXStubs.c: fix gcc 4 warnings. + + * macosx/tkMacOSXNotify.c: + * macosx/tkMacOSXTest.c: sync with HEAD. + + * generic/tkIntPlatDecls.h: + * generic/tkIntXlibDecls.h: + * generic/tkStubInit.c: + * unix/configure: regen. + 2005-11-22 Donal K. Fellows * generic/tkFont.c (ParseFontNameObj, ConfigAttributesObj): Allow @@ -18,7 +124,7 @@ * README: Bump version number to 8.4.12 * generic/tk.h: - * macosx/Wish.pbproj/project.pbxproc: + * macosx/Wish.pbproj/project.pbxproj: * unix/configure.in: * unix/tk.spec: * win/configure.in: @@ -203,7 +309,7 @@ kEventWindowExpanded event to deal with window uncollapsing from the dock by generating tk Map event, handle kEventAppHidden and kEventAppShown events (moved here from tkMacOSXCarbonEvents.c). - + * macosx/tkMacOSXSubwindows.c (XUnmapWindow): only hide window when it is not iconified to avoid window flashing on collapse. @@ -314,7 +420,7 @@ recognize special show/hide functions for sheets 2005-07-24 Mo DeJong - + * unix/Makefile.in: Subst TCLSH_PROG and BUILD_TCLSH into Makefile. Rework html target so that it depends on the tclsh diff --git a/generic/tk.h b/generic/tk.h index 88ba717..a11d207 100644 --- a/generic/tk.h +++ b/generic/tk.h @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tk.h,v 1.74.2.12 2005/11/16 22:07:37 dgp Exp $ + * RCS: @(#) $Id: tk.h,v 1.74.2.13 2005/11/27 02:44:25 das Exp $ */ #ifndef _TK @@ -36,8 +36,6 @@ extern "C" { * win/makefile.vc (not patchlevel) * README (sections 0 and 1) * mac/README (not patchlevel) - * macosx/Wish.pbproj/project.pbxproj - * (14 LOC total, 4 LOC patch) * win/README (not patchlevel) * unix/README (not patchlevel) * unix/tk.spec (3 LOC Major/Minor, 2 LOC patch) diff --git a/generic/tkInt.decls b/generic/tkInt.decls index 1d756f3..cb82468 100644 --- a/generic/tkInt.decls +++ b/generic/tkInt.decls @@ -9,7 +9,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: tkInt.decls,v 1.33.2.5 2005/08/09 07:39:51 das Exp $ +# RCS: @(#) $Id: tkInt.decls,v 1.33.2.6 2005/11/27 02:44:25 das Exp $ library tk @@ -1229,7 +1229,7 @@ declare 17 aqua { } declare 18 aqua { - void TkMacOSXHandleMenuSelect (long mResult, int optionKeyPressed) + void TkMacOSXHandleMenuSelect(MenuID theMenu, MenuItemIndex theItem, int optionKeyPressed) } # removed duplicates from tkPlat table (tk.decls) @@ -2273,3 +2273,6 @@ declare 90 {mac aqua} { Status XQueryTree (Display* d, Window w1, Window* w2, Window* w3, \ Window** w4, unsigned int* ui) } +declare 91 {aqua} { + int XSync(Display *display, Bool flag) +} diff --git a/generic/tkInt.h b/generic/tkInt.h index b263d10..1d779b4 100644 --- a/generic/tkInt.h +++ b/generic/tkInt.h @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: $Id: tkInt.h,v 1.56.2.6 2005/10/10 21:27:33 hobbs Exp $ + * RCS: $Id: tkInt.h,v 1.56.2.7 2005/11/27 02:44:25 das Exp $ */ #ifndef _TKINT @@ -24,13 +24,13 @@ #include "tcl.h" #endif #ifndef _TKPORT -#include +#include "tkPort.h" #endif /* * Ensure WORDS_BIGENDIAN is defined correcly: * Needs to happen here in addition to configure to work with fat compiles on - * Darwin (i.e. ppc and i386 at the same time). + * Darwin (where configure runs only once for multiple architectures). */ #ifdef HAVE_SYS_TYPES_H diff --git a/generic/tkIntPlatDecls.h b/generic/tkIntPlatDecls.h index 33bfc98..9c68194 100644 --- a/generic/tkIntPlatDecls.h +++ b/generic/tkIntPlatDecls.h @@ -9,7 +9,7 @@ * Copyright (c) 1998-1999 by Scriptics Corporation. * All rights reserved. * - * RCS: @(#) $Id: tkIntPlatDecls.h,v 1.15.2.3 2005/08/09 07:39:51 das Exp $ + * RCS: @(#) $Id: tkIntPlatDecls.h,v 1.15.2.4 2005/11/27 02:44:25 das Exp $ */ #ifndef _TKINTPLATDECLS @@ -302,8 +302,8 @@ EXTERN Window TkMacOSXGetXWindow _ANSI_ARGS_((WindowRef macWinPtr)); EXTERN int TkMacOSXGrowToplevel _ANSI_ARGS_(( WindowRef whichWindow, Point start)); /* 18 */ -EXTERN void TkMacOSXHandleMenuSelect _ANSI_ARGS_((long mResult, - int optionKeyPressed)); +EXTERN void TkMacOSXHandleMenuSelect _ANSI_ARGS_((MenuID theMenu, + MenuItemIndex theItem, int optionKeyPressed)); /* Slot 19 is reserved */ /* Slot 20 is reserved */ /* 21 */ @@ -553,7 +553,7 @@ typedef struct TkIntPlatStubs { void *reserved15; Window (*tkMacOSXGetXWindow) _ANSI_ARGS_((WindowRef macWinPtr)); /* 16 */ int (*tkMacOSXGrowToplevel) _ANSI_ARGS_((WindowRef whichWindow, Point start)); /* 17 */ - void (*tkMacOSXHandleMenuSelect) _ANSI_ARGS_((long mResult, int optionKeyPressed)); /* 18 */ + void (*tkMacOSXHandleMenuSelect) _ANSI_ARGS_((MenuID theMenu, MenuItemIndex theItem, int optionKeyPressed)); /* 18 */ void *reserved19; void *reserved20; void (*tkMacOSXInvalidateWindow) _ANSI_ARGS_((MacDrawable * macWin, int flag)); /* 21 */ diff --git a/generic/tkIntXlibDecls.h b/generic/tkIntXlibDecls.h index 829741f..3b8a78b 100644 --- a/generic/tkIntXlibDecls.h +++ b/generic/tkIntXlibDecls.h @@ -9,7 +9,7 @@ * Copyright (c) 1998-1999 by Scriptics Corporation. * All rights reserved. * - * RCS: @(#) $Id: tkIntXlibDecls.h,v 1.16 2002/10/09 11:56:33 das Exp $ + * RCS: @(#) $Id: tkIntXlibDecls.h,v 1.16.2.1 2005/11/27 02:44:25 das Exp $ */ #ifndef _TKINTXLIBDECLS @@ -945,6 +945,8 @@ EXTERN void XQueryColors _ANSI_ARGS_((Display * display, EXTERN Status XQueryTree _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, Window** w4, unsigned int* ui)); +/* 91 */ +EXTERN int XSync _ANSI_ARGS_((Display * display, Bool flag)); #endif /* MAC_OSX_TK */ typedef struct TkIntXlibStubs { @@ -1245,6 +1247,7 @@ typedef struct TkIntXlibStubs { void (*xQueryColor) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * def_in_out)); /* 88 */ void (*xQueryColors) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * defs_in_out, int ncolors)); /* 89 */ Status (*xQueryTree) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, Window** w4, unsigned int* ui)); /* 90 */ + int (*xSync) _ANSI_ARGS_((Display * display, Bool flag)); /* 91 */ #endif /* MAC_OSX_TK */ } TkIntXlibStubs; @@ -2420,6 +2423,10 @@ extern TkIntXlibStubs *tkIntXlibStubsPtr; #define XQueryTree \ (tkIntXlibStubsPtr->xQueryTree) /* 90 */ #endif +#ifndef XSync +#define XSync \ + (tkIntXlibStubsPtr->xSync) /* 91 */ +#endif #endif /* MAC_OSX_TK */ #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ diff --git a/generic/tkMenu.c b/generic/tkMenu.c index 42fec13..e272ee1 100644 --- a/generic/tkMenu.c +++ b/generic/tkMenu.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMenu.c,v 1.20.2.5 2005/05/31 05:05:35 hobbs Exp $ + * RCS: @(#) $Id: tkMenu.c,v 1.20.2.6 2005/11/27 02:44:25 das Exp $ */ /* @@ -119,7 +119,7 @@ static char *compoundStrings[] = { "bottom", "center", "left", "none", "right", "top", (char *) NULL }; -Tk_OptionSpec tkBasicMenuEntryConfigSpecs[] = { +static Tk_OptionSpec tkBasicMenuEntryConfigSpecs[] = { {TK_OPTION_BORDER, "-activebackground", (char *) NULL, (char *) NULL, DEF_MENU_ENTRY_ACTIVE_BG, Tk_Offset(TkMenuEntry, activeBorderPtr), -1, TK_OPTION_NULL_OK}, @@ -168,14 +168,14 @@ Tk_OptionSpec tkBasicMenuEntryConfigSpecs[] = { {TK_OPTION_END} }; -Tk_OptionSpec tkSeparatorEntryConfigSpecs[] = { +static Tk_OptionSpec tkSeparatorEntryConfigSpecs[] = { {TK_OPTION_BORDER, "-background", (char *) NULL, (char *) NULL, DEF_MENU_ENTRY_BG, Tk_Offset(TkMenuEntry, borderPtr), -1, TK_OPTION_NULL_OK}, {TK_OPTION_END} }; -Tk_OptionSpec tkCheckButtonEntryConfigSpecs[] = { +static Tk_OptionSpec tkCheckButtonEntryConfigSpecs[] = { {TK_OPTION_BOOLEAN, "-indicatoron", (char *) NULL, (char *) NULL, DEF_MENU_ENTRY_INDICATOR, -1, Tk_Offset(TkMenuEntry, indicatorOn)}, @@ -198,7 +198,7 @@ Tk_OptionSpec tkCheckButtonEntryConfigSpecs[] = { (char *) NULL, 0, -1, 0, (ClientData) tkBasicMenuEntryConfigSpecs} }; -Tk_OptionSpec tkRadioButtonEntryConfigSpecs[] = { +static Tk_OptionSpec tkRadioButtonEntryConfigSpecs[] = { {TK_OPTION_BOOLEAN, "-indicatoron", (char *) NULL, (char *) NULL, DEF_MENU_ENTRY_INDICATOR, -1, Tk_Offset(TkMenuEntry, indicatorOn)}, @@ -218,7 +218,7 @@ Tk_OptionSpec tkRadioButtonEntryConfigSpecs[] = { (char *) NULL, 0, -1, 0, (ClientData) tkBasicMenuEntryConfigSpecs} }; -Tk_OptionSpec tkCascadeEntryConfigSpecs[] = { +static Tk_OptionSpec tkCascadeEntryConfigSpecs[] = { {TK_OPTION_STRING, "-menu", (char *) NULL, (char *) NULL, DEF_MENU_ENTRY_MENU, Tk_Offset(TkMenuEntry, namePtr), -1, TK_OPTION_NULL_OK}, @@ -226,7 +226,7 @@ Tk_OptionSpec tkCascadeEntryConfigSpecs[] = { (char *) NULL, 0, -1, 0, (ClientData) tkBasicMenuEntryConfigSpecs} }; -Tk_OptionSpec tkTearoffEntryConfigSpecs[] = { +static Tk_OptionSpec tkTearoffEntryConfigSpecs[] = { {TK_OPTION_BORDER, "-background", (char *) NULL, (char *) NULL, DEF_MENU_ENTRY_BG, Tk_Offset(TkMenuEntry, borderPtr), -1, TK_OPTION_NULL_OK}, @@ -248,7 +248,7 @@ static Tk_OptionSpec *specsArray[] = { static CONST char *menuTypeStrings[] = {"normal", "tearoff", "menubar", (char *) NULL}; -Tk_OptionSpec tkMenuConfigSpecs[] = { +static Tk_OptionSpec tkMenuConfigSpecs[] = { {TK_OPTION_BORDER, "-activebackground", "activeBackground", "Foreground", DEF_MENU_ACTIVE_BG_COLOR, Tk_Offset(TkMenu, activeBorderPtr), -1, 0, diff --git a/generic/tkStubInit.c b/generic/tkStubInit.c index 495a509..373c73e 100644 --- a/generic/tkStubInit.c +++ b/generic/tkStubInit.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkStubInit.c,v 1.41.2.3 2005/07/28 04:57:38 hobbs Exp $ + * RCS: @(#) $Id: tkStubInit.c,v 1.41.2.4 2005/11/27 02:44:25 das Exp $ */ #include "tkInt.h" @@ -815,6 +815,7 @@ TkIntXlibStubs tkIntXlibStubs = { XQueryColor, /* 88 */ XQueryColors, /* 89 */ XQueryTree, /* 90 */ + XSync, /* 91 */ #endif /* MAC_OSX_TK */ }; diff --git a/generic/tkTest.c b/generic/tkTest.c index 320d5a3..fc91e6c 100644 --- a/generic/tkTest.c +++ b/generic/tkTest.c @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkTest.c,v 1.21.2.1 2005/05/24 04:21:01 das Exp $ + * RCS: @(#) $Id: tkTest.c,v 1.21.2.2 2005/11/27 02:44:25 das Exp $ */ #include "tkInt.h" @@ -179,8 +179,10 @@ static int TestfontObjCmd _ANSI_ARGS_((ClientData dummy, Tcl_Obj *CONST objv[])); static int TestmakeexistCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int argc, CONST char **argv)); +#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) static int TestmenubarCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int argc, CONST char **argv)); +#endif #if defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK) static int TestmetricsCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int argc, CONST char **argv)); @@ -201,8 +203,10 @@ static void CustomOptionFree _ANSI_ARGS_((ClientData clientData, Tk_Window tkwin, char *internalPtr)); static int TestpropCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int argc, CONST char **argv)); +#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) static int TestsendCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int argc, CONST char **argv)); +#endif static int TesttextCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int argc, CONST char **argv)); #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) @@ -1959,6 +1963,7 @@ TestmakeexistCmd(clientData, interp, argc, argv) */ /* ARGSUSED */ +#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) static int TestmenubarCmd(clientData, interp, argc, argv) ClientData clientData; /* Main window for application. */ @@ -2008,6 +2013,7 @@ TestmenubarCmd(clientData, interp, argc, argv) return TCL_ERROR; #endif } +#endif /* *---------------------------------------------------------------------- @@ -2026,7 +2032,7 @@ TestmenubarCmd(clientData, interp, argc, argv) *---------------------------------------------------------------------- */ -#ifdef __WIN32__ +#if defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK) static int TestmetricsCmd(clientData, interp, argc, argv) ClientData clientData; /* Main window for application. */ @@ -2035,38 +2041,17 @@ TestmetricsCmd(clientData, interp, argc, argv) CONST char **argv; /* Argument strings. */ { char buf[TCL_INTEGER_SPACE]; + int val; +#ifdef __WIN32__ if (argc < 2) { Tcl_AppendResult(interp, "wrong # args; must be \"", argv[0], " option ?arg ...?\"", (char *) NULL); return TCL_ERROR; } - - if (strcmp(argv[1], "cyvscroll") == 0) { - sprintf(buf, "%d", GetSystemMetrics(SM_CYVSCROLL)); - Tcl_AppendResult(interp, buf, (char *) NULL); - } else if (strcmp(argv[1], "cxhscroll") == 0) { - sprintf(buf, "%d", GetSystemMetrics(SM_CXHSCROLL)); - Tcl_AppendResult(interp, buf, (char *) NULL); - } else { - Tcl_AppendResult(interp, "bad option \"", argv[1], - "\": must be cxhscroll or cyvscroll", (char *) NULL); - return TCL_ERROR; - } - return TCL_OK; -} -#endif -#if defined(MAC_TCL) || defined(MAC_OSX_TK) -static int -TestmetricsCmd(clientData, interp, argc, argv) - ClientData clientData; /* Main window for application. */ - Tcl_Interp *interp; /* Current interpreter. */ - int argc; /* Number of arguments. */ - CONST char **argv; /* Argument strings. */ -{ +#else Tk_Window tkwin = (Tk_Window) clientData; TkWindow *winPtr; - char buf[TCL_INTEGER_SPACE]; if (argc != 3) { Tcl_AppendResult(interp, "wrong # args; must be \"", argv[0], @@ -2078,18 +2063,27 @@ TestmetricsCmd(clientData, interp, argc, argv) if (winPtr == NULL) { return TCL_ERROR; } - +#endif + if (strcmp(argv[1], "cyvscroll") == 0) { - sprintf(buf, "%d", ((TkScrollbar *) winPtr->instanceData)->width); - Tcl_AppendResult(interp, buf, (char *) NULL); +#ifdef __WIN32__ + val = GetSystemMetrics(SM_CYVSCROLL); +#else + val = ((TkScrollbar *) winPtr->instanceData)->width; +#endif } else if (strcmp(argv[1], "cxhscroll") == 0) { - sprintf(buf, "%d", ((TkScrollbar *) winPtr->instanceData)->width); - Tcl_AppendResult(interp, buf, (char *) NULL); +#ifdef __WIN32__ + val = GetSystemMetrics(SM_CXHSCROLL); +#else + val = ((TkScrollbar *) winPtr->instanceData)->width; +#endif } else { Tcl_AppendResult(interp, "bad option \"", argv[1], "\": must be cxhscroll or cyvscroll", (char *) NULL); return TCL_ERROR; } + sprintf(buf, "%d", val); + Tcl_AppendResult(interp, buf, (char *) NULL); return TCL_OK; } #endif diff --git a/generic/tkTextBTree.c b/generic/tkTextBTree.c index 4f8ac7d..5c5fb86 100644 --- a/generic/tkTextBTree.c +++ b/generic/tkTextBTree.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkTextBTree.c,v 1.6 2002/08/05 04:30:40 dgp Exp $ + * RCS: @(#) $Id: tkTextBTree.c,v 1.6.2.1 2005/11/27 02:44:25 das Exp $ */ #include "tkInt.h" @@ -2466,7 +2466,7 @@ TkTextIsElided(textPtr, indexPtr) register Node *nodePtr; register TkTextLine *siblingLinePtr; register TkTextSegment *segPtr; - register TkTextTag *tagPtr; + register TkTextTag *tagPtr = NULL; /* silence gcc 4 warning */ register int i, index; /* almost always avoid malloc, so stay out of system calls */ diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c index c541c32..4866cfa 100644 --- a/generic/tkTextDisp.c +++ b/generic/tkTextDisp.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkTextDisp.c,v 1.14 2002/11/22 23:25:19 hobbs Exp $ + * RCS: @(#) $Id: tkTextDisp.c,v 1.14.2.1 2005/11/27 02:44:26 das Exp $ */ #include "tkPort.h" @@ -3210,7 +3210,8 @@ MeasureUp(textPtr, srcPtr, distance, dstPtr) int lineNum; /* Number of current line. */ int bytesToCount; /* Maximum number of bytes to measure in * current line. */ - TkTextIndex bestIndex; /* Best candidate seen so far for result. */ + TkTextIndex bestIndex = {NULL, NULL, 0}; /* Best candidate seen so far for + * result. Silence gcc 4 warning */ TkTextIndex index; DLine *dlPtr, *lowestPtr; int noBestYet; /* 1 means bestIndex hasn't been set. */ diff --git a/macosx/Makefile b/macosx/Makefile index e611787..b4f77f7 100644 --- a/macosx/Makefile +++ b/macosx/Makefile @@ -4,7 +4,7 @@ # uses the standard unix build system in tk/unix (which can be used directly instead of this # if you are not using the tk/macosx projects). # -# RCS: @(#) $Id: Makefile,v 1.7.2.11 2005/06/18 21:47:47 das Exp $ +# RCS: @(#) $Id: Makefile,v 1.7.2.12 2005/11/27 02:36:46 das Exp $ # ######################################################################################################## @@ -100,7 +100,7 @@ TCL_VERSION := ${VERSION} wish := wish WISH = wish${VERSION} -BUILD_TARGET := wish +BUILD_TARGET := all tktest INSTALL_TARGET := install ifneq ($(wildcard ${TCL_BUILD_DIR}/tclConfig.sh),) @@ -135,7 +135,7 @@ endif MAKE_VARS += INSTALL_ROOT INSTALL_TARGETS VERSION MAKE_ARGS_V = $(foreach v,${MAKE_VARS},$v='${$v}') -build-${PROJECT}: target = ${TARGET} +build-${PROJECT}: target = ${BUILD_TARGET} install-${PROJECT}: target = ${INSTALL_TARGET} clean-${PROJECT} distclean-${PROJECT} test-${PROJECT}: \ target = $* @@ -164,12 +164,14 @@ TK_FMWK_DIR := ${FMWK_DIR}/${PRODUCT_NAME}.framework/Versions/${VERSION} ${PROJECT}: ${MAKE} install-${PROJECT} INSTALL_ROOT=${OBJ_DIR}/ -${OBJ_DIR}/Makefile: ${UNIX_DIR}/Makefile.in ${UNIX_DIR}/configure - mkdir -p ${OBJ_DIR} && cd ${OBJ_DIR} && ${UNIX_DIR}/configure \ +${OBJ_DIR}/Makefile: ${UNIX_DIR}/Makefile.in ${UNIX_DIR}/configure \ + ${UNIX_DIR}/tkConfig.sh.in Tk-Info.plist.in Wish-Info.plist.in + mkdir -p ${OBJ_DIR} && cd ${OBJ_DIR} && \ + if [ ${UNIX_DIR}/configure -nt config.status ]; then ${UNIX_DIR}/configure \ --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} \ --mandir=${MANDIR} --enable-threads --enable-framework \ --with-tcl=${TCL_DIR} \ - ${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS} + ${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}; else ./config.status; fi ifneq (${TK_X11},) @cd ${OBJ_DIR} && sed -e 's#/Versions/${TCL_VERSION}#/Versions/${VERSION}#' \ tkConfig.sh > tkConfig.sh.1 && mv -f tkConfig.sh.1 tkConfig.sh diff --git a/macosx/README b/macosx/README index 70d1961..066c5d1 100644 --- a/macosx/README +++ b/macosx/README @@ -1,44 +1,51 @@ -TclTkAqua README ----------------- +Tcl/Tk Mac OS X README +---------------------- -RCS: @(#) $Id: README,v 1.6.2.8 2005/05/24 04:21:32 das Exp $ +RCS: @(#) $Id: README,v 1.6.2.9 2005/11/27 02:36:46 das Exp $ -This is the README file for the Mac OS X native versions of Tcl & Tk. +This is the README file for the Mac OS X/Darwin version of Tcl/Tk. -1. General ----------- +1. Where to go for support +-------------------------- -- The tcl-mac mailing list on sourceforge is the canonical place for questions +- The tcl-mac mailing list on sourceforge is the best place to ask questions specific to Tcl & Tk on Mac OS X: http://lists.sourceforge.net/lists/listinfo/tcl-mac (this page also has a link to searchable archives of the list, please check them before asking on the list, many questions have already been answered). -- For general tcl/tk questions, the newsgroup comp.lang.tcl is your best bet, -but also check the Tcl'ers Wiki for a wealth of information: - http://wiki.tcl.tk/ +- For general Tcl/Tk questions, the newsgroup comp.lang.tcl is your best bet: + http://groups.google.com/group/comp.lang.tcl/ -- The wiki has a page listing known bugs in Mac OS X Tcl/Tk (and other tips) - http://wiki.tcl.tk/MacOS%20X -as well as a page with info on building Tcl/Tk on Mac OS X - http://wiki.tcl.tk/Steps%20to%20build%20Tcl/Tk%208.4.0%20on%20MacOS%20X +- The Tcl'ers Wiki also has many pages dealing with Tcl & Tk on Mac OS X, see + http://wiki.tcl.tk/references/3753! + http://wiki.tcl.tk/references/8361! -- You should report bugs to the sourceforge bug trackers as usual: - Tcl: https://sourceforge.net/tracker/?func=add&group_id=10894&atid=110894 - Tk: https://sourceforge.net/tracker/?func=add&group_id=12997&atid=112997 -please make sure that your report Tk specific bugs to the tktoolkit bug -tracker and not the tcl one. +- Please report bugs with Tcl or Tk on Mac OS X to the sourceforge bug trackers: + Tcl: http://sf.net/tracker/?func=add&group_id=10894&atid=110894 + Tk: http://sf.net/tracker/?func=add&group_id=12997&atid=112997 +please make sure that your report Tk specific bugs to the tktoolkit project bug +tracker rather than the tcl project bug tracker. +Mac OS X specific bugs should usually be assigned to 'das' or 'wolfsuit'. -2. Using TclTkAqua ------------------- +2. Using Tcl/Tk on Mac OS X +--------------------------- -- Mac OS X 10.2 (or higher) is required to run TclTkAqua. +- There are two versions of Tk available on Mac OS X: TkAqua using the native +aqua widgets and look&feel, and TkX11 using the traditional unix X11 wigets. +TkX11 requires an X11 server to be installed, such as Apple's X11 (which is +available as an optional install on recent Mac OS X retail disks). +TkAqua and TkX11 can be distinguished at runtime via [tk windowingsystem]. -- Tcl built on Mac OS X 10.3 or higher will not run on 10.2 due to missing -symbols in libSystem, however Tcl built on 10.2 will run on 10.3 (but without -prebinding and other optimizations). +- At a minimum, Mac OS X 10.1 is required to run Tcl and TkX11, and OS X 10.2 is +required to run TkAqua. However OS X 10.3 or higher is recommended (certain +[file] operations behave incorrectly on earlier releases). + +- Tcl/Tk built on Mac OS X 10.x will not run on 10.y for y < x, on the other +hand Tcl/Tk built on 10.y will run on 10.x for y < x (but without any of the +fixes and optimizations that would be available in a binary built on 10.x). - Wish checks the Resources/Scripts directory in its application bundle for a file called AppMain.tcl, if found it is used as the startup script and the @@ -46,85 +53,81 @@ Scripts folder is added to the auto_path. This can be used to emulate the old OS9 TclTk droplets. - If standard input is a special file of zero length (e.g. /dev/null), Wish -brings up the tk console window at startup. This is the case when double +brings up the Tk console window at startup. This is the case when double clicking Wish in the Finder (or using 'open Wish.app' from the Terminal). -- Tcl extensions will be found in any of: +- Tcl extensions can be installed in any of: $HOME/Library/Tcl /Library/Tcl /Network/Library/Tcl /System/Library/Tcl $HOME/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks /System/Library/Frameworks (searched in that order). Given a potential package directory $pkg, Tcl on OSX checks for the file $pkg/Resources/Scripts/pkgIndex.tcl as well as the usual $pkg/pkgIndex.tcl. -This allows building extensions as frameworks with all script files contained -in the Resources/Scripts directory of the framework. +This allows building extensions as frameworks with all script files contained in +the Resources/Scripts directory of the framework. + +- [load]able binary extensions can linked as either ordinary shared libraries +(.dylib) or as MachO bundles (since 8.4.10/8.5a3); only bundles can be unloaded, +and bundles are also loaded more efficiently from VFS (no temporary copy to the +native filesystem required). -- The Tcl and Tk frameworks contain documentation in html format in the -standard location for frameworks: +- The 'deploy' target of macosx/GNUmakefile installs the html manpages into the +standard documentation location in the Tcl/Tk frameworks: Tcl.framework/Resources/Documentation/Reference/Tcl Tk.framework/Resources/Documentation/Reference/Tk -No manpages are installed by default for either tcl or tk. +No nroff manpages are installed by default by the GNUmakefiles. -- the frameworks Tcl.framework and Tk.framework can be placed in any of the -system's standard framework directories: +- The Tcl and Tk frameworks can be installed in any of the system's standard +framework directories: $HOME/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks /System/Library/Frameworks -and 'Wish' as well as /usr/bin/tclsh will work. -- /usr/bin/wish is a script that calls a copy of 'Wish' contained in +- /usr/bin/wish8.x is a script that calls a copy of 'Wish' contained in Tk.framework/Resources - if 'Wish' is started from the Finder or via 'open', $argv contains a "-psn_XXXX" argument. This is the Wish's carbon process serial number, you may need to filter it out for cross platform compatibility of your scripts. -- the env array is different when Wish is started from the Finder than when -it (or tclsh) is invoked from the Terminal, in particular PATH may not be what -you expect. (Wish started from the Finder inherits the Finder's environment +- the env array is different when Wish is started from the Finder than when it +(or tclsh) is invoked from the Terminal, in particular PATH may not be what you +expect. (Wish started from the Finder inherits the Finder's environment variables, which are essentially those set in $HOME/.MacOSX/environment.plist and not those set by your shell configuration files). -- As of Tk 8.4.7, AquaTk has a version of the low-level drawing primitives using +- As of Tk 8.4.7, TkAqua has a version of the low-level drawing primitives using the CoreGraphics routines - the code is primarily due to James Tittle. There were numerous problems with the QD version, mostly due to the different drawing -model of QD & Tk. CG also trivially supports dashed lines, and the various end -caps & miters. So this is a great improvement. - -The old QD code is retained for now, just in case there are any -compatibility problems. To switch back to the QD drawing, just put: - -set tk::mac::useCGDrawing 0 - -in your script before you do drawing. Also the CG drawing can anti-alias line drawing. -However, anti-aliased thin lines look washed out, so the threshold for antialiasing -is set to 3 pixel width lines. You can change this if you want by putting: - -set tk::mac::CGAntialiasLimit - -in your script before drawing, in which case only lines thinner that pixels -will not be antialiased. +model of QD & Tk. CG also trivially supports dashed lines, and the various end +caps & miters. So this is a great improvement. +The old QD code is retained for now, just in case there are any compatibility +problems. To switch back to the QD drawing, just put: + set tk::mac::useCGDrawing 0 +in your script before you do drawing. Also the CG drawing can anti-alias line +drawing. However, anti-aliased thin lines look washed out, so the threshold for +antialiasing is set to 3 pixel width lines. You can change this if you want by +putting: + set tk::mac::CGAntialiasLimit +in your script before drawing, in which case only lines thinner that +pixels will not be antialiased. - Quickdraw text antialiasing is enabled by default when available (from 10.1.5 onwards). Changing the global boolean variable '::tk::mac::antialiasedtext' -allows to dis/enable antialiasing on the fly from tcl (even for existing text). +allows to dis/enable antialiasing on the fly from Tcl (even for existing text). -- the format of binary extensions expected by [load] is that of ordinary shared -libraries (.dylib) and not MachO bundles, at present loading of MachO bundles is -not supported. +- Scrollbars: There are two scrollbar variants in Aqua, normal & small. The +normal scrollbar has a small dimension of 16, the small variant 12. Access to +the small variant was added in Tk 8.4.2. -- Scrollbars: There are two scrollbar variants in Aqua, normal & small. The -normal scrollbar has a small dimension of 16, the small variant 12. Access -to the small variant was added in Tk 8.4.2. - -- Cursors: You can now put up and spin the Classic MacOS spinner, and the -counting hands and watch cursor. The way this is done is each of the spinners +- Cursors: You can now put up and spin the Classic MacOS spinner, and the +counting hands and watch cursor. The way this is done is each of the spinners have a base name: spinning: The circular B&W circular spinner countinguphand: The counting up hand countingdownhand: The counting down hand countingupanddownhand: The counting up then down hand watch: The watch cursor -Then to get the sequential variants, add an integer to the end of the base -name. So, for instance this code will spin the spinner: +Then to get the sequential variants, add an integer to the end of the base name. +So, for instance this code will spin the spinner: proc spinCursor {widget count} { $widget configure -cursor spinning$count after 100 spinCursor [incr count] @@ -132,27 +135,50 @@ name. So, for instance this code will spin the spinner: This was added in Tk 8.4.2 -3. Building TclTkAqua ---------------------- - -- Mac OS X 10.2 (or higher) is required to build TclTkAqua on MacOSX. - -- Apple's Developer Tools CD needs to be installed (the most recent version -matching your OS release, but no earlier than December 2002). This CD should -have come with Mac OS X retail or should be present as a disk image on new macs -that came with OSX preinstalled. It can also be downloaded from -http://connect.apple.com (after you register for free ADC membership). - -- Tcl and Tk are built as a Mac OS X frameworks via the Makefiles in tcl/macosx -and tk/macosx, but can also be built directly with the standard unix configure -and make buildsystem in tcl/unix resp. tk/unix. - -- It is still possible to build with Apple's Xcode IDE using the Tcl.pbproj and -Wish.pbproj projects but this is not recommended anymore (currently Tcl.pbproj -calls through to the tcl/macosx/Makefile; but Wish.pbproj doesn't, so there could -be build differences). - -- Unpack the tcl and tk source release archives and place the tcl and tk source +3. Building Tcl/Tk on Mac OS X +------------------------------ + +- At least Mac OS X 10.1 is required to build Tcl and TkX11 and OS X 10.2 is +required to build TkAqua. Apple's Developer Tools need to be installed (only the +most recent version matching your OS release is supported). The Developer Tools +installer is available on Mac OS X retail disks or is present in +/Applications/Installers on Macs that came with OS X preinstalled. The most +recent version can be downloaded from the ADC website http://connect.apple.com +(after you register for free ADC membership). + +- Tcl/Tk are most easily built as Mac OS X frameworks via GNUmakefile in +tcl/macosx and tk/macosx (see below for details), but can also be built with the +standard unix configure and make buildsystem in tcl/unix resp. tk/unix as on any +other unix platform (indeed, the GNUmakefiles are just wrappers around the unix +buildsystem). +The Mac OS X specifc configure flags are --enable-aqua, --enable-framework and +--disable-corefoundation (which disables CF and notably reverts to the standard +select based notifier, you will only need this if your require use of naked fork +(i.e. not followed by execve) in an unthreaded core). Note that --enable-aqua is +incompatible with --disable-corefoundation (for both Tcl and Tk configure). + +- It is also possible to build with Apple's IDE via the tk/macosx/Wish.pbproj +project, this simply calls through to the tk/macosx/GNUMakefile. It requires a +build of the tcl/macosx/Tcl.pbproj project. + +- To build universal binaires, set CFLAGS as follows: + export CFLAGS="-arch ppc -arch i386 \ + -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" +This requires Mac OS X 10.4 and Xcode 2.2 (_not_ Xcode 2.1) and will work on +any of the architectures (on i386 DTKs, the -isysroot is not required). +Note that it is not possible to configure correctly if the current architecture +is not present in CFLAGS (i.e. -arch `arch` must always be there). +Universal builds of Tk TEA extensions are also possible with CFLAGS set as +above, they will be [load]able by universal as well as thin binaries of Tk. +Note that while Tcl can be built for the ppc64 architecture, neither TkAqua nor +TkX11 can be built with -arch ppc64 as the corresponding GUI libraries are not +available for 64bit at present. However, linking a universal 'ppc i386' Tk +binary against a universal 'ppc ppc64 i386' Tcl binary works just fine. + +Detailed Instructions for building with macosx/GNUmakefile +---------------------------------------------------------- + +- Unpack the Tcl and Tk source release archives and place the tcl and tk source trees in a common parent directory. [ If you don't want have the two source trees in one directory, you'll need to ] [ create the following symbolic link for the build to work as setup by default ] @@ -160,17 +186,17 @@ trees in a common parent directory. [ (where /path_to_{tcl,tk} is the directory containing the tcl resp. tk tree) ] [ or you can pass an argument of BUILD_DIR=/somewhere to the tcl and tk make. ] -- The following instructions assume the tcl and tk source trees are named +- The following instructions assume the Tcl and Tk source trees are named "tcl${ver}" and "tk${ver}", respectively, where ${ver} is a shell variable -containing the tcl and tk version number (for example '8.4.2'). +containing the Tcl and Tk version number (for example '8.4.12'). Setup the shell variable as follows: - set ver="8.4.2" ;: if your shell is csh - ver="8.4.2" ;: if your shell is sh + set ver="8.4.12" ;: if your shell is csh + ver="8.4.12" ;: if your shell is sh The source trees will be named this way only if you are building from a release archive, if you are building from CVS, the version numbers will be missing; so set ${ver} to the empty string instead: - set ver="" ;: if your shell is csh - ver="" ;: if your shell is sh + set ver="" ;: if your shell is csh + ver="" ;: if your shell is sh - The following steps will build Tcl and Tk from the Terminal, assuming you are located in the directory containing the tcl and tk source trees: @@ -221,13 +247,12 @@ Notes: - It is possible to build Tk against an installed Tcl.framework; but you will still need a tcl sourcetree in the location specified in TCL_SRC_DIR in -Tcl.framework/tclConfig.sh. Also, linking with Tcl.framework has to work -exactly as indicated in TCL_LIB_SPEC in Tcl.framework/tclConfig.sh. +Tcl.framework/tclConfig.sh. Also, linking with Tcl.framework has to work exactly +as indicated in TCL_LIB_SPEC in Tcl.framework/tclConfig.sh. If you used non-default install locations for Tcl.framework, specify them as make overrides to the tk/macosx Makefile, e.g. make -C tk${ver}/macosx \ TCL_FRAMEWORK_DIR=$HOME/Library/Frameworks TCLSH_DIR=$HOME/usr/bin sudo make -C tk${ver}/macosx install \ TCL_FRAMEWORK_DIR=$HOME/Library/Frameworks TCLSH_DIR=$HOME/usr/bin - The Makefile variables TCL_FRAMEWORK_DIR and TCLSH_DIR were added in Tk 8.4.3. diff --git a/macosx/Wish.pbproj/default.pbxuser b/macosx/Wish.pbproj/default.pbxuser new file mode 100644 index 0000000..aafee5a --- /dev/null +++ b/macosx/Wish.pbproj/default.pbxuser @@ -0,0 +1,178 @@ +// !$*UTF8*$! +{ + F537552A016C352C01DC9062 = { + activeBuildStyle = F537552C016C352C01DC9062; + activeExecutable = F9F6B1E308E8648C00C9CB24; + activeTarget = F9D6747B08E84DC100688CAA; + addToTargets = ( + ); + codeSenseManager = F9D7368F06AD399F00DC3A31; + executables = ( + F9F6B1EB08E864DC00C9CB24, + F9F6B1E308E8648C00C9CB24, + ); + sourceControlManager = F9D7368E06AD399F00DC3A31; + userBuildSettings = { + SYMROOT = "${SRCROOT}/../../build/tk"; + }; + }; + F9D6747B08E84DC100688CAA = { + activeExec = 0; + }; + F9D7368E06AD399F00DC3A31 = { + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + isa = PBXSourceControlManager; + scmConfiguration = { + }; + scmType = scm.cvs; + }; + F9D7368F06AD399F00DC3A31 = { + indexTemplatePath = ""; + isa = PBXCodeSenseManager; + usesDefaults = 1; + wantsCodeCompletion = 1; + wantsCodeCompletionAutoSuggestions = 1; + wantsCodeCompletionCaseSensitivity = 1; + wantsCodeCompletionListAlways = 1; + wantsCodeCompletionOnlyMatchingItems = 1; + wantsCodeCompletionParametersIncluded = 1; + wantsCodeCompletionPlaceholdersInserted = 1; + wantsCodeCompletionTabCompletes = 1; + wantsIndex = 1; + }; + F9F6B1E308E8648C00C9CB24 = { + activeArgIndex = 2147483647; + activeArgIndices = ( + ); + argumentStrings = ( + ); + configStateDict = { + "PBXLSLaunchAction-0" = { + PBXLSLaunchAction = 0; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXLSRunLaunchConfig; + displayName = "Executable Runner"; + identifier = com.apple.Xcode.launch.runConfig; + remoteHostInfo = ""; + startActionInfo = ""; + }; + "PBXLSLaunchAction-1" = { + PBXLSLaunchAction = 1; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXGDB_LaunchConfig; + displayName = GDB; + identifier = com.apple.Xcode.launch.GDBMI_Config; + remoteHostInfo = ""; + startActionInfo = ""; + }; + }; + cppStopOnCatchEnabled = 0; + cppStopOnThrowEnabled = 0; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = _debug; + enableDebugStr = 0; + environmentEntries = ( + { + active = NO; + name = DYLD_PRINT_LIBRARIES; + }, + ); + isa = PBXExecutable; + launchableReference = F9F6B1E408E8648C00C9CB24; + libgmallocEnabled = 0; + name = Wish; + shlibInfoDictList = ( + ); + sourceDirectories = ( + ); + }; + F9F6B1E408E8648C00C9CB24 = { + isa = PBXFileReference; + lastKnownFileType = wrapper.application; + path = Wish.app; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F9F6B1EB08E864DC00C9CB24 = { + activeArgIndex = 2147483647; + activeArgIndices = ( + NO, + NO, + NO, + ); + argumentStrings = ( + "${SRCROOT}/../../tcl/tests/all.tcl", + "${SRCROOT}/../../tk/tests/all.tcl", + "-verbose \"\"", + ); + configStateDict = { + "PBXLSLaunchAction-0" = { + PBXLSLaunchAction = 0; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXLSRunLaunchConfig; + displayName = "Executable Runner"; + identifier = com.apple.Xcode.launch.runConfig; + remoteHostInfo = ""; + startActionInfo = ""; + }; + "PBXLSLaunchAction-1" = { + PBXLSLaunchAction = 1; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXGDB_LaunchConfig; + displayName = GDB; + identifier = com.apple.Xcode.launch.GDBMI_Config; + remoteHostInfo = ""; + startActionInfo = ""; + }; + }; + cppStopOnCatchEnabled = 0; + cppStopOnThrowEnabled = 0; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = _debug; + enableDebugStr = 0; + environmentEntries = ( + { + active = YES; + name = TCL_LIBRARY; + value = "${SRCROOT}/../../tcl/library"; + }, + { + active = YES; + name = TK_LIBRARY; + value = "${SRCROOT}/../../tk/library"; + }, + { + active = NO; + name = DYLD_PRINT_LIBRARIES; + }, + ); + isa = PBXExecutable; + launchableReference = F9F6B1EC08E864DC00C9CB24; + libgmallocEnabled = 0; + name = tktest; + shlibInfoDictList = ( + ); + sourceDirectories = ( + ); + }; + F9F6B1EC08E864DC00C9CB24 = { + isa = PBXFileReference; + lastKnownFileType = "compiled.mach-o.executable"; + path = tktest; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; +} diff --git a/macosx/Wish.pbproj/jingham.pbxuser b/macosx/Wish.pbproj/jingham.pbxuser index 79685a9..aafee5a 100644 --- a/macosx/Wish.pbproj/jingham.pbxuser +++ b/macosx/Wish.pbproj/jingham.pbxuser @@ -1,20 +1,25 @@ // !$*UTF8*$! { - 4C26BFE606AF8D9A00889141 = { - fileReference = F5375551016C376E01DC9062; - functionName = "TkMacOSXSetUpCGContext()"; - isa = PBXFileBreakpoint; - lineNumber = 1730; - state = 2; + F537552A016C352C01DC9062 = { + activeBuildStyle = F537552C016C352C01DC9062; + activeExecutable = F9F6B1E308E8648C00C9CB24; + activeTarget = F9D6747B08E84DC100688CAA; + addToTargets = ( + ); + codeSenseManager = F9D7368F06AD399F00DC3A31; + executables = ( + F9F6B1EB08E864DC00C9CB24, + F9F6B1E308E8648C00C9CB24, + ); + sourceControlManager = F9D7368E06AD399F00DC3A31; + userBuildSettings = { + SYMROOT = "${SRCROOT}/../../build/tk"; + }; }; - 4C26BFE806AF8E8600889141 = { - fileReference = F5375551016C376E01DC9062; - functionName = "TkMacOSXReleaseCGContext()"; - isa = PBXFileBreakpoint; - lineNumber = 1833; - state = 2; + F9D6747B08E84DC100688CAA = { + activeExec = 0; }; - 4CFCC13905E175AD00686F63 = { + F9D7368E06AD399F00DC3A31 = { fallbackIsa = XCSourceControlManager; isSCMEnabled = 0; isa = PBXSourceControlManager; @@ -22,12 +27,12 @@ }; scmType = scm.cvs; }; - 4CFCC13A05E175AD00686F63 = { + F9D7368F06AD399F00DC3A31 = { indexTemplatePath = ""; isa = PBXCodeSenseManager; usesDefaults = 1; wantsCodeCompletion = 1; - wantsCodeCompletionAutoSuggestions = 0; + wantsCodeCompletionAutoSuggestions = 1; wantsCodeCompletionCaseSensitivity = 1; wantsCodeCompletionListAlways = 1; wantsCodeCompletionOnlyMatchingItems = 1; @@ -36,903 +41,138 @@ wantsCodeCompletionTabCompletes = 1; wantsIndex = 1; }; - F537552A016C352C01DC9062 = { - activeBuildStyle = F537552C016C352C01DC9062; - activeExecutable = F9B92F14047876F1006F146B; - activeTarget = F53755DF016C38D201DC9062; - addToTargets = ( - F53755DF016C38D201DC9062, - ); - breakpoints = ( - 4C26BFE606AF8D9A00889141, - 4C26BFE806AF8E8600889141, + F9F6B1E308E8648C00C9CB24 = { + activeArgIndex = 2147483647; + activeArgIndices = ( ); - codeSenseManager = 4CFCC13A05E175AD00686F63; - executables = ( - F9B92F14047876F1006F146B, + argumentStrings = ( ); - perUserDictionary = { - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 280, - 20, - 55, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID; - PBXFileTableDataSourceColumnWidthsKey = ( - 196.2974, - 198.2085, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFindDataSource_MessageID, - PBXFindDataSource_LocationID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 133417037; - PBXPrepackagedSmartGroups_v2 = ( - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - activationKey = OldTargetSmartGroup; - clz = PBXTargetSmartGroup; - description = "Displays all targets of the project."; - globalID = 1C37FABC04509CD000000102; - name = Targets; - preferences = { - image = Targets; - }; - }, - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - clz = PBXTargetSmartGroup2; - description = "Displays all targets of the project as well as nested build phases."; - globalID = 1C37FBAC04509CD000000102; - name = Targets; - preferences = { - image = Targets; - }; - }, - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - clz = PBXExecutablesSmartGroup; - description = "Displays all executables of the project."; - globalID = 1C37FAAC04509CD000000102; - name = Executables; - preferences = { - image = Executable; - }; - }, - { - " PBXTransientLocationAtTop " = bottom; - absolutePathToBundle = ""; - clz = PBXErrorsWarningsSmartGroup; - description = "Displays files with errors or warnings."; - globalID = 1C08E77C0454961000C914BD; - name = "Errors and Warnings"; - preferences = { - fnmatch = ""; - image = WarningsErrors; - recursive = 1; - regex = ""; - root = ""; - }; - }, - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - clz = PBXFilenameSmartGroup; - description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter."; - globalID = 1CC0EA4004350EF90044410B; - name = "Implementation Files"; - preferences = { - canSave = 1; - fnmatch = ""; - image = SmartFolder; - isLeaf = 0; - recursive = 1; - regex = "?*\\.[mcMC]"; - root = ""; - }; - }, - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - clz = PBXFilenameSmartGroup; - description = "This group displays Interface Builder NIB Files."; - globalID = 1CC0EA4004350EF90041110B; - name = "NIB Files"; - preferences = { - canSave = 1; - fnmatch = "*.nib"; - image = SmartFolder; - isLeaf = 0; - recursive = 1; - regex = ""; - root = ""; - }; - }, - { - PBXTransientLocationAtTop = no; - absolutePathToBundle = ""; - clz = PBXFindSmartGroup; - description = "Displays Find Results."; - globalID = 1C37FABC05509CD000000102; - name = "Find Results"; - preferences = { - image = spyglass; - }; - }, - { - PBXTransientLocationAtTop = no; - absolutePathToBundle = ""; - clz = PBXBookmarksSmartGroup; - description = "Displays Project Bookmarks."; - globalID = 1C37FABC05539CD112110102; - name = Bookmarks; - preferences = { - image = Bookmarks; - }; - }, - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - clz = XCSCMSmartGroup; - description = "Displays files with interesting SCM status."; - globalID = E2644B35053B69B200211256; - name = SCM; - preferences = { - image = PBXRepository; - isLeaf = 0; - }; - }, - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - clz = PBXSymbolsSmartGroup; - description = "Displays all symbols for the project."; - globalID = 1C37FABC04509CD000100104; - name = "Project Symbols"; - preferences = { - image = ProjectSymbols; - isLeaf = 1; - }; - }, - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - clz = PBXFilenameSmartGroup; - description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter."; - globalID = PBXTemplateMarker; - name = "Simple Filter SmartGroup"; - preferences = { - canSave = 1; - fnmatch = "*.nib"; - image = SmartFolder; - isLeaf = 0; - recursive = 1; - regex = ""; - root = ""; - }; - }, - { - PBXTransientLocationAtTop = bottom; - absolutePathToBundle = ""; - clz = PBXFilenameSmartGroup; - description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter."; - globalID = PBXTemplateMarker; - name = "Simple Regular Expression SmartGroup"; - preferences = { - canSave = 1; - fnmatch = ""; - image = SmartFolder; - isLeaf = 0; - recursive = 1; - regex = "?*\\.[mcMC]"; - root = ""; - }; - }, - { - PBXTransientLocationAtTop = bottom; - clz = XDDesignSmartGroup; - description = "Displays Xdesign models"; - globalID = 2E4A936305E6979E00701470; - name = Design; - preferences = { - image = Design; - isLeaf = 0; - }; - }, - ); - PBXWorkspaceContents = ( - { - PBXProjectWorkspaceModule_StateKey_Rev39 = { - PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = { - BoundsStr = "{{0, 0}, {216, 426}}"; - Rows = ( - ); - VisibleRectStr = "{{0, 0}, {216, 426}}"; - }; - PBXProjectWorkspaceModule_EditorOpen = false; - PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = { - PBXSplitModuleInNavigatorKey = { - SplitCount = 1; - }; - }; - PBXProjectWorkspaceModule_GeometryKey_Rev15 = { - PBXProjectWorkspaceModule_SGTM_Geometry = { - _collapsingFrameDimension = 418; - _indexOfCollapsedView = 1; - _percentageOfCollapsedView = 0.6966667; - isCollapsed = yes; - sizes = ( - "{{0, 0}, {413, 422}}", - ); - }; - }; - PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {231, 443}}"; - PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}"; - PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {231, 443}}"; - PBXProjectWorkspaceModule_SGTM = { - PBXBottomSmartGroupGIDs = ( - 1C37FBAC04509CD000000102, - 1C37FAAC04509CD000000102, - 1C08E77C0454961000C914BD, - 1CC0EA4004350EF90044410B, - 1CC0EA4004350EF90041110B, - 1C37FABC05509CD000000102, - 1C37FABC05539CD112110102, - E2644B35053B69B200211256, - 1C37FABC04509CD000100104, - ); - PBXSmartGroupTreeModuleColumnData = { - PBXSmartGroupTreeModuleColumnWidthsKey = ( - 396, - ); - PBXSmartGroupTreeModuleColumnsKey_v4 = ( - MainColumn, - ); - }; - PBXSmartGroupTreeModuleOutlineStateKey_v7 = { - PBXSmartGroupTreeModuleOutlineStateExpansionKey = ( - F537552B016C352C01DC9062, - F537552E016C376E01DC9062, - F5375530016C376E01DC9062, - F537553C016C376E01DC9062, - F537553D016C376E01DC9062, - F5375546016C376E01DC9062, - F53755CC016C389901DC9062, - F53755CD016C389901DC9062, - 1C37FABC05509CD000000102, - ); - PBXSmartGroupTreeModuleOutlineStateSelectionKey = ( - ( - 107, - 94, - 85, - 0, - ), - ); - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 1650}, {396, 404}}"; - }; - PBXTopSmartGroupGIDs = ( - ); - }; - }; - }, - ); - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXBuildResultsModule" = { - }; - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugBreakpointsModule" = { - }; - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugCLIModule" = { - }; - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugSessionModule" = { - Debugger = { - HorizontalSplitView = { - _collapsingFrameDimension = 0; - _indexOfCollapsedView = 0; - _percentageOfCollapsedView = 0; - isCollapsed = yes; - sizes = ( - "{{0, 0}, {301, 283}}", - "{{301, 0}, {504, 283}}", - ); - }; - VerticalSplitView = { - _collapsingFrameDimension = 0; - _indexOfCollapsedView = 0; - _percentageOfCollapsedView = 0; - isCollapsed = yes; - sizes = ( - "{{0, 0}, {805, 283}}", - "{{0, 283}, {805, 309}}", - ); - }; - }; - LauncherConfigVersion = 8; - }; - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugSingleDataValueViewModule" = { - }; - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXNavigatorGroup" = { - PBXSplitModuleInNavigatorKey = { - SplitCount = 1; - }; - }; - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectFindModule" = { - }; - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = { - PBXProjectWorkspaceModule_StateKey_Rev39 = { - PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = { - BoundsStr = "{{0, 0}, {216, 426}}"; - Rows = ( - ); - VisibleRectStr = "{{0, 0}, {216, 426}}"; - }; - PBXProjectWorkspaceModule_EditorOpen = false; - PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = { - PBXSplitModuleInNavigatorKey = { - SplitCount = 1; - }; - }; - PBXProjectWorkspaceModule_GeometryKey_Rev15 = { - PBXProjectWorkspaceModule_SGTM_Geometry = { - _collapsingFrameDimension = 418; - _indexOfCollapsedView = 1; - _percentageOfCollapsedView = 0.6966667; - isCollapsed = yes; - sizes = ( - "{{0, 0}, {413, 422}}", - ); - }; - }; - PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {231, 443}}"; - PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}"; - PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {231, 443}}"; - PBXProjectWorkspaceModule_SGTM = { - PBXBottomSmartGroupGIDs = ( - 1C37FBAC04509CD000000102, - 1C37FAAC04509CD000000102, - 1C08E77C0454961000C914BD, - 1CC0EA4004350EF90044410B, - 1CC0EA4004350EF90041110B, - 1C37FABC05509CD000000102, - 1C37FABC05539CD112110102, - E2644B35053B69B200211256, - 1C37FABC04509CD000100104, - ); - PBXSmartGroupTreeModuleColumnData = { - PBXSmartGroupTreeModuleColumnWidthsKey = ( - 396, - ); - PBXSmartGroupTreeModuleColumnsKey_v4 = ( - MainColumn, - ); - }; - PBXSmartGroupTreeModuleOutlineStateKey_v7 = { - PBXSmartGroupTreeModuleOutlineStateExpansionKey = ( - F537552B016C352C01DC9062, - F537553C016C376E01DC9062, - F537553D016C376E01DC9062, - F5375546016C376E01DC9062, - F53755CC016C389901DC9062, - F53755CD016C389901DC9062, - 1C37FABC05509CD000000102, - ); - PBXSmartGroupTreeModuleOutlineStateSelectionKey = ( - ( - 31, - 16, - 7, - 0, - ), - ); - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 400}, {396, 404}}"; - }; - PBXTopSmartGroupGIDs = ( - ); - }; - }; - }; - "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXRunSessionModule" = { - LauncherConfigVersion = 3; - Runner = { - HorizontalSplitView = { - _collapsingFrameDimension = 0; - _indexOfCollapsedView = 0; - _percentageOfCollapsedView = 0; - isCollapsed = yes; - sizes = ( - "{{0, 0}, {365, 167}}", - "{{0, 176}, {365, 267}}", - ); - }; - VerticalSplitView = { - _collapsingFrameDimension = 0; - _indexOfCollapsedView = 0; - _percentageOfCollapsedView = 0; - isCollapsed = yes; - sizes = ( - "{{0, 0}, {405, 443}}", - "{{414, 0}, {514, 443}}", - ); - }; - }; - }; - PBXWorkspaceGeometries = ( - { - Frame = "{{0, 0}, {413, 422}}"; - PBXProjectWorkspaceModule_GeometryKey_Rev15 = { - }; - RubberWindowFrame = "380 282 413 464 0 0 1024 746 "; - }, - ); - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBuildResultsModule" = { - Frame = "{{0, 0}, {719, 443}}"; - PBXModuleWindowStatusBarHidden = YES; - RubberWindowFrame = "280 83 719 464 0 0 1024 746 "; - }; - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugBreakpointsModule" = { - BreakpointsTreeTableConfiguration = ( - enabledColumn, - 16, - breakpointColumn, - 282.583, - ); - Frame = "{{0, 0}, {208, 495}}"; - PBXModuleWindowStatusBarHidden = YES; - RubberWindowFrame = "761 230 208 516 0 0 1024 746 "; - }; - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugCLIModule" = { - Frame = "{{0, 0}, {500, 258}}"; - RubberWindowFrame = "469 103 500 300 0 0 1024 746 "; - }; - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugSessionModule" = { - DebugConsoleDrawerSize = "{100, 120}"; - DebugConsoleVisible = None; - DebugConsoleWindowFrame = "{{65, 452}, {959, 294}}"; - DebugSTDIOWindowFrame = "{{469, 103}, {500, 300}}"; - Frame = "{{0, 0}, {805, 592}}"; - RubberWindowFrame = "145 107 805 634 0 0 1024 746 "; - }; - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugSingleDataValueViewModule" = { - Frame = "{{0, 0}, {400, 657}}"; - RubberWindowFrame = "35 16 400 699 0 0 1024 746 "; - }; - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXNavigatorGroup" = { - Frame = "{{0, 0}, {597, 659}}"; - PBXModuleWindowStatusBarHidden = YES; - RubberWindowFrame = "253 66 597 680 0 0 1024 746 "; - }; - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectFindModule" = { - Frame = "{{0, 0}, {654, 460}}"; - RubberWindowFrame = "293 148 654 502 0 0 1024 746 "; - }; - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = { - Frame = "{{0, 0}, {413, 422}}"; - PBXProjectWorkspaceModule_GeometryKey_Rev15 = { - }; - RubberWindowFrame = "380 282 413 464 0 0 1024 746 "; - }; - "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXRunSessionModule" = { - Frame = "{{0, 0}, {745, 443}}"; - PBXModuleWindowStatusBarHidden = YES; - RubberWindowFrame = "254 127 745 464 0 0 1024 746 "; + configStateDict = { + "PBXLSLaunchAction-0" = { + PBXLSLaunchAction = 0; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXLSRunLaunchConfig; + displayName = "Executable Runner"; + identifier = com.apple.Xcode.launch.runConfig; + remoteHostInfo = ""; + startActionInfo = ""; + }; + "PBXLSLaunchAction-1" = { + PBXLSLaunchAction = 1; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXGDB_LaunchConfig; + displayName = GDB; + identifier = com.apple.Xcode.launch.GDBMI_Config; + remoteHostInfo = ""; + startActionInfo = ""; }; - PBXWorkspaceStateSaveDate = 133417037; - }; - sourceControlManager = 4CFCC13905E175AD00686F63; - userBuildSettings = { - OBJROOT = "${SRCROOT}/../../build/tk/"; - SYMROOT = "${SRCROOT}/../../build/tk"; - }; - }; - F5375540016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 7517}}"; - sepNavSelRange = "{9914, 0}"; - sepNavVisRect = "{{0, 3927}, {711, 449}}"; - sepNavWindowFrame = "{{180, 60}, {750, 534}}"; - }; - }; - F5375542016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 2267}}"; - sepNavSelRange = "{4985, 26}"; - sepNavVisRect = "{{0, 1790}, {711, 449}}"; - sepNavWindowFrame = "{{42, 186}, {750, 534}}"; - }; - }; - F537554A016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 22819}}"; - sepNavSelRange = "{5893, 16}"; - sepNavVisRect = "{{0, 4310}, {711, 449}}"; - sepNavWindowFrame = "{{65, 165}, {750, 534}}"; - }; - }; - F537554E016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 6761}}"; - sepNavSelRange = "{12868, 0}"; - sepNavVisRect = "{{0, 5874}, {711, 449}}"; - sepNavWindowFrame = "{{108, 212}, {750, 534}}"; - }; - }; - F5375550016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {819, 23267}}"; - sepNavSelRange = "{46489, 9}"; - sepNavVisRect = "{{0, 20155}, {819, 360}}"; - }; - }; - F5375551016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {558, 28671}}"; - sepNavSelRange = "{3970, 0}"; - sepNavVisRect = "{{0, 1641}, {558, 627}}"; - sepNavWindowFrame = "{{253, 34}, {597, 712}}"; - }; - }; - F5375553016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 4031}}"; - sepNavSelRange = "{4638, 20}"; - sepNavVisRect = "{{0, 2569}, {711, 449}}"; - sepNavWindowFrame = "{{19, 207}, {750, 534}}"; - }; - }; - F5375554016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {728, 32325}}"; - sepNavSelRange = "{34980, 12}"; - sepNavVisRect = "{{0, 13559}, {711, 449}}"; - sepNavWindowFrame = "{{88, 144}, {750, 534}}"; - }; - }; - F5375556016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 3163}}"; - sepNavSelRange = "{3116, 0}"; - sepNavVisRect = "{{0, 1462}, {711, 449}}"; - sepNavWindowFrame = "{{22, 78}, {750, 534}}"; - }; - }; - F5375559016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 67157}}"; - sepNavSelRange = "{6813, 8}"; - sepNavVisRect = "{{0, 2947}, {711, 449}}"; - sepNavWindowFrame = "{{43, 66}, {750, 534}}"; - }; - }; - F537555C016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 11717}}"; - sepNavSelRange = "{6747, 0}"; - sepNavVisRect = "{{0, 2457}, {711, 449}}"; - sepNavWindowFrame = "{{115, 97}, {750, 534}}"; - }; - }; - F537555D016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 16491}}"; - sepNavSelRange = "{8857, 0}"; - sepNavVisRect = "{{0, 3812}, {711, 428}}"; - }; - }; - F537555E016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 3639}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {711, 449}}"; - sepNavWindowFrame = "{{65, 165}, {750, 534}}"; - }; - }; - F5375560016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 15959}}"; - sepNavSelRange = "{10001, 4}"; - sepNavVisRect = "{{0, 3955}, {711, 449}}"; - sepNavWindowFrame = "{{19, 207}, {750, 534}}"; - }; - }; - F5375562016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 19669}}"; - sepNavSelRange = "{6075, 0}"; - sepNavVisRect = "{{0, 3021}, {711, 449}}"; - sepNavWindowFrame = "{{296, 212}, {750, 534}}"; - }; - }; - F5375565016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 9687}}"; - sepNavSelRange = "{10015, 19}"; - sepNavVisRect = "{{0, 4314}, {711, 449}}"; - sepNavWindowFrame = "{{134, 102}, {750, 534}}"; - }; - }; - F5375567016C376E01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 79127}}"; - sepNavSelRange = "{2012, 27}"; - sepNavVisRect = "{{0, 805}, {711, 449}}"; - sepNavWindowFrame = "{{111, 123}, {750, 534}}"; - }; - }; - F537556B016C37A601DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 22763}}"; - sepNavSelRange = "{23942, 9}"; - sepNavVisRect = "{{0, 10195}, {711, 449}}"; - sepNavWindowFrame = "{{114, 212}, {750, 534}}"; }; - }; - F5375574016C37A601DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 16477}}"; - sepNavSelRange = "{23833, 9}"; - sepNavVisRect = "{{0, 10380}, {711, 449}}"; - sepNavWindowFrame = "{{157, 81}, {750, 534}}"; - }; - }; - F537557A016C37A601DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1910, 4213}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {711, 449}}"; - sepNavWindowFrame = "{{88, 144}, {750, 534}}"; - }; - }; - F5375580016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {766, 20075}}"; - sepNavSelRange = "{29382, 0}"; - sepNavVisRect = "{{0, 14163}, {766, 277}}"; - }; - }; - F5375585016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 25115}}"; - sepNavSelRange = "{50483, 15}"; - sepNavVisRect = "{{0, 20194}, {711, 449}}"; - sepNavWindowFrame = "{{88, 144}, {750, 534}}"; - }; - }; - F5375587016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {691, 80597}}"; - sepNavSelRange = "{73464, 0}"; - sepNavVisRect = "{{0, 30764}, {691, 633}}"; - sepNavWindowFrame = "{{166, 0}, {730, 718}}"; - }; - }; - F537558E016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {766, 24905}}"; - sepNavSelRange = "{3562, 0}"; - sepNavVisRect = "{{0, 1859}, {766, 272}}"; - }; - }; - F537558F016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 15497}}"; - sepNavSelRange = "{11262, 14}"; - sepNavVisRect = "{{0, 4732}, {711, 449}}"; - sepNavWindowFrame = "{{42, 186}, {750, 534}}"; - }; - }; - F5375591016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 29007}}"; - sepNavSelRange = "{31963, 9}"; - sepNavVisRect = "{{0, 16919}, {711, 449}}"; - sepNavWindowFrame = "{{65, 165}, {750, 534}}"; - }; - }; - F5375595016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 12375}}"; - sepNavSelRange = "{6236, 36}"; - sepNavVisRect = "{{0, 3185}, {711, 449}}"; - sepNavWindowFrame = "{{203, 39}, {750, 534}}"; - }; - }; - F5375596016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 65351}}"; - sepNavSelRange = "{60305, 0}"; - sepNavVisRect = "{{0, 25118}, {711, 449}}"; - sepNavWindowFrame = "{{216, 212}, {750, 534}}"; - }; - }; - F5375598016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 21307}}"; - sepNavSelRange = "{40237, 196}"; - sepNavVisRect = "{{0, 19495}, {711, 449}}"; - sepNavWindowFrame = "{{88, 144}, {750, 534}}"; - }; - }; - F537559A016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 15063}}"; - sepNavSelRange = "{19488, 9}"; - sepNavVisRect = "{{0, 9130}, {711, 449}}"; - sepNavWindowFrame = "{{65, 165}, {750, 534}}"; - }; - }; - F537559C016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 27971}}"; - sepNavSelRange = "{44345, 12}"; - sepNavVisRect = "{{0, 19355}, {711, 449}}"; - sepNavWindowFrame = "{{134, 102}, {750, 534}}"; - }; - }; - F53755A0016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 22609}}"; - sepNavSelRange = "{33749, 0}"; - sepNavVisRect = "{{0, 14636}, {711, 449}}"; - sepNavWindowFrame = "{{134, 102}, {750, 534}}"; - }; - }; - F53755A8016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 48859}}"; - sepNavSelRange = "{56455, 0}"; - sepNavVisRect = "{{0, 25823}, {711, 449}}"; - sepNavWindowFrame = "{{19, 207}, {750, 534}}"; - }; - }; - F53755AB016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 50959}}"; - sepNavSelRange = "{12728, 16}"; - sepNavVisRect = "{{0, 3941}, {711, 449}}"; - sepNavWindowFrame = "{{157, 81}, {750, 534}}"; - }; - }; - F53755B0016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 14573}}"; - sepNavSelRange = "{13559, 12}"; - sepNavVisRect = "{{0, 6837}, {711, 449}}"; - sepNavWindowFrame = "{{135, 102}, {750, 534}}"; - }; - }; - F53755B2016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {766, 23408}}"; - sepNavSelRange = "{20282, 0}"; - sepNavVisRect = "{{0, 9139}, {766, 273}}"; - }; - }; - F53755B4016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 9281}}"; - sepNavSelRange = "{14480, 21}"; - sepNavVisRect = "{{0, 7749}, {711, 449}}"; - sepNavWindowFrame = "{{180, 60}, {750, 534}}"; - }; - }; - F53755BF016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {766, 73863}}"; - sepNavSelRange = "{54794, 0}"; - sepNavVisRect = "{{0, 23655}, {766, 277}}"; - }; - }; - F53755C8016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 44841}}"; - sepNavSelRange = "{64393, 13}"; - sepNavVisRect = "{{0, 29253}, {711, 449}}"; - sepNavWindowFrame = "{{157, 81}, {750, 534}}"; - }; - }; - F53755D2016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 9491}}"; - sepNavSelRange = "{5074, 20}"; - sepNavVisRect = "{{0, 1864}, {711, 449}}"; - sepNavWindowFrame = "{{70, 164}, {750, 534}}"; - }; - }; - F53755D5016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 17009}}"; - sepNavSelRange = "{20859, 9}"; - sepNavVisRect = "{{0, 7885}, {711, 449}}"; - sepNavWindowFrame = "{{226, 18}, {750, 534}}"; - }; - }; - F53755D9016C389901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {766, 1189}}"; - sepNavSelRange = "{1660, 0}"; - sepNavVisRect = "{{0, 912}, {766, 277}}"; - }; - }; - F53755DF016C38D201DC9062 = { - activeExec = 0; - }; - F53756A0016C4DD401DC9062 = { - activeExec = 0; - executables = ( - F9B92F14047876F1006F146B, + cppStopOnCatchEnabled = 0; + cppStopOnThrowEnabled = 0; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = _debug; + enableDebugStr = 0; + environmentEntries = ( + { + active = NO; + name = DYLD_PRINT_LIBRARIES; + }, + ); + isa = PBXExecutable; + launchableReference = F9F6B1E408E8648C00C9CB24; + libgmallocEnabled = 0; + name = Wish; + shlibInfoDictList = ( + ); + sourceDirectories = ( ); }; - F548F8CE0313CEF0016F146B = { - activeExec = 0; - }; - F5C8865B017D625C01DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 31583}}"; - sepNavSelRange = "{1450, 27}"; - sepNavVisRect = "{{0, 553}, {711, 428}}"; - sepNavWindowFrame = "{{111, 123}, {750, 534}}"; - }; - }; - F5DF0935016CD3F901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 5823}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 2446}, {711, 428}}"; - }; - }; - F5DF093D016CD3F901DC9062 = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {711, 5935}}"; - sepNavSelRange = "{8810, 14}"; - sepNavVisRect = "{{0, 4152}, {711, 449}}"; - sepNavWindowFrame = "{{212, 193}, {750, 534}}"; - }; + F9F6B1E408E8648C00C9CB24 = { + isa = PBXFileReference; + lastKnownFileType = wrapper.application; + path = Wish.app; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; }; - F9B92F14047876F1006F146B = { + F9F6B1EB08E864DC00C9CB24 = { activeArgIndex = 2147483647; activeArgIndices = ( + NO, + NO, + NO, ); argumentStrings = ( + "${SRCROOT}/../../tcl/tests/all.tcl", + "${SRCROOT}/../../tk/tests/all.tcl", + "-verbose \"\"", ); configStateDict = { + "PBXLSLaunchAction-0" = { + PBXLSLaunchAction = 0; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXLSRunLaunchConfig; + displayName = "Executable Runner"; + identifier = com.apple.Xcode.launch.runConfig; + remoteHostInfo = ""; + startActionInfo = ""; + }; + "PBXLSLaunchAction-1" = { + PBXLSLaunchAction = 1; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXGDB_LaunchConfig; + displayName = GDB; + identifier = com.apple.Xcode.launch.GDBMI_Config; + remoteHostInfo = ""; + startActionInfo = ""; + }; }; cppStopOnCatchEnabled = 0; cppStopOnThrowEnabled = 0; customDataFormattersEnabled = 1; debuggerPlugin = GDBDebugging; disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; + dylibVariantSuffix = _debug; + enableDebugStr = 0; environmentEntries = ( + { + active = YES; + name = TCL_LIBRARY; + value = "${SRCROOT}/../../tcl/library"; + }, + { + active = YES; + name = TK_LIBRARY; + value = "${SRCROOT}/../../tk/library"; + }, + { + active = NO; + name = DYLD_PRINT_LIBRARIES; + }, ); isa = PBXExecutable; + launchableReference = F9F6B1EC08E864DC00C9CB24; libgmallocEnabled = 0; - name = Wish; + name = tktest; shlibInfoDictList = ( ); sourceDirectories = ( ); }; + F9F6B1EC08E864DC00C9CB24 = { + isa = PBXFileReference; + lastKnownFileType = "compiled.mach-o.executable"; + path = tktest; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; } diff --git a/macosx/Wish.pbproj/project.pbxproj b/macosx/Wish.pbproj/project.pbxproj index 56a7fe4..5565720 100644 --- a/macosx/Wish.pbproj/project.pbxproj +++ b/macosx/Wish.pbproj/project.pbxproj @@ -5,68 +5,70 @@ }; objectVersion = 39; objects = { + 4C148E2007ECCFAC0033822E = { + fileEncoding = 5; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = tkEntry.h; + path = ../generic/tkEntry.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + 4C148E2407ECCFCF0033822E = { + fileEncoding = 5; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + path = tkMacOSXEntry.c; + refType = 4; + sourceTree = ""; + }; 4C3B4CF6040B18B200C916F0 = { - fileEncoding = 30; + fileEncoding = 5; isa = PBXFileReference; lastKnownFileType = sourcecode.rez; path = tkMacOSXAETE.r; refType = 4; sourceTree = ""; }; - 4C3B4CF7040B18B200C916F0 = { - fileRef = 4C3B4CF6040B18B200C916F0; - isa = PBXBuildFile; - settings = { - }; - }; - 4C9404EF07F3C84D004B0BCE = { - containerPortal = F537552A016C352C01DC9062; - isa = PBXContainerItemProxy; - proxyType = 1; - remoteGlobalIDString = F548F8CE0313CEF0016F146B; - remoteInfo = TkStubLibrary; - }; - 4C9404F007F3C84D004B0BCE = { - containerPortal = F537552A016C352C01DC9062; - isa = PBXContainerItemProxy; - proxyType = 1; - remoteGlobalIDString = F53755DF016C38D201DC9062; - remoteInfo = TkLibrary; - }; - 4C94055707F3C880004B0BCE = { - fileEncoding = 30; + 4C8A204405E0421900C18A82 = { + fileEncoding = 5; isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; - path = tkMacOSXEntry.c; + path = tkMacOSXCarbonEvents.c; refType = 4; sourceTree = ""; }; - 4C94055807F3C880004B0BCE = { - fileRef = 4C94055707F3C880004B0BCE; - isa = PBXBuildFile; - settings = { - }; - }; - 4C94055B07F3C897004B0BCE = { + 4CB2D7CF0619F8EB0081E375 = { fileEncoding = 5; isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = tkEntry.h; - path = ../generic/tkEntry.h; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - 4C94055C07F3C897004B0BCE = { - fileRef = 4C94055B07F3C897004B0BCE; - isa = PBXBuildFile; - settings = { - }; + lastKnownFileType = sourcecode.c.c; + path = tkMacOSXScale.c; + refType = 4; + sourceTree = ""; }; //4C0 //4C1 //4C2 //4C3 //4C4 +//950 +//951 +//952 +//953 +//954 + 95911CC7081532D8006F6BCB = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = IOKit.framework; + path = /System/Library/Frameworks/IOKit.framework; + refType = 0; + sourceTree = ""; + }; +//950 +//951 +//952 +//953 +//954 //F50 //F51 //F52 @@ -80,99 +82,6 @@ refType = 0; sourceTree = ""; }; - F50D96130196176E01DC9062 = { - fileRef = F50D96120196176E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F50D96140196176E01DC9062 = { - fileRef = F50D96120196176E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D903F018149BD01DC9062 = { - buildActionMask = 2147483647; - dstPath = "Versions/$(FRAMEWORK_VERSION)/Headers/X11"; - dstSubfolderSpec = 1; - files = ( - F51D9040018149FD01DC9062, - F51D9041018149FD01DC9062, - F51D9042018149FD01DC9062, - F51D9043018149FD01DC9062, - F51D9044018149FD01DC9062, - F51D9045018149FD01DC9062, - F51D9046018149FD01DC9062, - F51D9047018149FD01DC9062, - F51D9048018149FD01DC9062, - ); - isa = PBXCopyFilesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F51D9040018149FD01DC9062 = { - fileRef = F53755CE016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D9041018149FD01DC9062 = { - fileRef = F53755CF016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D9042018149FD01DC9062 = { - fileRef = F53755D0016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D9043018149FD01DC9062 = { - fileRef = F53755D1016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D9044018149FD01DC9062 = { - fileRef = F53755D2016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D9045018149FD01DC9062 = { - fileRef = F53755D3016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D9046018149FD01DC9062 = { - fileRef = F53755D4016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D9047018149FD01DC9062 = { - fileRef = F53755D5016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F51D9048018149FD01DC9062 = { - fileRef = F53755D6016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F52D38C5031F4259016F146B = { - buildActionMask = 2147483647; - files = ( - ); - isa = PBXShellScriptBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ \"${BUILD_STYLE}\" = \"Development\" ]; then\n\t# keep copy of debug library around, so that\n\t# Deployment build can be installed on top\n\t# of Development build without overwriting it\n\tcd \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Versions/${FRAMEWORK_VERSION}\"\n\tcp -fp \"${PRODUCT_NAME}\" \"${PRODUCT_NAME}_debug\"\n\tln -f \"Versions/Current/${PRODUCT_NAME}_debug\" ../..\n\tln -f \"libtkstub${FRAMEWORK_VERSION}.a\" \"libtkstub${FRAMEWORK_VERSION}g.a\"\n\n\t# force Deployment build to be relinked next time\n\tif [ -f \"${OBJROOT}/Deployment.build/${PROJECT_NAME}.build/${TARGET_NAME}.build/Objects-normal/LinkFileList\" ]; then\n\t touch -t `date -r \\`expr \\\\\\`date +\"%s\"\\\\\\` + 30\\` +\"%Y%m%d%H%M.%S\"` \"${OBJROOT}/Deployment.build/${PROJECT_NAME}.build/${TARGET_NAME}.build/Objects-normal/LinkFileList\"\n\tfi\nelse\n\t# force Development build to be relinked next time\n\tif [ -f \"${OBJROOT}/Development.build/${PROJECT_NAME}.build/${TARGET_NAME}.build/Objects-normal/LinkFileList\" ]; then\n\t touch -t `date -r \\`expr \\\\\\`date +\"%s\"\\\\\\` + 30\\` +\"%Y%m%d%H%M.%S\"` \"${OBJROOT}/Development.build/${PROJECT_NAME}.build/${TARGET_NAME}.build/Objects-normal/LinkFileList\"\n\tfi\nfi\n\n# fixup Framework structure\ncd \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Versions/${FRAMEWORK_VERSION}\"\nln -fs `ls libtkstub* | sed -e \"s|.*|Versions/${FRAMEWORK_VERSION}/&|\"` ../..\nln -fs \"Versions/Current/tkConfig.sh\" ../..\nranlib libtkstub${FRAMEWORK_VERSION}*.a\n\n# create pkgIndex\n( echo \"if {[package vcompare [package provide Tcl] ${FRAMEWORK_VERSION}] != 0} { return }\" && \\\n echo \"package ifneeded Tk ${FRAMEWORK_VERSION} [list load [file join \\$dir .. .. Tk] Tk]\" \\\n) > \"Resources/Scripts/pkgIndex.tcl\""; - }; F537552A016C352C01DC9062 = { buildSettings = { }; @@ -186,9 +95,7 @@ productRefGroup = F53755DD016C38D201DC9062; projectDirPath = ""; targets = ( - F53756A0016C4DD401DC9062, - F53755DF016C38D201DC9062, - F548F8CE0313CEF0016F146B, + F9D6747B08E84DC100688CAA, ); }; F537552B016C352C01DC9062 = { @@ -211,28 +118,16 @@ }; F537552C016C352C01DC9062 = { buildSettings = { - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - OTHER_LDFLAGS = "\U0001-prebind"; - TCL_DBGX = g; - TEMP_DIR = "${OBJROOT}/Development.build/$(PROJECT_NAME).build/$(TARGET_NAME).build"; - UNSTRIPPED_PRODUCT = YES; - ZERO_LINK = YES; + BUILD_STYLE = Development; + MAKE_TARGET = develop; }; isa = PBXBuildStyle; name = Development; }; F537552D016C352C01DC9062 = { buildSettings = { - DEBUGGING_SYMBOLS = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - OPTIMIZATION_CFLAGS = "-Os"; - OTHER_LDFLAGS = "\U0001-prebind"; - TCL_DBGX = ""; - TEMP_DIR = "${OBJROOT}/Deployment.build/$(PROJECT_NAME).build/$(TARGET_NAME).build"; - ZERO_LINK = NO; + BUILD_STYLE = Deployment; + MAKE_TARGET = deploy; }; isa = PBXBuildStyle; name = Deployment; @@ -257,7 +152,7 @@ F537556E016C37A601DC9062, F537556F016C37A601DC9062, F5375570016C37A601DC9062, - 4C94055B07F3C897004B0BCE, + 4C148E2007ECCFAC0033822E, F5375571016C37A601DC9062, F5375572016C37A601DC9062, F5375573016C37A601DC9062, @@ -509,9 +404,9 @@ }; F5375546016C376E01DC9062 = { children = ( - 4C94055707F3C880004B0BCE, F5375549016C376E01DC9062, F537554A016C376E01DC9062, + 4C8A204405E0421900C18A82, F537554B016C376E01DC9062, F537554C016C376E01DC9062, F537554D016C376E01DC9062, @@ -520,6 +415,7 @@ F5375550016C376E01DC9062, F5375551016C376E01DC9062, F5375552016C376E01DC9062, + 4C148E2407ECCFCF0033822E, F5375553016C376E01DC9062, F5375554016C376E01DC9062, F5375555016C376E01DC9062, @@ -532,6 +428,7 @@ F537555C016C376E01DC9062, F537555D016C376E01DC9062, F537555E016C376E01DC9062, + 4CB2D7CF0619F8EB0081E375, F5375560016C376E01DC9062, F5375561016C376E01DC9062, F5375562016C376E01DC9062, @@ -1847,2082 +1744,192 @@ }; F53755DD016C38D201DC9062 = { children = ( - F53755DE016C38D201DC9062, - F537569F016C4DD401DC9062, - F548F8CF0313CEF0016F146B, + F9F6B1C008E863C200C9CB24, + F9F6B1BF08E863B300C9CB24, + F9F6B1BE08E8639A00C9CB24, ); isa = PBXGroup; name = Products; refType = 4; sourceTree = ""; }; - F53755DE016C38D201DC9062 = { - explicitFileType = wrapper.framework; - isa = PBXFileReference; - path = Tk.framework; - refType = 3; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F53755DF016C38D201DC9062 = { - buildPhases = ( - F5877FB7031F97ED016F146B, - F92CCC75080CEBA800E72D64, - F53755E0016C38D201DC9062, - F53755E1016C38D301DC9062, - F53755E2016C38D301DC9062, - F53755E3016C38D301DC9062, - F53755E4016C38D301DC9062, - F5B1FC08016FFE3501DC9062, - F51D903F018149BD01DC9062, - F548F8C80313C9E0016F146B, - F5C1D51901B88F9A01DC9062, - F52D38C5031F4259016F146B, - F5877FBC031FA968016F146B, - F9A61D2F04C2C861006F5A0B, - ); - buildSettings = { - DOCDIR = "${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Versions/${FRAMEWORK_VERSION}/Resources/Documentation/Reference"; - DYLIB_COMPATIBILITY_VERSION = 8.4; - DYLIB_CURRENT_VERSION = "$(FRAMEWORK_VERSION)"; - DYLIB_INSTALL_PATH = /Library/Frameworks; - FRAMEWORK_SEARCH_PATHS = "\"$(TCL_FRAMEWORK_DIR)\""; - FRAMEWORK_VERSION = 8.4; - GLOBAL_CFLAGS = "`source \"${TCL_FRAMEWORK_DIR}/Tcl.framework/tclConfig.sh\"; echo $${}{TCL_EXTRA_CFLAGS} $${}{TCL_DEFS} | sed -e 's|\\\\\\\\\\\\\\\"|\\\"|g' -e 's|\\\\\\\\\\\\ |_|g' -e 's|TCL_WIDE_INT_TYPE|BOGUS_&|'` -U_REENTRANT"; - HEADER_SEARCH_PATHS = "\"$(TCL_FRAMEWORK_DIR)/Tcl.framework/Headers\" \"$(TCL_FRAMEWORK_DIR)/Tcl.framework/PrivateHeaders\" . ../bitmaps ../generic ../xlib"; - INSTALL_PATH = "${DYLIB_INSTALL_PATH}"; - LIBRARY_SEARCH_PATHS = "\"$(TCL_FRAMEWORK_DIR)/Tcl.framework\""; - OPTIMIZATION_CFLAGS = "-O0"; - OTHER_CFLAGS = "-DMAC_OSX_TK -DUSE_TCL_STUBS -DTCL_WIDE_INT_TYPE=\"long long\" -DTK_FRAMEWORK -DTK_FRAMEWORK_VERSION=\\\\\\\"$(FRAMEWORK_VERSION)\\\\\\\""; - OTHER_LDFLAGS = "-ltclstub${FRAMEWORK_VERSION}${TCL_DBGX} -seg1addr 0xb000000 -Wl,-search_paths_first -Wl,-unexported_symbols_list \"${TEMP_DIR}/tclstub.exp\""; - OTHER_LIBTOOL_FLAGS = ""; - OTHER_REZFLAGS = "-i \"$(TCL_FRAMEWORK_DIR)/Tcl.framework/Headers\" -i \"../generic\""; - PRECOMPILE_PREFIX_HEADER = YES; - PRINCIPAL_CLASS = ""; - PRODUCT_NAME = Tk; - SECTORDER_FLAGS = ""; - SYMROOT = "${SRCROOT}/../../build/tk"; - TCLSH_DIR = "$(TCL_FRAMEWORK_DIR)"; - TCLTKMAN2HTML = ""; - TCL_FRAMEWORK_DIR = "$(SYMROOT)/../tcl"; - USE_GCC3_PFE_SUPPORT = YES; - WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas -Wno-deprecated-declarations"; - WRAPPER_EXTENSION = framework; - }; - dependencies = ( - F548F8D20313CF93016F146B, - ); - isa = PBXFrameworkTarget; - name = TkLibrary; - productInstallPath = /Library/Frameworks; - productName = TkLibrary; - productReference = F53755DE016C38D201DC9062; - productSettingsXML = " - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - Tk - CFBundleGetInfoString - Tk Library 8.4, Copyright © 2005 Tcl Core Team. -Initial MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright © 2001-2002, Apple Computer, Inc. - CFBundleIdentifier - com.tcltk.tklibrary - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Tk Library 8.4 - CFBundlePackageType - FMWK - CFBundleShortVersionString - 8.4.12 - CFBundleSignature - Tk - CFBundleVersion - 8.4.12 - - -"; - }; - F53755E0016C38D201DC9062 = { - buildActionMask = 2147483647; - files = ( - F53755E5016C390401DC9062, - F53755E6016C390401DC9062, - F53755E7016C390401DC9062, - F53755E8016C390401DC9062, - F53755E9016C390401DC9062, - F53755EA016C390401DC9062, - F53755EB016C390401DC9062, - F53755EC016C390401DC9062, - F53755ED016C390401DC9062, - F53755EE016C390401DC9062, - F53755EF016C390401DC9062, - F53755F0016C390401DC9062, - F53755F1016C390401DC9062, - F53755F2016C390401DC9062, - F53755F3016C390401DC9062, - F53755F4016C390401DC9062, - F53755F5016C390401DC9062, - F53755F6016C390401DC9062, - F53755F7016C390401DC9062, - F53755F8016C390401DC9062, - F53755F9016C390401DC9062, - F53755FA016C390401DC9062, - F53755FB016C390401DC9062, - F53755FC016C397D01DC9062, - F53755FD016C397D01DC9062, - F53755FE016C397D01DC9062, - F53755FF016C397D01DC9062, - F5375600016C397D01DC9062, - F5375601016C397D01DC9062, - F5375603016C397D01DC9062, - F537566E016C3A1F01DC9062, - F537566F016C3A1F01DC9062, - F5375670016C3A1F01DC9062, - F5375671016C3A1F01DC9062, - F5375672016C3A1F01DC9062, - F5375673016C3A1F01DC9062, - F5375674016C3A1F01DC9062, - F5375675016C3A1F01DC9062, - F5375676016C3A1F01DC9062, - F5375693016C3F1001DC9062, - F5375694016C3F1001DC9062, - F5375695016C3F1001DC9062, - F5375696016C3F1001DC9062, - F5375697016C3F1001DC9062, - F5375698016C3F1001DC9062, - F5375699016C3F1001DC9062, - F537569A016C3F1001DC9062, - F537569B016C3F1001DC9062, - F537569C016C3F1001DC9062, - F5BFE59002F8C45B01DC9062, - 4C94055C07F3C897004B0BCE, + F537567C016C3ADB01DC9062 = { + children = ( + F5875C7B016FEF1D01DC9062, + F50D96120196176E01DC9062, + F537567D016C3ADB01DC9062, + 95911CC7081532D8006F6BCB, ); - isa = PBXHeadersBuildPhase; - runOnlyForDeploymentPostprocessing = 0; + isa = PBXGroup; + name = "External Frameworks"; + refType = 4; + sourceTree = ""; }; - F53755E1016C38D301DC9062 = { - buildActionMask = 2147483647; - files = ( - ); - isa = PBXResourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F53755E2016C38D301DC9062 = { - buildActionMask = 2147483647; - files = ( - F5375604016C397D01DC9062, - F5375605016C397D01DC9062, - F5375606016C397D01DC9062, - F5375607016C397D01DC9062, - F5375608016C397D01DC9062, - F5375609016C397D01DC9062, - F537560A016C397D01DC9062, - F537560B016C397D01DC9062, - F537560C016C397D01DC9062, - F537560D016C397D01DC9062, - F537560E016C397D01DC9062, - F537560F016C397D01DC9062, - F5375610016C397D01DC9062, - F5375611016C397D01DC9062, - F5375612016C397D01DC9062, - F5375613016C397D01DC9062, - F5375614016C397D01DC9062, - F5375615016C397D01DC9062, - F5375616016C397D01DC9062, - F5375617016C397D01DC9062, - F5375618016C397D01DC9062, - F5375619016C397D01DC9062, - F537561A016C397D01DC9062, - F537561B016C397D01DC9062, - F537561C016C397D01DC9062, - F537561D016C397D01DC9062, - F537561E016C397D01DC9062, - F537561F016C397D01DC9062, - F5375620016C397D01DC9062, - F5375621016C397D01DC9062, - F5375622016C397D01DC9062, - F5375623016C397D01DC9062, - F5375624016C397D01DC9062, - F5375625016C397D01DC9062, - F5375626016C397D01DC9062, - F5375627016C397D01DC9062, - F5375628016C397D01DC9062, - F5375629016C397D01DC9062, - F537562A016C397D01DC9062, - F537562B016C397D01DC9062, - F537562C016C397D01DC9062, - F537562D016C397D01DC9062, - F537562E016C397D01DC9062, - F537562F016C397D01DC9062, - F5375630016C397D01DC9062, - F5375631016C397D01DC9062, - F5375632016C397D01DC9062, - F5375633016C397D01DC9062, - F5375634016C397D01DC9062, - F5375635016C397D01DC9062, - F5375636016C397D01DC9062, - F5375637016C397D01DC9062, - F5375638016C397D01DC9062, - F5375639016C397D01DC9062, - F537563A016C397D01DC9062, - F537563B016C397D01DC9062, - F537563C016C397D01DC9062, - F537563D016C397D01DC9062, - F537563F016C397D01DC9062, - F5375640016C397D01DC9062, - F5375641016C397D01DC9062, - F5375642016C397D01DC9062, - F5375643016C397D01DC9062, - F5375644016C397D01DC9062, - F5375645016C397D01DC9062, - F5375646016C397D01DC9062, - F5375647016C397D01DC9062, - F5375648016C397D01DC9062, - F5375649016C397D01DC9062, - F537564A016C397D01DC9062, - F537564D016C39A101DC9062, - F537564E016C39A101DC9062, - F537564F016C39A101DC9062, - F5375650016C39A101DC9062, - F5375651016C39A101DC9062, - F5375652016C39A101DC9062, - F5375653016C39A101DC9062, - F5375654016C39A101DC9062, - F5375655016C39A101DC9062, - F5375656016C39A101DC9062, - F5375657016C39A101DC9062, - F5375658016C39A101DC9062, - F5375659016C39A101DC9062, - F537565A016C39A101DC9062, - F537565B016C39A101DC9062, - F537565C016C39A101DC9062, - F537565D016C39A101DC9062, - F537565E016C39A101DC9062, - F537565F016C39A101DC9062, - F5375660016C39A101DC9062, - F5375661016C39A101DC9062, - F5375662016C39A101DC9062, - F5375664016C39A101DC9062, - F5375665016C39A101DC9062, - F5375666016C39A101DC9062, - F5375668016C39A101DC9062, - F537566A016C39A101DC9062, - F537566B016C39A101DC9062, - F537566C016C39F201DC9062, - F537566D016C39F201DC9062, - F5375677016C3A6D01DC9062, - F5375678016C3A6D01DC9062, - F5375679016C3A6D01DC9062, - F537567A016C3A6D01DC9062, - F537567B016C3A6D01DC9062, - F537569E016C49C301DC9062, - F55BC46902B2D38B01DC9062, - F5BFE58D02F8C41501DC9062, - F5BFE58E02F8C41501DC9062, - 4C94055807F3C880004B0BCE, - ); - isa = PBXSourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F53755E3016C38D301DC9062 = { - buildActionMask = 2147483647; - files = ( - F537567E016C3ADB01DC9062, - F50D96130196176E01DC9062, - ); - isa = PBXFrameworksBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F53755E4016C38D301DC9062 = { - buildActionMask = 2147483647; - files = ( - F537567F016C3ADB01DC9062, - F5375680016C3ADB01DC9062, - F5375681016C3ADB01DC9062, - F5375682016C3ADB01DC9062, - ); - isa = PBXRezBuildPhase; - runOnlyForDeploymentPostprocessing = 0; + F537567D016C3ADB01DC9062 = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = Carbon.framework; + path = /System/Library/Frameworks/Carbon.framework; + refType = 0; + sourceTree = ""; }; - F53755E5016C390401DC9062 = { - fileRef = F5375569016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F5375688016C3F1001DC9062 = { + children = ( + F5375689016C3F1001DC9062, + F537568A016C3F1001DC9062, + F537568B016C3F1001DC9062, + F537568C016C3F1001DC9062, + F537568D016C3F1001DC9062, + F537568E016C3F1001DC9062, + F537568F016C3F1001DC9062, + F5375690016C3F1001DC9062, + F5375691016C3F1001DC9062, + F5375692016C3F1001DC9062, + ); + isa = PBXGroup; + name = Bitmaps; + refType = 4; + sourceTree = ""; }; - F53755E6016C390401DC9062 = { - fileRef = F537556A016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F5375689016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = error.bmp; + path = ../bitmaps/error.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755E7016C390401DC9062 = { - fileRef = F537556B016C37A601DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Public, - ); - }; + F537568A016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = gray12.bmp; + path = ../bitmaps/gray12.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755E8016C390401DC9062 = { - fileRef = F537556C016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F537568B016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = gray25.bmp; + path = ../bitmaps/gray25.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755E9016C390401DC9062 = { - fileRef = F537556D016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F537568C016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = gray50.bmp; + path = ../bitmaps/gray50.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755EA016C390401DC9062 = { - fileRef = F537556E016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F537568D016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = gray75.bmp; + path = ../bitmaps/gray75.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755EB016C390401DC9062 = { - fileRef = F537556F016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F537568E016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = hourglass.bmp; + path = ../bitmaps/hourglass.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755EC016C390401DC9062 = { - fileRef = F5375570016C37A601DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Public, - ); - }; + F537568F016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = info.bmp; + path = ../bitmaps/info.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755ED016C390401DC9062 = { - fileRef = F5375571016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F5375690016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = questhead.bmp; + path = ../bitmaps/questhead.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755EE016C390401DC9062 = { - fileRef = F5375572016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F5375691016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = question.bmp; + path = ../bitmaps/question.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755EF016C390401DC9062 = { - fileRef = F5375573016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F5375692016C3F1001DC9062 = { + isa = PBXFileReference; + lastKnownFileType = image.bmp; + name = warning.bmp; + path = ../bitmaps/warning.bmp; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755F0016C390401DC9062 = { - fileRef = F5375574016C37A601DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Private, - ); - }; + F55BC46802B2D38B01DC9062 = { + fileEncoding = 5; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = tkPanedWindow.c; + path = ../generic/tkPanedWindow.c; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755F1016C390401DC9062 = { - fileRef = F5375575016C37A601DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Private, - ); - }; + F55BC46A02B2D3F301DC9062 = { + isa = PBXFileReference; + lastKnownFileType = text; + name = panedwindow.tcl; + path = ../library/panedwindow.tcl; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755F2016C390401DC9062 = { - fileRef = F5375576016C37A601DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Private, - ); - }; + F5875C7B016FEF1D01DC9062 = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = Tcl.framework; + path = ../tcl/Tcl.framework; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; }; - F53755F3016C390401DC9062 = { - fileRef = F5375577016C37A601DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Public, - ); - }; + F5BFE58B02F8C41501DC9062 = { + fileEncoding = 5; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = tkStyle.c; + path = ../generic/tkStyle.c; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755F4016C390401DC9062 = { - fileRef = F5375578016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F5BFE58C02F8C41501DC9062 = { + fileEncoding = 5; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = tkUndo.c; + path = ../generic/tkUndo.c; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755F5016C390401DC9062 = { - fileRef = F5375579016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; + F5BFE58F02F8C45B01DC9062 = { + fileEncoding = 5; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = tkUndo.h; + path = ../generic/tkUndo.h; + refType = 2; + sourceTree = SOURCE_ROOT; }; - F53755F6016C390401DC9062 = { - fileRef = F537557A016C37A601DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Public, - ); - }; - }; - F53755F7016C390401DC9062 = { - fileRef = F537557B016C37A601DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Private, - ); - }; - }; - F53755F8016C390401DC9062 = { - fileRef = F537557C016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53755F9016C390401DC9062 = { - fileRef = F537557D016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53755FA016C390401DC9062 = { - fileRef = F537557E016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53755FB016C390401DC9062 = { - fileRef = F537557F016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53755FC016C397D01DC9062 = { - fileRef = F537553E016C376E01DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Public, - ); - }; - }; - F53755FD016C397D01DC9062 = { - fileRef = F537553F016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53755FE016C397D01DC9062 = { - fileRef = F5375540016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53755FF016C397D01DC9062 = { - fileRef = F5375541016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375600016C397D01DC9062 = { - fileRef = F5375542016C376E01DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Private, - ); - }; - }; - F5375601016C397D01DC9062 = { - fileRef = F5375543016C376E01DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Private, - ); - }; - }; - F5375603016C397D01DC9062 = { - fileRef = F5375545016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375604016C397D01DC9062 = { - fileRef = F5375580016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375605016C397D01DC9062 = { - fileRef = F5375581016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375606016C397D01DC9062 = { - fileRef = F5375582016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375607016C397D01DC9062 = { - fileRef = F5375583016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375608016C397D01DC9062 = { - fileRef = F5375584016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375609016C397D01DC9062 = { - fileRef = F5375585016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537560A016C397D01DC9062 = { - fileRef = F5375586016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537560B016C397D01DC9062 = { - fileRef = F5375587016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537560C016C397D01DC9062 = { - fileRef = F5375588016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537560D016C397D01DC9062 = { - fileRef = F5375589016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537560E016C397D01DC9062 = { - fileRef = F537558A016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537560F016C397D01DC9062 = { - fileRef = F537558B016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375610016C397D01DC9062 = { - fileRef = F537558C016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375611016C397D01DC9062 = { - fileRef = F537558D016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375612016C397D01DC9062 = { - fileRef = F537558E016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375613016C397D01DC9062 = { - fileRef = F537558F016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375614016C397D01DC9062 = { - fileRef = F5375590016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375615016C397D01DC9062 = { - fileRef = F5375591016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375616016C397D01DC9062 = { - fileRef = F5375592016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375617016C397D01DC9062 = { - fileRef = F5375593016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375618016C397D01DC9062 = { - fileRef = F5375594016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375619016C397D01DC9062 = { - fileRef = F5375595016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537561A016C397D01DC9062 = { - fileRef = F5375596016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537561B016C397D01DC9062 = { - fileRef = F5375597016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537561C016C397D01DC9062 = { - fileRef = F5375598016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537561D016C397D01DC9062 = { - fileRef = F5375599016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537561E016C397D01DC9062 = { - fileRef = F537559A016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537561F016C397D01DC9062 = { - fileRef = F537559B016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375620016C397D01DC9062 = { - fileRef = F537559C016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375621016C397D01DC9062 = { - fileRef = F537559D016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375622016C397D01DC9062 = { - fileRef = F537559E016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375623016C397D01DC9062 = { - fileRef = F537559F016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375624016C397D01DC9062 = { - fileRef = F53755A0016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375625016C397D01DC9062 = { - fileRef = F53755A1016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375626016C397D01DC9062 = { - fileRef = F53755A2016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375627016C397D01DC9062 = { - fileRef = F53755A3016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375628016C397D01DC9062 = { - fileRef = F53755A4016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375629016C397D01DC9062 = { - fileRef = F53755A5016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537562A016C397D01DC9062 = { - fileRef = F53755A6016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537562B016C397D01DC9062 = { - fileRef = F53755A7016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537562C016C397D01DC9062 = { - fileRef = F53755A8016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537562D016C397D01DC9062 = { - fileRef = F53755A9016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537562E016C397D01DC9062 = { - fileRef = F53755AA016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537562F016C397D01DC9062 = { - fileRef = F53755AB016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375630016C397D01DC9062 = { - fileRef = F53755AC016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375631016C397D01DC9062 = { - fileRef = F53755AD016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375632016C397D01DC9062 = { - fileRef = F53755AE016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375633016C397D01DC9062 = { - fileRef = F53755AF016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375634016C397D01DC9062 = { - fileRef = F53755B0016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375635016C397D01DC9062 = { - fileRef = F53755B1016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375636016C397D01DC9062 = { - fileRef = F53755B2016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375637016C397D01DC9062 = { - fileRef = F53755B3016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375638016C397D01DC9062 = { - fileRef = F53755B4016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375639016C397D01DC9062 = { - fileRef = F53755B5016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537563A016C397D01DC9062 = { - fileRef = F53755B6016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537563B016C397D01DC9062 = { - fileRef = F53755B7016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537563C016C397D01DC9062 = { - fileRef = F53755B8016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537563D016C397D01DC9062 = { - fileRef = F53755BA016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537563F016C397D01DC9062 = { - fileRef = F53755BD016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375640016C397D01DC9062 = { - fileRef = F53755BE016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375641016C397D01DC9062 = { - fileRef = F53755BF016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375642016C397D01DC9062 = { - fileRef = F53755C0016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375643016C397D01DC9062 = { - fileRef = F53755C1016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375644016C397D01DC9062 = { - fileRef = F53755C2016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375645016C397D01DC9062 = { - fileRef = F53755C3016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375646016C397D01DC9062 = { - fileRef = F53755C4016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375647016C397D01DC9062 = { - fileRef = F53755C5016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375648016C397D01DC9062 = { - fileRef = F53755C6016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375649016C397D01DC9062 = { - fileRef = F53755C7016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537564A016C397D01DC9062 = { - fileRef = F53755C8016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537564D016C39A101DC9062 = { - fileRef = F5375549016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537564E016C39A101DC9062 = { - fileRef = F537554A016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537564F016C39A101DC9062 = { - fileRef = F537554B016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375650016C39A101DC9062 = { - fileRef = F537554C016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375651016C39A101DC9062 = { - fileRef = F537554D016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375652016C39A101DC9062 = { - fileRef = F537554E016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375653016C39A101DC9062 = { - fileRef = F537554F016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375654016C39A101DC9062 = { - fileRef = F5375550016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375655016C39A101DC9062 = { - fileRef = F5375551016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375656016C39A101DC9062 = { - fileRef = F5375552016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375657016C39A101DC9062 = { - fileRef = F5375553016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375658016C39A101DC9062 = { - fileRef = F5375554016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375659016C39A101DC9062 = { - fileRef = F5375555016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537565A016C39A101DC9062 = { - fileRef = F5375556016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537565B016C39A101DC9062 = { - fileRef = F5375557016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537565C016C39A101DC9062 = { - fileRef = F5375558016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537565D016C39A101DC9062 = { - fileRef = F5375559016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537565E016C39A101DC9062 = { - fileRef = F537555A016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537565F016C39A101DC9062 = { - fileRef = F537555B016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375660016C39A101DC9062 = { - fileRef = F537555C016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375661016C39A101DC9062 = { - fileRef = F537555D016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375662016C39A101DC9062 = { - fileRef = F537555E016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375664016C39A101DC9062 = { - fileRef = F5375560016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375665016C39A101DC9062 = { - fileRef = F5375561016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375666016C39A101DC9062 = { - fileRef = F5375562016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375668016C39A101DC9062 = { - fileRef = F5375565016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537566A016C39A101DC9062 = { - fileRef = F5375567016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537566B016C39A101DC9062 = { - fileRef = F5375568016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537566C016C39F201DC9062 = { - fileRef = F53755CA016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537566D016C39F201DC9062 = { - fileRef = F53755CB016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537566E016C3A1F01DC9062 = { - fileRef = F53755CE016C389901DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - ); - }; - }; - F537566F016C3A1F01DC9062 = { - fileRef = F53755CF016C389901DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - ); - }; - }; - F5375670016C3A1F01DC9062 = { - fileRef = F53755D0016C389901DC9062; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - ); - }; - }; - F5375671016C3A1F01DC9062 = { - fileRef = F53755D1016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375672016C3A1F01DC9062 = { - fileRef = F53755D2016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375673016C3A1F01DC9062 = { - fileRef = F53755D3016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375674016C3A1F01DC9062 = { - fileRef = F53755D4016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375675016C3A1F01DC9062 = { - fileRef = F53755D5016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375676016C3A1F01DC9062 = { - fileRef = F53755D6016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375677016C3A6D01DC9062 = { - fileRef = F53755D8016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375678016C3A6D01DC9062 = { - fileRef = F53755D9016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375679016C3A6D01DC9062 = { - fileRef = F53755DA016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537567A016C3A6D01DC9062 = { - fileRef = F53755DB016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537567B016C3A6D01DC9062 = { - fileRef = F53755DC016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537567C016C3ADB01DC9062 = { - children = ( - F50D96120196176E01DC9062, - F5875C7B016FEF1D01DC9062, - F537567D016C3ADB01DC9062, - ); - isa = PBXGroup; - name = "External Frameworks"; - refType = 4; - sourceTree = ""; - }; - F537567D016C3ADB01DC9062 = { - isa = PBXFileReference; - lastKnownFileType = wrapper.framework; - name = Carbon.framework; - path = /System/Library/Frameworks/Carbon.framework; - refType = 0; - sourceTree = ""; - }; - F537567E016C3ADB01DC9062 = { - fileRef = F537567D016C3ADB01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537567F016C3ADB01DC9062 = { - fileRef = F5375533016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375680016C3ADB01DC9062 = { - fileRef = F5375535016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375681016C3ADB01DC9062 = { - fileRef = F5375538016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375682016C3ADB01DC9062 = { - fileRef = F537553A016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375688016C3F1001DC9062 = { - children = ( - F5375689016C3F1001DC9062, - F537568A016C3F1001DC9062, - F537568B016C3F1001DC9062, - F537568C016C3F1001DC9062, - F537568D016C3F1001DC9062, - F537568E016C3F1001DC9062, - F537568F016C3F1001DC9062, - F5375690016C3F1001DC9062, - F5375691016C3F1001DC9062, - F5375692016C3F1001DC9062, - ); - isa = PBXGroup; - name = Bitmaps; - refType = 4; - sourceTree = ""; - }; - F5375689016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = error.bmp; - path = ../bitmaps/error.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F537568A016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = gray12.bmp; - path = ../bitmaps/gray12.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F537568B016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = gray25.bmp; - path = ../bitmaps/gray25.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F537568C016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = gray50.bmp; - path = ../bitmaps/gray50.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F537568D016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = gray75.bmp; - path = ../bitmaps/gray75.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F537568E016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = hourglass.bmp; - path = ../bitmaps/hourglass.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F537568F016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = info.bmp; - path = ../bitmaps/info.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F5375690016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = questhead.bmp; - path = ../bitmaps/questhead.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F5375691016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = question.bmp; - path = ../bitmaps/question.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F5375692016C3F1001DC9062 = { - isa = PBXFileReference; - lastKnownFileType = image.bmp; - name = warning.bmp; - path = ../bitmaps/warning.bmp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F5375693016C3F1001DC9062 = { - fileRef = F5375689016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375694016C3F1001DC9062 = { - fileRef = F537568A016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375695016C3F1001DC9062 = { - fileRef = F537568B016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375696016C3F1001DC9062 = { - fileRef = F537568C016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375697016C3F1001DC9062 = { - fileRef = F537568D016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375698016C3F1001DC9062 = { - fileRef = F537568E016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5375699016C3F1001DC9062 = { - fileRef = F537568F016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537569A016C3F1001DC9062 = { - fileRef = F5375690016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537569B016C3F1001DC9062 = { - fileRef = F5375691016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537569C016C3F1001DC9062 = { - fileRef = F5375692016C3F1001DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537569E016C49C301DC9062 = { - fileRef = F53755BB016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F537569F016C4DD401DC9062 = { - explicitFileType = wrapper.application; - isa = PBXFileReference; - path = "Wish Shell.app"; - refType = 3; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F53756A0016C4DD401DC9062 = { - buildPhases = ( - F5877FB8031F982D016F146B, - F53756A1016C4DD401DC9062, - F53756A2016C4DD401DC9062, - F53756A4016C4DD401DC9062, - F53756A6016C4DD401DC9062, - F53756AA016C4DD401DC9062, - F5EEA7050324680B016F146B, - F55A164E032A11B1016F146B, - F5877FBD031FAC6A016F146B, - ); - buildSettings = { - APPLICATION_INSTALL_PATH = "${SYSTEM_ADMIN_APPS_DIR}"; - BINDIR = /usr/bin; - DYLIB_INSTALL_PATH = /Library/Frameworks; - FRAMEWORK_SEARCH_PATHS = "\"$(TCL_FRAMEWORK_DIR)\" \"$(SYMROOT)\""; - FRAMEWORK_VERSION = 8.4; - GLOBAL_CFLAGS = "`source \"${TCL_FRAMEWORK_DIR}/Tcl.framework/tclConfig.sh\"; echo $${}{TCL_EXTRA_CFLAGS} $${}{TCL_DEFS} | sed -e 's|\\\\\\\\\\\\\\\"|\\\"|g' -e 's|\\\\\\\\\\\\ |_|g' -e 's|TCL_WIDE_INT_TYPE|BOGUS_&|'` -U_REENTRANT"; - HEADER_SEARCH_PATHS = "\"$(TCL_FRAMEWORK_DIR)/Tcl.framework/Headers\" \"$(TCL_FRAMEWORK_DIR)/Tcl.framework/PrivateHeaders\" . ../generic ../xlib"; - INSTALL_PATH = "${APPLICATION_INSTALL_PATH}"; - LIBRARY_SEARCH_PATHS = ""; - OPTIMIZATION_CFLAGS = "-O0"; - OTHER_CFLAGS = "-DMAC_OSX_TK -DTCL_WIDE_INT_TYPE=\"long long\""; - OTHER_LDFLAGS = "-sectcreate __TEXT __info_plist \"$TEMP_DIR/Info.plist\" -headerpad_max_install_names"; - OTHER_REZFLAGS = "-i \"$(TCL_FRAMEWORK_DIR)/Tcl.framework/Headers\" -i \"../generic\""; - PRODUCT_NAME = "Wish Shell"; - SECTORDER_FLAGS = ""; - SYMROOT = "${SRCROOT}/../../build/tk"; - TCL_FRAMEWORK_DIR = "$(SYMROOT)/../tcl"; - USE_GCC3_PFE_SUPPORT = NO; - WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas -Wno-deprecated-declarations"; - WRAPPER_EXTENSION = app; - }; - dependencies = ( - F53756B2016C525F01DC9062, - ); - isa = PBXApplicationTarget; - name = Wish; - productInstallPath = /Applications/Utilities; - productName = "Wish Shell"; - productReference = F537569F016C4DD401DC9062; - productSettingsXML = " - - - - CFBundleDevelopmentRegion - English - CFBundleDocumentTypes - - - CFBundleTypeExtensions - - * - - CFBundleTypeName - NSStringPboardType - CFBundleTypeOSTypes - - TEXT - - CFBundleTypeRole - Viewer - - - CFBundleExecutable - Wish Shell - CFBundleGetInfoString - Wish Shell 8.4, Copyright © 2005 Tcl Core Team. -Initial MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright © 2001-2002, Apple Computer, Inc. - CFBundleIconFile - Wish.icns - CFBundleIdentifier - com.tcltk.wish - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Wish - CFBundlePackageType - APPL - CFBundleShortVersionString - 8.4.12 - CFBundleSignature - WiSH - CFBundleVersion - 8.4.12 - - -"; - }; - F53756A1016C4DD401DC9062 = { - buildActionMask = 2147483647; - files = ( - F53756AC016C4E1D01DC9062, - ); - isa = PBXHeadersBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F53756A2016C4DD401DC9062 = { - buildActionMask = 2147483647; - files = ( - F53756A3016C4DD401DC9062, - ); - isa = PBXResourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F53756A3016C4DD401DC9062 = { - fileRef = F537553B016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53756A4016C4DD401DC9062 = { - buildActionMask = 2147483647; - files = ( - F53756A5016C4DD401DC9062, - ); - isa = PBXSourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F53756A5016C4DD401DC9062 = { - fileRef = F5375548016C376E01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53756A6016C4DD401DC9062 = { - buildActionMask = 2147483647; - files = ( - F53756A8016C4DD401DC9062, - F5875C7D016FEF1D01DC9062, - F53756A7016C4DD401DC9062, - F50D96140196176E01DC9062, - F5877FB9031F9F49016F146B, - ); - isa = PBXFrameworksBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F53756A7016C4DD401DC9062 = { - fileRef = F53755DE016C38D201DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53756A8016C4DD401DC9062 = { - fileRef = F537567D016C3ADB01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53756AA016C4DD401DC9062 = { - buildActionMask = 2147483647; - files = ( - 4C3B4CF7040B18B200C916F0, - ); - isa = PBXRezBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F53756AC016C4E1D01DC9062 = { - fileRef = F537556B016C37A601DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F53756B2016C525F01DC9062 = { - isa = PBXTargetDependency; - target = F53755DF016C38D201DC9062; - targetProxy = 4C9404F007F3C84D004B0BCE; - }; - F548F8C80313C9E0016F146B = { - buildActionMask = 2147483647; - dstPath = "Versions/$(FRAMEWORK_VERSION)"; - dstSubfolderSpec = 1; - files = ( - F5877FBA031F9F4B016F146B, - ); - isa = PBXCopyFilesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F548F8CA0313CEF0016F146B = { - buildActionMask = 2147483647; - files = ( - ); - isa = PBXHeadersBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F548F8CB0313CEF0016F146B = { - buildActionMask = 2147483647; - files = ( - F548F8D10313CF14016F146B, - F548F8D00313CF11016F146B, - ); - isa = PBXSourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F548F8CC0313CEF0016F146B = { - buildActionMask = 2147483647; - files = ( - ); - isa = PBXFrameworksBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - F548F8CE0313CEF0016F146B = { - buildPhases = ( - F548F8CA0313CEF0016F146B, - F548F8CB0313CEF0016F146B, - F548F8CC0313CEF0016F146B, - F59D847903390D7E016F146B, - ); - buildSettings = { - GLOBAL_CFLAGS = "`source \"${TCL_FRAMEWORK_DIR}/Tcl.framework/tclConfig.sh\"; echo $${}{TCL_EXTRA_CFLAGS} $${}{TCL_DEFS} | sed -e 's|\\\\\\\\\\\\\\\"|\\\"|g' -e 's|\\\\\\\\\\\\ |_|g' -e 's|TCL_WIDE_INT_TYPE|BOGUS_&|'` -U_REENTRANT"; - HEADER_SEARCH_PATHS = "\"$(TCL_FRAMEWORK_DIR)/Tcl.framework/Headers\" \"$(TCL_FRAMEWORK_DIR)/Tcl.framework/PrivateHeaders\" . ../generic ../xlib"; - LIBRARY_STYLE = STATIC; - OPTIMIZATION_CFLAGS = "-O0"; - OTHER_CFLAGS = "-DMAC_OSX_TK -DTCL_WIDE_INT_TYPE=\"long long\""; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOL_FLAGS = ""; - PRODUCT_NAME = libtkstub8.4.a; - REZ_EXECUTABLE = YES; - SECTORDER_FLAGS = ""; - SYMROOT = "${SRCROOT}/../../build/tk"; - TCL_FRAMEWORK_DIR = "$(SYMROOT)/../tcl"; - WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas -Wno-deprecated-declarations"; - }; - dependencies = ( - ); - isa = PBXLibraryTarget; - name = TkStubLibrary; - productInstallPath = /usr/local/lib; - productName = TkStub; - productReference = F548F8CF0313CEF0016F146B; - }; - F548F8CF0313CEF0016F146B = { - explicitFileType = "compiled.mach-o.dylib"; - isa = PBXFileReference; - path = libtkstub8.4.a; - refType = 3; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F548F8D00313CF11016F146B = { - fileRef = F53755B9016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F548F8D10313CF14016F146B = { - fileRef = F53755BB016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F548F8D20313CF93016F146B = { - isa = PBXTargetDependency; - target = F548F8CE0313CEF0016F146B; - targetProxy = 4C9404EF07F3C84D004B0BCE; - }; - F55A164E032A11B1016F146B = { - buildActionMask = 2147483647; - files = ( - ); - isa = PBXShellScriptBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ -n \"${EMBEDDED_BUILD:-}\" ]; then\ncd \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Contents\"\n\n# if we are embedding frameworks, copy them into the app\nrm -rf \"Frameworks\"\nmkdir -p \"Frameworks\"\nif [ \"${DEPLOYMENT_LOCATION:-}\" = \"YES\" -o \"${ACTION}\" = \"install\" ]; then\n FWKDIR=\"${INSTALL_ROOT}${DYLIB_INSTALL_PATH}\"\nelse\n FWKDIR=\"${TARGET_BUILD_DIR}\"\nfi\ncp -fpRPH \"${FWKDIR}/Tcl.framework\" \"Frameworks\"\ncp -fpRPH \"${FWKDIR}/Tk.framework\" \"Frameworks\"\n\n# fix install names when embedding\nfix_install_id ( ) {\n chmod -RH a+w \"$1\"\n install_name_tool -id $(otool -L \"$1\" | awk \"/$(basename \"$1\")\\.framework.*[^:]\\$/ {sub(\\\"^.*/Frameworks\\\",\\\"@executable_path/../Frameworks\\\",\\$1); print \\$1}\") \"$1\"\n chmod -RH a-w \"$1\" \n}\nfix_install_name ( ) {\n chmod -RH a+w \"$1\"\n install_name_tool -change $(otool -L \"$1\" | awk \"/$2\\.framework.*[^:]\\$/ {print \\$1; sub(\\\"^.*/Frameworks\\\",\\\"@executable_path/../Frameworks\\\",\\$1); print \\$1}\") \"$1\"\n chmod -RH a-w \"$1\" \n}\nfix_install_id Frameworks/Tcl.framework/Tcl\nfix_install_id Frameworks/Tk.framework/Tk\nfix_install_name \"MacOS/${PRODUCT_NAME}\" Tcl\nfix_install_name \"MacOS/${PRODUCT_NAME}\" Tk\n\nfi"; - }; - F55BC46802B2D38B01DC9062 = { - fileEncoding = 5; - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = tkPanedWindow.c; - path = ../generic/tkPanedWindow.c; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F55BC46902B2D38B01DC9062 = { - fileRef = F55BC46802B2D38B01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F55BC46A02B2D3F301DC9062 = { - isa = PBXFileReference; - lastKnownFileType = text; - name = panedwindow.tcl; - path = ../library/panedwindow.tcl; - refType = 2; - sourceTree = SOURCE_ROOT; - }; - F55BC46B02B2D3F301DC9062 = { - fileRef = F55BC46A02B2D3F301DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5875C7B016FEF1D01DC9062 = { - isa = PBXFileReference; - lastKnownFileType = wrapper.framework; - name = Tcl.framework; - path = ../tcl/Tcl.framework; - refType = 3; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F5875C7D016FEF1D01DC9062 = { - fileRef = F5875C7B016FEF1D01DC9062; - isa = PBXBuildFile; - settings = { - }; - }; - F5877FB7031F97ED016F146B = { - buildActionMask = 8; - files = ( - ); - isa = PBXShellScriptBuildPhase; - runOnlyForDeploymentPostprocessing = 1; - shellPath = /bin/sh; - shellScript = "# ensure we can overwrite a previous install\nif [ -d \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\" ]; then\n chmod -RH u+w \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\"\nfi"; - }; - F5877FB8031F982D016F146B = { - buildActionMask = 8; - files = ( - ); - isa = PBXShellScriptBuildPhase; - runOnlyForDeploymentPostprocessing = 1; - shellPath = /bin/sh; - shellScript = "# ensure we can overwrite a previous install\nif [ -d \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\" ]; then\n chmod -RH u+w \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\"\nfi"; - }; - F5877FB9031F9F49016F146B = { - fileRef = F548F8CF0313CEF0016F146B; - isa = PBXBuildFile; - settings = { - }; - }; - F5877FBA031F9F4B016F146B = { - fileRef = F548F8CF0313CEF0016F146B; - isa = PBXBuildFile; - settings = { - }; - }; - F5877FBC031FA968016F146B = { - buildActionMask = 8; - files = ( - ); - isa = PBXShellScriptBuildPhase; - runOnlyForDeploymentPostprocessing = 1; - shellPath = /bin/sh; - shellScript = "# redo prebinding\ncd \"${INSTALL_ROOT}/\"\nif [ ! -d usr/lib ]; then mkdir -p usr; ln -fs /usr/lib usr/; RM_USRLIB=1; fi\nif [ ! -d System ]; then ln -fs /System .; RM_SYSTEM=1; fi\nif [ ! -d ./${DYLIB_INSTALL_PATH}/Tcl.framework ]; then ln -fs ${TCL_FRAMEWORK_DIR}/Tcl.framework ./${DYLIB_INSTALL_PATH}; RM_TCL=1; fi\nredo_prebinding -r . \"./${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Versions/${FRAMEWORK_VERSION}/${PRODUCT_NAME}\"\nif [ -n \"${RM_USRLIB:-}\" ]; then rm -f usr/lib; rmdir -p usr 2>&-; fi\nif [ -n \"${RM_SYSTEM:-}\" ]; then rm -f System; fi\nif [ -n \"${RM_TCL:-}\" ]; then rm -f ./${DYLIB_INSTALL_PATH}/Tcl.framework; fi\n\n# fix permissions on uninstalled products\nchmod a+w \"${TEMP_ROOT}/UninstalledProducts\"\nchmod a+w \"${TEMP_ROOT}\"/UninstalledProducts/libtkstub*.a"; - }; - F5877FBD031FAC6A016F146B = { - buildActionMask = 8; - files = ( - ); - isa = PBXShellScriptBuildPhase; - runOnlyForDeploymentPostprocessing = 1; - shellPath = /bin/sh; - shellScript = "# redo prebinding\ncd \"${INSTALL_ROOT}/\"\nAPP_DIR=\"${PRODUCT_NAME}.${WRAPPER_EXTENSION}\"\nEXECUTABLE_DIR=\"${APP_DIR}/Contents/MacOS\"\nEXECUTABLE=\"${EXECUTABLE_DIR}/${PRODUCT_NAME}\"\nFWK_RSRC_DIR=\"${DYLIB_INSTALL_PATH}/Tk.framework/Versions/${FRAMEWORK_VERSION}/Resources\"\nif [ -z \"${EMBEDDED_BUILD:-}\" ]; then\n if [ ! -d usr/lib ]; then mkdir -p usr; ln -fs /usr/lib usr/; RM_USRLIB=1; fi\n if [ ! -d System ]; then ln -fs /System .; RM_SYSTEM=1; fi\n if [ ! -d ./${DYLIB_INSTALL_PATH}/Tcl.framework ]; then ln -fs ${TCL_FRAMEWORK_DIR}/Tcl.framework ./${DYLIB_INSTALL_PATH}; RM_TCL=1; fi\n PREBIND_OPTS=\"-r .\"\nfi\nredo_prebinding ${PREBIND_OPTS:-} -e \"./${INSTALL_PATH}/${EXECUTABLE_DIR}\" \"./${INSTALL_PATH}/${EXECUTABLE}\"\nif [ -n \"${RM_USRLIB:-}\" ]; then rm -f usr/lib; rmdir -p usr 2>&-; fi\nif [ -n \"${RM_SYSTEM:-}\" ]; then rm -f System; fi\nif [ -n \"${RM_TCL:-}\" ]; then rm -f ./${DYLIB_INSTALL_PATH}/Tcl.framework; fi\n\n# copy Wish.app into framework, install wish script & symbolic link\nif [ -z \"${EMBEDDED_BUILD:-}\" ]; then\nchmod -H a+w \"./${FWK_RSRC_DIR}\"\nif [ -e \"./${FWK_RSRC_DIR}/${APP_DIR}\" ]; then chmod -RH a+w \"./${FWK_RSRC_DIR}/${APP_DIR}\" && rm -rf \"./${FWK_RSRC_DIR}/${APP_DIR}\"; fi\ncp -fpRPH \"./${INSTALL_PATH}/${APP_DIR}\" \"./${FWK_RSRC_DIR}\"\nchmod -H ${INSTALL_MODE_FLAG} \"./${FWK_RSRC_DIR}\"\nmkdir -p \"./${BINDIR}\"\nrm -f \"./${BINDIR}/wish${FRAMEWORK_VERSION}\"\ncat > \"./${BINDIR}/wish${FRAMEWORK_VERSION}\" < \"${TEMP_DIR}/tclstub.exp\""; - }; F92ED9910403D0F0006F146B = { fileEncoding = 5; isa = PBXFileReference; @@ -4271,14 +2260,51 @@ Initial MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Cop refType = 2; sourceTree = SOURCE_ROOT; }; - F9A61D2F04C2C861006F5A0B = { - buildActionMask = 8; - files = ( + F9D6747B08E84DC100688CAA = { + buildArgumentsString = "-c \"cd \\\"${TK_SRCROOT}/macosx\\\" && ACTION=${ACTION} && gnumake \\${ACTION:+\\${ACTION/clean/distclean}-}${MAKE_TARGET} INSTALL_ROOT=\\\"${DSTROOT}\\\" INSTALL_PATH=\\\"${INSTALL_PATH}\\\" APPLICATION_INSTALL_PATH=\\\"${APPLICATION_INSTALL_PATH}\\\" PREFIX=\\\"${PREFIX}\\\" BINDIR=\\\"${BINDIR}\\\" MANDIR=\\\"${MANDIR}\\\" TCL_BUILD_DIR=\\\"${TCL_BUILD_DIR}\\\" \\${EXTRA_MAKE_FLAGS} ${ALL_SETTINGS}\""; + buildPhases = ( + ); + buildSettings = { + APPLICATION_INSTALL_PATH = /Applications/Utilities; + BINDIR = "${PREFIX}/bin"; + INSTALL_PATH = /Library/Frameworks; + MANDIR = "${PREFIX}/man"; + PREFIX = /usr/local; + PRODUCT_NAME = Tk; + TCL_BUILD_DIR = "${SYMROOT}/../tcl/${BUILD_STYLE}"; + TCL_SRCROOT = "${SRCROOT}/../../tcl"; + TEMP_DIR = "${PROJECT_TEMP_DIR}"; + TK_SRCROOT = "${SRCROOT}/../../tk"; + }; + buildToolPath = /bin/bash; + buildWorkingDirectory = "${SRCROOT}"; + dependencies = ( ); - isa = PBXShellScriptBuildPhase; - runOnlyForDeploymentPostprocessing = 1; - shellPath = /bin/sh; - shellScript = "if [ -z \"${EMBEDDED_BUILD:-}\" ]; then\nif [ \"${BUILD_STYLE}\" = \"Deployment\" ]; then\n\t# build html documentation\n\tif [ -n \"${TCLTKMAN2HTML}\" -o -e \"${TCL_FRAMEWORK_DIR}/Deployment/Makefile\" ]; then\n\t\texport DYLD_FRAMEWORK_PATH=\"${TCL_FRAMEWORK_DIR}\"\n\t\trm -fr \"${INSTALL_ROOT}${DOCDIR}/${PRODUCT_NAME}\"\n\t\tif [ -n \"${TCLTKMAN2HTML}\" ]; then\n\t\t\t\"${TCLSH_DIR}/tclsh${FRAMEWORK_VERSION}\" \"${TCLTKMAN2HTML}\" \\\n\t\t\t\t--srcdir=\"../..\" --tk \\\n\t\t\t\t--htmldir=\"${INSTALL_ROOT}${DOCDIR}/${PRODUCT_NAME}\"\n\t\telse\n\t\t\tgnumake -C \"${TCL_FRAMEWORK_DIR}/Deployment\" html-tk \\\n\t\t\t\tDISTDIR=\"${INSTALL_ROOT}${DOCDIR}\" \\\n\t\t\t\tTCL_EXE=\"${TCLSH_DIR}/tclsh${FRAMEWORK_VERSION}\"\n\t\t\tmv -f \"${INSTALL_ROOT}${DOCDIR}/html\" \\\n\t\t\t\t\"${INSTALL_ROOT}${DOCDIR}/${PRODUCT_NAME}\"\n\t\tfi\n\t\tln -fs contents.htm \\\n\t\t\t\"${INSTALL_ROOT}${DOCDIR}/${PRODUCT_NAME}/${PRODUCT_NAME}TOC.html\"\n\telse\n\t\techo \"Couldn't build html documentation!\"\n\tfi\nfi\nfi"; + isa = PBXLegacyTarget; + name = Tk; + passBuildSettingsInEnvironment = 0; + productName = Tk; + }; + F9F6B1BE08E8639A00C9CB24 = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + path = Tk.framework; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F9F6B1BF08E863B300C9CB24 = { + isa = PBXFileReference; + lastKnownFileType = wrapper.application; + path = Wish.app; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F9F6B1C008E863C200C9CB24 = { + isa = PBXFileReference; + lastKnownFileType = "compiled.mach-o.executable"; + path = tktest; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; }; }; rootObject = F537552A016C352C01DC9062; diff --git a/macosx/buildTkConfig.tcl b/macosx/buildTkConfig.tcl deleted file mode 100755 index dba0c51..0000000 --- a/macosx/buildTkConfig.tcl +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# Synthesize tkConfig.sh for Mac OS X based -# on tclConfig.sh and tkConfig.sh.in -# -# RCS: @(#) $Id: buildTkConfig.tcl,v 1.1.2.1 2003/07/21 12:37:08 das Exp $ -# -# the next line restarts using tclsh \ -exec tclsh8.4 "$0" "$@" - -proc main {tclConfigFile tkConfigFileIn tkConfigFile} { - set in [open $tclConfigFile] - set tclConfig [read $in] - close $in - set in [open $tkConfigFileIn] - set tkConfig [read $in] - close $in - set tclconfvars [regexp -all -inline -line -- {^TCL_([^=]*)=(.*)$} $tclConfig] - lappend tclconfvars {} {XINCLUDES} \ - [lindex [regexp -inline -line -- {^TCL_INCLUDE_SPEC=(.*)$} $tclConfig] 1] - set tkconfvars [regexp -all -inline -line -- {^TK_([^=]*)=} $tkConfig] - foreach {-> var val} $tclconfvars { - regsub -all -- {([Tt])cl((?![[:alnum:]])|stub)} $val {\1k\2} val - foreach {-> tkvar} $tkconfvars { - regsub -all -- "TCL_$tkvar" $val "TK_$tkvar" val - } - regsub -line -- "^TK_$var=.*\$" $tkConfig "TK_$var=$val" tkConfig - } - regsub -line -all -- {@[^@]+@} $tkConfig {} tkConfig - regsub -line -all -- {(/tk)/(?:Development|Deployment)} $tkConfig {\1} tkConfig - regsub -line {^(TK_DEFS=')} $tkConfig {\1 -DMAC_OSX_TK} tkConfig - - set out [open $tkConfigFile w] - puts $out $tkConfig - close $out -} - -if {$argc != 3} { - puts stderr "usage: $argv0 /path/to/tclConfig.sh \ -/path/to/tkConfig.sh.in /path/to/tkConfig.sh" - exit 1 -} - -main [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] diff --git a/macosx/tkMacOSXButton.c b/macosx/tkMacOSXButton.c index 909e83e..d5672cc 100644 --- a/macosx/tkMacOSXButton.c +++ b/macosx/tkMacOSXButton.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXButton.c,v 1.2.2.11 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXButton.c,v 1.2.2.12 2005/11/27 02:36:46 das Exp $ */ #include "tkButton.h" @@ -789,7 +789,7 @@ TkpDestroyButton( *---------------------------------------------------------------------- */ -int +static int TkMacOSXInitControl ( MacButton *mbPtr, /* Mac button. */ GWorldPtr destPort, diff --git a/macosx/tkMacOSXCarbonEvents.c b/macosx/tkMacOSXCarbonEvents.c index 9b45c19..855ab7b 100644 --- a/macosx/tkMacOSXCarbonEvents.c +++ b/macosx/tkMacOSXCarbonEvents.c @@ -2,12 +2,19 @@ * tkMacOSXCarbonEvents.c -- * * This file implements functions that register for and handle - * various Carbon Events. The reason a separate set of handlers - * is necessary is that not all interesting events get delivered - * directly to the event queue through ReceiveNextEvent. Some only - * get delivered if you register a Carbon Event Handler for the event. + * various Carbon Events and Timers. Most carbon events of interest + * to TkAqua are processed in a handler registered on the dispatcher + * event target so that we get first crack at them before HIToolbox + * dispatchers/processes them further. + * As some events are sent directly to the focus or app event target + * and not dispatched normally, we also register a handler on the + * application event target. * - * Copyright 2001, Apple Computer, Inc. + * Copyright 2001, Apple Computer, Inc. + * Copyright (c) 2005 Daniel A. Steffen + * + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. * * The following terms apply to all files originating from Apple * Computer, Inc. ("Apple") and associated with the software @@ -53,7 +60,7 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXCarbonEvents.c,v 1.3.2.4 2005/09/10 15:11:29 das Exp $ + * RCS: @(#) $Id: tkMacOSXCarbonEvents.c,v 1.3.2.5 2005/11/27 02:36:46 das Exp $ */ #include "tkInt.h" @@ -62,69 +69,83 @@ #include "tkMacOSXDebug.h" /* -#ifdef TK_MAC_DEBUG +#ifdef TK_MAC_DEBUG #define TK_MAC_DEBUG_CARBON_EVENTS #endif */ -#ifdef TK_MAC_DEBUG_CARBON_EVENTS -/* Carbon-internal event debugging routines (c.f. Technote 2124): */ -void _DebugPrintEvent(EventRef inEvent); -void _TraceEventByName(CFStringRef eventName); -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ - /* Declarations of functions used only in this file */ -static OSStatus CarbonEventHandlerProc ( - EventHandlerCallRef callRef, - EventRef inEvent, - void *userData); +static OSStatus CarbonEventHandlerProc(EventHandlerCallRef callRef, + EventRef event, void *userData); +static OSStatus InstallStandardApplicationEventHandler(); +static void ExitRaelEventHandlerProc (EventHandlerCallRef, EventRef, void*) + __attribute__ ((__noreturn__)); +static void CarbonTimerProc(EventLoopTimerRef timer, void *userData); + +/* Static data used by several functions in this file */ +static jmp_buf exitRaelJmpBuf; +static EventLoopTimerRef carbonTimer = NULL; +static int carbonTimerEnabled = 0; /* *---------------------------------------------------------------------- * * CarbonEventHandlerProc -- * - * This procedure is the handler for all registered CarbonEvents. + * This procedure is the handler for all registered CarbonEvents. * * Results: - * None. + * OS status code. * * Side effects: - * Dispatches CarbonEvents. + * Dispatches CarbonEvents. * *---------------------------------------------------------------------- */ static OSStatus CarbonEventHandlerProc ( - EventHandlerCallRef callRef, - EventRef inEvent, - void *inUserData) + EventHandlerCallRef callRef, + EventRef event, + void *userData) { - OSStatus result = eventNotHandledErr; + OSStatus result = eventNotHandledErr; TkMacOSXEvent macEvent; MacEventStatus eventStatus; + macEvent.eventRef = event; + macEvent.eClass = GetEventClass(macEvent.eventRef); + macEvent.eKind = GetEventKind(macEvent.eventRef); + macEvent.interp = (Tcl_Interp *) userData; + bzero(&eventStatus, sizeof(eventStatus)); + #ifdef TK_MAC_DEBUG_CARBON_EVENTS char buf [256]; - CarbonEventToAscii(inEvent, buf); - fprintf(stderr, "CarbonEventHandlerProc started handling %s\n", buf); - _DebugPrintEvent(inEvent); + if (macEvent.eKind != kEventMouseMoved && + macEvent.eKind != kEventMouseDragged) { + CarbonEventToAscii(event, buf); + fprintf(stderr, "CarbonEventHandlerProc started handling %s\n", buf); + TkMacOSXInitNamedSymbol(HIToolbox, void, _DebugPrintEvent, + EventRef inEvent); + if (_DebugPrintEvent) { + /* Carbon-internal event debugging (c.f. Technote 2124) */ + _DebugPrintEvent(event); + } + } #endif /* TK_MAC_DEBUG_CARBON_EVENTS */ - macEvent.eventRef = inEvent; - macEvent.eClass = GetEventClass(macEvent.eventRef); - macEvent.eKind = GetEventKind(macEvent.eventRef); - macEvent.interp = (Tcl_Interp *) inUserData; - bzero(&eventStatus, sizeof(eventStatus)); TkMacOSXProcessEvent(&macEvent,&eventStatus); if (eventStatus.stopProcessing) { - result = noErr; + result = noErr; } #ifdef TK_MAC_DEBUG_CARBON_EVENTS - fprintf(stderr, "CarbonEventHandlerProc finished handling %s: %s handled\n", buf, - eventStatus.stopProcessing ? " " : "not"); + if (macEvent.eKind != kEventMouseMoved && + macEvent.eKind != kEventMouseDragged) { + fprintf(stderr, + "CarbonEventHandlerProc finished handling %s: %s handled\n", + buf, eventStatus.stopProcessing ? " " : "not"); + } #endif /* TK_MAC_DEBUG_CARBON_EVENTS */ return result; } @@ -134,75 +155,312 @@ CarbonEventHandlerProc ( * * TkMacOSXInitCarbonEvents -- * - * This procedure initializes all CarbonEvent handlers. + * This procedure initializes all CarbonEvent handlers. * * Results: - * None. + * None. * * Side effects: - * Handlers for Carbon Events are registered. + * Handlers for Carbon Events are registered. * *---------------------------------------------------------------------- */ void TkMacOSXInitCarbonEvents ( - Tcl_Interp *interp) + Tcl_Interp *interp) { + OSStatus err; const EventTypeSpec dispatcherEventTypes[] = { - {kEventClassMouse, kEventMouseDown}, - {kEventClassMouse, kEventMouseUp}, - {kEventClassMouse, kEventMouseMoved}, - {kEventClassMouse, kEventMouseDragged}, - {kEventClassMouse, kEventMouseWheelMoved}, - {kEventClassWindow, kEventWindowUpdate}, - {kEventClassWindow, kEventWindowActivated}, - {kEventClassWindow, kEventWindowDeactivated}, - {kEventClassKeyboard, kEventRawKeyDown}, - {kEventClassKeyboard, kEventRawKeyRepeat}, - {kEventClassKeyboard, kEventRawKeyUp}, - {kEventClassKeyboard, kEventRawKeyModifiersChanged}, - {kEventClassKeyboard, kEventRawKeyRepeat}, - {kEventClassApplication, kEventAppActivated}, - {kEventClassApplication, kEventAppDeactivated}, - {kEventClassApplication, kEventAppQuit}, - {kEventClassAppleEvent, kEventAppleEvent}, + {kEventClassMouse, kEventMouseDown}, + {kEventClassMouse, kEventMouseUp}, + {kEventClassMouse, kEventMouseMoved}, + {kEventClassMouse, kEventMouseDragged}, + {kEventClassMouse, kEventMouseWheelMoved}, + {kEventClassWindow, kEventWindowUpdate}, + {kEventClassWindow, kEventWindowActivated}, + {kEventClassWindow, kEventWindowDeactivated}, + {kEventClassKeyboard, kEventRawKeyDown}, + {kEventClassKeyboard, kEventRawKeyRepeat}, + {kEventClassKeyboard, kEventRawKeyUp}, + {kEventClassKeyboard, kEventRawKeyModifiersChanged}, + {kEventClassKeyboard, kEventRawKeyRepeat}, + {kEventClassApplication, kEventAppActivated}, + {kEventClassApplication, kEventAppDeactivated}, + {kEventClassApplication, kEventAppQuit}, }; const EventTypeSpec applicationEventTypes[] = { - {kEventClassWindow, kEventWindowExpanded}, - {kEventClassApplication, kEventAppHidden}, - {kEventClassApplication, kEventAppShown}, + {kEventClassMenu, kEventMenuBeginTracking}, + {kEventClassMenu, kEventMenuEndTracking}, + {kEventClassCommand, kEventCommandProcess}, + {kEventClassWindow, kEventWindowExpanded}, + {kEventClassApplication, kEventAppHidden}, + {kEventClassApplication, kEventAppShown}, }; EventHandlerUPP handler = NewEventHandlerUPP(CarbonEventHandlerProc); - InstallEventHandler(GetEventDispatcherTarget(), handler, - GetEventTypeCount(dispatcherEventTypes), dispatcherEventTypes, - (void *) interp, NULL); - InstallEventHandler(GetApplicationEventTarget(), handler, - GetEventTypeCount(applicationEventTypes), applicationEventTypes, - (void *) interp, NULL); + err = InstallStandardApplicationEventHandler(); + if (err != noErr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr, "InstallStandardApplicationEventHandler failed, %d\n", + (int) err); +#endif + } + err = InstallEventHandler(GetEventDispatcherTarget(), handler, + GetEventTypeCount(dispatcherEventTypes), dispatcherEventTypes, + (void *) interp, NULL); + if (err != noErr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr, "InstallEventHandler failed, %d\n", (int) err); +#endif + } + err = InstallEventHandler(GetApplicationEventTarget(), handler, + GetEventTypeCount(applicationEventTypes), applicationEventTypes, + (void *) interp, NULL); + if (err != noErr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr, "InstallEventHandler failed, %d\n", (int) err); +#endif + } + +#ifdef TK_MAC_DEBUG_CARBON_EVENTS + TkMacOSXInitNamedSymbol(HIToolbox, void, _TraceEventByName, CFStringRef); + if (_TraceEventByName) { + /* Carbon-internal event debugging (c.f. Technote 2124) */ + _TraceEventByName(CFSTR("kEventMouseDown")); + _TraceEventByName(CFSTR("kEventMouseUp")); + _TraceEventByName(CFSTR("kEventMouseWheelMoved")); + _TraceEventByName(CFSTR("kEventWindowUpdate")); + _TraceEventByName(CFSTR("kEventWindowActivated")); + _TraceEventByName(CFSTR("kEventWindowDeactivated")); + _TraceEventByName(CFSTR("kEventRawKeyDown")); + _TraceEventByName(CFSTR("kEventRawKeyRepeat")); + _TraceEventByName(CFSTR("kEventRawKeyUp")); + _TraceEventByName(CFSTR("kEventRawKeyModifiersChanged")); + _TraceEventByName(CFSTR("kEventRawKeyRepeat")); + _TraceEventByName(CFSTR("kEventAppActivated")); + _TraceEventByName(CFSTR("kEventAppDeactivated")); + _TraceEventByName(CFSTR("kEventAppQuit")); + _TraceEventByName(CFSTR("kEventMenuBeginTracking")); + _TraceEventByName(CFSTR("kEventMenuEndTracking")); + _TraceEventByName(CFSTR("kEventCommandProcess")); + _TraceEventByName(CFSTR("kEventWindowExpanded")); + _TraceEventByName(CFSTR("kEventAppHidden")); + _TraceEventByName(CFSTR("kEventAppShown")); + } +#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ +} + +/* + *---------------------------------------------------------------------- + * + * InstallStandardApplicationEventHandler -- + * + * This procedure installs the carbon standard application event + * handler. + * + * Results: + * OS status code. + * + * Side effects: + * Standard handlers for application Carbon Events are registered. + * + *---------------------------------------------------------------------- + */ + +static OSStatus +InstallStandardApplicationEventHandler() +{ + /* + * This is a hack to workaround missing Carbon API to install the standard + * application event handler (InstallStandardEventHandler() does not work + * on the application target). The only way to install the standard app + * handler is to call RunApplicationEventLoop(), but since we are running + * our own event loop, we'll immediately need to break out of RAEL again: + * we do this via longjmp out of the ExitRaelEventHandlerProc event handler + * called first off from RAEL by posting a high priority dummy event. + * This workaround is derived from a similar approach in Technical Q&A 1061. + */ + enum { kExitRaelEvent = 'ExiT' }; + const EventTypeSpec exitRaelEventType = + { kExitRaelEvent, kExitRaelEvent}; + EventHandlerUPP exitRaelEventHandler; + EventHandlerRef exitRaelEventHandlerRef = NULL; + EventRef exitRaelEvent = NULL; + OSStatus err = memFullErr; + + exitRaelEventHandler = NewEventHandlerUPP( + (EventHandlerProcPtr) ExitRaelEventHandlerProc); + if (exitRaelEventHandler) { + err = InstallEventHandler(GetEventDispatcherTarget(), + exitRaelEventHandler, 1, &exitRaelEventType, NULL, + &exitRaelEventHandlerRef); + } + if (err == noErr) { + err = CreateEvent(NULL, kExitRaelEvent, kExitRaelEvent, + GetCurrentEventTime(), kEventAttributeNone, &exitRaelEvent); + } + if (err == noErr) { + err = PostEventToQueue(GetMainEventQueue(), exitRaelEvent, + kEventPriorityHigh); + } + if (err == noErr) { + if (!setjmp(exitRaelJmpBuf)) { + RunApplicationEventLoop(); + /* This point should never be reached ! */ + Tcl_Panic("RunApplicationEventLoop exited !"); + } + } + if (exitRaelEvent) { + ReleaseEvent(exitRaelEvent); + } + if (exitRaelEventHandlerRef) { + RemoveEventHandler(exitRaelEventHandlerRef); + } + if (exitRaelEventHandler) { + DisposeEventHandlerUPP(exitRaelEventHandler); + } + return err; +} + +/* + *---------------------------------------------------------------------- + * + * ExitRaelEventHandlerProc -- + * + * This procedure is the dummy event handler used to break out of + * RAEL via longjmp, it is called as the first ever event handler + * in RAEL by posting a high priority dummy event. + * + * Results: + * None. Never returns ! + * + * Side effects: + * longjmp back to InstallStandardApplicationEventHandler(). + * + *---------------------------------------------------------------------- + */ + +static void +ExitRaelEventHandlerProc ( + EventHandlerCallRef callRef, + EventRef event, void *userData) +{ + longjmp(exitRaelJmpBuf, 1); +} + +/* + *---------------------------------------------------------------------- + * + * CarbonTimerProc -- + * + * This procedure is the carbon timer handler that runs the tcl + * event loop periodically. It does not process TCL_WINDOW_EVENTS + * to avoid reentry issues with Carbon, nor TCL_IDLE_EVENTS since + * it is only intended to be called during short periods of busy + * time such as during menu tracking. + * + * Results: + * None. + * + * Side effects: + * Runs the Tcl event loop. + * + *---------------------------------------------------------------------- + */ +static void +CarbonTimerProc ( + EventLoopTimerRef timer, + void *userData) +{ + while(carbonTimerEnabled && Tcl_DoOneEvent( + TCL_FILE_EVENTS|TCL_TIMER_EVENTS|TCL_DONT_WAIT)) { #ifdef TK_MAC_DEBUG_CARBON_EVENTS - _TraceEventByName(CFSTR("kEventMouseDown")); - _TraceEventByName(CFSTR("kEventMouseUp")); - _TraceEventByName(CFSTR("kEventMouseMoved")); - _TraceEventByName(CFSTR("kEventMouseDragged")); - _TraceEventByName(CFSTR("kEventMouseWheelMoved")); - _TraceEventByName(CFSTR("kEventWindowUpdate")); - _TraceEventByName(CFSTR("kEventWindowActivated")); - _TraceEventByName(CFSTR("kEventWindowDeactivated")); - _TraceEventByName(CFSTR("kEventRawKeyDown")); - _TraceEventByName(CFSTR("kEventRawKeyRepeat")); - _TraceEventByName(CFSTR("kEventRawKeyUp")); - _TraceEventByName(CFSTR("kEventRawKeyModifiersChanged")); - _TraceEventByName(CFSTR("kEventRawKeyRepeat")); - _TraceEventByName(CFSTR("kEventAppActivated")); - _TraceEventByName(CFSTR("kEventAppDeactivated")); - _TraceEventByName(CFSTR("kEventAppQuit")); - _TraceEventByName(CFSTR("kEventAppleEvent")); - _TraceEventByName(CFSTR("kEventWindowExpanded")); - _TraceEventByName(CFSTR("kEventAppHidden")); - _TraceEventByName(CFSTR("kEventAppShown")); + fprintf(stderr, "Processed tcl event from carbon timer\n"); #endif /* TK_MAC_DEBUG_CARBON_EVENTS */ + } } + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXStartTclEventLoopCarbonTimer -- + * + * This procedure installs (if necessary) and starts a carbon + * event timer that runs the tcl event loop periodically. + * It should be called whenever a nested carbon event loop is + * run by HIToolbox (e.g. during menutracking) to ensure that + * non-window non-idle tcl events are processed. + * + * Results: + * OS status code. + * + * Side effects: + * Carbon event timer is installed and started. + * + *---------------------------------------------------------------------- + */ + +OSStatus +TkMacOSXStartTclEventLoopCarbonTimer() +{ + OSStatus err; + + if(!carbonTimer) { + EventLoopTimerUPP timerUPP = NewEventLoopTimerUPP(CarbonTimerProc); + err = InstallEventLoopTimer(GetMainEventLoop(), kEventDurationNoWait, + 5 * kEventDurationMillisecond, timerUPP, NULL, &carbonTimer); + if (err != noErr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr, "InstallEventLoopTimer failed, %d\n", (int) err); +#endif + } + } else { + err = SetEventLoopTimerNextFireTime(carbonTimer, kEventDurationNoWait); + if (err != noErr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr, "SetEventLoopTimerNextFireTime failed, %d\n", + (int) err); +#endif + } + } + carbonTimerEnabled = 1; + return err; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXStopTclEventLoopCarbonTimer -- + * + * This procedure stops the carbon event timer started by + * TkMacOSXStartTclEventLoopCarbonTimer(). + * + * Results: + * OS status code. + * + * Side effects: + * Carbon event timer is stopped. + * + *---------------------------------------------------------------------- + */ + +OSStatus +TkMacOSXStopTclEventLoopCarbonTimer() +{ + OSStatus err = noErr; + if(carbonTimer) { + err = SetEventLoopTimerNextFireTime(carbonTimer, kEventDurationForever); + if (err != noErr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr, "SetEventLoopTimerNextFireTime failed, %d\n", + (int) err); +#endif + } + } + carbonTimerEnabled = 0; + return err; +} + diff --git a/macosx/tkMacOSXDebug.c b/macosx/tkMacOSXDebug.c index 8651bc9..77d700d 100644 --- a/macosx/tkMacOSXDebug.c +++ b/macosx/tkMacOSXDebug.c @@ -50,7 +50,7 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXDebug.c,v 1.2.2.3 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXDebug.c,v 1.2.2.4 2005/11/27 02:36:46 das Exp $ */ #include "tkMacOSXDebug.h" @@ -230,7 +230,7 @@ static MyEventNameList eventNameList [] = { }; -MyEventName classicEventNames [] = { +static MyEventName classicEventNames [] = { { nullEvent,"nullEvent" }, { mouseDown,"mouseDown" }, { mouseUp,"mouseUp" }, @@ -289,7 +289,8 @@ CarbonEventToAscii(EventRef eventRef, char * buf) return iBuf; } -char * CarbonEventKindToAscii(EventRef eventRef, char * buf ) +char * +CarbonEventKindToAscii(EventRef eventRef, char * buf ) { EventClass eventClass; EventKind eventKind; @@ -324,7 +325,8 @@ char * CarbonEventKindToAscii(EventRef eventRef, char * buf ) return buf; } -char * ClassicEventToAscii(EventRecord * eventPtr, char * buf ) +char * +ClassicEventToAscii(EventRecord * eventPtr, char * buf ) { MyEventName * names = NULL; int found = 0; @@ -353,27 +355,31 @@ char * ClassicEventToAscii(EventRecord * eventPtr, char * buf ) } -void printPoint(char * tag, Point * p ) +void +printPoint(char * tag, Point * p ) { fprintf(stderr,"%s %4d %4d\n", tag,p->h,p->v ); } -void printRect(char * tag, Rect * r ) +void +printRect(char * tag, Rect * r ) { fprintf(stderr,"%s %4d %4d %4d %4d (%dx%d)\n", tag, r->left, r->top, r->right, r->bottom, r->right - r->left + 1, r->bottom - r->top + 1); } -void printRegion(char * tag, RgnHandle rgn ) +void +printRegion(char * tag, RgnHandle rgn ) { Rect r; GetRegionBounds(rgn,&r); printRect(tag,&r); } -void printWindowTitle(char * tag, WindowRef window ) +void +printWindowTitle(char * tag, WindowRef window ) { Str255 title; GetWTitle(window,title); @@ -386,7 +392,7 @@ typedef struct { char * name; } MsgName; -MsgName msgNames [] = { +static MsgName msgNames [] = { { kMenuDrawMsg, "Draw"}, { kMenuSizeMsg, "Size"}, { kMenuPopUpMsg, "PopUp"}, @@ -400,7 +406,6 @@ MsgName msgNames [] = { { -1, NULL } }; - char * TkMacOSXMenuMessageToAscii(int msg, char * s) { @@ -417,20 +422,21 @@ TkMacOSXMenuMessageToAscii(int msg, char * s) return s; } +static MsgName trackingNames [] = { + { kMouseTrackingMousePressed , "MousePressed " }, + { kMouseTrackingMouseReleased , "MouseReleased " }, + { kMouseTrackingMouseExited , "MouseExited " }, + { kMouseTrackingMouseEntered , "MouseEntered " }, + { kMouseTrackingMouseMoved , "MouseMoved " }, + { kMouseTrackingKeyModifiersChanged, "KeyModifiersChanged" }, + { kMouseTrackingUserCancelled , "UserCancelled " }, + { kMouseTrackingTimedOut , "TimedOut " }, + { -1, NULL } +}; -char * MouseTrackingResultToAscii(MouseTrackingResult r, char * buf) +char * +MouseTrackingResultToAscii(MouseTrackingResult r, char * buf) { - MsgName trackingNames [] = { - { kMouseTrackingMousePressed , "MousePressed " }, - { kMouseTrackingMouseReleased , "MouseReleased " }, - { kMouseTrackingMouseExited , "MouseExited " }, - { kMouseTrackingMouseEntered , "MouseEntered " }, - { kMouseTrackingMouseMoved , "MouseMoved " }, - { kMouseTrackingKeyModifiersChanged, "KeyModifiersChanged" }, - { kMouseTrackingUserCancelled , "UserCancelled " }, - { kMouseTrackingTimedOut , "TimedOut " }, - { -1, NULL } - }; MsgName * namePtr; for (namePtr = trackingNames; namePtr->name; namePtr++) { if (namePtr->msg == r) { diff --git a/macosx/tkMacOSXDebug.h b/macosx/tkMacOSXDebug.h index c947ef3..f57fc71 100644 --- a/macosx/tkMacOSXDebug.h +++ b/macosx/tkMacOSXDebug.h @@ -50,11 +50,16 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXDebug.h,v 1.2.2.3 2005/09/10 15:11:29 das Exp $ + * RCS: @(#) $Id: tkMacOSXDebug.h,v 1.2.2.4 2005/11/27 02:36:46 das Exp $ */ #ifndef _TKMACDEBUG #define _TKMACDEBUG + +#ifndef _TKINT +#include "tkInt.h" +#endif + #include /* The following define enables printing of debug messages to stderr: */ diff --git a/macosx/tkMacOSXDialog.c b/macosx/tkMacOSXDialog.c index 37d07f6..e2e609d 100644 --- a/macosx/tkMacOSXDialog.c +++ b/macosx/tkMacOSXDialog.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXDialog.c,v 1.4.2.8 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXDialog.c,v 1.4.2.9 2005/11/27 02:36:46 das Exp $ */ #include @@ -73,7 +73,7 @@ static Boolean MatchOneType _ANSI_ARGS_((StringPtr fileNamePtr, O static pascal Boolean OpenFileFilterProc(AEDesc* theItem, void* info, NavCallBackUserData callBackUD, NavFilterModes filterMode ); -pascal void OpenEventProc(NavEventCallbackMessage callBackSelector, +static pascal void OpenEventProc(NavEventCallbackMessage callBackSelector, NavCBRecPtr callBackParms, NavCallBackUserData callBackUD ); static void InitFileDialogs(); @@ -98,8 +98,8 @@ static int fileDlgInited = 0; * commands. */ -NavObjectFilterUPP openFileFilterUPP; -NavEventUPP openFileEventUPP; +static NavObjectFilterUPP openFileFilterUPP; +static NavEventUPP openFileEventUPP; /* diff --git a/macosx/tkMacOSXDraw.c b/macosx/tkMacOSXDraw.c index e02fb0c..e24eb8b 100644 --- a/macosx/tkMacOSXDraw.c +++ b/macosx/tkMacOSXDraw.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXDraw.c,v 1.2.2.7 2005/07/29 05:36:50 hobbs Exp $ + * RCS: @(#) $Id: tkMacOSXDraw.c,v 1.2.2.8 2005/11/27 02:36:46 das Exp $ */ #include "tclInt.h" @@ -52,10 +52,10 @@ static int useThemedFrame = 0; */ static unsigned char InvertByte _ANSI_ARGS_((unsigned char data)); -void TkMacOSXSetUpCGContext(MacDrawable *macWin, +static void TkMacOSXSetUpCGContext(MacDrawable *macWin, CGrafPtr destPort, GC gc, CGContextRef *contextPtr); -void TkMacOSXReleaseCGContext(MacDrawable *macWin, CGrafPtr destPort, - CGContextRef *context); +static void TkMacOSXReleaseCGContext(MacDrawable *macWin, CGrafPtr destPort, + CGContextRef *context); static inline double radians(double degrees) { return degrees * PI / 180.0f; } int @@ -881,6 +881,7 @@ XDrawRectangle( SetGWorld(saveWorld, saveDevice); } +#if 0 /* *---------------------------------------------------------------------- * @@ -963,6 +964,7 @@ XDrawRectangles( } SetGWorld(saveWorld, saveDevice); } +#endif /* *---------------------------------------------------------------------- @@ -1074,6 +1076,7 @@ XDrawArc( SetGWorld(saveWorld, saveDevice); } +#if 0 /* *---------------------------------------------------------------------- * @@ -1183,6 +1186,7 @@ XDrawArcs( } SetGWorld(saveWorld, saveDevice); } +#endif /* *---------------------------------------------------------------------- @@ -1328,6 +1332,7 @@ XFillArc( SetGWorld(saveWorld, saveDevice); } +#if 0 /* *---------------------------------------------------------------------- * @@ -1509,7 +1514,9 @@ XFillArcs( } SetGWorld(saveWorld, saveDevice); } +#endif +#if 0 /* *---------------------------------------------------------------------- * @@ -1522,6 +1529,7 @@ XMaxRequestSize(Display *display) { return (SHRT_MAX / 4); } +#endif /* *---------------------------------------------------------------------- @@ -1729,7 +1737,7 @@ TkMacOSXSetUpGraphicsPort( *---------------------------------------------------------------------- */ -void +static void TkMacOSXSetUpCGContext( MacDrawable *macWin, CGrafPtr destPort, @@ -1836,7 +1844,7 @@ TkMacOSXSetUpCGContext( } } -void +static void TkMacOSXReleaseCGContext( MacDrawable *macWin, CGrafPtr destPort, diff --git a/macosx/tkMacOSXEntry.c b/macosx/tkMacOSXEntry.c index 2df8dfc..d8d0504 100644 --- a/macosx/tkMacOSXEntry.c +++ b/macosx/tkMacOSXEntry.c @@ -50,7 +50,7 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXEntry.c,v 1.2.2.4 2005/08/09 07:39:55 das Exp $ + * RCS: @(#) $Id: tkMacOSXEntry.c,v 1.2.2.5 2005/11/27 02:36:46 das Exp $ */ #include "tk.h" @@ -59,7 +59,7 @@ #include "tkMacOSXDefault.h" #include "tkEntry.h" -ThemeButtonKind ComputeIncDecParameters (int height, int *width); +static ThemeButtonKind ComputeIncDecParameters (int height, int *width); /* *-------------------------------------------------------------- @@ -78,7 +78,7 @@ ThemeButtonKind ComputeIncDecParameters (int height, int *width); * *-------------------------------------------------------------- */ -ThemeButtonKind +static ThemeButtonKind ComputeIncDecParameters (int height, int *width) { static int version = 0; diff --git a/macosx/tkMacOSXEvent.c b/macosx/tkMacOSXEvent.c index 3315310..0f97852 100644 --- a/macosx/tkMacOSXEvent.c +++ b/macosx/tkMacOSXEvent.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXEvent.c,v 1.3.2.3 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXEvent.c,v 1.3.2.4 2005/11/27 02:36:46 das Exp $ */ #include @@ -18,13 +18,6 @@ #include "tkMacOSXEvent.h" #include "tkMacOSXDebug.h" -/* - * Forward declarations of procedures used in this file. - */ - -static int TkMacOSXProcessAppleEvent( - TkMacOSXEvent * eventPtr, MacEventStatus * statusPtr); - /* *---------------------------------------------------------------------- * @@ -56,52 +49,6 @@ TkMacOSXFlushWindows () } } -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessAppleEvent -- - * - * This processes Apple events - * - * Results: - * 0 on success - * -1 on failure - * - * Side effects: - * Calls the Tk high-level event handler - * - *---------------------------------------------------------------------- - */ - -static int -TkMacOSXProcessAppleEvent(TkMacOSXEvent * eventPtr, MacEventStatus * statusPtr) -{ - int err; - EventRecord eventRecord; - if (ConvertEventRefToEventRecord(eventPtr->eventRef, - &eventRecord )) { - err = TkMacOSXDoHLEvent(&eventRecord); - if (err != noErr) { -#ifdef TK_MAC_DEBUG - char buf1 [ 256 ]; - char buf2 [ 256 ]; - fprintf(stderr, - "TkMacOSXDoHLEvent failed : %s,%s,%d\n", - CarbonEventToAscii(eventPtr->eventRef, buf1), - ClassicEventToAscii(&eventRecord,buf2), err); -#endif - statusPtr->err = 1; - } - } else { -#ifdef TK_MAC_DEBUG - fprintf(stderr,"ConvertEventRefToEventRecord failed\n"); -#endif - statusPtr->err = 1; - } - return 0; -} - - /* *---------------------------------------------------------------------- * @@ -141,8 +88,11 @@ TkMacOSXProcessEvent(TkMacOSXEvent * eventPtr, MacEventStatus * statusPtr) case kEventClassApplication: TkMacOSXProcessApplicationEvent(eventPtr, statusPtr); break; - case kEventClassAppleEvent: - TkMacOSXProcessAppleEvent(eventPtr, statusPtr); + case kEventClassMenu: + TkMacOSXProcessMenuEvent(eventPtr, statusPtr); + break; + case kEventClassCommand: + TkMacOSXProcessCommandEvent(eventPtr, statusPtr); break; default: #ifdef TK_MAC_DEBUG @@ -161,6 +111,113 @@ TkMacOSXProcessEvent(TkMacOSXEvent * eventPtr, MacEventStatus * statusPtr) /* *---------------------------------------------------------------------- * + * TkMacOSXProcessMenuEvent -- + * + * This routine processes the event in eventPtr, and + * generates the appropriate Tk events from it. + * + * Results: + * True if event(s) are generated - false otherwise. + * + * Side effects: + * Additional events may be place on the Tk event queue. + * + *---------------------------------------------------------------------- + */ + +int +TkMacOSXProcessMenuEvent(TkMacOSXEvent *eventPtr, MacEventStatus * statusPtr) +{ + int menuContext; + OSStatus status; + + switch (eventPtr->eKind) { + case kEventMenuBeginTracking: + case kEventMenuEndTracking: + break; + default: + return 0; + break; + } + status = GetEventParameter(eventPtr->eventRef, + kEventParamMenuContext, + typeUInt32, NULL, + sizeof(menuContext), NULL, + &menuContext); + if (status == noErr && (menuContext & kMenuContextMenuBar)) { + static int oldMode = TCL_SERVICE_ALL; + if (eventPtr->eKind == kEventMenuBeginTracking) { + oldMode = Tcl_SetServiceMode(TCL_SERVICE_ALL); + TkMacOSXClearMenubarActive(); + + /* + * Handle -postcommand + */ + + TkMacOSXPreprocessMenu(); + } else { + Tcl_SetServiceMode(oldMode); + } + } + return 0; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXProcessCommandEvent -- + * + * This routine processes the event in eventPtr, and + * generates the appropriate Tk events from it. + * + * Results: + * True if event(s) are generated - false otherwise. + * + * Side effects: + * Additional events may be place on the Tk event queue. + * + *---------------------------------------------------------------------- + */ + +int +TkMacOSXProcessCommandEvent(TkMacOSXEvent *eventPtr, MacEventStatus * statusPtr) +{ + HICommand command; + int menuContext; + OSStatus status; + + switch (eventPtr->eKind) { + case kEventCommandProcess: + break; + default: + return 0; + break; + } + status = GetEventParameter(eventPtr->eventRef, + kEventParamDirectObject, + typeHICommand, NULL, + sizeof(command), NULL, + &command); + if (status == noErr && (command.attributes & kHICommandFromMenu)) { + status = GetEventParameter(eventPtr->eventRef, + kEventParamMenuContext, + typeUInt32, NULL, + sizeof(menuContext), NULL, + &menuContext); + if (status == noErr && (menuContext & kMenuContextMenuBar) && + (menuContext & kMenuContextMenuBarTracking)) { + TkMacOSXHandleMenuSelect(GetMenuID(command.menu.menuRef), + command.menu.menuItemIndex, + GetCurrentEventKeyModifiers() & optionKey); + return 1; + } + } + return 0; +} + +/* + *---------------------------------------------------------------------- + * * TkMacOSXReceiveAndProcessEvent -- * * This receives a carbon event and converts it to a Tk event @@ -193,7 +250,9 @@ TkMacOSXReceiveAndProcessEvent() if (!targetRef) { targetRef = GetEventDispatcherTarget(); } + TkMacOSXStartTclEventLoopCarbonTimer(); err = SendEventToEventTarget(eventRef,targetRef); + TkMacOSXStopTclEventLoopCarbonTimer(); #ifdef TK_MAC_DEBUG if (err != noErr && err != eventLoopTimedOutErr && err != eventNotHandledErr diff --git a/macosx/tkMacOSXEvent.h b/macosx/tkMacOSXEvent.h index 1300e91..a1d8d33 100644 --- a/macosx/tkMacOSXEvent.h +++ b/macosx/tkMacOSXEvent.h @@ -50,7 +50,7 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXEvent.h,v 1.3.2.2 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXEvent.h,v 1.3.2.3 2005/11/27 02:36:46 das Exp $ */ #ifndef _TKMACEVENT @@ -87,12 +87,17 @@ int TkMacOSXProcessKeyboardEvent(TkMacOSXEvent *e, MacEventStatus *statusPtr); int TkMacOSXProcessApplicationEvent(TkMacOSXEvent *e, MacEventStatus *statusPtr); - +int TkMacOSXProcessMenuEvent(TkMacOSXEvent *e, + MacEventStatus *statusPtr); +int TkMacOSXProcessCommandEvent(TkMacOSXEvent *e, + MacEventStatus *statusPtr); int TkMacOSXKeycodeToUnicode( UniChar * uniChars, int maxChars, EventKind eKind, UInt32 keycode, UInt32 modifiers, UInt32 * deadKeyStatePtr); +OSStatus TkMacOSXStartTclEventLoopCarbonTimer(); +OSStatus TkMacOSXStopTclEventLoopCarbonTimer(); #endif diff --git a/macosx/tkMacOSXFont.c b/macosx/tkMacOSXFont.c index 39a06db..953af3c 100644 --- a/macosx/tkMacOSXFont.c +++ b/macosx/tkMacOSXFont.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXFont.c,v 1.3.2.4 2005/08/09 07:39:55 das Exp $ + * RCS: @(#) $Id: tkMacOSXFont.c,v 1.3.2.5 2005/11/27 02:36:46 das Exp $ */ #include @@ -255,6 +255,8 @@ static int GetFamilyOrAliasNum(CONST char *faceName, short *familyPtr); static Tcl_Encoding GetFontEncoding(int faceNum, int allowSymbol, int *isSymbolPtr); static Tk_Uid GetUtfFaceName(StringPtr faceNameStr); +void TkMacOSXInitControlFontStyle(Tk_Font tkfont, + ControlFontStylePtr fsPtr); /* *------------------------------------------------------------------------- @@ -2239,8 +2241,6 @@ TkMacOSXInitControlFontStyle(Tk_Font tkfont, ControlFontStylePtr fsPtr) *---------------------------------------------------------------------- */ -#include - /* define constants from 10.2 Quickdraw.h to enable compilation in 10.1 */ #define kQDUseTrueTypeScalerGlyphs (1 << 0) #define kQDUseCGTextRendering (1 << 1) @@ -2269,14 +2269,9 @@ TkMacOSXUseAntialiasedText(interp, enable) static UInt32 (*swaptextflags)(UInt32) = NULL; if(!initialized) { - NSSymbol nsSymbol = NULL; - if(NSIsSymbolNameDefinedWithHint("_QDSwapTextFlags", "QD")) { - nsSymbol = NSLookupAndBindSymbolWithHint("_QDSwapTextFlags", "QD"); - } else if(NSIsSymbolNameDefinedWithHint("_SwapQDTextFlags", "QD")) { - nsSymbol = NSLookupAndBindSymbolWithHint("_SwapQDTextFlags", "QD"); - } - if(nsSymbol) { - swaptextflags = NSAddressOfSymbol(nsSymbol); + swaptextflags = TkMacOSXGetNamedSymbol("QD", "_QDSwapTextFlags"); + if (!swaptextflags) { + swaptextflags = TkMacOSXGetNamedSymbol("QD", "_SwapQDTextFlags"); } initialized = TRUE; diff --git a/macosx/tkMacOSXInit.c b/macosx/tkMacOSXInit.c index 7498514..f558b4a 100644 --- a/macosx/tkMacOSXInit.c +++ b/macosx/tkMacOSXInit.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXInit.c,v 1.3.2.10 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXInit.c,v 1.3.2.11 2005/11/27 02:36:46 das Exp $ */ #include "tkInt.h" @@ -170,9 +170,9 @@ TkpInit(interp) if (rsrc) { ReleaseResource(rsrc); } else { - struct mach_header *image; + const struct mach_header *image; char *data = NULL; - unsigned long size; + uint32_t size; int fd = -1; char fileName[L_tmpnam + 15]; int i, n; @@ -204,7 +204,7 @@ TkpInit(interp) if (fd == -1) break; fcntl(fd, F_SETFD, FD_CLOEXEC); if (write(fd, data, size) == -1) break; - err = FSPathMakeRef(fileName, &ref, NULL); + err = FSPathMakeRef((unsigned char*)fileName, &ref, NULL); if (err != noErr) break; err = FSOpenResourceFile(&ref, 0, NULL, fsRdPerm, &refNum); #ifdef TK_MAC_DEBUG @@ -286,22 +286,14 @@ TkpInit(interp) * Load the CPS SPI symbol dynamically, so that we don't break * if it every disappears or changes its name. */ - OSErr (*cpsEnableForegroundOperation)(ProcessSerialNumberPtr) = NULL; - NSSymbol nsSymbol; - if(NSIsSymbolNameDefinedWithHint( - "_CPSEnableForegroundOperation", "CoreGraphics")) { - nsSymbol = NSLookupAndBindSymbolWithHint( - "_CPSEnableForegroundOperation", "CoreGraphics"); - if(nsSymbol) { - cpsEnableForegroundOperation = NSAddressOfSymbol(nsSymbol); - } - } - if (cpsEnableForegroundOperation) { + TkMacOSXInitNamedSymbol(CoreGraphics, OSErr, \ + CPSEnableForegroundOperation, ProcessSerialNumberPtr); + if (CPSEnableForegroundOperation) { ProcessSerialNumber psn = { 0, kCurrentProcess }; /* * Let the window server know that we are a foregroundable app */ - cpsEnableForegroundOperation(&psn); + CPSEnableForegroundOperation(&psn); } } } @@ -443,3 +435,44 @@ TkMacOSXDefaultStartupScript(void) } } } + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXGetNamedSymbol -- + * + * + * Dynamically acquire address of a named symbol from a loaded + * dynamic library, so that we can use API that may not be + * available on all OS versions. + * If module is non-NULL and not the empty string, use twolevel + * namespace lookup. + * + * Results: + * Address of given symbol or NULL if unavailable. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +MODULE_SCOPE void* +TkMacOSXGetNamedSymbol(const char* module, const char* symbol) +{ + NSSymbol nsSymbol = NULL; + if (module && *module) { + if(NSIsSymbolNameDefinedWithHint(symbol, module)) { + nsSymbol = NSLookupAndBindSymbolWithHint(symbol, module); + } + } else { + if(NSIsSymbolNameDefined(symbol)) { + nsSymbol = NSLookupAndBindSymbol(symbol); + } + } + if(nsSymbol) { + return NSAddressOfSymbol(nsSymbol); + } else { + return NULL; + } +} diff --git a/macosx/tkMacOSXInt.h b/macosx/tkMacOSXInt.h index 799d957..514680a 100644 --- a/macosx/tkMacOSXInt.h +++ b/macosx/tkMacOSXInt.h @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXInt.h,v 1.3.2.5 2005/08/09 07:40:00 das Exp $ + * RCS: @(#) $Id: tkMacOSXInt.h,v 1.3.2.6 2005/11/27 02:36:46 das Exp $ */ #ifndef _TKMACINT @@ -157,6 +157,14 @@ extern int TkMacOSXInitCGDrawing(Tcl_Interp *interp, int enable, int antiAlias); extern void TkMacOSXDefaultStartupScript(void); extern int TkMacOSXGenerateFocusEvent( Window window, int activeFlag); extern WindowClass TkMacOSXWindowClass(TkWindow *winPtr); +extern void* TkMacOSXGetNamedSymbol(const char* module, const char* symbol); + +/* Macro to abstract common use of TkMacOSXGetNamedSymbol to initialize named symbols */ +#define TkMacOSXInitNamedSymbol(module, ret, symbol, ...) \ + static ret (* symbol)(__VA_ARGS__) = (void*)(-1L); \ + if (symbol == (void*)(-1L)) { \ + symbol = TkMacOSXGetNamedSymbol(STRINGIFY(module), STRINGIFY(_##symbol));\ + } #include "tkIntPlatDecls.h" diff --git a/macosx/tkMacOSXKeyEvent.c b/macosx/tkMacOSXKeyEvent.c index 10b430e..1da09ba 100644 --- a/macosx/tkMacOSXKeyEvent.c +++ b/macosx/tkMacOSXKeyEvent.c @@ -50,7 +50,7 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXKeyEvent.c,v 1.6.2.5 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXKeyEvent.c,v 1.6.2.6 2005/11/27 02:36:46 das Exp $ */ #include "tkMacOSXInt.h" @@ -61,7 +61,7 @@ typedef struct { WindowRef whichWindow; Point global; Point local; - int state; + unsigned int state; unsigned char ch; UInt32 keyCode; UInt32 keyModifiers; @@ -97,8 +97,6 @@ static int GenerateKeyEvent ( UInt32 savedModifiers, const UniChar * chars, int numChars); -static void KLSInit(void); - static int GetKeyboardLayout ( Ptr * resourcePtr, TextEncoding * encodingPtr); static TextEncoding GetKCHREncoding( @@ -558,23 +556,6 @@ InitKeyEvent( /* - *---------------------------------------------------------------------- - * - * KLSInit -- - * - * Dynamically initialize Keyboard Layout Services bindings. - * - * Side effects: - * Sets some function pointers (hopefully). - * - *---------------------------------------------------------------------- - */ - -#include - -static int KLSIsInitialized = false; - -/* * If we have old headers, we need to define these types and constants * ourself. We use preprocessor macros instead of enums and typedefs, * because macros work even in case of version misunderstandings, while @@ -590,35 +571,6 @@ static int KLSIsInitialized = false; #define kKLIdentifier 2 #endif -static OSStatus (*KLGetCurrentKeyboardLayoutPtr)( - KeyboardLayoutRef * oKeyboardLayout) = NULL; -static OSStatus (*KLGetKeyboardLayoutPropertyPtr)( - KeyboardLayoutRef iKeyboardLayout, - KeyboardLayoutPropertyTag iPropertyTag, - const void ** oValue) = NULL; - -static void -KLSInit(void) -{ - static const char MODULE[] = "HIToolbox"; - static const char GET_LAYOUT[] = "_KLGetCurrentKeyboardLayout"; - static const char GET_PROP[] = "_KLGetKeyboardLayoutProperty"; - - NSSymbol symbol; - - if (NSIsSymbolNameDefinedWithHint(GET_LAYOUT, MODULE)) { - symbol = NSLookupAndBindSymbolWithHint(GET_LAYOUT, MODULE); - KLGetCurrentKeyboardLayoutPtr = NSAddressOfSymbol(symbol); - } - if (NSIsSymbolNameDefinedWithHint(GET_PROP, MODULE)) { - symbol = NSLookupAndBindSymbolWithHint(GET_PROP, MODULE); - KLGetKeyboardLayoutPropertyPtr = NSAddressOfSymbol(symbol); - } - - KLSIsInitialized = true; -} - - /* *---------------------------------------------------------------------- * @@ -662,18 +614,18 @@ GetKeyboardLayout (Ptr * resourcePtr, TextEncoding * encodingPtr) currentKeyScript = GetScriptManagerVariable(smKeyScript); - if (!KLSIsInitialized) { - KLSInit(); - } - - if (KLGetCurrentKeyboardLayoutPtr != NULL) { + TkMacOSXInitNamedSymbol(HIToolbox, OSStatus, KLGetCurrentKeyboardLayout, + KeyboardLayoutRef*); + TkMacOSXInitNamedSymbol(HIToolbox, OSStatus, KLGetKeyboardLayoutProperty, + KeyboardLayoutRef, KeyboardLayoutPropertyTag, const void**); + if (KLGetCurrentKeyboardLayout && KLGetKeyboardLayoutProperty) { /* * Use the Keyboard Layout Services (these functions only exist since * 10.2). */ - (*KLGetCurrentKeyboardLayoutPtr)(¤tLayout); + KLGetCurrentKeyboardLayout(¤tLayout); if (currentLayout != NULL) { @@ -684,7 +636,7 @@ GetKeyboardLayout (Ptr * resourcePtr, TextEncoding * encodingPtr) * also change and it could still be the same layoutid. */ - (*KLGetKeyboardLayoutPropertyPtr)(currentLayout, kKLIdentifier, + KLGetKeyboardLayoutProperty(currentLayout, kKLIdentifier, (const void**)¤tLayoutId); if ((lastLayout != currentLayout) @@ -705,12 +657,12 @@ GetKeyboardLayout (Ptr * resourcePtr, TextEncoding * encodingPtr) uchr = NULL; KCHR = NULL; - if (((*KLGetKeyboardLayoutPropertyPtr)(currentLayout, + if ((KLGetKeyboardLayoutProperty(currentLayout, kKLuchrData, (const void**)&uchr) == noErr) && (uchr != NULL)) { /* done */ - } else if (((*KLGetKeyboardLayoutPropertyPtr)(currentLayout, + } else if ((KLGetKeyboardLayoutProperty(currentLayout, kKLKCHRData, (const void**)&KCHR) == noErr) && (KCHR != NULL)) { diff --git a/macosx/tkMacOSXMenu.c b/macosx/tkMacOSXMenu.c index 2b4914e..022bd86 100644 --- a/macosx/tkMacOSXMenu.c +++ b/macosx/tkMacOSXMenu.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXMenu.c,v 1.6.2.10 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXMenu.c,v 1.6.2.11 2005/11/27 02:36:46 das Exp $ */ #include "tkMacOSXInt.h" #include "tkMenubutton.h" @@ -333,7 +333,7 @@ static void AppearanceEntryDrawWrapper _ANSI_ARGS_((TkMenuEntry *mePtr, Rect * menuRectPtr, MenuTrackingData *mtdPtr, Drawable d, Tk_FontMetrics *fmPtr, Tk_Font tkfont, int x, int y, int width, int height)); -pascal void tkThemeMenuItemDrawingProc _ANSI_ARGS_ ((const Rect *inBounds, +static pascal void ThemeMenuItemDrawingProc _ANSI_ARGS_ ((const Rect *inBounds, SInt16 inDepth, Boolean inIsColorDevice, SInt32 inUserData)); @@ -543,25 +543,38 @@ TkpNewMenu( * platform structure for. */ { short menuID; - Str255 itemText; - int length; MenuRef macMenuHdl; MenuDefSpec menuDefSpec; Tcl_Obj *useMDEFObjPtr; int useMDEF; int error = TCL_OK; - int err; - + OSStatus err; + CFStringRef cfStr; error = TkMacOSXGetNewMenuID(menuPtr->interp, menuPtr, 0, &menuID); if (error != TCL_OK) { return error; } - length = strlen(Tk_PathName(menuPtr->tkwin)); - memmove(&itemText[1], Tk_PathName(menuPtr->tkwin), - (length > 230) ? 230 : length); - itemText[0] = (length > 230) ? 230 : length; - macMenuHdl = NewMenu(menuID, itemText); + err = CreateNewMenu(menuID, kMenuAttrDoNotUseUserCommandKeys, &macMenuHdl); + if (err != noErr) { + Tcl_AppendResult(menuPtr->interp, "CreateNewMenu failed.", + (char *) NULL); + return TCL_ERROR; + } + cfStr = CFStringCreateWithCString(NULL, Tk_PathName(menuPtr->tkwin), + kCFStringEncodingUTF8); + if (!cfStr) { + Tcl_AppendResult(menuPtr->interp, "CFStringCreateWithCString failed.", + (char *) NULL); + return TCL_ERROR; + } + err = SetMenuTitleWithCFString(macMenuHdl, cfStr); + CFRelease(cfStr); + if (err != noErr) { + Tcl_AppendResult(menuPtr->interp, "SetMenuTitleWithCFString failed.", + (char *) NULL); + return TCL_ERROR; + } /* * Check whether we want to use the custom mdef or not. For now @@ -577,7 +590,7 @@ TkpNewMenu( menuDefSpec.u.defProc = MenuDefProc; if ((err = SetMenuDefinition(macMenuHdl, &menuDefSpec)) != noErr) { #ifdef TK_MAC_DEBUG - fprintf(stderr, "SetMenuDefinition failed %d\n", err ); + fprintf(stderr, "SetMenuDefinition failed %d\n", (int) err); #endif } } @@ -2747,7 +2760,7 @@ AppearanceEntryDrawWrapper( /* *---------------------------------------------------------------------- * - * tkThemeMenuItemDrawingProc -- + * ThemeMenuItemDrawingProc -- * * This routine is called from the Appearance DrawThemeMenuEntry * @@ -2759,8 +2772,8 @@ AppearanceEntryDrawWrapper( * *---------------------------------------------------------------------- */ -pascal void -tkThemeMenuItemDrawingProc ( +static pascal void +ThemeMenuItemDrawingProc ( const Rect *inBounds, SInt16 inDepth, Boolean inIsColorDevice, @@ -3875,7 +3888,7 @@ TkpMenuInit(void) windowListPtr = NULL; tkThemeMenuItemDrawingUPP - = NewMenuItemDrawingUPP(tkThemeMenuItemDrawingProc); + = NewMenuItemDrawingUPP(ThemeMenuItemDrawingProc); /* * We should just hardcode the utf-8 ellipsis character into diff --git a/macosx/tkMacOSXMenubutton.c b/macosx/tkMacOSXMenubutton.c index 67d84ca..cd5b44c 100644 --- a/macosx/tkMacOSXMenubutton.c +++ b/macosx/tkMacOSXMenubutton.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXMenubutton.c,v 1.2.2.3 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXMenubutton.c,v 1.2.2.4 2005/11/27 02:36:46 das Exp $ */ #include @@ -87,8 +87,6 @@ static void CompareControlTitleParams( extern int TkFontGetFirstTextLayout(Tk_TextLayout layout, Tk_Font * font, char * dst); extern void TkMacOSXInitControlFontStyle(Tk_Font tkfont,ControlFontStylePtr fsPtr); -extern int tkPictureIsOpen; - /* * The structure below defines menubutton class behavior by means of * procedures that can be invoked from generic window code. @@ -603,7 +601,7 @@ MenuButtonInitControl ( Rect *cntrRect ) { - OSErr status; + OSStatus err; TkMenuButton * butPtr = ( TkMenuButton * )mbPtr; ControlRef rootControl; SInt16 procID; @@ -612,10 +610,7 @@ MenuButtonInitControl ( SInt16 minValue; SInt16 maxValue; SInt32 controlReference; - int err; short menuID; - int length; - Str255 itemText; rootControl = TkMacOSXGetRootControl(Tk_WindowId(butPtr->tkwin)); mbPtr->windowRef = GetWindowFromPort(TkMacOSXGetDrawablePort(Tk_WindowId(butPtr->tkwin))); @@ -643,10 +638,10 @@ MenuButtonInitControl ( #endif return 1; } - status = EmbedControl(mbPtr->userPane,rootControl); - if (status != noErr) { + err = EmbedControl(mbPtr->userPane,rootControl); + if (err != noErr) { #ifdef TK_MAC_DEBUG - fprintf(stderr,"Failed to embed user pane control %d\n", status); + fprintf(stderr,"Failed to embed user pane control %d\n", (int) err); #endif return 1; } @@ -674,7 +669,7 @@ MenuButtonInitControl ( err = EmbedControl(mbPtr->control,mbPtr->userPane); if (err != noErr ) { #ifdef TK_MAC_DEBUG - fprintf(stderr,"failed to embed control of type %d,%d\n",procID, err); + fprintf(stderr,"failed to embed control of type %d,%d\n",procID, (int) err); #endif return 1; } @@ -688,30 +683,47 @@ MenuButtonInitControl ( err = SetControlFontStyle(mbPtr->control,&mbPtr->titleParams.style); if (err !=noErr) { #ifdef TK_MAC_DEBUG - fprintf(stderr,"SetControlFontStyle failed %d\n", err); + fprintf(stderr,"SetControlFontStyle failed %d\n", (int) err); #endif return 1; } } } else { - CFStringRef cf; + CFStringRef cfStr; err = TkMacOSXGetNewMenuID(mbPtr->info.interp, (TkMenu *)mbPtr, 0, &menuID); if (err != TCL_OK) { - return err; + return 1; } - length = strlen(Tk_PathName(mbPtr->info.tkwin)); - memmove(&itemText[1], Tk_PathName(mbPtr->info.tkwin), - (length > 230) ? 230 : length); - itemText[0] = (length > 230) ? 230 : length; - if (!(mbPtr->menuRef = NewMenu(menuID,itemText))) { + err = CreateNewMenu(menuID, kMenuAttrDoNotUseUserCommandKeys, + &(mbPtr->menuRef)); + if (err != noErr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr,"CreateNewMenu failed, %d.\n", (int) err); +#endif return 1; } - cf = CFStringCreateWithCString(NULL, + cfStr = CFStringCreateWithCString(NULL, Tk_PathName(mbPtr->info.tkwin), + kCFStringEncodingUTF8); + if (!cfStr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr,"CFStringCreateWithCString failed.\n"); +#endif + return 1; + } + err = SetMenuTitleWithCFString(mbPtr->menuRef, cfStr); + CFRelease(cfStr); + if (err != noErr) { +#ifdef TK_MAC_DEBUG + fprintf(stderr,"SetMenuTitleWithCFString failed, %d.\n", (int) err); +#endif + return 1; + } + cfStr = CFStringCreateWithCString(NULL, (char*) mbPtr->titleParams.title, kCFStringEncodingUTF8); AppendMenuItemText(mbPtr->menuRef, "\px"); - if (cf != NULL) { - SetMenuItemTextWithCFString(mbPtr->menuRef, 1, cf); - CFRelease(cf); + if (cfStr) { + SetMenuItemTextWithCFString(mbPtr->menuRef, 1, cfStr); + CFRelease(cfStr); } err = SetControlData(mbPtr->control, kControlNoPart, diff --git a/macosx/tkMacOSXMenus.c b/macosx/tkMacOSXMenus.c index 4d04235..1531d2b 100644 --- a/macosx/tkMacOSXMenus.c +++ b/macosx/tkMacOSXMenus.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXMenus.c,v 1.2.2.4 2005/08/09 07:40:01 das Exp $ + * RCS: @(#) $Id: tkMacOSXMenus.c,v 1.2.2.5 2005/11/27 02:36:46 das Exp $ */ #include "tk.h" @@ -64,16 +64,15 @@ static void SourceDialog _ANSI_ARGS_((void)); void TkMacOSXHandleMenuSelect( - long mResult, + MenuID theMenu, + MenuItemIndex theItem, int optionKeyPressed) { - short theItem = LoWord(mResult); - short theMenu = HiWord(mResult); Tk_Window tkwin; Window window; TkDisplay *dispPtr; - if (mResult == 0) { + if (theItem == 0) { TkMacOSXHandleTearoffMenu(); TkMacOSXClearMenubarActive(); return; @@ -150,45 +149,44 @@ void TkMacOSXInitMenus( Tcl_Interp *interp) { + OSStatus err; gInterp = interp; - /* - * At this point, InitMenus() should have already been called. - */ - - if (TkMacOSXUseMenuID(256) != TCL_OK) { - Tcl_Panic("Menu ID 256 is already in use!"); + if (TkMacOSXUseMenuID(kAppleMenu) != TCL_OK) { + Tcl_Panic("Menu ID %d is already in use!", kAppleMenu); } - tkAppleMenu = NewMenu(256, "\p\024"); - if (tkAppleMenu == NULL) { - Tcl_Panic("memory - menus"); + err = CreateNewMenu(kAppleMenu, kMenuAttrDoNotUseUserCommandKeys, + &tkAppleMenu); + if (err != noErr) { + Tcl_Panic("CreateNewMenu failed !"); } + SetMenuTitle(tkAppleMenu, "\p\024"); InsertMenu(tkAppleMenu, 0); AppendMenu(tkAppleMenu, "\pAbout Tcl & TkÉ"); AppendMenu(tkAppleMenu, "\p(-"); - /* Not necessary in Carbon: - AppendResMenu(tkAppleMenu, 'DRVR'); - */ if (TkMacOSXUseMenuID(kFileMenu) != TCL_OK) { Tcl_Panic("Menu ID %d is already in use!", kFileMenu); } - tkFileMenu = NewMenu(kFileMenu, "\pFile"); - if (tkFileMenu == NULL) { - Tcl_Panic("memory - menus"); + err = CreateNewMenu(kFileMenu, kMenuAttrDoNotUseUserCommandKeys, + &tkFileMenu); + if (err != noErr) { + Tcl_Panic("CreateNewMenu failed !"); } + SetMenuTitle(tkFileMenu, "\pFile"); InsertMenu(tkFileMenu, 0); AppendMenu(tkFileMenu, "\pSourceÉ"); AppendMenu(tkFileMenu, "\pClose/W"); - if (TkMacOSXUseMenuID(kEditMenu) != TCL_OK) { Tcl_Panic("Menu ID %d is already in use!", kEditMenu); } - tkEditMenu = NewMenu(kEditMenu, "\pEdit"); - if (tkEditMenu == NULL) { - Tcl_Panic("memory - menus"); + err = CreateNewMenu(kEditMenu, kMenuAttrDoNotUseUserCommandKeys, + &tkEditMenu); + if (err != noErr) { + Tcl_Panic("CreateNewMenu failed !"); } + SetMenuTitle(tkEditMenu, "\pEdit"); InsertMenu(tkEditMenu, 0); AppendMenu(tkEditMenu, "\pCut/X"); AppendMenu(tkEditMenu, "\pCopy/C"); diff --git a/macosx/tkMacOSXMouseEvent.c b/macosx/tkMacOSXMouseEvent.c index 1c63fdf..ef1f9be 100644 --- a/macosx/tkMacOSXMouseEvent.c +++ b/macosx/tkMacOSXMouseEvent.c @@ -4,7 +4,11 @@ * This file implements functions that decode & handle mouse events * on MacOS X. * - * Copyright 2001, Apple Computer, Inc. + * Copyright 2001, Apple Computer, Inc. + * Copyright (c) 2005 Daniel A. Steffen + * + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. * * The following terms apply to all files originating from Apple * Computer, Inc. ("Apple") and associated with the software @@ -50,7 +54,7 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXMouseEvent.c,v 1.6.2.8 2005/09/10 14:54:17 das Exp $ + * RCS: @(#) $Id: tkMacOSXMouseEvent.c,v 1.6.2.9 2005/11/27 02:36:46 das Exp $ */ #include "tkInt.h" @@ -61,6 +65,13 @@ #include "tkPort.h" #include "tkMacOSXDebug.h" +#if !defined(MAC_OS_X_VERSION_10_3) || \ + (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_3) + /* Define constants only available on Mac OS X 10.3 or later */ + #define kEventParamWindowPartCode 'wpar' + #define typeWindowPartCode 'wpar' +#endif + typedef struct { WindowRef whichWin; WindowRef activeNonFloating; @@ -76,7 +87,7 @@ typedef struct { * Declarations of static variables used in this file. */ -static int gEatButtonUp = 0; /* 1 if we need to eat the next * up event */ +static int gEatButtonUp = 0; /* 1 if we need to eat the next up event */ /* * Declarations of functions used only in this file. @@ -90,8 +101,8 @@ static int GenerateToolbarButtonEvent(MouseEventData * medPtr); static int HandleWindowTitlebarMouseDown(MouseEventData * medPtr, Tk_Window tkwin); static unsigned int ButtonModifiers2State(UInt32 buttonState, UInt32 keyModifiers); -extern int TkMacOSXGetEatButtonUp(); -extern void TkMacOSXSetEatButtonUp(int f); +static int TkMacOSXGetEatButtonUp(); +static void TkMacOSXSetEatButtonUp(int f); /* *---------------------------------------------------------------------- @@ -332,23 +343,6 @@ TkMacOSXProcessMouseEvent(TkMacOSXEvent *eventPtr, MacEventStatus * statusPtr) return GenerateButtonEvent(medPtr); } break; - case inMenuBar: { - int oldMode; - - oldMode = Tcl_SetServiceMode(TCL_SERVICE_ALL); - TkMacOSXClearMenubarActive(); - - /* - * Handle -postcommand - */ - - TkMacOSXPreprocessMenu(); - TkMacOSXHandleMenuSelect(MenuSelect(where), - medPtr->state & Mod2Mask); - Tcl_SetServiceMode(oldMode); - return true; /* TODO: may not be on event on queue. */ - break; - } default: return false; break; @@ -600,7 +594,7 @@ GenerateMouseWheelEvent(MouseEventData * medPtr) * *---------------------------------------------------------------------- */ -int +static int TkMacOSXGetEatButtonUp() { return gEatButtonUp; @@ -620,7 +614,7 @@ TkMacOSXGetEatButtonUp() * *---------------------------------------------------------------------- */ -void +static void TkMacOSXSetEatButtonUp(int f) { gEatButtonUp = f; diff --git a/macosx/tkMacOSXNotify.c b/macosx/tkMacOSXNotify.c index 78f159b..a51d666 100644 --- a/macosx/tkMacOSXNotify.c +++ b/macosx/tkMacOSXNotify.c @@ -7,11 +7,12 @@ * Copyright (c) 1995-1997 Sun Microsystems, Inc. * Copyright 2001, Apple Computer, Inc. * Copyright 2005, Tcl Core Team. + * Copyright (c) 2005 Daniel A. Steffen * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXNotify.c,v 1.5.2.6 2005/09/10 14:54:18 das Exp $ + * RCS: @(#) $Id: tkMacOSXNotify.c,v 1.5.2.7 2005/11/27 02:36:46 das Exp $ */ #include "tclInt.h" diff --git a/macosx/tkMacOSXPort.h b/macosx/tkMacOSXPort.h index fd157dd..97e3293 100644 --- a/macosx/tkMacOSXPort.h +++ b/macosx/tkMacOSXPort.h @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXPort.h,v 1.3.2.2 2005/08/09 07:40:01 das Exp $ + * RCS: @(#) $Id: tkMacOSXPort.h,v 1.3.2.3 2005/11/27 02:36:46 das Exp $ */ #ifndef _TKMACPORT @@ -158,8 +158,6 @@ extern int strncasecmp _ANSI_ARGS_((CONST char *s1, #define XSynchronize(display, bool) {display->request++;} #define XVisualIDFromVisual(visual) (visual->visualid) -int XSync(Display *display, Bool discard); - /* * The following functions are not used on the Mac, so we stub them out. */ diff --git a/macosx/tkMacOSXSubwindows.c b/macosx/tkMacOSXSubwindows.c index 7e7bfc0..1093a3f 100644 --- a/macosx/tkMacOSXSubwindows.c +++ b/macosx/tkMacOSXSubwindows.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXSubwindows.c,v 1.2.2.6 2005/08/09 07:40:01 das Exp $ + * RCS: @(#) $Id: tkMacOSXSubwindows.c,v 1.2.2.7 2005/11/27 02:36:46 das Exp $ */ #include "tkInt.h" @@ -176,7 +176,7 @@ XDestroyWindow( *---------------------------------------------------------------------- */ -void +static void FixMappingFlags (TkWindow *winPtr, int on) { TkWindow *childPtr; @@ -770,6 +770,7 @@ XRaiseWindow( } } +#if 0 /* *---------------------------------------------------------------------- * @@ -800,6 +801,7 @@ XLowerWindow( /* TODO: this should generate damage */ } } +#endif /* *---------------------------------------------------------------------- diff --git a/macosx/tkMacOSXTest.c b/macosx/tkMacOSXTest.c index 87b025b..8195cd8 100644 --- a/macosx/tkMacOSXTest.c +++ b/macosx/tkMacOSXTest.c @@ -10,11 +10,10 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXTest.c,v 1.2.2.1 2005/08/09 07:40:01 das Exp $ + * RCS: @(#) $Id: tkMacOSXTest.c,v 1.2.2.2 2005/11/27 02:36:46 das Exp $ */ -#include -#include +#include "tkMacOSXInt.h" /* * Forward declarations of procedures defined later in this file: diff --git a/macosx/tkMacOSXWindowEvent.c b/macosx/tkMacOSXWindowEvent.c index c960f10..a653b02 100644 --- a/macosx/tkMacOSXWindowEvent.c +++ b/macosx/tkMacOSXWindowEvent.c @@ -4,7 +4,11 @@ * This file defines the routines for both creating and handling * Window Manager class events for Tk. * - * Copyright 2001, Apple Computer, Inc. + * Copyright 2001, Apple Computer, Inc. + * Copyright (c) 2005 Daniel A. Steffen + * + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. * * The following terms apply to all files originating from Apple * Computer, Inc. ("Apple") and associated with the software @@ -50,7 +54,7 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXWindowEvent.c,v 1.3.2.4 2005/09/10 14:54:18 das Exp $ + * RCS: @(#) $Id: tkMacOSXWindowEvent.c,v 1.3.2.5 2005/11/27 02:36:46 das Exp $ */ #include "tkMacOSXInt.h" @@ -63,10 +67,10 @@ * Declarations of global variables defined in this file. */ -int tkMacOSXAppInFront = true; /* Boolean variable for determining if - * we are the frontmost app. Only set - * in TkMacOSXProcessApplicationEvent - */ +static int tkMacOSXAppInFront = true; /* Boolean variable for determining if + * we are the frontmost app. Only set + * in TkMacOSXProcessApplicationEvent + */ static RgnHandle gDamageRgn; static RgnHandle visRgn; @@ -181,7 +185,7 @@ TkMacOSXProcessWindowEvent( OSStatus status; WindowRef whichWindow; Window window; - int eventFound; + int eventFound = false; switch (eventPtr->eKind) { case kEventWindowActivated: diff --git a/macosx/tkMacOSXWm.c b/macosx/tkMacOSXWm.c index 9c1c6db..48cc210 100644 --- a/macosx/tkMacOSXWm.c +++ b/macosx/tkMacOSXWm.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXWm.c,v 1.7.2.13 2005/09/10 14:54:18 das Exp $ + * RCS: @(#) $Id: tkMacOSXWm.c,v 1.7.2.14 2005/11/27 02:36:46 das Exp $ */ #include @@ -3307,82 +3307,10 @@ UpdateSizeHints( TkWindow *winPtr) { WmInfo *wmPtr = winPtr->wmInfoPtr; - XSizeHints *hintsPtr; wmPtr->flags &= ~WM_UPDATE_SIZE_HINTS; - hintsPtr = XAllocSizeHints(); - if (hintsPtr == NULL) { - return; - } - - /* - * Compute the pixel-based sizes for the various fields in the - * size hints structure, based on the grid-based sizes in - * our structure. - */ - - if (wmPtr->gridWin != NULL) { - hintsPtr->base_width = winPtr->reqWidth - - (wmPtr->reqGridWidth * wmPtr->widthInc); - if (hintsPtr->base_width < 0) { - hintsPtr->base_width = 0; - } - hintsPtr->base_height = winPtr->reqHeight - - (wmPtr->reqGridHeight * wmPtr->heightInc); - if (hintsPtr->base_height < 0) { - hintsPtr->base_height = 0; - } - hintsPtr->min_width = hintsPtr->base_width - + (wmPtr->minWidth * wmPtr->widthInc); - hintsPtr->min_height = hintsPtr->base_height - + (wmPtr->minHeight * wmPtr->heightInc); - hintsPtr->max_width = hintsPtr->base_width - + (wmPtr->maxWidth * wmPtr->widthInc); - hintsPtr->max_height = hintsPtr->base_height - + (wmPtr->maxHeight * wmPtr->heightInc); - } else { - hintsPtr->min_width = wmPtr->minWidth; - hintsPtr->min_height = wmPtr->minHeight; - hintsPtr->max_width = wmPtr->maxWidth; - hintsPtr->max_height = wmPtr->maxHeight; - hintsPtr->base_width = 0; - hintsPtr->base_height = 0; - } - hintsPtr->width_inc = wmPtr->widthInc; - hintsPtr->height_inc = wmPtr->heightInc; - hintsPtr->min_aspect.x = wmPtr->minAspect.x; - hintsPtr->min_aspect.y = wmPtr->minAspect.y; - hintsPtr->max_aspect.x = wmPtr->maxAspect.x; - hintsPtr->max_aspect.y = wmPtr->maxAspect.y; - hintsPtr->win_gravity = wmPtr->gravity; - hintsPtr->flags = wmPtr->sizeHintsFlags | PMinSize | PMaxSize; - - /* - * If the window isn't supposed to be resizable, then set the - * minimum and maximum dimensions to be the same. - */ - - if (wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) { - if (wmPtr->width >= 0) { - hintsPtr->min_width = wmPtr->width; - } else { - hintsPtr->min_width = winPtr->reqWidth; - } - hintsPtr->max_width = hintsPtr->min_width; - } - if (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE) { - if (wmPtr->height >= 0) { - hintsPtr->min_height = wmPtr->height; - } else { - hintsPtr->min_height = winPtr->reqHeight; - } - hintsPtr->max_height = hintsPtr->min_height; - } - - XSetWMNormalHints(winPtr->display, winPtr->window, hintsPtr); - - XFree((char *) hintsPtr); + return; } /* diff --git a/macosx/tkMacOSXXStubs.c b/macosx/tkMacOSXXStubs.c index 7942c9e..eea58fc 100644 --- a/macosx/tkMacOSXXStubs.c +++ b/macosx/tkMacOSXXStubs.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXXStubs.c,v 1.2.2.8 2005/09/10 14:54:18 das Exp $ + * RCS: @(#) $Id: tkMacOSXXStubs.c,v 1.2.2.9 2005/11/27 02:36:46 das Exp $ */ #include "tkInt.h" @@ -61,13 +61,13 @@ static int DefaultErrorHandler _ANSI_ARGS_((Display* display, * Other declarations */ -int TkMacOSXXDestroyImage _ANSI_ARGS_((XImage *image)); -unsigned long TkMacOSXXGetPixel _ANSI_ARGS_((XImage *image, int x, int y)); -int TkMacOSXXPutPixel _ANSI_ARGS_((XImage *image, int x, int y, +static int TkMacOSXXDestroyImage _ANSI_ARGS_((XImage *image)); +static unsigned long TkMacOSXXGetPixel _ANSI_ARGS_((XImage *image, int x, int y)); +static int TkMacOSXXPutPixel _ANSI_ARGS_((XImage *image, int x, int y, unsigned long pixel)); -XImage *TkMacOSXXSubImage _ANSI_ARGS_((XImage *image, int x, int y, +static XImage *TkMacOSXXSubImage _ANSI_ARGS_((XImage *image, int x, int y, unsigned int width, unsigned int height)); -int TkMacOSXXAddPixel _ANSI_ARGS_((XImage *image, long value)); +static int TkMacOSXXAddPixel _ANSI_ARGS_((XImage *image, long value)); int _XInitImageFuncPtrs _ANSI_ARGS_((XImage *image)); @@ -475,6 +475,7 @@ XBell( SysBeep(percent); } +#if 0 void XSetWMNormalHints( Display* display, @@ -496,6 +497,7 @@ XAllocSizeHints() return NULL; } +#endif XImage * XCreateImage( @@ -754,7 +756,7 @@ TkGetServerInfo( * Image stuff */ -int +static int TkMacOSXXDestroyImage( XImage *image) { @@ -763,7 +765,7 @@ TkMacOSXXDestroyImage( return 0; } -unsigned long +static unsigned long TkMacOSXXGetPixel( XImage *image, int x, @@ -791,7 +793,7 @@ TkMacOSXXGetPixel( return c; } -int +static int TkMacOSXXPutPixel( XImage *image, int x, @@ -822,7 +824,7 @@ TkMacOSXXPutPixel( return 0; } -XImage * +static XImage * TkMacOSXXSubImage( XImage *image, int x, @@ -834,7 +836,7 @@ TkMacOSXXSubImage( return NULL; } -int +static int TkMacOSXXAddPixel( XImage *image, long value) diff --git a/unix/Makefile.in b/unix/Makefile.in index 9761480..55dada2 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -5,7 +5,7 @@ # "autoconf" program (constructs like "@foo@" will get replaced in the # actual Makefile. # -# RCS: @(#) $Id: Makefile.in,v 1.87.2.14 2005/08/09 07:40:03 das Exp $ +# RCS: @(#) $Id: Makefile.in,v 1.87.2.15 2005/11/27 02:44:26 das Exp $ # Current Tk version; used in various names. @@ -522,8 +522,7 @@ objs: ${OBJS} wish: $(WISH_OBJS) $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) @APP_RSRC_FILE@ - $(CC) $(LDFLAGS) $(WISH_OBJS) \ - @TK_BUILD_LIB_SPEC@ \ + ${CC} ${CFLAGS} ${LDFLAGS} $(WISH_OBJS) @TK_BUILD_LIB_SPEC@ \ $(WISH_LIBS) $(CC_SEARCH_FLAGS) -o wish # Resetting the LIB_RUNTIME_DIR below is required so that @@ -536,7 +535,7 @@ tktest: $(TKTEST_OBJS) $(TK_LIB_FILE) $(MAKE) tktest-real LIB_RUNTIME_DIR=`pwd`:$(TCL_BIN_DIR) tktest-real: - ${CC} $(LDFLAGS) $(TKTEST_OBJS) @TK_BUILD_LIB_SPEC@ \ + ${CC} ${CFLAGS} ${LDFLAGS} $(TKTEST_OBJS) @TK_BUILD_LIB_SPEC@ \ $(WISH_LIBS) $(CC_SEARCH_FLAGS) -o tktest # FIXME: This xttest rule seems to be broken in a number of ways. @@ -544,7 +543,7 @@ tktest-real: # lib location logic from tktest, and it is not clear where this # test.o object file comes from. xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE) - ${CC} $(LDFLAGS) test.o tkTest.o tkSquare.o \ + ${CC} ${CFLAGS} ${LDFLAGS} test.o tkTest.o tkSquare.o \ @TK_BUILD_LIB_SPEC@ \ $(WISH_LIBS) $(LD_SEARCH_FLAGS) -lXt -o xttest @@ -806,8 +805,12 @@ depend: # Test binaries. The rule for tkTestInit.o is complicated because # it is is compiled from tkAppInit.c. Can't use the "-o" option # because this doesn't work on some strange compilers (e.g. UnixWare). +# To enable concurrent parallel make of wish and tktest, this target has to +# depend on wish, this ensures that linking of wish with tkTestInit.o does not +# execute concurrently with the renaming and recompiling of that same object +# file in the target below. -tkTestInit.o: $(UNIX_DIR)/tkAppInit.c +tkTestInit.o: $(UNIX_DIR)/tkAppInit.c wish @if test -f tkAppInit.o ; then \ rm -f tkAppInit.sav; \ mv tkAppInit.o tkAppInit.sav; \ @@ -1153,8 +1156,9 @@ tkMacOSXFont.o: $(MAC_OSX_DIR)/tkMacOSXFont.c tkMacOSXHLEvents.o: $(MAC_OSX_DIR)/tkMacOSXHLEvents.c $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXHLEvents.c -tkMacOSXInit.o: $(MAC_OSX_DIR)/tkMacOSXInit.c - $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXInit.c +tkMacOSXInit.o: $(MAC_OSX_DIR)/tkMacOSXInit.c $(GENERIC_DIR)/tkInitScript.h tkConfig.sh + $(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" \ + $(MAC_OSX_DIR)/tkMacOSXInit.c tkMacOSXKeyboard.o: $(MAC_OSX_DIR)/tkMacOSXKeyboard.c $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXKeyboard.c @@ -1247,12 +1251,13 @@ genstubs: # tables. # -checkstubs: - -@for i in `nm -p $(TK_LIB_FILE) | awk '$$2 ~ /T/ { print $$3 }' \ +checkstubs: $(TK_LIB_FILE) + -@for i in `nm -p $(TK_LIB_FILE) \ + | awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \ | sort -n`; do \ match=0; \ for j in $(TK_DECLS); do \ - if [ `grep -c $$i $$j` -gt 0 ]; then \ + if [ `grep -c "$$i *(" $$j` -gt 0 ]; then \ match=1; \ fi; \ done; \ @@ -1272,7 +1277,9 @@ checkuchar: # checkexports: $(TK_LIB_FILE) - -nm -p $(TK_LIB_FILE) | awk '$$2 ~ /[TDB]/ { print $$3 }' | sort -n | grep -v '^[Tt]k' + -@nm -p $(TK_LIB_FILE) \ + | awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \ + | sort -n | grep -E -v '^([Tt]k|_?X)' || true # # Target to create a Tk RPM for Linux. Requires that you be on a Linux @@ -1362,13 +1369,12 @@ dist: cp -p $(TOP_DIR)/mac/*.doc $(DISTDIR)/mac cp -p $(TOP_DIR)/mac/*.tcl $(DISTDIR)/mac mkdir $(DISTDIR)/macosx - cp -p $(TOP_DIR)/macosx/Makefile $(TOP_DIR)/macosx/Wish.icns \ - $(TOP_DIR)/macosx/*.c $(TOP_DIR)/macosx/*.h $(TOP_DIR)/macosx/*.in \ - $(TOP_DIR)/macosx/*.r $(TOP_DIR)/macosx/*.tcl $(DISTDIR)/macosx + cp -p $(TOP_DIR)/macosx/Makefile $(TOP_DIR)/macosx/README \ + $(TOP_DIR)/macosx/Wish.icns $(TOP_DIR)/macosx/*.c \ + $(TOP_DIR)/macosx/*.h $(TOP_DIR)/macosx/*.in \ + $(TOP_DIR)/macosx/*.r $(DISTDIR)/macosx mkdir $(DISTDIR)/macosx/Wish.pbproj - cp -p $(TOP_DIR)/macosx/Wish.pbproj/*.pbx* \ - $(DISTDIR)/macosx/Wish.pbproj - cp -p $(TOP_DIR)/macosx/README $(DISTDIR)/macosx + cp -p $(TOP_DIR)/macosx/Wish.pbproj/*.pbx* $(DISTDIR)/macosx/Wish.pbproj mkdir $(DISTDIR)/compat cp -p $(TOP_DIR)/license.terms $(TCLDIR)/compat/unistd.h \ $(TCLDIR)/compat/stdlib.h $(TCLDIR)/compat/limits.h \ diff --git a/unix/configure b/unix/configure index 8164a7f..cde0b5d 100755 --- a/unix/configure +++ b/unix/configure @@ -17,11 +17,11 @@ ac_help="$ac_help --enable-man-symlinks use symlinks for the manpages" ac_help="$ac_help --enable-man-compression=PROG - compress the manpages with PROG" + compress the manpages with PROG" ac_help="$ac_help --enable-man-suffix=STRING - use STRING as a suffix to manpage file names - (default: tk)" + use STRING as a suffix to manpage file names + (default: tk)" ac_help="$ac_help --enable-threads build with threads" ac_help="$ac_help @@ -778,10 +778,9 @@ TK_SRC_DIR=`cd $srcdir/..; pwd` # Compress and/or soft link the manpages? #------------------------------------------------------------------------ - - echo $ac_n "checking whether to use symlinks for manpages""... $ac_c" 1>&6 -echo "configure:784: checking whether to use symlinks for manpages" >&5 - # Check whether --enable-man-symlinks or --disable-man-symlinks was given. + echo $ac_n "checking whether to use symlinks for manpages""... $ac_c" 1>&6 +echo "configure:783: checking whether to use symlinks for manpages" >&5 + # Check whether --enable-man-symlinks or --disable-man-symlinks was given. if test "${enable_man_symlinks+set}" = set; then enableval="$enable_man_symlinks" test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --symlinks" @@ -789,45 +788,45 @@ else enableval="no" fi - echo "$ac_t""$enableval" 1>&6 + echo "$ac_t""$enableval" 1>&6 - echo $ac_n "checking whether to compress the manpages""... $ac_c" 1>&6 -echo "configure:796: checking whether to compress the manpages" >&5 - # Check whether --enable-man-compression or --disable-man-compression was given. + echo $ac_n "checking whether to compress the manpages""... $ac_c" 1>&6 +echo "configure:795: checking whether to compress the manpages" >&5 + # Check whether --enable-man-compression or --disable-man-compression was given. if test "${enable_man_compression+set}" = set; then enableval="$enable_man_compression" test "$enableval" = "yes" && { echo "configure: error: missing argument to --enable-man-compression" 1>&2; exit 1; } - test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --compress $enableval" + test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --compress $enableval" else enableval="no" fi - echo "$ac_t""$enableval" 1>&6 - if test "$enableval" != "no"; then - echo $ac_n "checking for compressed file suffix""... $ac_c" 1>&6 -echo "configure:809: checking for compressed file suffix" >&5 - touch TeST - $enableval TeST - Z=`ls TeST* | sed 's/^....//'` - rm -f TeST* - MAN_FLAGS="$MAN_FLAGS --extension $Z" - echo "$ac_t""$Z" 1>&6 - fi + echo "$ac_t""$enableval" 1>&6 + if test "$enableval" != "no"; then + echo $ac_n "checking for compressed file suffix""... $ac_c" 1>&6 +echo "configure:808: checking for compressed file suffix" >&5 + touch TeST + $enableval TeST + Z=`ls TeST* | sed 's/^....//'` + rm -f TeST* + MAN_FLAGS="$MAN_FLAGS --extension $Z" + echo "$ac_t""$Z" 1>&6 + fi - echo $ac_n "checking whether to add a package name suffix for the manpages""... $ac_c" 1>&6 -echo "configure:819: checking whether to add a package name suffix for the manpages" >&5 - # Check whether --enable-man-suffix or --disable-man-suffix was given. + echo $ac_n "checking whether to add a package name suffix for the manpages""... $ac_c" 1>&6 +echo "configure:818: checking whether to add a package name suffix for the manpages" >&5 + # Check whether --enable-man-suffix or --disable-man-suffix was given. if test "${enable_man_suffix+set}" = set; then enableval="$enable_man_suffix" test "$enableval" = "yes" && enableval="tk" - test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --suffix $enableval" + test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --suffix $enableval" else enableval="no" fi - echo "$ac_t""$enableval" 1>&6 + echo "$ac_t""$enableval" 1>&6 - + #------------------------------------------------------------------------ @@ -843,7 +842,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:847: checking for $ac_word" >&5 +echo "configure:846: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -873,7 +872,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:877: checking for $ac_word" >&5 +echo "configure:876: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -924,7 +923,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:928: checking for $ac_word" >&5 +echo "configure:927: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -956,7 +955,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:960: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:959: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -967,12 +966,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 971 "configure" +#line 970 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -998,12 +997,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1002: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1001: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1007: checking whether we are using GNU C" >&5 +echo "configure:1006: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1012,7 +1011,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1016: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1015: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1031,7 +1030,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1035: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1034: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1063,8 +1062,10 @@ else fi +# limits header checks must come early to prevent +# an autoconf bug that throws errors on configure echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1068: checking how to run the C preprocessor" >&5 +echo "configure:1069: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1079,13 +1080,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1096,13 +1097,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1106: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1107: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1113,13 +1114,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1143,21 +1144,61 @@ else fi echo "$ac_t""$CPP" 1>&6 -for ac_hdr in unistd.h limits.h +ac_safe=`echo "limits.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for limits.h""... $ac_c" 1>&6 +echo "configure:1150: checking for limits.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1160: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_LIMITS_H 1 +EOF + +else + echo "$ac_t""no" 1>&6 +cat >> confdefs.h <<\EOF +#define NO_LIMITS_H 1 +EOF + +fi + +for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1151: checking for $ac_hdr" >&5 +echo "configure:1192: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1161: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1202: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1184,6 +1225,64 @@ fi done +#-------------------------------------------------------------------- +# Supply a substitute for stdlib.h if it doesn't define strtol, +# strtoul, or strtod (which it doesn't in some versions of SunOS). +#-------------------------------------------------------------------- + +echo $ac_n "checking stdlib.h""... $ac_c" 1>&6 +echo "configure:1235: checking stdlib.h" >&5 +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "strtol" >/dev/null 2>&1; then + rm -rf conftest* + tk_ok=yes +else + rm -rf conftest* + tk_ok=no +fi +rm -f conftest* + +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "strtoul" >/dev/null 2>&1; then + : +else + rm -rf conftest* + tk_ok=no +fi +rm -f conftest* + +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "strtod" >/dev/null 2>&1; then + : +else + rm -rf conftest* + tk_ok=no +fi +rm -f conftest* + +if test $tk_ok = no; then + cat >> confdefs.h <<\EOF +#define NO_STDLIB_H 1 +EOF + +fi +echo "$ac_t""$tk_ok" 1>&6 + #------------------------------------------------------------------------ # If we're using GCC, see if the compiler understands -pipe. If so, use it. # It makes compiling go faster. (This is only a performance feature.) @@ -1192,18 +1291,18 @@ done if test -z "$no_pipe"; then if test -n "$GCC"; then echo $ac_n "checking if the compiler understands -pipe""... $ac_c" 1>&6 -echo "configure:1196: checking if the compiler understands -pipe" >&5 +echo "configure:1295: checking if the compiler understands -pipe" >&5 OLDCC="$CC" CC="$CC -pipe" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1306: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -1223,7 +1322,7 @@ fi echo $ac_n "checking for building with threads""... $ac_c" 1>&6 -echo "configure:1227: checking for building with threads" >&5 +echo "configure:1326: checking for building with threads" >&5 # Check whether --enable-threads or --disable-threads was given. if test "${enable_threads+set}" = set; then enableval="$enable_threads" @@ -1265,7 +1364,7 @@ EOF EOF echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6 -echo "configure:1269: checking for pthread_mutex_init in -lpthread" >&5 +echo "configure:1368: checking for pthread_mutex_init in -lpthread" >&5 ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1273,7 +1372,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpthread $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1312,7 +1411,7 @@ fi # pthread.h, but that will work with libpthread really doesn't # exist, like AIX 4.2. [Bug: 4359] echo $ac_n "checking for __pthread_mutex_init in -lpthread""... $ac_c" 1>&6 -echo "configure:1316: checking for __pthread_mutex_init in -lpthread" >&5 +echo "configure:1415: checking for __pthread_mutex_init in -lpthread" >&5 ac_lib_var=`echo pthread'_'__pthread_mutex_init | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1320,7 +1419,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpthread $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1359,7 +1458,7 @@ fi THREADS_LIBS=" -lpthread" else echo $ac_n "checking for pthread_mutex_init in -lpthreads""... $ac_c" 1>&6 -echo "configure:1363: checking for pthread_mutex_init in -lpthreads" >&5 +echo "configure:1462: checking for pthread_mutex_init in -lpthreads" >&5 ac_lib_var=`echo pthreads'_'pthread_mutex_init | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1367,7 +1466,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpthreads $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1404,7 +1503,7 @@ fi THREADS_LIBS=" -lpthreads" else echo $ac_n "checking for pthread_mutex_init in -lc""... $ac_c" 1>&6 -echo "configure:1408: checking for pthread_mutex_init in -lc" >&5 +echo "configure:1507: checking for pthread_mutex_init in -lc" >&5 ac_lib_var=`echo c'_'pthread_mutex_init | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1412,7 +1511,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1446,7 +1545,7 @@ fi if test "$tcl_ok" = "no"; then echo $ac_n "checking for pthread_mutex_init in -lc_r""... $ac_c" 1>&6 -echo "configure:1450: checking for pthread_mutex_init in -lc_r" >&5 +echo "configure:1549: checking for pthread_mutex_init in -lc_r" >&5 ac_lib_var=`echo c_r'_'pthread_mutex_init | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1454,7 +1553,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lc_r $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1505,12 +1604,12 @@ fi for ac_func in pthread_attr_setstacksize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1509: checking for $ac_func" >&5 +echo "configure:1608: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1560,12 +1659,12 @@ done for ac_func in pthread_atfork do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1564: checking for $ac_func" >&5 +echo "configure:1663: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1620,12 +1719,106 @@ done +#-------------------------------------------------------------------- +# On a few very rare systems, all of the libm.a stuff is +# already in libc.a. Set compiler flags accordingly. +# Also, Linux requires the "ieee" library for math to work +# right (and it must appear before "-lm"). +#-------------------------------------------------------------------- + +MATH_LIBS="" +echo $ac_n "checking for sin""... $ac_c" 1>&6 +echo "configure:1732: checking for sin" >&5 +if eval "test \"`echo '$''{'ac_cv_func_sin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char sin(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_sin) || defined (__stub___sin) +choke me +#else +sin(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_sin=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_sin=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'sin`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +MATH_LIBS="-lm" +fi + +echo $ac_n "checking for main in -lieee""... $ac_c" 1>&6 +echo "configure:1781: checking for main in -lieee" >&5 +ac_lib_var=`echo ieee'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lieee $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + MATH_LIBS="-lieee $MATH_LIBS" +else + echo "$ac_t""no" 1>&6 +fi + + # Add the threads support libraries LIBS="$LIBS$THREADS_LIBS" echo $ac_n "checking how to build libraries""... $ac_c" 1>&6 -echo "configure:1629: checking how to build libraries" >&5 +echo "configure:1822: checking how to build libraries" >&5 # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" @@ -1664,7 +1857,7 @@ EOF # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1668: checking for $ac_word" >&5 +echo "configure:1861: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1696,7 +1889,7 @@ fi # Step 0.a: Enable 64 bit support? echo $ac_n "checking if 64bit support is requested""... $ac_c" 1>&6 -echo "configure:1700: checking if 64bit support is requested" >&5 +echo "configure:1893: checking if 64bit support is requested" >&5 # Check whether --enable-64bit or --disable-64bit was given. if test "${enable_64bit+set}" = set; then enableval="$enable_64bit" @@ -1716,7 +1909,7 @@ fi # Step 0.b: Enable Solaris 64 bit VIS support? echo $ac_n "checking if 64bit Sparc VIS support is requested""... $ac_c" 1>&6 -echo "configure:1720: checking if 64bit Sparc VIS support is requested" >&5 +echo "configure:1913: checking if 64bit Sparc VIS support is requested" >&5 # Check whether --enable-64bit-vis or --disable-64bit-vis was given. if test "${enable_64bit_vis+set}" = set; then enableval="$enable_64bit_vis" @@ -1740,7 +1933,7 @@ fi # there are a few systems, like Next, where this doesn't work. echo $ac_n "checking system version (for dynamic loading)""... $ac_c" 1>&6 -echo "configure:1744: checking system version (for dynamic loading)" >&5 +echo "configure:1937: checking system version (for dynamic loading)" >&5 if test -f /usr/lib/NextStep/software_version; then system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` else @@ -1766,7 +1959,7 @@ echo "configure:1744: checking system version (for dynamic loading)" >&5 # Linux can use either -ldl or -ldld for dynamic loading. echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:1770: checking for dlopen in -ldl" >&5 +echo "configure:1963: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1774,7 +1967,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1833,7 +2026,7 @@ fi # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1837: checking for $ac_word" >&5 +echo "configure:2030: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1894,7 +2087,7 @@ fi if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then if test "$GCC" = "yes" ; then echo "configure: warning: 64bit mode not supported with GCC on $system" 1>&2 - else + else do64bit_ok=yes CFLAGS="$CFLAGS -q64" LDFLAGS="$LDFLAGS -q64" @@ -1948,7 +2141,7 @@ fi # known GMT value. echo $ac_n "checking for gettimeofday in -lbsd""... $ac_c" 1>&6 -echo "configure:1952: checking for gettimeofday in -lbsd" >&5 +echo "configure:2145: checking for gettimeofday in -lbsd" >&5 ac_lib_var=`echo bsd'_'gettimeofday | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1956,7 +2149,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbsd $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2010,7 +2203,7 @@ EOF # is always linked to, for compatibility. #----------------------------------------------------------- echo $ac_n "checking for inet_ntoa in -lbind""... $ac_c" 1>&6 -echo "configure:2014: checking for inet_ntoa in -lbind" >&5 +echo "configure:2207: checking for inet_ntoa in -lbind" >&5 ac_lib_var=`echo bind'_'inet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2018,7 +2211,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbind $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2095,7 +2288,7 @@ EOF SHLIB_SUFFIX=".sl" echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:2099: checking for shl_load in -ldld" >&5 +echo "configure:2292: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2103,7 +2296,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2182,7 +2375,7 @@ fi HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) SHLIB_SUFFIX=".sl" echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:2186: checking for shl_load in -ldld" >&5 +echo "configure:2379: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2190,7 +2383,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2325,17 +2518,17 @@ fi else ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dld.h""... $ac_c" 1>&6 -echo "configure:2329: checking for dld.h" >&5 +echo "configure:2522: checking for dld.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2339: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2532: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2399,17 +2592,17 @@ EOF else ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dld.h""... $ac_c" 1>&6 -echo "configure:2403: checking for dld.h" >&5 +echo "configure:2596: checking for dld.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2606: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2440,6 +2633,18 @@ fi CFLAGS="$CFLAGS -mieee" fi ;; + Lynx*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + CFLAGS_OPTIMIZE=-02 + SHLIB_LD="${CC} -shared " + DL_OBJS="tclLoadDl.o" + DL_LIBS="-mshared -ldl" + LD_FLAGS="-Wl,--export-dynamic" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + ;; MP-RAS-02*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" @@ -2465,17 +2670,17 @@ fi # Not available on all versions: check for include file. ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:2469: checking for dlfcn.h" >&5 +echo "configure:2674: checking for dlfcn.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2479: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2684: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2502,9 +2707,9 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' echo $ac_n "checking for ELF""... $ac_c" 1>&6 -echo "configure:2506: checking for ELF" >&5 +echo "configure:2711: checking for ELF" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2582: checking for ELF" >&5 +echo "configure:2787: checking for ELF" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2643: checking if ld accepts -single_module flag" >&5 +echo "configure:2852: checking if ld accepts -single_module flag" >&5 if eval "test \"`echo '$''{'tcl_cv_ld_single_module'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2647,14 +2856,14 @@ else hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* tcl_cv_ld_single_module=yes else @@ -2675,9 +2884,14 @@ echo "$ac_t""$tcl_cv_ld_single_module" 1>&6 SHLIB_SUFFIX=".dylib" DL_OBJS="tclLoadDyld.o" DL_LIBS="" - LDFLAGS="$LDFLAGS -prebind -headerpad_max_install_names" + # Don't use -prebind when building for Mac OS X 10.4 or later only: + if test -z "${MACOSX_DEPLOYMENT_TARGET}" -o \ + `echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F. '{print $2}'` -lt 4; then + LDFLAGS="$LDFLAGS -prebind" + fi + LDFLAGS="$LDFLAGS -headerpad_max_install_names" echo $ac_n "checking if ld accepts -search_paths_first flag""... $ac_c" 1>&6 -echo "configure:2681: checking if ld accepts -search_paths_first flag" >&5 +echo "configure:2895: checking if ld accepts -search_paths_first flag" >&5 if eval "test \"`echo '$''{'tcl_cv_ld_search_paths_first'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2685,14 +2899,14 @@ else hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-search_paths_first" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* tcl_cv_ld_search_paths_first=yes else @@ -2715,7 +2929,7 @@ echo "$ac_t""$tcl_cv_ld_search_paths_first" 1>&6 PLAT_OBJS=\$\(MAC\_OSX_OBJS\) PLAT_SRCS=\$\(MAC\_OSX_SRCS\) echo $ac_n "checking whether to use CoreFoundation""... $ac_c" 1>&6 -echo "configure:2719: checking whether to use CoreFoundation" >&5 +echo "configure:2933: checking whether to use CoreFoundation" >&5 # Check whether --enable-corefoundation or --disable-corefoundation was given. if test "${enable_corefoundation+set}" = set; then enableval="$enable_corefoundation" @@ -2727,22 +2941,28 @@ fi echo "$ac_t""$tcl_corefoundation" 1>&6 if test $tcl_corefoundation = yes; then echo $ac_n "checking for CoreFoundation.framework""... $ac_c" 1>&6 -echo "configure:2731: checking for CoreFoundation.framework" >&5 +echo "configure:2945: checking for CoreFoundation.framework" >&5 if eval "test \"`echo '$''{'tcl_cv_lib_corefoundation'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - hold_libs=$LIBS + hold_libs=$LIBS; hold_cflags=$CFLAGS + if test $do64bit_ok = no ; then + # remove -arch ppc64 from CFLAGS while testing presence + # of CF, otherwise all archs will have CF disabled. + # CF for ppc64 is disabled in tclUnixPort.h instead. + CFLAGS="`echo "$CFLAGS" | sed -e 's/-arch ppc64/-arch ppc/'`" + fi LIBS="$LIBS -framework CoreFoundation" cat > conftest.$ac_ext < int main() { CFBundleRef b = CFBundleGetMainBundle(); ; return 0; } EOF -if { (eval echo configure:2746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* tcl_cv_lib_corefoundation=yes else @@ -2752,7 +2972,7 @@ else tcl_cv_lib_corefoundation=no fi rm -f conftest* - LIBS=$hold_libs + LIBS=$hold_libs; CFLAGS=$hold_cflags fi echo "$ac_t""$tcl_cv_lib_corefoundation" 1>&6 @@ -2768,17 +2988,17 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2772: checking for $ac_hdr" >&5 +echo "configure:2992: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2782: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2807,12 +3027,12 @@ done for ac_func in OSSpinLockLock do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2811: checking for $ac_func" >&5 +echo "configure:3031: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2859,73 +3079,172 @@ else fi done - cat >> confdefs.h <<\EOF -#define MAC_OSX_TCL 1 -EOF - - cat >> confdefs.h <<\EOF -#define USE_VFORK 1 -EOF - - cat >> confdefs.h <<\EOF -#define TCL_DEFAULT_ENCODING "utf-8" + for ac_hdr in copyfile.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:3087: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < EOF - - cat >> confdefs.h <<\EOF -#define TCL_LOAD_FROM_MEMORY 1 +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:3097: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done - # prior to Darwin 7, realpath is not threadsafe, so don't - # use it when threads are enabled, c.f. bug # 711232: - echo $ac_n "checking for realpath""... $ac_c" 1>&6 -echo "configure:2882: checking for realpath" >&5 -if eval "test \"`echo '$''{'ac_cv_func_realpath'+set}'`\" = set"; then + for ac_func in copyfile +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:3126: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char realpath(); +char $ac_func(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_realpath) || defined (__stub___realpath) +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else -realpath(); +$ac_func(); #endif ; return 0; } EOF -if { (eval echo configure:2910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_realpath=yes" + eval "ac_cv_func_$ac_func=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_realpath=no" + eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'realpath`\" = yes"; then +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + cat >> confdefs.h <<\EOF +#define MAC_OSX_TCL 1 +EOF + + cat >> confdefs.h <<\EOF +#define USE_VFORK 1 +EOF + + cat >> confdefs.h <<\EOF +#define TCL_DEFAULT_ENCODING "utf-8" +EOF + + cat >> confdefs.h <<\EOF +#define TCL_LOAD_FROM_MEMORY 1 +EOF + + cat >> confdefs.h <<\EOF +#define TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING 1 +EOF + + # prior to Darwin 7, realpath is not threadsafe, so don't + # use it when threads are enabled, c.f. bug # 711232: + echo $ac_n "checking for realpath""... $ac_c" 1>&6 +echo "configure:3201: checking for realpath" >&5 +if eval "test \"`echo '$''{'ac_cv_func_realpath'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char realpath(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_realpath) || defined (__stub___realpath) +choke me +#else +realpath(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_realpath=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_realpath=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'realpath`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 fi - if test "$ac_cv_func_realpath" = yes -a "${TCL_THREADS}" = 1 \ + if test $ac_cv_func_realpath = yes -a "${TCL_THREADS}" = 1 \ -a `uname -r | awk -F. '{print $1}'` -lt 7 ; then ac_cv_func_realpath=no fi @@ -3217,17 +3536,17 @@ EOF # that don't grok the -Bexport option. Test that it does. hold_ldflags=$LDFLAGS echo $ac_n "checking for ld accepts -Bexport flag""... $ac_c" 1>&6 -echo "configure:3221: checking for ld accepts -Bexport flag" >&5 +echo "configure:3540: checking for ld accepts -Bexport flag" >&5 LDFLAGS="$LDFLAGS -Wl,-Bexport" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* found=yes else @@ -3268,9 +3587,9 @@ rm -f conftest* if test "x$DL_OBJS" = "xtclLoadAout.o" ; then echo $ac_n "checking sys/exec.h""... $ac_c" 1>&6 -echo "configure:3272: checking sys/exec.h" >&5 +echo "configure:3591: checking sys/exec.h" >&5 cat > conftest.$ac_ext < int main() { @@ -3288,7 +3607,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_ok=usable else @@ -3306,9 +3625,9 @@ EOF else echo $ac_n "checking a.out.h""... $ac_c" 1>&6 -echo "configure:3310: checking a.out.h" >&5 +echo "configure:3629: checking a.out.h" >&5 cat > conftest.$ac_ext < int main() { @@ -3326,7 +3645,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3649: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_ok=usable else @@ -3344,9 +3663,9 @@ EOF else echo $ac_n "checking sys/exec_aout.h""... $ac_c" 1>&6 -echo "configure:3348: checking sys/exec_aout.h" >&5 +echo "configure:3667: checking sys/exec_aout.h" >&5 cat > conftest.$ac_ext < int main() { @@ -3364,7 +3683,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3368: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3687: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_ok=usable else @@ -3515,7 +3834,7 @@ fi echo $ac_n "checking for build with symbols""... $ac_c" 1>&6 -echo "configure:3519: checking for build with symbols" >&5 +echo "configure:3838: checking for build with symbols" >&5 # Check whether --enable-symbols or --disable-symbols was given. if test "${enable_symbols+set}" = set; then enableval="$enable_symbols" @@ -3576,21 +3895,21 @@ TK_DBGX=${DBGX} echo $ac_n "checking for required early compiler flags""... $ac_c" 1>&6 -echo "configure:3580: checking for required early compiler flags" >&5 +echo "configure:3899: checking for required early compiler flags" >&5 tcl_flags="" if eval "test \"`echo '$''{'tcl_cv_flag__isoc99_source'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = (char *)strtoll; char *q = (char *)strtoull; ; return 0; } EOF -if { (eval echo configure:3594: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_cv_flag__isoc99_source=no else @@ -3598,7 +3917,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext < @@ -3606,7 +3925,7 @@ int main() { char *p = (char *)strtoll; char *q = (char *)strtoull; ; return 0; } EOF -if { (eval echo configure:3610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3929: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_cv_flag__isoc99_source=yes else @@ -3632,14 +3951,14 @@ EOF echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { struct stat64 buf; int i = stat64("/", &buf); ; return 0; } EOF -if { (eval echo configure:3643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3962: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_cv_flag__largefile64_source=no else @@ -3647,7 +3966,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext < @@ -3655,7 +3974,7 @@ int main() { struct stat64 buf; int i = stat64("/", &buf); ; return 0; } EOF -if { (eval echo configure:3659: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_cv_flag__largefile64_source=yes else @@ -3676,6 +3995,55 @@ EOF tcl_flags="$tcl_flags _LARGEFILE64_SOURCE" fi + + if eval "test \"`echo '$''{'tcl_cv_flag__largefile_source64'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +char *p = (char *)open64; +; return 0; } +EOF +if { (eval echo configure:4011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + tcl_cv_flag__largefile_source64=no +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cat > conftest.$ac_ext < +int main() { +char *p = (char *)open64; +; return 0; } +EOF +if { (eval echo configure:4027: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + tcl_cv_flag__largefile_source64=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + tcl_cv_flag__largefile_source64=no +fi +rm -f conftest* +fi +rm -f conftest* +fi + + if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then + cat >> confdefs.h <<\EOF +#define _LARGEFILE_SOURCE64 1 +EOF + + tcl_flags="$tcl_flags _LARGEFILE_SOURCE64" + fi if test "x${tcl_flags}" = "x" ; then echo "$ac_t""none" 1>&6 else @@ -3684,7 +4052,7 @@ EOF echo $ac_n "checking for 64-bit integer type""... $ac_c" 1>&6 -echo "configure:3688: checking for 64-bit integer type" >&5 +echo "configure:4056: checking for 64-bit integer type" >&5 if eval "test \"`echo '$''{'tcl_cv_type_64bit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3692,14 +4060,14 @@ else tcl_cv_type_64bit=none # See if the compiler knows natively about __int64 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_type_64bit=__int64 else @@ -3713,7 +4081,7 @@ rm -f conftest* # type that is our current guess for a 64-bit type inside this check # program, so it should be modified only carefully... cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_cv_type_64bit=${tcl_type_64bit} else @@ -3747,13 +4115,13 @@ EOF # Now check for auxiliary declarations echo $ac_n "checking for struct dirent64""... $ac_c" 1>&6 -echo "configure:3751: checking for struct dirent64" >&5 +echo "configure:4119: checking for struct dirent64" >&5 if eval "test \"`echo '$''{'tcl_cv_struct_dirent64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3761,7 +4129,7 @@ int main() { struct dirent64 p; ; return 0; } EOF -if { (eval echo configure:3765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4133: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_cv_struct_dirent64=yes else @@ -3782,13 +4150,13 @@ EOF echo "$ac_t""${tcl_cv_struct_dirent64}" 1>&6 echo $ac_n "checking for struct stat64""... $ac_c" 1>&6 -echo "configure:3786: checking for struct stat64" >&5 +echo "configure:4154: checking for struct stat64" >&5 if eval "test \"`echo '$''{'tcl_cv_struct_stat64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -3796,7 +4164,7 @@ struct stat64 p; ; return 0; } EOF -if { (eval echo configure:3800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4168: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_cv_struct_stat64=yes else @@ -3819,12 +4187,12 @@ EOF for ac_func in open64 lseek64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3823: checking for $ac_func" >&5 +echo "configure:4191: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3872,13 +4240,13 @@ fi done echo $ac_n "checking for off64_t""... $ac_c" 1>&6 -echo "configure:3876: checking for off64_t" >&5 +echo "configure:4244: checking for off64_t" >&5 if eval "test \"`echo '$''{'tcl_cv_type_off64_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -3886,7 +4254,7 @@ off64_t offset; ; return 0; } EOF -if { (eval echo configure:3890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* tcl_cv_type_off64_t=yes else @@ -3916,14 +4284,14 @@ EOF #-------------------------------------------------------------------- echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:3920: checking whether byte ordering is bigendian" >&5 +echo "configure:4288: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -3934,11 +4302,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4306: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -3949,7 +4317,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3953: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -3969,7 +4337,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -4019,286 +4387,296 @@ fi if test "$TCL_PREFIX" != "$prefix"; then echo "configure: warning: - Different --prefix selected for Tk and Tcl! - [package require Tk] may not work correctly in tclsh." 1>&2 + Different --prefix selected for Tk and Tcl! + [package require Tk] may not work correctly in tclsh." 1>&2 fi #-------------------------------------------------------------------- -# On a few very rare systems, all of the libm.a stuff is -# already in libc.a. Set compiler flags accordingly. -# Also, Linux requires the "ieee" library for math to work -# right (and it must appear before "-lm"). +# Include sys/select.h if it exists and if it supplies things +# that appear to be useful and aren't already in sys/types.h. +# This appears to be true only on the RS/6000 under AIX. Some +# systems like OSF/1 have a sys/select.h that's of no use, and +# other systems like SCO UNIX have a sys/select.h that's +# pernicious. If "fd_set" isn't defined anywhere then set a +# special flag. #-------------------------------------------------------------------- -MATH_LIBS="" -echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4036: checking for sin" >&5 -if eval "test \"`echo '$''{'ac_cv_func_sin'+set}'`\" = set"; then +echo $ac_n "checking for fd_set in sys/types""... $ac_c" 1>&6 +echo "configure:4406: checking for fd_set in sys/types" >&5 +if eval "test \"`echo '$''{'tcl_cv_type_fd_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char sin(); - +#include int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_sin) || defined (__stub___sin) -choke me -#else -sin(); -#endif - +fd_set readMask, writeMask; ; return 0; } EOF -if { (eval echo configure:4064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4418: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - eval "ac_cv_func_sin=yes" + tcl_cv_type_fd_set=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_sin=no" + tcl_cv_type_fd_set=no fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'sin`\" = yes"; then - echo "$ac_t""yes" 1>&6 - : +echo "$ac_t""$tcl_cv_type_fd_set" 1>&6 +tk_ok=$tcl_cv_type_fd_set +if test $tcl_cv_type_fd_set = no; then + echo $ac_n "checking for fd_mask in sys/select""... $ac_c" 1>&6 +echo "configure:4434: checking for fd_mask in sys/select" >&5 + if eval "test \"`echo '$''{'tcl_cv_grep_fd_mask'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 else - echo "$ac_t""no" 1>&6 -MATH_LIBS="-lm" + cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "fd_mask" >/dev/null 2>&1; then + rm -rf conftest* + tcl_cv_grep_fd_mask=present +else + rm -rf conftest* + tcl_cv_grep_fd_mask=missing +fi +rm -f conftest* + fi -echo $ac_n "checking for main in -lieee""... $ac_c" 1>&6 -echo "configure:4085: checking for main in -lieee" >&5 -ac_lib_var=`echo ieee'_'main | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo "$ac_t""$tcl_cv_grep_fd_mask" 1>&6 + if test $tcl_cv_grep_fd_mask = present; then + cat >> confdefs.h <<\EOF +#define HAVE_SYS_SELECT_H 1 +EOF + + tk_ok=yes + fi +fi +if test $tk_ok = no; then + cat >> confdefs.h <<\EOF +#define NO_FD_SET 1 +EOF + +fi + +#------------------------------------------------------------------------------ +# Find out all about time handling differences. +#------------------------------------------------------------------------------ + +for ac_hdr in sys/time.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:4479: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - ac_save_LIBS="$LIBS" -LIBS="-lieee $LIBS" -cat > conftest.$ac_ext < conftest.$ac_ext < EOF -if { (eval echo configure:4100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:4489: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" + eval "ac_cv_header_$ac_safe=yes" else + echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* -LIBS="$ac_save_LIBS" - fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - MATH_LIBS="-lieee $MATH_LIBS" + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 fi +done - -#-------------------------------------------------------------------- -# On AIX systems, libbsd.a has to be linked in to support -# non-blocking file IO. This library has to be linked in after -# the MATH_LIBS or it breaks the pow() function. The way to -# insure proper sequencing, is to add it to the tail of MATH_LIBS. -# This library also supplies gettimeofday. -#-------------------------------------------------------------------- -libbsd=no -if test "`uname -s`" = "AIX" ; then - echo $ac_n "checking for gettimeofday in -lbsd""... $ac_c" 1>&6 -echo "configure:4131: checking for gettimeofday in -lbsd" >&5 -ac_lib_var=`echo bsd'_'gettimeofday | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +echo "configure:4516: checking whether time.h and sys/time.h may both be included" >&5 +if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - ac_save_LIBS="$LIBS" -LIBS="-lbsd $LIBS" -cat > conftest.$ac_ext < conftest.$ac_ext < +#include +#include int main() { -gettimeofday() +struct tm *tp; ; return 0; } EOF -if { (eval echo configure:4150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" + ac_cv_header_time=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + ac_cv_header_time=no fi rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - libbsd=yes -else - echo "$ac_t""no" 1>&6 fi - if test $libbsd = yes; then - MATH_LIBS="$MATH_LIBS -lbsd" - fi +echo "$ac_t""$ac_cv_header_time" 1>&6 +if test $ac_cv_header_time = yes; then + cat >> confdefs.h <<\EOF +#define TIME_WITH_SYS_TIME 1 +EOF + fi + #-------------------------------------------------------------------- -# Supply a substitute for stdlib.h if it doesn't define strtol, -# strtoul, or strtod (which it doesn't in some versions of SunOS). +# Under Solaris 2.4, strtod returns the wrong value for the +# terminating character under some conditions. Check for this +# and if the problem exists use a substitute procedure +# "fixstrtod" (provided by Tcl) that corrects the error. #-------------------------------------------------------------------- -echo $ac_n "checking stdlib.h""... $ac_c" 1>&6 -echo "configure:4181: checking stdlib.h" >&5 -cat > conftest.$ac_ext <&6 +echo "configure:4560: checking for strtod" >&5 +if eval "test \"`echo '$''{'ac_cv_func_strtod'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strtod(); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strtod(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_strtod) || defined (__stub___strtod) +choke me +#else +strtod(); +#endif + +; return 0; } EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "strtol" >/dev/null 2>&1; then +if { (eval echo configure:4588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - tk_ok=yes + eval "ac_cv_func_strtod=yes" else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* - tk_ok=no + eval "ac_cv_func_strtod=no" fi rm -f conftest* - -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "strtoul" >/dev/null 2>&1; then - : -else - rm -rf conftest* - tk_ok=no fi -rm -f conftest* -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "strtod" >/dev/null 2>&1; then - : +if eval "test \"`echo '$ac_cv_func_'strtod`\" = yes"; then + echo "$ac_t""yes" 1>&6 + tcl_strtod=1 else - rm -rf conftest* - tk_ok=no -fi -rm -f conftest* - -if test $tk_ok = no; then - cat >> confdefs.h <<\EOF -#define NO_STDLIB_H 1 -EOF - + echo "$ac_t""no" 1>&6 +tcl_strtod=0 fi -echo "$ac_t""$tk_ok" 1>&6 -#-------------------------------------------------------------------- -# Include sys/select.h if it exists and if it supplies things -# that appear to be useful and aren't already in sys/types.h. -# This appears to be true only on the RS/6000 under AIX. Some -# systems like OSF/1 have a sys/select.h that's of no use, and -# other systems like SCO UNIX have a sys/select.h that's -# pernicious. If "fd_set" isn't defined anywhere then set a -# special flag. -#-------------------------------------------------------------------- - -echo $ac_n "checking fd_set and sys/select""... $ac_c" 1>&6 -echo "configure:4244: checking fd_set and sys/select" >&5 -cat > conftest.$ac_ext <&6 +echo "configure:4610: checking for Solaris2.4/Tru64 strtod bugs" >&5 + if eval "test \"`echo '$''{'tcl_cv_strtod_buggy'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + + if test "$cross_compiling" = yes; then + tcl_cv_strtod_buggy=0 +else + cat > conftest.$ac_ext < -int main() { -fd_set readMask, writeMask; -; return 0; } + + extern double strtod(); + int main() { + char *infString="Inf", *nanString="NaN", *spaceString=" "; + char *term; + double value; + value = strtod(infString, &term); + if ((term != infString) && (term[-1] == 0)) { + exit(1); + } + value = strtod(nanString, &term); + if ((term != nanString) && (term[-1] == 0)) { + exit(1); + } + value = strtod(spaceString, &term); + if (term == (spaceString+1)) { + exit(1); + } + exit(0); + } EOF -if { (eval echo configure:4253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - tk_ok=yes +if { (eval echo configure:4642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + tcl_cv_strtod_buggy=1 else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - rm -rf conftest* - tk_ok=no + rm -fr conftest* + tcl_cv_strtod_buggy=0 fi -rm -f conftest* -if test $tk_ok = no; then - cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "fd_mask" >/dev/null 2>&1; then - rm -rf conftest* - tk_ok=yes +rm -fr conftest* fi -rm -f conftest* - if test $tk_ok = yes; then - cat >> confdefs.h <<\EOF -#define HAVE_SYS_SELECT_H 1 +fi + + if test "$tcl_cv_strtod_buggy" = 1; then + echo "$ac_t""ok" 1>&6 + else + echo "$ac_t""buggy" 1>&6 + LIBOBJS="$LIBOBJS fixstrtod.o" + cat >> confdefs.h <<\EOF +#define strtod fixstrtod EOF + fi fi -fi -echo "$ac_t""$tk_ok" 1>&6 -if test $tk_ok = no; then - cat >> confdefs.h <<\EOF -#define NO_FD_SET 1 -EOF -fi #-------------------------------------------------------------------- -# Check for various typedefs and provide substitutes if -# they don't exist. +# Check for various typedefs and provide substitutes if +# they don't exist. #-------------------------------------------------------------------- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:4297: checking for ANSI C header files" >&5 +echo "configure:4675: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -4306,7 +4684,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4310: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4688: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4323,7 +4701,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -4341,7 +4719,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -4362,7 +4740,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -4373,7 +4751,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:4377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -4397,12 +4775,12 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:4401: checking for mode_t" >&5 +echo "configure:4779: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4430,12 +4808,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:4434: checking for pid_t" >&5 +echo "configure:4812: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4463,12 +4841,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:4467: checking for size_t" >&5 +echo "configure:4845: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4496,12 +4874,12 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:4500: checking for uid_t in sys/types.h" >&5 +echo "configure:4878: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -4530,112 +4908,37 @@ EOF fi -#------------------------------------------------------------------------------ -# Find out about time handling differences. -#------------------------------------------------------------------------------ - -for ac_hdr in sys/time.h -do -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4542: checking for $ac_hdr" >&5 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4552: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` - cat >> confdefs.h <&6 -fi -done - -echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:4579: checking whether time.h and sys/time.h may both be included" >&5 -if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#include -int main() { -struct tm *tp; -; return 0; } -EOF -if { (eval echo configure:4593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_header_time=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_header_time=no -fi -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_header_time" 1>&6 -if test $ac_cv_header_time = yes; then - cat >> confdefs.h <<\EOF -#define TIME_WITH_SYS_TIME 1 -EOF - -fi - - #------------------------------------------- # In OS/390 struct pwd has no pw_gecos field #------------------------------------------- echo $ac_n "checking pw_gecos in struct pwd""... $ac_c" 1>&6 -echo "configure:4619: checking pw_gecos in struct pwd" >&5 -cat > conftest.$ac_ext <&5 +if eval "test \"`echo '$''{'tcl_cv_pwd_pw_gecos'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < int main() { struct passwd pwd; pwd.pw_gecos; ; return 0; } EOF -if { (eval echo configure:4628: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4929: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - tk_ok=yes + tcl_cv_pwd_pw_gecos=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - tk_ok=no + tcl_cv_pwd_pw_gecos=no fi rm -f conftest* -echo "$ac_t""$tk_ok" 1>&6 -if test $tk_ok = yes; then +fi + +echo "$ac_t""$tcl_cv_pwd_pw_gecos" 1>&6 +if test $tcl_cv_pwd_pw_gecos = yes; then cat >> confdefs.h <<\EOF #define HAVE_PW_GECOS 1 EOF @@ -4698,7 +5001,7 @@ else # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:4702: checking for X" >&5 +echo "configure:5005: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -4760,12 +5063,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4769: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5072: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4834,14 +5137,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -4931,12 +5234,12 @@ fi if test "$no_x" = ""; then if test "$x_includes" = ""; then cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4940: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5243: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -4956,15 +5259,15 @@ rm -f conftest* fi if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then echo $ac_n "checking for X11 header files""... $ac_c" 1>&6 -echo "configure:4960: checking for X11 header files" >&5 +echo "configure:5263: checking for X11 header files" >&5 found_xincludes="no" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5271: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5000,7 +5303,7 @@ rm -f conftest* if test "$no_x" = yes; then echo $ac_n "checking for X11 libraries""... $ac_c" 1>&6 -echo "configure:5004: checking for X11 libraries" >&5 +echo "configure:5307: checking for X11 libraries" >&5 XLIBSW=nope dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" for i in $dirs ; do @@ -5020,7 +5323,7 @@ echo "configure:5004: checking for X11 libraries" >&5 fi if test "$XLIBSW" = nope ; then echo $ac_n "checking for XCreateWindow in -lXwindow""... $ac_c" 1>&6 -echo "configure:5024: checking for XCreateWindow in -lXwindow" >&5 +echo "configure:5327: checking for XCreateWindow in -lXwindow" >&5 ac_lib_var=`echo Xwindow'_'XCreateWindow | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5028,7 +5331,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXwindow $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5116,7 +5419,7 @@ eval "LD_SEARCH_FLAGS=\"$TCL_LD_SEARCH_FLAGS\"" if test $tk_aqua = no; then echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:5120: checking for main in -lXbsd" >&5 +echo "configure:5423: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5124,14 +5427,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lXbsd $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5155,12 +5458,12 @@ fi tk_checkBoth=0 echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:5159: checking for connect" >&5 +echo "configure:5462: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -5205,7 +5508,7 @@ fi if test "$tk_checkSocket" = 1; then echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 -echo "configure:5209: checking for main in -lsocket" >&5 +echo "configure:5512: checking for main in -lsocket" >&5 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5213,14 +5516,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5246,12 +5549,12 @@ if test "$tk_checkBoth" = 1; then tk_oldLibs=$LIBS LIBS="$LIBS -lsocket -lnsl" echo $ac_n "checking for accept""... $ac_c" 1>&6 -echo "configure:5250: checking for accept" >&5 +echo "configure:5553: checking for accept" >&5 if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_accept=yes" else @@ -5296,12 +5599,12 @@ fi fi echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:5300: checking for gethostbyname" >&5 +echo "configure:5603: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -5342,7 +5645,7 @@ if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 -echo "configure:5346: checking for main in -lnsl" >&5 +echo "configure:5649: checking for main in -lnsl" >&5 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5350,14 +5653,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5393,13 +5696,13 @@ fi if test -d /usr/include/mit -a $tk_aqua = no; then echo $ac_n "checking MIT X libraries""... $ac_c" 1>&6 -echo "configure:5397: checking MIT X libraries" >&5 +echo "configure:5700: checking MIT X libraries" >&5 tk_oldCFlags=$CFLAGS CFLAGS="$CFLAGS -I/usr/include/mit" tk_oldLibs=$LIBS LIBS="$LIBS -lX11-mit" cat > conftest.$ac_ext < @@ -5410,7 +5713,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:5414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 @@ -5434,14 +5737,14 @@ fi #-------------------------------------------------------------------- echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6 -echo "configure:5438: checking whether char is unsigned" >&5 +echo "configure:5741: checking whether char is unsigned" >&5 if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$GCC" = yes; then # GCC predefines this symbol on systems where it applies. cat > conftest.$ac_ext <&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_char_unsigned=yes else @@ -5498,124 +5801,6 @@ fi #-------------------------------------------------------------------- -# Under Solaris 2.4, strtod returns the wrong value for the -# terminating character under some conditions. Check for this -# and if the problem exists use a substitute procedure -# "fixstrtod" (provided by Tcl) that corrects the error. -#-------------------------------------------------------------------- - - - echo $ac_n "checking for strtod""... $ac_c" 1>&6 -echo "configure:5510: checking for strtod" >&5 -if eval "test \"`echo '$''{'ac_cv_func_strtod'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strtod(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strtod) || defined (__stub___strtod) -choke me -#else -strtod(); -#endif - -; return 0; } -EOF -if { (eval echo configure:5538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_strtod=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_strtod=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'strtod`\" = yes"; then - echo "$ac_t""yes" 1>&6 - tcl_strtod=1 -else - echo "$ac_t""no" 1>&6 -tcl_strtod=0 -fi - - if test "$tcl_strtod" = 1; then - echo $ac_n "checking for Solaris2.4/Tru64 strtod bugs""... $ac_c" 1>&6 -echo "configure:5560: checking for Solaris2.4/Tru64 strtod bugs" >&5 - if eval "test \"`echo '$''{'tcl_cv_strtod_buggy'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - - if test "$cross_compiling" = yes; then - tcl_cv_strtod_buggy=0 -else - cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - tcl_cv_strtod_buggy=1 -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - tcl_cv_strtod_buggy=0 -fi -rm -fr conftest* -fi - -fi - - if test "$tcl_cv_strtod_buggy" = 1; then - echo "$ac_t""ok" 1>&6 - else - echo "$ac_t""buggy" 1>&6 - LIBOBJS="$LIBOBJS fixstrtod.o" - cat >> confdefs.h <<\EOF -#define strtod fixstrtod -EOF - - fi - fi - - -#-------------------------------------------------------------------- # The statements below define a collection of symbols related to # building libtk as a shared library instead of a static library. #-------------------------------------------------------------------- @@ -5651,7 +5836,7 @@ WISH_RSRC_FILE='wish$(VERSION).rsrc' if test "`uname -s`" = "Darwin" ; then echo $ac_n "checking how to package libraries""... $ac_c" 1>&6 -echo "configure:5655: checking how to package libraries" >&5 +echo "configure:5840: checking how to package libraries" >&5 # Check whether --enable-framework or --disable-framework was given. if test "${enable_framework+set}" = set; then enableval="$enable_framework" @@ -5685,7 +5870,7 @@ fi fi TK_SHLIB_LD_EXTRAS="-compatibility_version ${TK_VERSION} -current_version ${TK_VERSION}`echo ${TK_PATCH_LEVEL} | awk '{match($0, "\\\.[0-9]+"); print substr($0,RSTART,RLENGTH)}'`" - TK_SHLIB_LD_EXTRAS="${TK_SHLIB_LD_EXTRAS}"' -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE} -seg1addr 0xb000000 -unexported_symbols_list $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | tail +3 > $$f && echo $$f)' + TK_SHLIB_LD_EXTRAS="${TK_SHLIB_LD_EXTRAS}"' -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE} -seg1addr 0xb000000 -unexported_symbols_list $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | grep ^_ > $$f && echo $$f)' fi if test "$FRAMEWORK_BUILD" = "1" ; then diff --git a/unix/configure.in b/unix/configure.in index 5af3a43..1ff7d96 100644 --- a/unix/configure.in +++ b/unix/configure.in @@ -3,7 +3,7 @@ dnl This file is an input file used by the GNU "autoconf" program to dnl generate the file "configure", which is run during Tk installation dnl to configure the system for the local environment. # -# RCS: @(#) $Id: configure.in,v 1.83.2.23 2005/11/16 22:07:37 dgp Exp $ +# RCS: @(#) $Id: configure.in,v 1.83.2.24 2005/11/27 02:44:26 das Exp $ AC_INIT(../generic/tk.h) AC_PREREQ(2.13) @@ -62,7 +62,25 @@ fi AC_PROG_CC -AC_HAVE_HEADERS([unistd.h limits.h]) +# limits header checks must come early to prevent +# an autoconf bug that throws errors on configure +AC_CHECK_HEADER(limits.h, + [AC_DEFINE(HAVE_LIMITS_H)], [AC_DEFINE(NO_LIMITS_H)]) +AC_HAVE_HEADERS(unistd.h) + +#-------------------------------------------------------------------- +# Supply a substitute for stdlib.h if it doesn't define strtol, +# strtoul, or strtod (which it doesn't in some versions of SunOS). +#-------------------------------------------------------------------- + +AC_MSG_CHECKING(stdlib.h) +AC_EGREP_HEADER(strtol, stdlib.h, tk_ok=yes, tk_ok=no) +AC_EGREP_HEADER(strtoul, stdlib.h, , tk_ok=no) +AC_EGREP_HEADER(strtod, stdlib.h, , tk_ok=no) +if test $tk_ok = no; then + AC_DEFINE(NO_STDLIB_H) +fi +AC_MSG_RESULT($tk_ok) #------------------------------------------------------------------------ # If we're using GCC, see if the compiler understands -pipe. If so, use it. @@ -87,6 +105,17 @@ fi SC_ENABLE_THREADS +#-------------------------------------------------------------------- +# On a few very rare systems, all of the libm.a stuff is +# already in libc.a. Set compiler flags accordingly. +# Also, Linux requires the "ieee" library for math to work +# right (and it must appear before "-lm"). +#-------------------------------------------------------------------- + +MATH_LIBS="" +AC_CHECK_FUNC(sin, , MATH_LIBS="-lm") +AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"]) + # Add the threads support libraries LIBS="$LIBS$THREADS_LIBS" @@ -131,77 +160,60 @@ fi if test "$TCL_PREFIX" != "$prefix"; then AC_MSG_WARN([ - Different --prefix selected for Tk and Tcl! - [[package require Tk]] may not work correctly in tclsh.]) + Different --prefix selected for Tk and Tcl! + [[package require Tk]] may not work correctly in tclsh.]) fi #-------------------------------------------------------------------- -# On a few very rare systems, all of the libm.a stuff is -# already in libc.a. Set compiler flags accordingly. -# Also, Linux requires the "ieee" library for math to work -# right (and it must appear before "-lm"). -#-------------------------------------------------------------------- - -MATH_LIBS="" -AC_CHECK_FUNC(sin, , MATH_LIBS="-lm") -AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"]) - -#-------------------------------------------------------------------- -# On AIX systems, libbsd.a has to be linked in to support -# non-blocking file IO. This library has to be linked in after -# the MATH_LIBS or it breaks the pow() function. The way to -# insure proper sequencing, is to add it to the tail of MATH_LIBS. -# This library also supplies gettimeofday. -#-------------------------------------------------------------------- -libbsd=no -if test "`uname -s`" = "AIX" ; then - AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes) - if test $libbsd = yes; then - MATH_LIBS="$MATH_LIBS -lbsd" +# Include sys/select.h if it exists and if it supplies things +# that appear to be useful and aren't already in sys/types.h. +# This appears to be true only on the RS/6000 under AIX. Some +# systems like OSF/1 have a sys/select.h that's of no use, and +# other systems like SCO UNIX have a sys/select.h that's +# pernicious. If "fd_set" isn't defined anywhere then set a +# special flag. +#-------------------------------------------------------------------- + +AC_MSG_CHECKING([for fd_set in sys/types]) +AC_CACHE_VAL(tcl_cv_type_fd_set, + AC_TRY_COMPILE([#include ],[fd_set readMask, writeMask;], + tcl_cv_type_fd_set=yes, tcl_cv_type_fd_set=no)) +AC_MSG_RESULT($tcl_cv_type_fd_set) +tk_ok=$tcl_cv_type_fd_set +if test $tcl_cv_type_fd_set = no; then + AC_MSG_CHECKING([for fd_mask in sys/select]) + AC_CACHE_VAL(tcl_cv_grep_fd_mask, + AC_EGREP_HEADER(fd_mask, sys/select.h, + tcl_cv_grep_fd_mask=present, tcl_cv_grep_fd_mask=missing)) + AC_MSG_RESULT($tcl_cv_grep_fd_mask) + if test $tcl_cv_grep_fd_mask = present; then + AC_DEFINE(HAVE_SYS_SELECT_H) + tk_ok=yes fi fi - -#-------------------------------------------------------------------- -# Supply a substitute for stdlib.h if it doesn't define strtol, -# strtoul, or strtod (which it doesn't in some versions of SunOS). -#-------------------------------------------------------------------- - -AC_MSG_CHECKING(stdlib.h) -AC_HEADER_EGREP(strtol, stdlib.h, tk_ok=yes, tk_ok=no) -AC_HEADER_EGREP(strtoul, stdlib.h, , tk_ok=no) -AC_HEADER_EGREP(strtod, stdlib.h, , tk_ok=no) if test $tk_ok = no; then - AC_DEFINE(NO_STDLIB_H) + AC_DEFINE(NO_FD_SET) fi -AC_MSG_RESULT($tk_ok) + +#------------------------------------------------------------------------------ +# Find out all about time handling differences. +#------------------------------------------------------------------------------ + +AC_CHECK_HEADERS(sys/time.h) +AC_HEADER_TIME #-------------------------------------------------------------------- -# Include sys/select.h if it exists and if it supplies things -# that appear to be useful and aren't already in sys/types.h. -# This appears to be true only on the RS/6000 under AIX. Some -# systems like OSF/1 have a sys/select.h that's of no use, and -# other systems like SCO UNIX have a sys/select.h that's -# pernicious. If "fd_set" isn't defined anywhere then set a -# special flag. +# Under Solaris 2.4, strtod returns the wrong value for the +# terminating character under some conditions. Check for this +# and if the problem exists use a substitute procedure +# "fixstrtod" (provided by Tcl) that corrects the error. #-------------------------------------------------------------------- -AC_MSG_CHECKING([fd_set and sys/select]) -AC_TRY_COMPILE([#include ], - [fd_set readMask, writeMask;], tk_ok=yes, tk_ok=no) -if test $tk_ok = no; then - AC_HEADER_EGREP(fd_mask, sys/select.h, tk_ok=yes) - if test $tk_ok = yes; then - AC_DEFINE(HAVE_SYS_SELECT_H) - fi -fi -AC_MSG_RESULT($tk_ok) -if test $tk_ok = no; then - AC_DEFINE(NO_FD_SET) -fi +SC_BUGGY_STRTOD #-------------------------------------------------------------------- -# Check for various typedefs and provide substitutes if -# they don't exist. +# Check for various typedefs and provide substitutes if +# they don't exist. #-------------------------------------------------------------------- AC_TYPE_MODE_T @@ -209,22 +221,17 @@ AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_UID_T -#------------------------------------------------------------------------------ -# Find out about time handling differences. -#------------------------------------------------------------------------------ - -AC_CHECK_HEADERS(sys/time.h) -AC_HEADER_TIME - #------------------------------------------- # In OS/390 struct pwd has no pw_gecos field #------------------------------------------- AC_MSG_CHECKING([pw_gecos in struct pwd]) -AC_TRY_COMPILE([#include ], - [struct passwd pwd; pwd.pw_gecos;], tk_ok=yes, tk_ok=no) -AC_MSG_RESULT($tk_ok) -if test $tk_ok = yes; then +AC_CACHE_VAL(tcl_cv_pwd_pw_gecos, + AC_TRY_COMPILE([#include ], + [struct passwd pwd; pwd.pw_gecos;], + tcl_cv_pwd_pw_gecos=yes, tcl_cv_pwd_pw_gecos=no)) +AC_MSG_RESULT($tcl_cv_pwd_pw_gecos) +if test $tcl_cv_pwd_pw_gecos = yes; then AC_DEFINE(HAVE_PW_GECOS) fi @@ -370,15 +377,6 @@ fi AC_C_CHAR_UNSIGNED #-------------------------------------------------------------------- -# Under Solaris 2.4, strtod returns the wrong value for the -# terminating character under some conditions. Check for this -# and if the problem exists use a substitute procedure -# "fixstrtod" (provided by Tcl) that corrects the error. -#-------------------------------------------------------------------- - -SC_BUGGY_STRTOD - -#-------------------------------------------------------------------- # The statements below define a collection of symbols related to # building libtk as a shared library instead of a static library. #-------------------------------------------------------------------- @@ -414,7 +412,7 @@ WISH_RSRC_FILE='wish$(VERSION).rsrc' if test "`uname -s`" = "Darwin" ; then SC_ENABLE_FRAMEWORK TK_SHLIB_LD_EXTRAS="-compatibility_version ${TK_VERSION} -current_version ${TK_VERSION}`echo ${TK_PATCH_LEVEL} | awk ['{match($0, "\\\.[0-9]+"); print substr($0,RSTART,RLENGTH)}']`" - TK_SHLIB_LD_EXTRAS="${TK_SHLIB_LD_EXTRAS}"' -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE} -seg1addr 0xb000000 -unexported_symbols_list $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | tail +3 > $$f && echo $$f)' + TK_SHLIB_LD_EXTRAS="${TK_SHLIB_LD_EXTRAS}"' -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE} -seg1addr 0xb000000 -unexported_symbols_list $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | grep ^_ > $$f && echo $$f)' fi if test "$FRAMEWORK_BUILD" = "1" ; then diff --git a/unix/tcl.m4 b/unix/tcl.m4 index 4ab705f..e8e5dc2 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -659,22 +659,20 @@ AC_DEFUN(SC_ENABLE_LANGINFO, [ HAVE_LANGINFO=0 if test "$langinfo_ok" = "yes"; then - if test "$langinfo_ok" = "yes"; then - AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no]) - fi + AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no]) fi AC_MSG_CHECKING([whether to use nl_langinfo]) if test "$langinfo_ok" = "yes"; then - AC_TRY_COMPILE([#include ], - [nl_langinfo(CODESET);],[langinfo_ok=yes],[langinfo_ok=no]) - if test "$langinfo_ok" = "no"; then - langinfo_ok="no (could not compile with nl_langinfo)"; - fi - if test "$langinfo_ok" = "yes"; then + AC_CACHE_VAL(tcl_cv_langinfo_h, + AC_TRY_COMPILE([#include ], [nl_langinfo(CODESET);], + [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])) + AC_MSG_RESULT($tcl_cv_langinfo_h) + if test $tcl_cv_langinfo_h = yes; then AC_DEFINE(HAVE_LANGINFO) fi + else + AC_MSG_RESULT([$langinfo_ok]) fi - AC_MSG_RESULT([$langinfo_ok]) ]) #-------------------------------------------------------------------- @@ -703,44 +701,44 @@ AC_DEFUN(SC_ENABLE_LANGINFO, [ # according to the user's selection. # #-------------------------------------------------------------------- -AC_DEFUN(SC_CONFIG_MANPAGES, [ - AC_MSG_CHECKING([whether to use symlinks for manpages]) - AC_ARG_ENABLE(man-symlinks, - [ --enable-man-symlinks use symlinks for the manpages], - test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --symlinks", - enableval="no") - AC_MSG_RESULT([$enableval]) - - AC_MSG_CHECKING([whether to compress the manpages]) - AC_ARG_ENABLE(man-compression, - [ --enable-man-compression=PROG - compress the manpages with PROG], - test "$enableval" = "yes" && AC_MSG_ERROR([missing argument to --enable-man-compression]) - test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --compress $enableval", - enableval="no") - AC_MSG_RESULT([$enableval]) - if test "$enableval" != "no"; then - AC_MSG_CHECKING([for compressed file suffix]) - touch TeST - $enableval TeST - Z=`ls TeST* | sed 's/^....//'` - rm -f TeST* - MAN_FLAGS="$MAN_FLAGS --extension $Z" - AC_MSG_RESULT([$Z]) - fi +AC_DEFUN(SC_CONFIG_MANPAGES, [ + AC_MSG_CHECKING([whether to use symlinks for manpages]) + AC_ARG_ENABLE(man-symlinks, + [ --enable-man-symlinks use symlinks for the manpages], + test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --symlinks", + enableval="no") + AC_MSG_RESULT([$enableval]) + + AC_MSG_CHECKING([whether to compress the manpages]) + AC_ARG_ENABLE(man-compression, + [ --enable-man-compression=PROG + compress the manpages with PROG], + test "$enableval" = "yes" && AC_MSG_ERROR([missing argument to --enable-man-compression]) + test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --compress $enableval", + enableval="no") + AC_MSG_RESULT([$enableval]) + if test "$enableval" != "no"; then + AC_MSG_CHECKING([for compressed file suffix]) + touch TeST + $enableval TeST + Z=`ls TeST* | sed 's/^....//'` + rm -f TeST* + MAN_FLAGS="$MAN_FLAGS --extension $Z" + AC_MSG_RESULT([$Z]) + fi - AC_MSG_CHECKING([whether to add a package name suffix for the manpages]) - AC_ARG_ENABLE(man-suffix, - [ --enable-man-suffix=STRING - use STRING as a suffix to manpage file names - (default: $1)], - test "$enableval" = "yes" && enableval="$1" - test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --suffix $enableval", - enableval="no") - AC_MSG_RESULT([$enableval]) - - AC_SUBST(MAN_FLAGS) + AC_MSG_CHECKING([whether to add a package name suffix for the manpages]) + AC_ARG_ENABLE(man-suffix, + [ --enable-man-suffix=STRING + use STRING as a suffix to manpage file names + (default: $1)], + test "$enableval" = "yes" && enableval="$1" + test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --suffix $enableval", + enableval="no") + AC_MSG_RESULT([$enableval]) + + AC_SUBST(MAN_FLAGS) ]) #-------------------------------------------------------------------- @@ -956,7 +954,7 @@ dnl AC_CHECK_TOOL(AR, ar) if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then if test "$GCC" = "yes" ; then AC_MSG_WARN([64bit mode not supported with GCC on $system]) - else + else do64bit_ok=yes CFLAGS="$CFLAGS -q64" LDFLAGS="$LDFLAGS -q64" @@ -1267,6 +1265,18 @@ dnl AC_CHECK_TOOL(AR, ar) CFLAGS="$CFLAGS -mieee" fi ;; + Lynx*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + CFLAGS_OPTIMIZE=-02 + SHLIB_LD="${CC} -shared " + DL_OBJS="tclLoadDl.o" + DL_LIBS="-mshared -ldl" + LD_FLAGS="-Wl,--export-dynamic" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + ;; MP-RAS-02*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" @@ -1405,7 +1415,11 @@ dnl AC_CHECK_TOOL(AR, ar) Darwin-*) CFLAGS_OPTIMIZE="-Os" SHLIB_CFLAGS="-fno-common" - SHLIB_LD="cc -dynamiclib \${LDFLAGS}" + if test $do64bit = yes; then + do64bit_ok=yes + CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" + fi + SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS}' AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [ hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" @@ -1418,7 +1432,12 @@ dnl AC_CHECK_TOOL(AR, ar) SHLIB_SUFFIX=".dylib" DL_OBJS="tclLoadDyld.o" DL_LIBS="" - LDFLAGS="$LDFLAGS -prebind -headerpad_max_install_names" + # Don't use -prebind when building for Mac OS X 10.4 or later only: + if test -z "${MACOSX_DEPLOYMENT_TARGET}" -o \ + `echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F. '{print [$]2}'` -lt 4; then + LDFLAGS="$LDFLAGS -prebind" + fi + LDFLAGS="$LDFLAGS -headerpad_max_install_names" AC_CACHE_CHECK([if ld accepts -search_paths_first flag], tcl_cv_ld_search_paths_first, [ hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-search_paths_first" @@ -1438,12 +1457,18 @@ dnl AC_CHECK_TOOL(AR, ar) AC_MSG_RESULT([$tcl_corefoundation]) if test $tcl_corefoundation = yes; then AC_CACHE_CHECK([for CoreFoundation.framework], tcl_cv_lib_corefoundation, [ - hold_libs=$LIBS + hold_libs=$LIBS; hold_cflags=$CFLAGS + if test $do64bit_ok = no ; then + # remove -arch ppc64 from CFLAGS while testing presence + # of CF, otherwise all archs will have CF disabled. + # CF for ppc64 is disabled in tclUnixPort.h instead. + CFLAGS="`echo "$CFLAGS" | sed -e 's/-arch ppc64/-arch ppc/'`" + fi LIBS="$LIBS -framework CoreFoundation" AC_TRY_LINK([#include ], [CFBundleRef b = CFBundleGetMainBundle();], tcl_cv_lib_corefoundation=yes, tcl_cv_lib_corefoundation=no) - LIBS=$hold_libs]) + LIBS=$hold_libs; CFLAGS=$hold_cflags]) if test $tcl_cv_lib_corefoundation = yes; then LIBS="$LIBS -framework CoreFoundation" AC_DEFINE(HAVE_COREFOUNDATION) @@ -1451,14 +1476,17 @@ dnl AC_CHECK_TOOL(AR, ar) fi AC_CHECK_HEADERS(libkern/OSAtomic.h) AC_CHECK_FUNCS(OSSpinLockLock) + AC_CHECK_HEADERS(copyfile.h) + AC_CHECK_FUNCS(copyfile) AC_DEFINE(MAC_OSX_TCL) AC_DEFINE(USE_VFORK) AC_DEFINE(TCL_DEFAULT_ENCODING,"utf-8") AC_DEFINE(TCL_LOAD_FROM_MEMORY) + AC_DEFINE(TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING) # prior to Darwin 7, realpath is not threadsafe, so don't # use it when threads are enabled, c.f. bug # 711232: AC_CHECK_FUNC(realpath) - if test "$ac_cv_func_realpath" = yes -a "${TCL_THREADS}" = 1 \ + if test $ac_cv_func_realpath = yes -a "${TCL_THREADS}" = 1 \ -a `uname -r | awk -F. '{print [$]1}'` -lt 7 ; then ac_cv_func_realpath=no fi @@ -2165,9 +2193,7 @@ closedir(d); AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H)]) # OS/390 lacks sys/param.h (and doesn't need it, by chance). - AC_HAVE_HEADERS(unistd.h sys/param.h) - ]) #-------------------------------------------------------------------- @@ -2255,6 +2281,7 @@ AC_DEFUN(SC_PATH_X, [ XLIBSW=-lX11 fi ]) + #-------------------------------------------------------------------- # SC_BLOCKING_STYLE # @@ -2371,7 +2398,7 @@ AC_DEFUN(SC_TIME_HANDLER, [ # (like convex) have timezone functions, etc. # AC_MSG_CHECKING([long timezone variable]) - AC_CACHE_VAL(tcl_cv_var_timezone, + AC_CACHE_VAL(tcl_cv_timezone_long, AC_TRY_COMPILE([#include ], [extern long timezone; timezone += 1; @@ -2553,6 +2580,7 @@ AC_DEFUN(SC_TCL_LINK_LIBS, [ # Might define the following vars: # _ISOC99_SOURCE # _LARGEFILE64_SOURCE +# _LARGEFILE_SOURCE64 # #-------------------------------------------------------------------- @@ -2575,6 +2603,8 @@ AC_DEFUN(SC_TCL_EARLY_FLAGS,[ [char *p = (char *)strtoll; char *q = (char *)strtoull;]) SC_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include ], [struct stat64 buf; int i = stat64("/", &buf);]) + SC_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include ], + [char *p = (char *)open64;]) if test "x${tcl_flags}" = "x" ; then AC_MSG_RESULT(none) else @@ -2652,7 +2682,7 @@ AC_DEFUN(SC_TCL_64BIT_FLAGS, [ if test "x${tcl_cv_type_off64_t}" = "xyes" && \ test "x${ac_cv_func_lseek64}" = "xyes" && \ test "x${ac_cv_func_open64}" = "xyes" ; then - AC_DEFINE(HAVE_TYPE_OFF64_T, 1, [Is off64_t in ?]) + AC_DEFINE(HAVE_TYPE_OFF64_T) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) diff --git a/xlib/xgc.c b/xlib/xgc.c index 7f6edff..17a86c7 100644 --- a/xlib/xgc.c +++ b/xlib/xgc.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: xgc.c,v 1.6.2.1 2005/03/25 04:02:41 wolfsuit Exp $ + * RCS: @(#) $Id: xgc.c,v 1.6.2.2 2005/11/27 02:44:26 das Exp $ */ #include @@ -398,6 +398,7 @@ XSetClipMask(display, gc, pixmap) * Some additional dummy functions (hopefully implemented soon). */ +#if 0 Cursor XCreateFontCursor(display, shape) Display* display; @@ -417,6 +418,7 @@ XDrawImageString(display, d, gc, x, y, string, length) int length; { } +#endif void XDrawPoint(display, d, gc, x, y) @@ -457,6 +459,7 @@ XDrawSegments(display, d, gc, segments, nsegments) } #endif +#if 0 char * XFetchBuffer(display, nbytes_return, buffer) Display* display; @@ -504,7 +507,8 @@ XPutImage(display, d, gc, image, src_x, src_y, dest_x, dest_y, width, height) { } -void XQueryTextExtents(display, font_ID, string, nchars, direction_return, +void +XQueryTextExtents(display, font_ID, string, nchars, direction_return, font_ascent_return, font_descent_return, overall_return) Display* display; XID font_ID; @@ -549,3 +553,4 @@ XUndefineCursor(display, w) Window w; { } +#endif -- cgit v0.12