1#
2# This file is a Makefile for Tk.  If it has the name "Makefile.in"
3# then it is a template for a Makefile;  to generate the actual Makefile,
4# run "./configure", which is a configuration script generated by the
5# "autoconf" program (constructs like "@foo@" will get replaced in the
6# actual Makefile.
7#
8# RCS: @(#) $Id: Makefile.in,v 1.87.2.21 2007/08/07 05:07:49 das Exp $
9
10# Current Tk version;  used in various names.
11
12TCLVERSION		= @TCL_VERSION@
13TCLPATCHL		= @TCL_PATCH_LEVEL@
14VERSION 		= @TK_VERSION@
15MAJOR_VERSION		= @TK_MAJOR_VERSION@
16MINOR_VERSION		= @TK_MINOR_VERSION@
17PATCH_LEVEL		= @TK_PATCH_LEVEL@
18LOCALES			= @LOCALES@
19
20#----------------------------------------------------------------
21# Things you can change to personalize the Makefile for your own
22# site (you can make these changes in either Makefile.in or
23# Makefile, but changes to Makefile will get lost if you re-run
24# the configuration script).
25#----------------------------------------------------------------
26
27# Default top-level directories in which to install architecture-
28# specific files (exec_prefix) and machine-independent files such
29# as scripts (prefix).  The values specified here may be overridden
30# at configure-time with the --exec-prefix and --prefix options
31# to the "configure" script.  The *dir vars are standard configure
32# substitutions that are based off prefix and exec_prefix.
33
34prefix			= @prefix@
35exec_prefix		= @exec_prefix@
36bindir			= @bindir@
37libdir			= @libdir@
38includedir		= @includedir@
39mandir			= @mandir@
40
41# The following definition can be set to non-null for special systems
42# like AFS with replication.  It allows the pathnames used for installation
43# to be different than those used for actually reference files at
44# run-time.  INSTALL_ROOT is prepended to $prefix and $exec_prefix
45# when installing files.
46INSTALL_ROOT		= $(DESTDIR)
47
48# Directory from which applications will reference the library of Tcl
49# scripts (note: you can set the TK_LIBRARY environment variable at
50# run-time to override the compiled-in location):
51TK_LIBRARY		= @TK_LIBRARY@
52
53# Path to use at runtime to refer to LIB_INSTALL_DIR:
54LIB_RUNTIME_DIR		= $(libdir)
55
56# Directory in which to install the program wish:
57BIN_INSTALL_DIR		= $(INSTALL_ROOT)$(bindir)
58
59# Directory in which to install the .a or .so binary for the Tk library:
60LIB_INSTALL_DIR		= $(INSTALL_ROOT)$(libdir)
61
62# Path name to use when installing library scripts.
63SCRIPT_INSTALL_DIR	= $(INSTALL_ROOT)$(TK_LIBRARY)
64
65# Directory in which to install the include file tk.h:
66INCLUDE_INSTALL_DIR	= $(INSTALL_ROOT)$(includedir)
67
68# Path to the private tk header dir:
69PRIVATE_INCLUDE_DIR	= @PRIVATE_INCLUDE_DIR@
70
71# Directory in which to (optionally) install the private tk headers:
72PRIVATE_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(PRIVATE_INCLUDE_DIR)
73
74# Top-level directory in which to install manual entries:
75MAN_INSTALL_DIR		= $(INSTALL_ROOT)$(mandir)
76
77# Directory in which to install manual entry for wish:
78MAN1_INSTALL_DIR	= $(MAN_INSTALL_DIR)/man1
79
80# Directory in which to install manual entries for Tk's C library
81# procedures:
82MAN3_INSTALL_DIR	= $(MAN_INSTALL_DIR)/man3
83
84# Directory in which to install manual entries for the built-in
85# Tcl commands implemented by Tk:
86MANN_INSTALL_DIR	= $(MAN_INSTALL_DIR)/mann
87
88# Path to the html documentation dir:
89HTML_DIR		= @HTML_DIR@
90
91# Directory in which to install html documentation:
92HTML_INSTALL_DIR	= $(INSTALL_ROOT)$(HTML_DIR)
93
94# The directory containing the Tcl sources and headers appropriate
95# for this version of Tk ("srcdir" will be replaced or has already
96# been replaced by the configure script):
97TCL_GENERIC_DIR		= @TCL_SRC_DIR@/generic
98
99# The directory containing the Tcl library archive file appropriate
100# for this version of Tk:
101TCL_BIN_DIR		= @TCL_BIN_DIR@
102
103# The linker flags needed to link in the Tcl library (ex: -ltcl8.2)
104TCL_LIB_FLAG		= @TCL_LIB_FLAG@
105
106# Libraries built with optimization switches have this additional extension
107TK_DBGX			= @TK_DBGX@
108
109# Flag, 1: we're building a shared lib, 0 we're not
110TK_SHARED_BUILD		= @TK_SHARED_BUILD@
111
112# Subdirectory of $(libdir) containing the pkgIndex.tcl file for loadable Tk
113TK_PKG_DIR		= @TK_PKG_DIR@
114
115# Directory in which to install the pkgIndex.tcl file for loadable Tk
116PKG_INSTALL_DIR		= $(LIB_INSTALL_DIR)/$(TK_PKG_DIR)
117
118# Package index file for loadable Tk
119PKG_INDEX		= $(PKG_INSTALL_DIR)/pkgIndex.tcl
120
121# warning flags
122CFLAGS_WARNING		= @CFLAGS_WARNING@
123
124# The default switches for optimization or debugging
125CFLAGS_DEBUG		= @CFLAGS_DEBUG@
126CFLAGS_OPTIMIZE		= @CFLAGS_OPTIMIZE@
127
128# To change the compiler switches, for example to change from optimization to
129# debugging symbols, change the following line:
130#CFLAGS			= $(CFLAGS_DEBUG)
131#CFLAGS			= $(CFLAGS_OPTIMIZE)
132#CFLAGS			= $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE)
133CFLAGS			= @CFLAGS_DEFAULT@ @CFLAGS@
134
135# Flags to pass to the linker
136LDFLAGS_DEBUG		= @LDFLAGS_DEBUG@
137LDFLAGS_OPTIMIZE	= @LDFLAGS_OPTIMIZE@
138LDFLAGS			= @LDFLAGS_DEFAULT@ @LDFLAGS@
139
140# A "-I" switch that can be used when compiling to make all of the
141# X11 include files accessible (the configure script will try to
142# set this value, and will cause it to be an empty string if the
143# include files are accessible via /usr/include).
144X11_INCLUDES		= @XINCLUDES@
145
146AQUA_INCLUDES		= -I$(MAC_OSX_DIR) -I$(XLIB_DIR)
147
148# Linker switch(es) to use to link with the X11 library archive (the
149# configure script will try to set this value automatically, but you
150# can override it).
151X11_LIB_SWITCHES	= @XLIBSW@
152
153
154# To turn off the security checks that disallow incoming sends when
155# the X server appears to be insecure, reverse the comments on the
156# following lines:
157SECURITY_FLAGS		=
158#SECURITY_FLAGS		= -DTK_NO_SECURITY
159
160# To disable ANSI-C procedure prototypes reverse the comment characters
161# on the following lines:
162PROTO_FLAGS		=
163#PROTO_FLAGS		= -DNO_PROTOTYPE
164
165# To enable memory debugging reverse the comment characters on the following
166# lines or call configure with --enable-symbols=mem
167# Warning:  if you enable memory debugging, you must do it *everywhere*,
168# including all the code that calls Tcl, and you must use ckalloc and
169# ckfree everywhere instead of malloc and free.
170MEM_DEBUG_FLAGS		=
171#MEM_DEBUG_FLAGS	= -DTCL_MEM_DEBUG
172
173# If your X server is X11R4 or earlier, then you may wish to reverse
174# the comment characters on the following two lines.  This will enable
175# extra code to speed up XStringToKeysym.  In X11R5 and later releases
176# XStringToKeysym is plenty fast, so you needn't define REDO_KEYSYM_LOOKUP.
177KEYSYM_FLAGS		=
178#KEYSYM_FLAGS		= -DREDO_KEYSYM_LOOKUP
179
180# Tk does not used deprecated Tcl constructs so it should
181# compile fine with -DTCL_NO_DEPRECATED. To remove its own
182# set of deprecated code uncomment the second line.
183NO_DEPRECATED_FLAGS	= -DTCL_NO_DEPRECATED
184#NO_DEPRECATED_FLAGS	= -DTCL_NO_DEPRECATED -DTK_NO_DEPRECATED
185
186# Some versions of make, like SGI's, use the following variable to
187# determine which shell to use for executing commands:
188SHELL			= /bin/sh
189
190# BUILD_TCLSH is the fully qualified path name of the tclsh shell
191# in the Tcl build directory. Test that need to be run in the
192# version of tclsh that we are building against should use this
193# path. Targets that need an installed tclsh should not depend
194# on this variable.
195
196BUILD_TCLSH		= @BUILD_TCLSH@
197
198# TCL_EXE is the name of a tclsh executable that is available *BEFORE*
199# running make for the first time. Certain build targets (make genstubs)
200# need it to be available on the PATH. This executable should *NOT* be
201# required just to do a normal build although it can be required to run
202# make dist. This variable is set to "" if no tclsh is available.
203TCL_EXE			= @TCLSH_PROG@
204
205# Tk used to let the configure script choose which program to use
206# for installing, but there are just too many different versions of
207# "install" around;  better to use the install-sh script that comes
208# with the distribution, which is slower but guaranteed to work.
209
210INSTALL_STRIP_PROGRAM   = -s
211INSTALL_STRIP_LIBRARY   = -S -S
212
213INSTALL			= @srcdir@/install-sh -c
214INSTALL_PROGRAM		= ${INSTALL}
215INSTALL_LIBRARY		= ${INSTALL}
216INSTALL_DATA		= ${INSTALL} -m 644
217
218# The symbol below provides support for dynamic loading and shared
219# libraries.  See configure.in for a description of what it means.
220# The value of the symbol is normally set by the configure script.
221
222SHLIB_CFLAGS		= @SHLIB_CFLAGS@
223
224# To enable support for stubs in Tcl.
225STUB_LIB_FILE		= @TK_STUB_LIB_FILE@
226
227TK_STUB_LIB_FILE	= @TK_STUB_LIB_FILE@
228#TK_STUB_LIB_FILE	= libtkstub.a
229
230# Generic stub lib name used in rules that apply to tcl and tk
231STUB_LIB_FILE		= ${TK_STUB_LIB_FILE}
232
233TK_STUB_LIB_FLAG	= @TK_STUB_LIB_FLAG@
234#TK_STUB_LIB_FLAG	= -ltkstub
235
236TK_LIB_FILE		= @TK_LIB_FILE@
237#TK_LIB_FILE		= libtk.a
238
239# Generic lib name used in rules that apply to tcl and tk
240LIB_FILE		= ${TK_LIB_FILE}
241
242TK_LIB_FLAG		= @TK_LIB_FLAG@
243#TK_LIB_FLAG		= -ltk
244
245TCL_LIB_SPEC		= @TCL_LIB_SPEC@
246TCL_STUB_LIB_SPEC	= @TCL_STUB_LIB_SPEC@
247TCL_STUB_LIB_FLAG	= @TCL_STUB_LIB_FLAG@
248TCL_STUB_LIB_FILE	= @TCL_STUB_LIB_FILE@
249TK_EXP_FILE		= @TK_EXP_FILE@
250TK_BUILD_EXP_FILE	= @TK_BUILD_EXP_FILE@
251
252TCL_STUB_FLAGS		= @TCL_STUB_FLAGS@
253
254# Libraries to use when linking.  This definition is determined by the
255# configure script.
256LIBS = @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@
257WISH_LIBS = $(TCL_LIB_SPEC) @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ @EXTRA_WISH_LIBS@
258
259# The symbols below provide support for dynamic loading and shared
260# libraries.  See configure.in for a description of what the
261# symbols mean.  The values of the symbols are normally set by the
262# configure script.  You shouldn't normally need to modify any of
263# these definitions by hand.
264
265STLIB_LD		= @STLIB_LD@
266SHLIB_LD		= @SHLIB_LD@
267SHLIB_LD_LIBS		= @SHLIB_LD_LIBS@
268TK_SHLIB_LD_EXTRAS	= @TK_SHLIB_LD_EXTRAS@
269
270# Additional search flags needed to find the various shared libraries
271# at run-time.  The first symbol is for use when creating a binary
272# with cc, and the second is for use when running ld directly.
273CC_SEARCH_FLAGS	= @CC_SEARCH_FLAGS@
274LD_SEARCH_FLAGS	= @LD_SEARCH_FLAGS@
275
276# support for embedded libraries on Darwin / Mac OS X
277DYLIB_INSTALL_DIR	= ${LIB_RUNTIME_DIR}
278
279# support for building the Aqua resource file
280TK_RSRC_FILE		= @TK_RSRC_FILE@
281WISH_RSRC_FILE		= @WISH_RSRC_FILE@
282REZ			= @REZ@
283REZ_SWITCHES = @REZ_FLAGS@ -i $(GENERIC_DIR) -i $(TCL_GENERIC_DIR)
284
285#----------------------------------------------------------------
286# The information below is modified by the configure script when
287# Makefile is generated from Makefile.in.  You shouldn't normally
288# modify any of this stuff by hand.
289#----------------------------------------------------------------
290
291AC_FLAGS		= @DEFS@
292AR			= @AR@
293RANLIB			= @RANLIB@
294SRC_DIR			= @srcdir@
295TOP_DIR			= $(SRC_DIR)/..
296GENERIC_DIR		= $(TOP_DIR)/generic
297UNIX_DIR		= $(SRC_DIR)
298BMAP_DIR		= $(TOP_DIR)/bitmaps
299TOOL_DIR		= @TCL_SRC_DIR@/tools
300MAC_OSX_DIR		= $(TOP_DIR)/macosx
301XLIB_DIR		= $(TOP_DIR)/xlib
302
303#----------------------------------------------------------------
304# The information below should be usable as is.  The configure
305# script won't modify it and you shouldn't need to modify it
306# either.
307#----------------------------------------------------------------
308
309# Flags to be passed to installManPage to control whether the manpages
310# should be compressed and linked with softlinks
311MAN_FLAGS               = @MAN_FLAGS@
312
313CC			= @CC@
314
315CC_SWITCHES_NO_STUBS = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
316-I${UNIX_DIR} -I${GENERIC_DIR} -I${BMAP_DIR} -I${TCL_GENERIC_DIR} \
317${@TK_WINDOWINGSYSTEM@_INCLUDES} ${AC_FLAGS} ${PROTO_FLAGS} ${SECURITY_FLAGS} \
318${MEM_DEBUG_FLAGS} ${KEYSYM_FLAGS} ${NO_DEPRECATED_FLAGS} @EXTRA_CC_SWITCHES@
319
320CC_SWITCHES = $(CC_SWITCHES_NO_STUBS) ${TCL_STUB_FLAGS} 
321
322APP_CC_SWITCHES = $(CC_SWITCHES_NO_STUBS) @EXTRA_APP_CC_SWITCHES@
323
324DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
325-I${BMAP_DIR} \
326-I${TCL_GENERIC_DIR} ${@TK_WINDOWINGSYSTEM@_INCLUDES} \
327${AC_FLAGS} ${PROTO_FLAGS} ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} \
328${KEYSYM_FLAGS} @EXTRA_CC_SWITCHES@
329
330WISH_OBJS = tkAppInit.o
331
332TKTEST_OBJS = tkTestInit.o tkTest.o tkSquare.o
333
334WIDG_OBJS = tkButton.o tkEntry.o tkFrame.o tkListbox.o \
335	tkMenu.o tkMenubutton.o tkMenuDraw.o tkMessage.o \
336	tkPanedWindow.o tkScale.o tkScrollbar.o
337
338CANV_OBJS = tkCanvas.o tkCanvArc.o tkCanvBmap.o tkCanvImg.o \
339	tkCanvLine.o tkCanvPoly.o tkCanvPs.o tkCanvText.o \
340	tkCanvUtil.o tkCanvWind.o tkRectOval.o tkTrig.o
341
342IMAGE_OBJS = tkImage.o tkImgBmap.o tkImgGIF.o tkImgPPM.o tkImgPhoto.o
343
344TEXT_OBJS = tkText.o tkTextBTree.o tkTextDisp.o tkTextImage.o tkTextIndex.o \
345	tkTextMark.o tkTextTag.o tkTextWind.o
346
347GENERIC_OBJS = tk3d.o tkArgv.o tkAtom.o tkBind.o tkBitmap.o tkClipboard.o \
348	tkCmds.o tkColor.o tkConfig.o tkConsole.o tkCursor.o tkError.o \
349	tkEvent.o tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o tkGrab.o \
350	tkGrid.o tkMain.o tkObj.o tkOldConfig.o tkOption.o tkPack.o tkPlace.o \
351	tkSelect.o tkStyle.o tkUndo.o tkUtil.o tkVisual.o tkWindow.o
352
353STUB_OBJS = tkStubInit.o tkStubLib.o
354
355STUB_LIB_OBJS = tkStubLib.o tkStubImg.o
356
357X11_OBJS = tkUnix.o tkUnix3d.o tkUnixButton.o tkUnixColor.o tkUnixConfig.o \
358	tkUnixCursor.o tkUnixDraw.o tkUnixEmbed.o tkUnixEvent.o \
359	tkUnixFocus.o tkUnixFont.o tkUnixInit.o tkUnixKey.o tkUnixMenu.o \
360	tkUnixMenubu.o tkUnixScale.o tkUnixScrlbr.o tkUnixSelect.o \
361	tkUnixSend.o tkUnixWm.o tkUnixXId.o
362
363AQUA_OBJS = tkMacOSXBitmap.o tkMacOSXButton.o tkMacOSXClipboard.o \
364	tkMacOSXColor.o tkMacOSXConfig.o tkMacOSXCursor.o tkMacOSXDebug.o \
365	tkMacOSXDialog.o tkMacOSXDraw.o tkMacOSXEmbed.o tkMacOSXEntry.o \
366	tkMacOSXEvent.o tkMacOSXFont.o tkMacOSXHLEvents.o tkMacOSXInit.o \
367	tkMacOSXKeyboard.o tkMacOSXKeyEvent.o tkMacOSXMenu.o \
368	tkMacOSXMenubutton.o tkMacOSXMenus.o tkMacOSXMouseEvent.o \
369	tkMacOSXNotify.o tkMacOSXRegion.o tkMacOSXScrlbr.o tkMacOSXSend.o \
370	tkMacOSXSubwindows.o tkMacOSXTest.o tkMacOSXWindowEvent.o \
371	tkMacOSXWm.o tkMacOSXXStubs.o tkMacOSXCarbonEvents.o \
372	tkFileFilter.o tkMacWinMenu.o tkPointer.o tkUnix3d.o tkUnixScale.o \
373	xcolors.o xdraw.o xgc.o ximage.o xutil.o
374
375OBJS =  $(GENERIC_OBJS) $(WIDG_OBJS) $(CANV_OBJS) $(IMAGE_OBJS) $(TEXT_OBJS) \
376	$(STUB_OBJS) $(@TK_WINDOWINGSYSTEM@_OBJS) @PLAT_OBJS@
377
378TK_DECLS = \
379	$(GENERIC_DIR)/tk.decls \
380	$(GENERIC_DIR)/tkInt.decls
381
382GENERIC_SRCS = \
383	$(GENERIC_DIR)/tk3d.c $(GENERIC_DIR)/tkArgv.c \
384	$(GENERIC_DIR)/tkAtom.c $(GENERIC_DIR)/tkBind.c	\
385	$(GENERIC_DIR)/tkBitmap.c $(GENERIC_DIR)/tkClipboard.c \
386	$(GENERIC_DIR)/tkCmds.c $(GENERIC_DIR)/tkColor.c \
387	$(GENERIC_DIR)/tkConfig.c $(GENERIC_DIR)/tkCursor.c \
388	$(GENERIC_DIR)/tkError.c $(GENERIC_DIR)/tkEvent.c \
389	$(GENERIC_DIR)/tkFocus.c $(GENERIC_DIR)/tkFont.c \
390	$(GENERIC_DIR)/tkGet.c $(GENERIC_DIR)/tkGC.c \
391	$(GENERIC_DIR)/tkGeometry.c $(GENERIC_DIR)/tkGrab.c \
392	$(GENERIC_DIR)/tkGrid.c $(GENERIC_DIR)/tkConsole.c \
393	$(GENERIC_DIR)/tkMain.c $(GENERIC_DIR)/tkOption.c \
394	$(GENERIC_DIR)/tkPack.c $(GENERIC_DIR)/tkPlace.c \
395	$(GENERIC_DIR)/tkSelect.c $(GENERIC_DIR)/tkStyle.c \
396	$(GENERIC_DIR)/tkUndo.c $(GENERIC_DIR)/tkUtil.c \
397	$(GENERIC_DIR)/tkVisual.c $(GENERIC_DIR)/tkWindow.c \
398	$(GENERIC_DIR)/tkButton.c $(GENERIC_DIR)/tkObj.c \
399	$(GENERIC_DIR)/tkEntry.c $(GENERIC_DIR)/tkFrame.c \
400	$(GENERIC_DIR)/tkListbox.c $(GENERIC_DIR)/tkMenu.c \
401	$(GENERIC_DIR)/tkMenubutton.c $(GENERIC_DIR)/tkMenuDraw.c \
402	$(GENERIC_DIR)/tkMessage.c $(GENERIC_DIR)/tkPanedWindow.c \
403	$(GENERIC_DIR)/tkScale.c $(GENERIC_DIR)/tkScrollbar.c \
404	$(GENERIC_DIR)/tkCanvas.c $(GENERIC_DIR)/tkCanvArc.c \
405	$(GENERIC_DIR)/tkCanvBmap.c $(GENERIC_DIR)/tkCanvImg.c \
406	$(GENERIC_DIR)/tkCanvLine.c $(GENERIC_DIR)/tkCanvPoly.c \
407	$(GENERIC_DIR)/tkCanvPs.c $(GENERIC_DIR)/tkCanvText.c \
408	$(GENERIC_DIR)/tkCanvUtil.c \
409	$(GENERIC_DIR)/tkCanvWind.c $(GENERIC_DIR)/tkRectOval.c \
410	$(GENERIC_DIR)/tkTrig.c $(GENERIC_DIR)/tkImage.c \
411	$(GENERIC_DIR)/tkImgBmap.c $(GENERIC_DIR)/tkImgGIF.c \
412	$(GENERIC_DIR)/tkImgPPM.c \
413	$(GENERIC_DIR)/tkImgPhoto.c $(GENERIC_DIR)/tkText.c \
414	$(GENERIC_DIR)/tkTextBTree.c $(GENERIC_DIR)/tkTextDisp.c \
415	$(GENERIC_DIR)/tkTextImage.c \
416	$(GENERIC_DIR)/tkTextIndex.c $(GENERIC_DIR)/tkTextMark.c \
417	$(GENERIC_DIR)/tkTextTag.c $(GENERIC_DIR)/tkTextWind.c \
418	$(GENERIC_DIR)/tkOldConfig.c \
419	$(GENERIC_DIR)/tkSquare.c $(GENERIC_DIR)/tkTest.c \
420	$(GENERIC_DIR)/tkStubInit.c $(GENERIC_DIR)/tkStubLib.c
421
422X11_SRCS = \
423	$(UNIX_DIR)/tkAppInit.c $(UNIX_DIR)/tkUnix.c \
424	$(UNIX_DIR)/tkUnix3d.c \
425	$(UNIX_DIR)/tkUnixButton.c $(UNIX_DIR)/tkUnixColor.c \
426	$(UNIX_DIR)/tkUnixConfig.c \
427	$(UNIX_DIR)/tkUnixCursor.c \
428	$(UNIX_DIR)/tkUnixDraw.c \
429	$(UNIX_DIR)/tkUnixEmbed.c $(UNIX_DIR)/tkUnixEvent.c \
430	$(UNIX_DIR)/tkUnixFocus.c \
431	$(UNIX_DIR)/tkUnixFont.c $(UNIX_DIR)/tkUnixInit.c \
432	$(UNIX_DIR)/tkUnixKey.c \
433	$(UNIX_DIR)/tkUnixMenu.c $(UNIX_DIR)/tkUnixMenubu.c \
434	$(UNIX_DIR)/tkUnixScale.c $(UNIX_DIR)/tkUnixScrlbr.c \
435	$(UNIX_DIR)/tkUnixSelect.c \
436	$(UNIX_DIR)/tkUnixSend.c $(UNIX_DIR)/tkUnixWm.c \
437	$(UNIX_DIR)/tkUnixXId.c
438
439AQUA_SRCS = \
440	$(MAC_OSX_DIR)/tkMacOSXBitmap.c $(MAC_OSX_DIR)/tkMacOSXButton.c \
441	$(MAC_OSX_DIR)/tkMacOSXClipboard.c $(MAC_OSX_DIR)/tkMacOSXColor.c \
442	$(MAC_OSX_DIR)/tkMacOSXConfig.c $(MAC_OSX_DIR)/tkMacOSXCursor.c \
443	$(MAC_OSX_DIR)/tkMacOSXDebug.c $(MAC_OSX_DIR)/tkMacOSXDialog.c \
444	$(MAC_OSX_DIR)/tkMacOSXDraw.c $(MAC_OSX_DIR)/tkMacOSXEmbed.c \
445	$(MAC_OSX_DIR)/tkMacOSXEntry.c $(MAC_OSX_DIR)/tkMacOSXEvent.c \
446	$(MAC_OSX_DIR)/tkMacOSXFont.c $(MAC_OSX_DIR)/tkMacOSXHLEvents.c \
447	$(MAC_OSX_DIR)/tkMacOSXInit.c $(MAC_OSX_DIR)/tkMacOSXKeyboard.c \
448	$(MAC_OSX_DIR)/tkMacOSXKeyEvent.c $(MAC_OSX_DIR)/tkMacOSXMenu.c \
449	$(MAC_OSX_DIR)/tkMacOSXMenubutton.c $(MAC_OSX_DIR)/tkMacOSXMenus.c \
450	$(MAC_OSX_DIR)/tkMacOSXMouseEvent.c $(MAC_OSX_DIR)/tkMacOSXNotify.c \
451	$(MAC_OSX_DIR)/tkMacOSXRegion.c $(MAC_OSX_DIR)/tkMacOSXScrlbr.c \
452	$(MAC_OSX_DIR)/tkMacOSXSend.c $(MAC_OSX_DIR)/tkMacOSXSubwindows.c \
453	$(MAC_OSX_DIR)/tkMacOSXTest.c $(MAC_OSX_DIR)/tkMacOSXWindowEvent.c \
454	$(MAC_OSX_DIR)/tkMacOSXWm.c $(MAC_OSX_DIR)/tkMacOSXXStubs.c \
455	$(MAC_OSX_DIR)/tkMacOSXCarbonEvents.c \
456	$(GENERIC_DIR)/tkFileFilter.c $(GENERIC_DIR)/tkMacWinMenu.c \
457	$(GENERIC_DIR)/tkPointer.c $(UNIX_DIR)/tkUnix3d.c \
458	$(UNIX_DIR)/tkUnixScale.c $(XLIB_DIR)/xcolors.c $(XLIB_DIR)/xdraw.c \
459	$(XLIB_DIR)/xgc.c $(XLIB_DIR)/ximage.c $(XLIB_DIR)/xutil.c
460
461SRCS = $(GENERIC_SRCS) $(@TK_WINDOWINGSYSTEM@_SRCS) @PLAT_SRCS@
462
463AQUA_RESOURCES = \
464	$(MAC_OSX_DIR)/tkAboutDlg.r $(MAC_OSX_DIR)/tkMacOSXCursors.r \
465	$(MAC_OSX_DIR)/tkMacOSXXCursors.r
466
467AQUA_WISH_RESOURCES = $(MAC_OSX_DIR)/tkMacOSXAETE.r
468
469AQUA_HDRS = $(MAC_OSX_DIR)/tkMacOSX.h $(GENERIC_DIR)/tkIntXlibDecls.h
470
471AQUA_XLIB_HDRS = $(XLIB_DIR)/X11/*.h $(XLIB_DIR)/xbytes.h
472
473AQUA_PRIVATE_HDRS = $(MAC_OSX_DIR)/tkMacOSXPort.h $(MAC_OSX_DIR)/tkMacOSXInt.h
474
475X11_PRIVATE_HDRS = $(UNIX_DIR)/tkUnixPort.h $(UNIX_DIR)/tkUnixInt.h
476
477HDRS = bltList.h \
478	default.h ks_names.h tkPatch.h tk.h tkButton.h tkCanvas.h tkInt.h  \
479	tkPort.h tkScrollbar.h tkText.h
480
481DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget
482
483all: binaries libraries doc
484
485binaries: ${LIB_FILE} ${STUB_LIB_FILE} wish
486
487libraries:
488
489$(TOP_DIR)/doc/man.macros:
490	chmod +x $(UNIX_DIR)/install-sh
491	$(INSTALL_DATA) @TCL_SRC_DIR@/doc/man.macros $(TOP_DIR)/doc/man.macros
492
493doc: $(TOP_DIR)/doc/man.macros
494
495# The following target is configured by autoconf to generate either
496# a shared library or non-shared library for Tk.
497${LIB_FILE}: ${OBJS} ${STUB_LIB_FILE} @LIB_RSRC_FILE@
498	rm -f $@
499	@MAKE_LIB@
500
501${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
502	rm -f $@
503	@MAKE_STUB_LIB@
504
505# Build Aqua resource files
506${TK_RSRC_FILE}: $(AQUA_RESOURCES)
507	rm -f $@
508	if test "$(REZ)" != ""; then \
509	    $(REZ) -o $@ $(REZ_SWITCHES) $(AQUA_RESOURCES); fi
510
511${WISH_RSRC_FILE}: $(AQUA_WISH_RESOURCES)
512	rm -f $@
513	if test "$(REZ)" != ""; then \
514	    $(REZ) -o $@ $(REZ_SWITCHES) $(AQUA_WISH_RESOURCES); fi
515
516# Make target which outputs the list of the .o contained in the Tk lib
517# usefull to build a single big shared library containing Tcl/Tk and other
518# extensions.  used for the Tcl Plugin.  -- dl
519tkLibObjs:
520	@echo ${OBJS}
521# This targets actually build the objects needed for the lib in the above
522# case
523objs: ${OBJS}
524
525
526wish: $(WISH_OBJS) $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) @APP_RSRC_FILE@
527	${CC} ${CFLAGS} ${LDFLAGS} $(WISH_OBJS) @TK_BUILD_LIB_SPEC@ \
528		$(WISH_LIBS) $(CC_SEARCH_FLAGS) -o wish
529
530# Resetting the LIB_RUNTIME_DIR below is required so that
531# the generated tktest executable gets the build directory
532# burned into its ld search path. This keeps tktest from
533# picking up an already installed version of the Tcl or
534# Tk shared libraries.
535
536tktest: $(TKTEST_OBJS) $(TK_LIB_FILE)
537	$(MAKE) tktest-real LIB_RUNTIME_DIR=`pwd`:$(TCL_BIN_DIR)
538
539tktest-real:
540	${CC} ${CFLAGS} ${LDFLAGS} $(TKTEST_OBJS) @TK_BUILD_LIB_SPEC@ \
541		$(WISH_LIBS) $(CC_SEARCH_FLAGS) -o tktest
542
543# FIXME: This xttest rule seems to be broken in a number of ways.
544# It should use CC_SEARCH_FLAGS, it does not include the shared
545# lib location logic from tktest, and it is not clear where this
546# test.o object file comes from.
547xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE)
548	${CC} ${CFLAGS} ${LDFLAGS} test.o tkTest.o tkSquare.o \
549		@TK_BUILD_LIB_SPEC@ \
550		$(WISH_LIBS) $(LD_SEARCH_FLAGS) -lXt -o xttest
551
552# Note, in the target below TCL_LIBRARY needs to be set or else
553# "make test" won't work in the case where the compilation directory
554# isn't the same as the source directory.
555# Specifying TESTFLAGS on the command line is the standard way to pass
556# args to tcltest, ie:
557#	% make test TESTFLAGS="-verbose bps -file fileName.test"
558
559test: tktest
560	@LD_LIBRARY_PATH_VAR@=`pwd`:${TCL_BIN_DIR}:$${@LD_LIBRARY_PATH_VAR@}; \
561	export @LD_LIBRARY_PATH_VAR@; \
562	TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
563	TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
564	./tktest $(TOP_DIR)/tests/all.tcl -geometry +0+0 \
565	$(TESTFLAGS) $(TCLTESTARGS)
566
567# Tests with different languages
568testlang: tktest
569	@LD_LIBRARY_PATH_VAR@=`pwd`:${TCL_BIN_DIR}:$${@LD_LIBRARY_PATH_VAR@}; \
570	export @LD_LIBRARY_PATH_VAR@; \
571	TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
572	TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
573	for lang in $(LOCALES) ;  \
574	do \
575	LANG=$(lang); export LANG; \
576	./tktest $(TOP_DIR)/tests/all.tcl -geometry +0+0 \
577	$(TESTFLAGS) $(TCLTESTARGS); \
578	done
579
580# Useful target to launch a built tktest with the proper path,...
581runtest: tktest
582	@LD_LIBRARY_PATH_VAR@=`pwd`:${TCL_BIN_DIR}:$${@LD_LIBRARY_PATH_VAR@}; \
583	export @LD_LIBRARY_PATH_VAR@; \
584	TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
585	TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
586	./tktest
587
588# This target can be used to run wish from the build directory
589# via `make shell` or `make shell SCRIPT=/tmp/foo.tcl`
590shell: wish
591	@LD_LIBRARY_PATH_VAR@=`pwd`:${TCL_BIN_DIR}:$${@LD_LIBRARY_PATH_VAR@}; \
592	export @LD_LIBRARY_PATH_VAR@; \
593	TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
594	TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
595	./wish $(SCRIPT)
596
597# This target can be used to run wish inside either gdb or insight
598gdb: wish
599	@echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:${TCL_BIN_DIR}:$${@LD_LIBRARY_PATH_VAR@}" > gdb.run
600	@echo "set env TCL_LIBRARY=@TCL_SRC_DIR@/library" >> gdb.run
601	@echo "set env TK_LIBRARY=@TK_SRC_DIR@/library" >> gdb.run
602	gdb ./wish --command=gdb.run
603	rm gdb.run
604
605INSTALL_TARGETS = install-binaries install-libraries install-demos install-doc @EXTRA_INSTALL@
606
607install: $(INSTALL_TARGETS)
608
609install-strip:
610	$(MAKE) $(INSTALL_TARGETS) \
611		INSTALL_PROGRAM="$(INSTALL_PROGRAM) ${INSTALL_STRIP_PROGRAM}" \
612		INSTALL_LIBRARY="$(INSTALL_LIBRARY) ${INSTALL_STRIP_LIBRARY}"
613
614# Note: before running ranlib below, must cd to target directory because
615# some ranlibs write to current directory, and this might not always be
616# possible (e.g. if installing as root).
617
618install-binaries: $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(TK_BUILD_EXP_FILE) wish
619	@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) $(PKG_INSTALL_DIR); \
620	    do \
621		if [ ! -d $$i ] ; then \
622		echo "Making directory $$i"; \
623		mkdir -p $$i; \
624		chmod 755 $$i; \
625		else true; \
626		fi; \
627	    done;
628	@if test ! -x $(SRC_DIR)/install-sh; then \
629	    chmod +x $(SRC_DIR)/install-sh; \
630	    fi
631	@if test "x$(TK_SHARED_BUILD)" = "x1"; then \
632	    echo "Creating package index $(PKG_INDEX)"; \
633	    rm -f $(PKG_INDEX); \
634	    (\
635	    relative=`echo | awk '{ORS=" "; split("$(TK_PKG_DIR)",a,"/"); for (f in a) {print ".."}}'`;\
636	    echo "if {[package vcompare [package provide Tcl] $(TCLVERSION)] != 0} { return }";\
637	    echo "package ifneeded Tk $(MAJOR_VERSION).$(MINOR_VERSION)\
638		[list load [file join \$$dir $${relative}$(TK_LIB_FILE)] Tk]";\
639	    ) > $(PKG_INDEX); \
640	    fi
641	@echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/"
642	@@INSTALL_LIB@
643	@chmod 555 $(LIB_INSTALL_DIR)/$(LIB_FILE)
644	@if test "$(TK_BUILD_EXP_FILE)" != ""; then \
645	    echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
646	    $(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \
647			$(LIB_INSTALL_DIR)/$(TK_EXP_FILE); \
648	    fi
649	@echo "Installing wish as $(BIN_INSTALL_DIR)/wish$(VERSION)"
650	@$(INSTALL_PROGRAM) wish $(BIN_INSTALL_DIR)/wish$(VERSION)
651	@echo "Installing tkConfig.sh to $(LIB_INSTALL_DIR)/"
652	@$(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tkConfig.sh
653	@if test "$(STUB_LIB_FILE)" != "" ; then \
654	    echo "Installing $(STUB_LIB_FILE) to $(LIB_INSTALL_DIR)/"; \
655	    @INSTALL_STUB_LIB@ ; \
656	fi
657	@EXTRA_INSTALL_BINARIES@
658
659install-libraries: libraries
660	@if test "$(@TK_WINDOWINGSYSTEM@_XLIB_HDRS)" != ""; then \
661	    XLIB_INCLUDE_INSTALL_DIR=$(INCLUDE_INSTALL_DIR)/X11; fi; \
662	for i in $(INCLUDE_INSTALL_DIR) $${XLIB_INCLUDE_INSTALL_DIR} \
663		$(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images \
664		$(SCRIPT_INSTALL_DIR)/msgs; \
665	    do \
666		if [ ! -d $$i ] ; then \
667		echo "Making directory $$i"; \
668		mkdir -p $$i; \
669		chmod 755 $$i; \
670		else true; \
671		fi; \
672	    done;
673	@if test ! -x $(SRC_DIR)/install-sh; then \
674	    chmod +x $(SRC_DIR)/install-sh; \
675	    fi
676	@echo "Installing header files";
677	@for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDecls.h \
678		$(GENERIC_DIR)/tkPlatDecls.h $(@TK_WINDOWINGSYSTEM@_HDRS) ; \
679	    do \
680	    $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
681	    done;
682	@list='$(@TK_WINDOWINGSYSTEM@_XLIB_HDRS)'; for i in $$list ; \
683	    do \
684	    $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR)/X11; \
685	    done;
686	@echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
687	@for i in $(TOP_DIR)/library/*.tcl $(GENERIC_DIR)/prolog.ps \
688	        $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \
689	    do \
690	    $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
691	    done;
692	@echo "Installing library images directory";
693	@for i in $(TOP_DIR)/library/images/*; \
694	    do \
695	    if [ -f $$i ] ; then \
696		$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/images; \
697	    fi; \
698	    done;
699	@echo "Installing translation directory";
700	@for i in $(TOP_DIR)/library/msgs/*.msg; \
701	    do \
702	    if [ -f $$i ] ; then \
703		$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/msgs; \
704	    fi; \
705	    done;
706
707install-demos:
708	@for i in $(SCRIPT_INSTALL_DIR) \
709		$(SCRIPT_INSTALL_DIR)/demos \
710		$(SCRIPT_INSTALL_DIR)/demos/images ; \
711	    do \
712	    if [ ! -d $$i ] ; then \
713		echo "Making directory $$i"; \
714		mkdir -p $$i; \
715		chmod 755 $$i; \
716		else true; \
717		fi; \
718	    done;
719	@echo "Installing demos to $(SCRIPT_INSTALL_DIR)/demos/";
720	@for i in $(TOP_DIR)/library/demos/*; \
721	    do \
722	    if [ -f $$i ] ; then \
723		sed -e '3 s|exec wish|exec wish$(VERSION)|' \
724			$$i > $(SCRIPT_INSTALL_DIR)/demos/`basename $$i`; \
725	    fi; \
726	    done;
727	@for i in $(DEMOPROGS); \
728	    do \
729	    chmod 755 $(SCRIPT_INSTALL_DIR)/demos/$$i; \
730	    done;
731	@echo "Installing demo images";
732	@for i in $(TOP_DIR)/library/demos/images/*; \
733	    do \
734	    if [ -f $$i ] ; then \
735		$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \
736		fi; \
737	    done;
738
739install-doc:
740	@if test ! -x $(UNIX_DIR)/installManPage; then \
741	    chmod +x $(UNIX_DIR)/installManPage; \
742	    fi
743	@for i in $(MAN_INSTALL_DIR) $(MAN1_INSTALL_DIR) $(MAN3_INSTALL_DIR) $(MANN_INSTALL_DIR) ; \
744	    do \
745	    if [ ! -d $$i ] ; then \
746		echo "Making directory $$i"; \
747		mkdir -p $$i; \
748		chmod 755 $$i; \
749		else true; \
750		fi; \
751	    done;
752	@echo "Installing and cross-linking top-level (.1) docs";
753	@for i in $(TOP_DIR)/doc/*.1; do \
754	    $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i $(MAN1_INSTALL_DIR); \
755	done
756
757	@echo "Installing and cross-linking C API (.3) docs";
758	@for i in $(TOP_DIR)/doc/*.3; do \
759	    $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i $(MAN3_INSTALL_DIR); \
760	done
761
762	@echo "Installing and cross-linking command (.n) docs";
763	@for i in $(TOP_DIR)/doc/*.n; do \
764	    $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i $(MANN_INSTALL_DIR); \
765	done
766
767# Optional target to install private headers
768install-private-headers: libraries
769	@for i in $(PRIVATE_INCLUDE_INSTALL_DIR); \
770	    do \
771	    if [ ! -d $$i ] ; then \
772		echo "Making directory $$i"; \
773		mkdir -p $$i; \
774		chmod 755 $$i; \
775		else true; \
776		fi; \
777	    done;
778	@if test ! -x $(SRC_DIR)/install-sh; then \
779	    chmod +x $(SRC_DIR)/install-sh; \
780	    fi
781	@echo "Installing private header files";
782	@for i in $(GENERIC_DIR)/tkInt.h $(GENERIC_DIR)/tkIntDecls.h \
783		$(GENERIC_DIR)/tkIntPlatDecls.h \
784		$(@TK_WINDOWINGSYSTEM@_PRIVATE_HDRS); \
785	    do \
786	    $(INSTALL_DATA) $$i $(PRIVATE_INCLUDE_INSTALL_DIR); \
787	    done;
788	@sed -e 's#\.\./unix/##' $(GENERIC_DIR)/tkPort.h > tkPort.h; \
789	    $(INSTALL_DATA) tkPort.h $(PRIVATE_INCLUDE_INSTALL_DIR); \
790	    rm -f tkPort.h
791
792Makefile: $(UNIX_DIR)/Makefile.in
793	$(SHELL) config.status
794
795clean:
796	rm -f *.a *.o libtk* core errs *~ \#* TAGS *.E a.out \
797		errors wish tktest lib.exp Tk *.rsrc
798
799distclean: clean
800	rm -rf Makefile config.status config.cache config.log tkConfig.sh \
801		$(PACKAGE).* prototype *.plist Tk.framework
802
803depend:
804	makedepend -- $(DEPEND_SWITCHES) -- $(SRCS)
805
806# Test binaries.  The rule for tkTestInit.o is complicated because
807# it is is compiled from tkAppInit.c.  Can't use the "-o" option
808# because this doesn't work on some strange compilers (e.g. UnixWare).
809# To enable concurrent parallel make of wish and tktest, this target has to
810# depend on wish, this ensures that linking of wish with tkTestInit.o does not
811# execute concurrently with the renaming and recompiling of that same object
812# file in the target below.
813
814tkTestInit.o: $(UNIX_DIR)/tkAppInit.c wish
815	@if test -f tkAppInit.o ; then \
816	    rm -f tkAppInit.sav; \
817	    mv tkAppInit.o tkAppInit.sav; \
818	fi;
819	$(CC) -c $(APP_CC_SWITCHES) -DTK_TEST $(UNIX_DIR)/tkAppInit.c
820	rm -f tkTestInit.o
821	mv tkAppInit.o tkTestInit.o
822	@if test -f tkAppInit.sav ; then \
823	    mv tkAppInit.sav tkAppInit.o; \
824	fi;
825
826tkAppInit.o: $(UNIX_DIR)/tkAppInit.c
827	$(CC) -c $(APP_CC_SWITCHES) $(UNIX_DIR)/tkAppInit.c
828
829tk3d.o: $(GENERIC_DIR)/tk3d.c
830	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tk3d.c
831
832tkArgv.o: $(GENERIC_DIR)/tkArgv.c
833	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkArgv.c
834
835tkAtom.o: $(GENERIC_DIR)/tkAtom.c
836	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkAtom.c
837
838tkBind.o: $(GENERIC_DIR)/tkBind.c
839	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBind.c
840
841tkBitmap.o: $(GENERIC_DIR)/tkBitmap.c
842	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBitmap.c
843
844tkClipboard.o: $(GENERIC_DIR)/tkClipboard.c
845	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkClipboard.c
846
847tkCmds.o: $(GENERIC_DIR)/tkCmds.c
848	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCmds.c
849
850tkColor.o: $(GENERIC_DIR)/tkColor.c
851	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkColor.c
852
853tkConfig.o: $(GENERIC_DIR)/tkConfig.c
854	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConfig.c
855
856tkConsole.o: $(GENERIC_DIR)/tkConsole.c
857	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConsole.c
858
859tkCursor.o: $(GENERIC_DIR)/tkCursor.c
860	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCursor.c
861
862tkError.o: $(GENERIC_DIR)/tkError.c
863	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkError.c
864
865tkEvent.o: $(GENERIC_DIR)/tkEvent.c
866	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEvent.c
867
868tkFocus.o: $(GENERIC_DIR)/tkFocus.c
869	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFocus.c
870
871tkFont.o: $(GENERIC_DIR)/tkFont.c
872	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFont.c
873
874tkGet.o: $(GENERIC_DIR)/tkGet.c
875	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGet.c
876
877tkGC.o: $(GENERIC_DIR)/tkGC.c
878	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGC.c
879
880tkGeometry.o: $(GENERIC_DIR)/tkGeometry.c
881	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGeometry.c
882
883tkGrab.o: $(GENERIC_DIR)/tkGrab.c
884	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrab.c
885
886tkGrid.o: $(GENERIC_DIR)/tkGrid.c
887	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrid.c
888
889tkMain.o: $(GENERIC_DIR)/tkMain.c
890	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMain.c
891
892tkObj.o: $(GENERIC_DIR)/tkObj.c
893	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkObj.c
894
895tkOldConfig.o: $(GENERIC_DIR)/tkOldConfig.c
896	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOldConfig.c
897
898tkOption.o: $(GENERIC_DIR)/tkOption.c
899	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOption.c
900
901tkPack.o: $(GENERIC_DIR)/tkPack.c
902	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPack.c
903
904tkPlace.o: $(GENERIC_DIR)/tkPlace.c
905	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPlace.c
906
907tkSelect.o: $(GENERIC_DIR)/tkSelect.c
908	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkSelect.c
909
910tkStyle.o: $(GENERIC_DIR)/tkStyle.c
911	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStyle.c
912
913tkUtil.o: $(GENERIC_DIR)/tkUtil.c
914	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkUtil.c
915
916tkVisual.o: $(GENERIC_DIR)/tkVisual.c
917	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c
918
919tkWindow.o: $(GENERIC_DIR)/tkWindow.c
920	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkWindow.c
921
922tkButton.o: $(GENERIC_DIR)/tkButton.c
923	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c
924
925tkEntry.o: $(GENERIC_DIR)/tkEntry.c
926	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEntry.c
927
928tkFrame.o: $(GENERIC_DIR)/tkFrame.c
929	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFrame.c
930
931tkListbox.o: $(GENERIC_DIR)/tkListbox.c
932	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkListbox.c
933
934tkMenu.o: $(GENERIC_DIR)/tkMenu.c
935	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenu.c
936
937tkMenubutton.o: $(GENERIC_DIR)/tkMenubutton.c
938	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenubutton.c
939
940tkMenuDraw.o: $(GENERIC_DIR)/tkMenuDraw.c
941	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenuDraw.c
942
943tkMessage.o: $(GENERIC_DIR)/tkMessage.c
944	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMessage.c
945
946tkPanedWindow.o: $(GENERIC_DIR)/tkPanedWindow.c
947	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPanedWindow.c
948
949tkScale.o: $(GENERIC_DIR)/tkScale.c
950	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScale.c
951
952tkScrollbar.o: $(GENERIC_DIR)/tkScrollbar.c
953	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScrollbar.c
954
955tkSquare.o: $(GENERIC_DIR)/tkSquare.c
956	$(CC) -c $(APP_CC_SWITCHES) $(GENERIC_DIR)/tkSquare.c
957
958tkCanvas.o: $(GENERIC_DIR)/tkCanvas.c
959	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvas.c
960
961tkCanvArc.o: $(GENERIC_DIR)/tkCanvArc.c
962	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvArc.c
963
964tkCanvBmap.o: $(GENERIC_DIR)/tkCanvBmap.c
965	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvBmap.c
966
967tkCanvImg.o: $(GENERIC_DIR)/tkCanvImg.c
968	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvImg.c
969
970tkCanvLine.o: $(GENERIC_DIR)/tkCanvLine.c
971	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvLine.c
972
973tkCanvPoly.o: $(GENERIC_DIR)/tkCanvPoly.c
974	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPoly.c
975
976tkCanvPs.o: $(GENERIC_DIR)/tkCanvPs.c
977	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPs.c
978
979tkCanvText.o: $(GENERIC_DIR)/tkCanvText.c
980	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvText.c
981
982tkCanvUtil.o: $(GENERIC_DIR)/tkCanvUtil.c
983	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvUtil.c
984
985tkCanvWind.o: $(GENERIC_DIR)/tkCanvWind.c
986	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvWind.c
987
988tkRectOval.o: $(GENERIC_DIR)/tkRectOval.c
989	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkRectOval.c
990
991tkTrig.o: $(GENERIC_DIR)/tkTrig.c
992	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTrig.c
993
994tkImage.o: $(GENERIC_DIR)/tkImage.c
995	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImage.c
996
997tkImgBmap.o: $(GENERIC_DIR)/tkImgBmap.c
998	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgBmap.c
999
1000tkImgGIF.o: $(GENERIC_DIR)/tkImgGIF.c
1001	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgGIF.c
1002
1003tkImgPPM.o: $(GENERIC_DIR)/tkImgPPM.c
1004	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPPM.c
1005
1006tkImgPhoto.o: $(GENERIC_DIR)/tkImgPhoto.c
1007	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPhoto.c
1008
1009tkTest.o: $(GENERIC_DIR)/tkTest.c
1010	$(CC) -c $(APP_CC_SWITCHES) $(GENERIC_DIR)/tkTest.c
1011
1012tkText.o: $(GENERIC_DIR)/tkText.c
1013	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkText.c
1014
1015tkTextBTree.o: $(GENERIC_DIR)/tkTextBTree.c
1016	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextBTree.c
1017
1018tkTextDisp.o: $(GENERIC_DIR)/tkTextDisp.c
1019	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextDisp.c
1020
1021tkTextImage.o: $(GENERIC_DIR)/tkTextImage.c
1022	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextImage.c
1023
1024tkTextIndex.o: $(GENERIC_DIR)/tkTextIndex.c
1025	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextIndex.c
1026
1027tkTextMark.o: $(GENERIC_DIR)/tkTextMark.c
1028	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextMark.c
1029
1030tkTextTag.o: $(GENERIC_DIR)/tkTextTag.c
1031	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextTag.c
1032
1033tkTextWind.o: $(GENERIC_DIR)/tkTextWind.c
1034	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextWind.c
1035
1036tkStubInit.o: $(GENERIC_DIR)/tkStubInit.c
1037	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubInit.c
1038
1039# Stub library binaries, these must be compiled for use in a shared library
1040# even though they will be placed in a static archive
1041
1042tkStubLib.o: $(GENERIC_DIR)/tkStubLib.c
1043	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubLib.c
1044
1045tkStubImg.o: $(GENERIC_DIR)/tkStubImg.c
1046	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubImg.c
1047
1048tkUndo.o: $(GENERIC_DIR)/tkUndo.c
1049	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkUndo.c
1050
1051tkUnix.o: $(UNIX_DIR)/tkUnix.c
1052	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnix.c
1053
1054tkUnix3d.o: $(UNIX_DIR)/tkUnix3d.c
1055	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnix3d.c
1056
1057tkUnixButton.o: $(UNIX_DIR)/tkUnixButton.c
1058	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixButton.c
1059
1060tkUnixColor.o: $(UNIX_DIR)/tkUnixColor.c
1061	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixColor.c
1062
1063tkUnixConfig.o: $(UNIX_DIR)/tkUnixConfig.c
1064	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixConfig.c
1065
1066tkUnixCursor.o: $(UNIX_DIR)/tkUnixCursor.c
1067	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixCursor.c
1068
1069tkUnixDraw.o: $(UNIX_DIR)/tkUnixDraw.c
1070	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixDraw.c
1071
1072tkUnixEmbed.o: $(UNIX_DIR)/tkUnixEmbed.c
1073	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixEmbed.c
1074
1075tkUnixEvent.o: $(UNIX_DIR)/tkUnixEvent.c
1076	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixEvent.c
1077
1078tkUnixFocus.o: $(UNIX_DIR)/tkUnixFocus.c
1079	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFocus.c
1080
1081tkUnixFont.o: $(UNIX_DIR)/tkUnixFont.c
1082	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFont.c
1083
1084tkUnixInit.o: $(UNIX_DIR)/tkUnixInit.c $(GENERIC_DIR)/tkInitScript.h tkConfig.sh
1085	$(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" \
1086	    $(UNIX_DIR)/tkUnixInit.c
1087
1088tkUnixKey.o: $(UNIX_DIR)/tkUnixKey.c
1089	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixKey.c
1090
1091tkUnixMenu.o: $(UNIX_DIR)/tkUnixMenu.c
1092	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixMenu.c
1093
1094tkUnixMenubu.o: $(UNIX_DIR)/tkUnixMenubu.c
1095	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixMenubu.c
1096
1097tkUnixScale.o: $(UNIX_DIR)/tkUnixScale.c
1098	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixScale.c
1099
1100tkUnixScrlbr.o: $(UNIX_DIR)/tkUnixScrlbr.c
1101	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixScrlbr.c
1102
1103tkUnixSelect.o: $(UNIX_DIR)/tkUnixSelect.c
1104	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixSelect.c
1105
1106tkUnixSend.o: $(UNIX_DIR)/tkUnixSend.c
1107	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixSend.c
1108
1109tkUnixWm.o: $(UNIX_DIR)/tkUnixWm.c
1110	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixWm.c
1111
1112tkUnixXId.o: $(UNIX_DIR)/tkUnixXId.c
1113	$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixXId.c
1114
1115tkMacOSXBitmap.o: $(MAC_OSX_DIR)/tkMacOSXBitmap.c
1116	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXBitmap.c
1117
1118tkMacOSXButton.o: $(MAC_OSX_DIR)/tkMacOSXButton.c
1119	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXButton.c
1120
1121tkMacOSXCarbonEvents.o: $(MAC_OSX_DIR)/tkMacOSXCarbonEvents.c
1122	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXCarbonEvents.c
1123
1124tkMacOSXClipboard.o: $(MAC_OSX_DIR)/tkMacOSXClipboard.c
1125	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXClipboard.c
1126
1127tkMacOSXColor.o: $(MAC_OSX_DIR)/tkMacOSXColor.c
1128	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXColor.c
1129
1130tkMacOSXConfig.o: $(MAC_OSX_DIR)/tkMacOSXConfig.c
1131	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXConfig.c
1132
1133tkMacOSXCursor.o: $(MAC_OSX_DIR)/tkMacOSXCursor.c
1134	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXCursor.c
1135
1136tkMacOSXDebug.o: $(MAC_OSX_DIR)/tkMacOSXDebug.c
1137	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXDebug.c
1138
1139tkMacOSXDialog.o: $(MAC_OSX_DIR)/tkMacOSXDialog.c
1140	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXDialog.c
1141
1142tkMacOSXDraw.o: $(MAC_OSX_DIR)/tkMacOSXDraw.c
1143	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXDraw.c
1144
1145tkMacOSXEmbed.o: $(MAC_OSX_DIR)/tkMacOSXEmbed.c
1146	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXEmbed.c
1147
1148tkMacOSXEntry.o: $(MAC_OSX_DIR)/tkMacOSXEntry.c
1149	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXEntry.c
1150
1151tkMacOSXEvent.o: $(MAC_OSX_DIR)/tkMacOSXEvent.c
1152	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXEvent.c
1153
1154tkMacOSXFont.o: $(MAC_OSX_DIR)/tkMacOSXFont.c
1155	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXFont.c
1156
1157tkMacOSXHLEvents.o: $(MAC_OSX_DIR)/tkMacOSXHLEvents.c
1158	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXHLEvents.c
1159
1160tkMacOSXInit.o: $(MAC_OSX_DIR)/tkMacOSXInit.c $(GENERIC_DIR)/tkInitScript.h tkConfig.sh
1161	$(CC) -c $(CC_SWITCHES)  -DTK_LIBRARY=\"${TK_LIBRARY}\" \
1162	    $(MAC_OSX_DIR)/tkMacOSXInit.c
1163
1164tkMacOSXKeyboard.o: $(MAC_OSX_DIR)/tkMacOSXKeyboard.c
1165	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXKeyboard.c
1166
1167tkMacOSXKeyEvent.o: $(MAC_OSX_DIR)/tkMacOSXKeyEvent.c
1168	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXKeyEvent.c
1169
1170tkMacOSXMenu.o: $(MAC_OSX_DIR)/tkMacOSXMenu.c
1171	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXMenu.c
1172
1173tkMacOSXMenubutton.o: $(MAC_OSX_DIR)/tkMacOSXMenubutton.c
1174	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXMenubutton.c
1175
1176tkMacOSXMenus.o: $(MAC_OSX_DIR)/tkMacOSXMenus.c
1177	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXMenus.c
1178
1179tkMacOSXMouseEvent.o: $(MAC_OSX_DIR)/tkMacOSXMouseEvent.c
1180	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXMouseEvent.c
1181
1182tkMacOSXNotify.o: $(MAC_OSX_DIR)/tkMacOSXNotify.c
1183	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXNotify.c
1184
1185tkMacOSXRegion.o: $(MAC_OSX_DIR)/tkMacOSXRegion.c
1186	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXRegion.c
1187
1188tkMacOSXScrlbr.o: $(MAC_OSX_DIR)/tkMacOSXScrlbr.c
1189	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXScrlbr.c
1190
1191tkMacOSXSend.o: $(MAC_OSX_DIR)/tkMacOSXSend.c
1192	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXSend.c
1193
1194tkMacOSXSubwindows.o: $(MAC_OSX_DIR)/tkMacOSXSubwindows.c
1195	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXSubwindows.c
1196
1197tkMacOSXTest.o: $(MAC_OSX_DIR)/tkMacOSXTest.c
1198	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXTest.c
1199
1200tkMacOSXWindowEvent.o: $(MAC_OSX_DIR)/tkMacOSXWindowEvent.c
1201	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXWindowEvent.c
1202
1203tkMacOSXWm.o: $(MAC_OSX_DIR)/tkMacOSXWm.c
1204	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXWm.c
1205
1206tkMacOSXXStubs.o: $(MAC_OSX_DIR)/tkMacOSXXStubs.c
1207	$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tkMacOSXXStubs.c
1208
1209tkFileFilter.o: $(GENERIC_DIR)/tkFileFilter.c
1210	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFileFilter.c
1211
1212tkMacWinMenu.o: $(GENERIC_DIR)/tkMacWinMenu.c
1213	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMacWinMenu.c
1214
1215tkPointer.o: $(GENERIC_DIR)/tkPointer.c
1216	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPointer.c
1217
1218xcolors.o: $(XLIB_DIR)/xcolors.c
1219	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/xcolors.c
1220
1221xdraw.o: $(XLIB_DIR)/xdraw.c
1222	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/xdraw.c
1223
1224xgc.o: $(XLIB_DIR)/xgc.c
1225	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/xgc.c
1226
1227ximage.o: $(XLIB_DIR)/ximage.c
1228	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/ximage.c
1229
1230xutil.o: $(XLIB_DIR)/xutil.c
1231	$(CC) -c $(CC_SWITCHES) $(XLIB_DIR)/xutil.c
1232
1233.c.o:
1234	$(CC) -c $(CC_SWITCHES) $<
1235
1236#
1237# Target to regenerate header files and stub files from the *.decls tables.
1238#
1239
1240$(GENERIC_DIR)/tkStubInit.c: $(GENERIC_DIR)/tk.decls \
1241		$(GENERIC_DIR)/tkInt.decls
1242	@echo "Warning: tkStubInit.c may be out of date."
1243	@echo "Developers may want to run \"make genstubs\" to regenerate."
1244	@echo "This warning can be safely ignored, do not report as a bug!"
1245
1246genstubs:
1247	$(TCL_EXE) $(TOOL_DIR)/genStubs.tcl $(GENERIC_DIR) \
1248		$(GENERIC_DIR)/tk.decls $(GENERIC_DIR)/tkInt.decls
1249
1250#
1251# Target to check that all exported functions have an entry in the stubs
1252# tables.
1253#
1254
1255checkstubs: $(TK_LIB_FILE)
1256	-@for i in `nm -p $(TK_LIB_FILE) \
1257		| awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \
1258		| sort -n`; do \
1259		match=0; \
1260		for j in $(TK_DECLS); do \
1261		    if [ `grep -c "$$i *(" $$j` -gt 0 ]; then \
1262			match=1; \
1263		    fi; \
1264		done; \
1265		if [ $$match -eq 0 ]; then echo $$i; fi \
1266	done
1267
1268#
1269# Target to check for proper usage of UCHAR macro.
1270#
1271
1272checkuchar:
1273	-egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR
1274
1275#
1276# Target to make sure that only symbols with "Tk" prefixes are
1277# exported.
1278#
1279
1280checkexports: $(TK_LIB_FILE)
1281	-@nm -p $(TK_LIB_FILE) \
1282	| awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \
1283	| sort -n | grep -E -v '^([Tt]k|_?X)' || true
1284
1285#
1286# Target to create a Tk RPM for Linux.  Requires that you be on a Linux
1287# system.
1288#
1289
1290rpm: all /bin/rpm
1291	rm -f THIS.TCL.SPEC
1292	echo "%define _builddir `pwd`" > THIS.TK.SPEC
1293	echo "%define _rpmdir `pwd`/RPMS" >> THIS.TK.SPEC
1294	cat tk.spec >> THIS.TK.SPEC
1295	mkdir -p RPMS/i386
1296	rpm -bb THIS.TK.SPEC
1297	mv RPMS/i386/*.rpm .
1298	rm -rf RPMS THIS.TK.SPEC
1299
1300#
1301# Target to create a proper Tk distribution from information in the
1302# master source directory.  DISTDIR must be defined to indicate where
1303# to put the distribution.  DISTDIR must be an absolute path name.
1304#
1305
1306DISTROOT = /tmp/dist
1307DISTNAME = tk${VERSION}${PATCH_LEVEL}
1308ZIPNAME	 = tk${MAJOR_VERSION}${MINOR_VERSION}${PATCH_LEVEL}-src.zip
1309DISTDIR	 = $(DISTROOT)/$(DISTNAME)
1310TCLDIR   = @TCL_SRC_DIR@
1311
1312dist:
1313	rm -rf $(DISTDIR)
1314	mkdir -p $(DISTDIR)/unix
1315	cp -p $(UNIX_DIR)/*.c $(UNIX_DIR)/*.h $(DISTDIR)/unix
1316	cp $(TOP_DIR)/license.terms $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix
1317	chmod 664 $(DISTDIR)/unix/Makefile.in
1318	cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in $(UNIX_DIR)/tk.spec \
1319		$(UNIX_DIR)/aclocal.m4 $(UNIX_DIR)/tcl.m4 \
1320		$(UNIX_DIR)/tkConfig.sh.in $(TCLDIR)/unix/install-sh \
1321		$(UNIX_DIR)/README $(UNIX_DIR)/installManPage $(DISTDIR)/unix
1322	chmod 775 $(DISTDIR)/unix/configure $(DISTDIR)/unix/configure.in
1323	chmod +x $(DISTDIR)/unix/install-sh
1324	mkdir $(DISTDIR)/bitmaps
1325	@(cd $(TOP_DIR); for i in bitmaps/* ; do \
1326	    if [ -f $$i ] ; then \
1327		sed -e 's/static char/static unsigned char/' \
1328		       $$i > $(DISTDIR)/$$i; \
1329	    fi; \
1330	done;)
1331	mkdir $(DISTDIR)/generic
1332	cp -p $(GENERIC_DIR)/*.c $(GENERIC_DIR)/*.h $(GENERIC_DIR)/prolog.ps \
1333		$(DISTDIR)/generic
1334	cp -p $(GENERIC_DIR)/*.decls $(DISTDIR)/generic
1335	cp -p $(GENERIC_DIR)/README $(DISTDIR)/generic
1336	cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README \
1337		$(TOP_DIR)/license.terms $(DISTDIR)
1338	rm -f $(DISTDIR)/generic/blt*.[ch]
1339	mkdir $(DISTDIR)/win
1340	cp $(TOP_DIR)/win/Makefile.in $(DISTDIR)/win
1341	cp $(TOP_DIR)/win/configure.in \
1342		$(TOP_DIR)/win/configure \
1343		$(TOP_DIR)/win/tkConfig.sh.in \
1344		$(TOP_DIR)/win/aclocal.m4 $(TOP_DIR)/win/tcl.m4 \
1345		$(DISTDIR)/win
1346	cp -p $(TOP_DIR)/win/*.c $(TOP_DIR)/win/*.h $(DISTDIR)/win
1347	cp -p $(TOP_DIR)/win/*.bat $(DISTDIR)/win
1348	$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/*.bat
1349	cp -p $(TOP_DIR)/win/makefile.* $(DISTDIR)/win
1350	$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/makefile.*
1351	cp -p $(TOP_DIR)/win/rules.vc $(DISTDIR)/win
1352	$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rules.vc
1353	cp -p $(TOP_DIR)/win/README $(DISTDIR)/win
1354	cp -p $(TOP_DIR)/win/lamp.bmp $(DISTDIR)/win
1355	cp -p $(TOP_DIR)/license.terms $(DISTDIR)/win
1356	mkdir $(DISTDIR)/win/rc
1357	cp -p $(TOP_DIR)/win/wish.exe.manifest.in $(DISTDIR)/win/
1358	cp -p $(TOP_DIR)/win/rc/*.rc $(TOP_DIR)/win/rc/*.cur \
1359		$(TOP_DIR)/win/rc/*.ico $(TOP_DIR)/win/rc/*.bmp \
1360		$(DISTDIR)/win/rc
1361	$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rc/*.rc
1362	$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/wish.exe.manifest.in
1363	mkdir $(DISTDIR)/mac
1364	cp -p $(TOP_DIR)/mac/tkMacProjects.sea.hqx $(DISTDIR)/mac
1365	cp -p $(TOP_DIR)/mac/*.c $(TOP_DIR)/mac/*.h $(TOP_DIR)/mac/*.r \
1366		$(DISTDIR)/mac
1367	cp -p $(TOP_DIR)/mac/README $(DISTDIR)/mac
1368	cp -p $(TOP_DIR)/license.terms $(DISTDIR)/mac
1369	cp -p $(TOP_DIR)/mac/*.pch $(DISTDIR)/mac
1370	cp -p $(TOP_DIR)/mac/*.doc $(DISTDIR)/mac
1371	cp -p $(TOP_DIR)/mac/*.tcl $(DISTDIR)/mac
1372	mkdir $(DISTDIR)/macosx
1373	cp -p $(MAC_OSX_DIR)/Makefile $(MAC_OSX_DIR)/README \
1374		$(MAC_OSX_DIR)/Wish.icns $(MAC_OSX_DIR)/*.c \
1375		$(MAC_OSX_DIR)/*.h $(MAC_OSX_DIR)/*.in \
1376		$(MAC_OSX_DIR)/*.r $(DISTDIR)/macosx
1377	cp -p $(TOP_DIR)/license.terms $(DISTDIR)/macosx
1378	mkdir $(DISTDIR)/macosx/Wish.pbproj
1379	cp -p $(MAC_OSX_DIR)/Wish.pbproj/*.pbx* $(DISTDIR)/macosx/Wish.pbproj
1380	mkdir $(DISTDIR)/compat
1381	cp -p $(TOP_DIR)/license.terms $(TCLDIR)/compat/unistd.h \
1382		$(TCLDIR)/compat/stdlib.h $(TCLDIR)/compat/limits.h \
1383		$(DISTDIR)/compat
1384	mkdir $(DISTDIR)/xlib
1385	cp -p $(XLIB_DIR)/*.h $(XLIB_DIR)/*.c $(DISTDIR)/xlib
1386	cp -p $(TOP_DIR)/license.terms $(DISTDIR)/xlib
1387	mkdir $(DISTDIR)/xlib/X11
1388	cp -p $(XLIB_DIR)/X11/*.h $(DISTDIR)/xlib/X11
1389	cp -p $(TOP_DIR)/license.terms $(DISTDIR)/xlib/X11
1390	mkdir $(DISTDIR)/library
1391	cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \
1392		$(TOP_DIR)/library/tclIndex \
1393		$(DISTDIR)/library
1394	mkdir $(DISTDIR)/library/images
1395	@(cd $(TOP_DIR); for i in library/images/* ; do \
1396	    if [ -f $$i ] ; then \
1397		cp $$i $(DISTDIR)/$$i; \
1398	    fi; \
1399	done;)
1400	mkdir $(DISTDIR)/library/msgs
1401	@(cd $(TOP_DIR); for i in library/msgs/*.msg ; do \
1402	    if [ -f $$i ] ; then \
1403		cp $$i $(DISTDIR)/$$i; \
1404	    fi; \
1405	done;)
1406	mkdir $(DISTDIR)/library/demos
1407	cp -pr $(TOP_DIR)/library/demos/*.tcl \
1408		$(TOP_DIR)/library/demos/tclIndex \
1409		$(TOP_DIR)/library/demos/browse \
1410		$(TOP_DIR)/library/demos/hello $(TOP_DIR)/library/demos/ixset \
1411		$(TOP_DIR)/library/demos/rmt $(TOP_DIR)/library/demos/rolodex \
1412		$(TOP_DIR)/library/demos/square \
1413		$(TOP_DIR)/library/demos/tcolor \
1414		$(TOP_DIR)/library/demos/timer \
1415		$(TOP_DIR)/library/demos/widget \
1416		$(TOP_DIR)/library/demos/README \
1417		$(TOP_DIR)/license.terms $(DISTDIR)/library/demos
1418	mkdir $(DISTDIR)/library/demos/images
1419	@(cd $(TOP_DIR); for i in library/demos/images/* ; do \
1420	    if [ -f $$i ] ; then \
1421		cp $$i $(DISTDIR)/$$i; \
1422	    fi; \
1423	done;)
1424	mkdir $(DISTDIR)/doc
1425	cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/doc/*.[13n] \
1426		$(TCLDIR)/doc/man.macros $(DISTDIR)/doc
1427	mkdir $(DISTDIR)/tests
1428	cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/tests/*.test \
1429		$(TOP_DIR)/tests/*.tcl $(TOP_DIR)/tests/README \
1430		$(TOP_DIR)/tests/option.file* $(DISTDIR)/tests
1431
1432#
1433# The following target can only be used for non-patch releases.  Use
1434# the "allpatch" target below for patch releases.
1435#
1436
1437alldist: dist
1438	rm -f $(DISTROOT)/$(DISTNAME)-src.tar.gz $(DISTROOT)/$(ZIPNAME)
1439	cd $(DISTROOT); tar cf $(DISTNAME)-src.tar $(DISTNAME); \
1440		gzip -9 $(DISTNAME)-src.tar; zip -qr8 $(ZIPNAME) $(DISTNAME)
1441
1442#
1443# The target below is similar to "alldist" except it works for patch
1444# releases.  It is needed because patch releases are peculiar: the
1445# patch designation appears in the name of the compressed file
1446# (e.g. tk8.0p1.tar.gz) but the extracted source directory doesn't
1447# include the patch designation (e.g. tk8.0).
1448#
1449
1450allpatch: dist
1451	rm -f $(DISTROOT)/$(DISTNAME)-src.tar.gz $(DISTROOT)/$(ZIPNAME)
1452	mv $(DISTROOT)/tk${VERSION} $(DISTROOT)/old
1453	mv $(DISTROOT)/$(DISTNAME) $(DISTROOT)/tk${VERSION}
1454	cd $(DISTROOT); tar cf $(DISTNAME)-src.tar tk${VERSION}; \
1455		gzip -9 $(DISTNAME)-src.tar; zip -r8 $(ZIPNAME) tk${VERSION}
1456	mv $(DISTROOT)/tk${VERSION} $(DISTROOT)/$(DISTNAME)
1457	mv $(DISTROOT)/old $(DISTROOT)/tk${VERSION}
1458
1459#
1460# This target creates the HTML folder for Tcl & Tk and places it
1461# in DISTDIR/html.  It uses the tcltk-man2html.tcl tool from
1462# the Tcl group's tool workspace.  It depends on the Tcl & Tk being
1463# in directories called tcl8.3 & tk8.3 up two directories from the
1464# TOOL_DIR.
1465#
1466
1467html:
1468	$(BUILD_HTML)
1469	@EXTRA_BUILD_HTML@
1470html-tcl:
1471	$(BUILD_HTML) --tcl
1472	@EXTRA_BUILD_HTML@
1473html-tk:
1474	$(BUILD_HTML) --tk
1475	@EXTRA_BUILD_HTML@
1476
1477BUILD_HTML = \
1478	@if test -f "$(BUILD_TCLSH)"; then \
1479	@LD_LIBRARY_PATH_VAR@=$(TCL_BIN_DIR):$${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \
1480	TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
1481	TCLSH="$(BUILD_TCLSH)"; else \
1482	TCLSH="$(TCL_EXE)"; fi ;\
1483	$${TCLSH} $(TOOL_DIR)/tcltk-man2html.tcl --htmldir=$(HTML_INSTALL_DIR) \
1484		--srcdir=$(TOP_DIR)/.. $(BUILD_HTML_FLAGS)
1485
1486#
1487# Target to create a Macintosh version of the distribution.  This will
1488# do a normal distribution and then massage the output to prepare it
1489# for moving to the Mac platform.  This requires a few scripts and
1490# programs found only in the Tcl greoup's tool workspace.
1491#
1492
1493macdist: dist
1494	rm -f $(DISTDIR)/mac/tkMacProjects.sea.hqx
1495	$(TCL_EXE) $(TOOL_DIR)/man2html.tcl $(DISTDIR)/tmp ../.. tk$(VERSION)
1496	mv $(DISTDIR)/tmp/tk$(VERSION) $(DISTDIR)/html
1497	rm -rf $(DISTDIR)/doc
1498	rm -rf $(DISTDIR)/tmp
1499	$(TCL_EXE) $(TOOL_DIR)/cvtEOL.tcl $(DISTDIR)
1500
1501#
1502# Targets to build Solaris package of the distribution for the current
1503# architecture.  To build stream packages for both sun4 and i86pc
1504# architectures: 
1505#
1506#   On the sun4 machine, execute the following:
1507#     make distclean; ./configure
1508#     make DISTDIR=<distdir> package
1509#
1510#   Once the build is complete, execute the following on the i86pc
1511#   machine:
1512#     make DISTDIR=<distdir> package-quick
1513#
1514# <distdir> is the absolute path to a directory where the build should
1515# take place.  These steps will generate the $(PACKAGE).sun4 and
1516# $(PACKAGE).i86pc stream packages.  It is important that the packages be
1517# built in this fashion in order to ensure that the architecture
1518# independent files are exactly the same, including timestamps, in
1519# both packages.
1520#
1521
1522PACKAGE=SCRPtk
1523
1524package: dist package-config package-common package-binaries package-generate
1525package-quick: package-config package-binaries package-generate
1526
1527#
1528# Configure for the current architecture in the dist directory.
1529#
1530package-config:
1531	mkdir -p $(DISTDIR)/unix/`arch`
1532	cd $(DISTDIR)/unix/`arch`; \
1533        ../configure --prefix=/opt/SUNWtcl/$(TCLVERSION) \
1534		--exec_prefix=/opt/SUNWtcl/$(TCLVERSION)/`arch` \
1535		--with-tcl=$(DISTDIR)/../tcl$(TCLVERSION)/unix/`arch` \
1536		--enable-shared
1537	mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)
1538	mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
1539
1540#
1541# Build and install the architecture independent files in the dist directory.
1542#
1543
1544package-common:
1545	cd $(DISTDIR)/unix/`arch`;\
1546	$(MAKE); \
1547	$(MAKE) install-libraries install-doc \
1548		prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \
1549		exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
1550	mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin
1551	sed -e "s/TCLVERSION/$(TCLVERSION)/g" \
1552		-e "s/TKVERSION/$(VERSION)/g" < $(UNIX_DIR)/wish.sh \
1553		> $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin/wish$(VERSION)
1554	chmod 755 $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin/wish$(VERSION)
1555
1556#
1557# Build and install the architecture specific files in the dist directory.
1558#
1559
1560package-binaries: 
1561	cd $(DISTDIR)/unix/`arch`; \
1562	$(MAKE); \
1563	$(MAKE) install-binaries prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \
1564		exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
1565
1566#
1567# Generate a package from the installed files in the dist directory for the
1568# current architecture.
1569#
1570
1571package-generate:
1572	pkgproto $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin=bin \
1573		 $(DISTDIR)/SUNWtcl/$(TCLVERSION)/include=include \
1574		 $(DISTDIR)/SUNWtcl/$(TCLVERSION)/lib=lib \
1575		 $(DISTDIR)/SUNWtcl/$(TCLVERSION)/man=man \
1576		 $(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`=`arch` \
1577	| $(TCL_EXE) $(TCLDIR)/unix/mkProto.tcl $(TCLVERSION) \
1578		$(UNIX_DIR) > prototype
1579	pkgmk -o -d . -f prototype -a `arch`
1580	pkgtrans -s . $(PACKAGE).`arch` $(PACKAGE)
1581	rm -rf $(PACKAGE)
1582
1583# DO NOT DELETE THIS LINE -- make depend depends on it.
1584