OSDN Git Service

2002-01-10 Keith Seitz <keiths@redhat.com>
[pf3gnuchains/sourceware.git] / tk / unix / Makefile.in
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$
9
10 # Current Tk version;  used in various names.
11
12 TCLVERSION              = @TCL_VERSION@
13 VERSION                 = @TK_VERSION@
14
15 #----------------------------------------------------------------
16 # Things you can change to personalize the Makefile for your own
17 # site (you can make these changes in either Makefile.in or
18 # Makefile, but changes to Makefile will get lost if you re-run
19 # the configuration script).
20 #----------------------------------------------------------------
21
22 # Default top-level directories in which to install architecture-
23 # specific files (exec_prefix) and machine-independent files such
24 # as scripts (prefix).  The values specified here may be overridden
25 # at configure-time with the --exec-prefix and --prefix options
26 # to the "configure" script.
27
28 prefix                  = @prefix@
29 exec_prefix             = @exec_prefix@
30 bindir                  = @bindir@
31 libdir                  = @libdir@
32 includedir              = @includedir@
33 mandir                  = @mandir@
34
35 # The following definition can be set to non-null for special systems
36 # like AFS with replication.  It allows the pathnames used for installation
37 # to be different than those used for actually reference files at
38 # run-time.  INSTALL_ROOT is prepended to $prefix and $exec_prefix
39 # when installing files.
40 INSTALL_ROOT            =
41
42 # Directory from which applications will reference the library of Tcl
43 # scripts (note: you can set the TK_LIBRARY environment variable at
44 # run-time to override the compiled-in location):
45 TK_LIBRARY =            @datadir@/tk$(VERSION)
46
47 # CYGNUS LOCAL location independence
48 # What is appended to the prefix to get the library name.  Note that
49 # this MUST begin with a "/".
50 TK_LIB_TRAILER = /lib/tk$(VERSION)
51 # END CYGNUS LOCAL
52
53 # Path name to use when installing library scripts:
54 SCRIPT_INSTALL_DIR =    $(INSTALL_ROOT)/$(TK_LIBRARY)
55
56 # Directory in which to install the .a or .so binary for the Tk library:
57 LIB_INSTALL_DIR =       $(INSTALL_ROOT)@libdir@
58
59 # Path to use at runtime to refer to LIB_INSTALL_DIR:
60 LIB_RUNTIME_DIR =       @libdir@
61
62 # Directory in which to install the program wish:
63 BIN_INSTALL_DIR =       $(INSTALL_ROOT)@bindir@
64
65 # Directory from which the program wish should be referenced by scripts:
66 BIN_DIR =               @bindir@
67
68 # Directory in which to install the include file tk.h:
69 INCLUDE_INSTALL_DIR =   $(INSTALL_ROOT)@includedir@
70
71 # Top-level directory for manual entries:
72 MAN_INSTALL_DIR =       $(INSTALL_ROOT)@mandir@
73
74 # Directory in which to install manual entry for wish:
75 MAN1_INSTALL_DIR        = $(MAN_INSTALL_DIR)/man1
76
77 # Directory in which to install manual entries for Tk's C library
78 # procedures:
79 MAN3_INSTALL_DIR        = $(MAN_INSTALL_DIR)/man3
80
81 # Directory in which to install manual entries for the built-in
82 # Tcl commands implemented by Tk:
83 MANN_INSTALL_DIR        = $(MAN_INSTALL_DIR)/mann
84
85 # The directory containing the Tcl sources and headers appropriate
86 # for this version of Tk ("srcdir" will be replaced or has already
87 # been replaced by the configure script):
88 TCL_GENERIC_DIR         = @TCL_SRC_DIR@/generic
89
90 # The directory containing the Tcl library archive file appropriate
91 # for this version of Tk:
92 TCL_BIN_DIR             = @TCL_BIN_DIR@
93
94 # Libraries built with optimization switches have this additional extension
95 TK_DBGX                 = @TK_DBGX@
96
97 # warning flags
98 CFLAGS_WARNING          = @CFLAGS_WARNING@
99
100 # The default switches for optimization or debugging
101 CFLAGS_DEBUG            = @CFLAGS_DEBUG@
102 CFLAGS_OPTIMIZE         = @CFLAGS_OPTIMIZE@
103
104 # To change the compiler switches, for example to change from optimization to
105 # debugging symbols, change the following line:
106 #TK_CFLAGS                      = $(CFLAGS_DEBUG)
107 #TK_CFLAGS                      = $(CFLAGS_OPTIMIZE)
108 #TK_CFLAGS                      = $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE)
109 TK_CFLAGS                       = @CFLAGS_DEFAULT@
110
111 CFLAGS = @CFLAGS@
112
113 # Flags to pass to the linker
114 LDFLAGS_DEBUG           = @LDFLAGS_DEBUG@
115 LDFLAGS_OPTIMIZE        = @LDFLAGS_OPTIMIZE@
116 LDFLAGS                 = @LDFLAGS@ @LDFLAGS_DEFAULT@
117
118 # A "-I" switch that can be used when compiling to make all of the
119 # X11 include files accessible (the configure script will try to
120 # set this value, and will cause it to be an empty string if the
121 # include files are accessible via /usr/include).
122 X11_INCLUDES            = @XINCLUDES@
123
124 # Linker switch(es) to use to link with the X11 library archive (the
125 # configure script will try to set this value automatically, but you
126 # can override it).
127 X11_LIB_SWITCHES        = @XLIBSW@
128
129
130 # To turn off the security checks that disallow incoming sends when
131 # the X server appears to be insecure, reverse the comments on the
132 # following lines:
133 SECURITY_FLAGS          =
134 #SECURITY_FLAGS         = -DTK_NO_SECURITY
135
136 # To disable ANSI-C procedure prototypes reverse the comment characters
137 # on the following lines:
138 PROTO_FLAGS             =
139 #PROTO_FLAGS            = -DNO_PROTOTYPE
140
141 # To enable memory debugging reverse the comment characters on the following
142 # lines.  Warning:  if you enable memory debugging, you must do it
143 # *everywhere*, including all the code that calls Tcl, and you must use
144 # ckalloc and ckfree everywhere instead of malloc and free.
145 MEM_DEBUG_FLAGS         =
146 #MEM_DEBUG_FLAGS        = -DTCL_MEM_DEBUG
147
148 # If your X server is X11R4 or earlier, then you may wish to reverse
149 # the comment characters on the following two lines.  This will enable
150 # extra code to speed up XStringToKeysym.  In X11R5 and later releases
151 # XStringToKeysym is plenty fast, so you needn't define REDO_KEYSYM_LOOKUP.
152 KEYSYM_FLAGS            =
153 #KEYSYM_FLAGS           = -DREDO_KEYSYM_LOOKUP
154
155 # Tk does not used deprecated Tcl constructs so it should
156 # compile fine with -DTCL_NO_DEPRECATED. To remove its own
157 # set of deprecated code uncomment the second line.
158 NO_DEPRECATED_FLAGS     = -DTCL_NO_DEPRECATED
159 #NO_DEPRECATED_FLAGS    = -DTCL_NO_DEPRECATED -DTK_NO_DEPRECATED
160
161 # Some versions of make, like SGI's, use the following variable to
162 # determine which shell to use for executing commands:
163 SHELL = @SHELL@
164
165 # Tk used to let the configure script choose which program to use
166 # for installing, but there are just too many different versions of
167 # "install" around;  better to use the install-sh script that comes
168 # with the distribution, which is slower but guaranteed to work.
169
170 INSTALL                 = @srcdir@/install-sh -c
171 INSTALL_PROGRAM         = ${INSTALL}
172 INSTALL_DATA            = ${INSTALL} -m 644
173
174 # The following specifies which Tcl executable to use for make targets
175 # below.  This can generally be 'tclsh', meaning all targets will work
176 # once we have created the initial executable, but in some cases you
177 # may want to use a target without having made tclsh on these sources
178 # (like for make genstubs)
179 TCL_EXE                 = tclsh
180
181
182 # The symbols below provide support for dynamic loading and shared
183 # libraries.  The values of the symbols are normally set by the
184 # configure script.  You shouldn't normally need to modify any of
185 # these definitions by hand.
186
187 SHLIB_CFLAGS            = @SHLIB_CFLAGS@
188
189 # To enable support for stubs in Tcl.
190 STUB_LIB_FILE           = @TK_STUB_LIB_FILE@
191
192 TK_STUB_LIB_FILE        = @TK_STUB_LIB_FILE@
193 #TK_STUB_LIB_FILE       = libtkstub.a
194
195 TK_STUB_LIB_FLAG        = @TK_STUB_LIB_FLAG@
196 #TK_STUB_LIB_FLAG       = -ltkstub
197
198 TK_LIB_FILE             = @TK_LIB_FILE@
199 #TK_LIB_FILE            = libtk.a
200
201 TK_LIB_FLAG             = @TK_LIB_FLAG@
202 #TK_LIB_FLAG            = -ltk
203
204 TCL_BUILD_LIB_SPEC      = @TCL_BUILD_LIB_SPEC@
205
206 TK_EXP_FILE             = @TK_EXP_FILE@
207 TK_BUILD_EXP_FILE       = @TK_BUILD_EXP_FILE@
208
209 TCL_STUB_FLAGS          = @TCL_STUB_FLAGS@
210
211 # Libraries to use when linking.  This definition is determined by the
212 # configure script.
213 LIBS = @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
214 WISH_LIBS = $(TCL_BUILD_LIB_SPEC) @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
215
216 # The symbol below provides support for dynamic loading and shared
217 # libraries.  See configure.in for a description of what it means.
218 # The values of the symbolis normally set by the configure script.
219
220 STLIB_LD = @STLIB_LD@
221 SHLIB_LD = @SHLIB_LD@
222 SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
223
224 # CYGNUS LOCAL
225 # Defines for building libtk
226 SHLIB_SUFFIX = @SHLIB_SUFFIX@
227 TCL_SHARED_LIB_SUFFIX = @TCL_SHARED_LIB_SUFFIX@
228 TCL_UNSHARED_LIB_SUFFIX = @TCL_UNSHARED_LIB_SUFFIX@
229 TK_SHARED_LIB_FILE = @TK_SHARED_LIB_FILE@
230 TK_UNSHARED_LIB_FILE = @TK_UNSHARED_LIB_FILE@
231 # END CYGNUS LOCAL
232
233 SHLIB_LD                = @SHLIB_LD@
234 SHLIB_LD_LIBS           = @SHLIB_LD_LIBS@
235
236
237 # Additional search flags needed to find the various shared libraries
238 # at run-time.  The first symbol is for use when creating a binary
239 # with cc, and the second is for use when running ld directly.
240 TK_CC_SEARCH_FLAGS      = @TK_CC_SEARCH_FLAGS@
241 TK_LD_SEARCH_FLAGS      = @TK_LD_SEARCH_FLAGS@
242
243 #----------------------------------------------------------------
244 # The information below is modified by the configure script when
245 # Makefile is generated from Makefile.in.  You shouldn't normally
246 # modify any of this stuff by hand.
247 #----------------------------------------------------------------
248
249 AC_FLAGS                = @EXTRA_CFLAGS@ @DEFS@
250 AR                      = @AR@
251 TK_RANLIB               = @RANLIB@
252 SRC_DIR                 = @srcdir@/..
253 TOP_DIR                 = @srcdir@/..
254 GENERIC_DIR             = $(TOP_DIR)/generic
255 UNIX_DIR                = @srcdir@
256 BMAP_DIR                = $(TOP_DIR)/bitmaps
257 TOOL_DIR                = @TCL_SRC_DIR@/tools
258
259 #----------------------------------------------------------------
260 # The information below should be usable as is.  The configure
261 # script won't modify it and you shouldn't need to modify it
262 # either.
263 #----------------------------------------------------------------
264
265 CC                      = @CC@
266
267 CC_SWITCHES_NO_STUBS = ${CFLAGS} ${TK_CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
268 -I${UNIX_DIR} -I${GENERIC_DIR} \
269 -I${BMAP_DIR} -I${TCL_GENERIC_DIR} ${X11_INCLUDES} \
270 ${AC_FLAGS} ${PROTO_FLAGS} \
271 ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} ${KEYSYM_FLAGS} ${NO_DEPRECATED_FLAGS}
272
273 CC_SWITCHES = ${CC_SWITCHES_NO_STUBS} ${TCL_STUB_FLAGS} 
274
275 DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
276 -I${BMAP_DIR} \
277 -I${TCL_GENERIC_DIR} ${X11_INCLUDES} \
278 ${AC_FLAGS} ${PROTO_FLAGS} ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} \
279 ${KEYSYM_FLAGS}
280
281 WISH_OBJS = tkAppInit.o
282
283 TCLTEST_OBJS = ${TCL_BIN_DIR}/tclTest.o ${TCL_BIN_DIR}/tclThreadTest.o \
284         ${TCL_BIN_DIR}/tclUnixTest.o
285 TKTEST_OBJS = $(TCLTEST_OBJS) tkTestInit.o tkTest.o tkSquare.o
286
287 WIDGOBJS = tkButton.o tkEntry.o tkFrame.o tkListbox.o \
288         tkMenu.o tkMenubutton.o tkMenuDraw.o tkMessage.o tkScale.o \
289         tkScrollbar.o
290
291 CANVOBJS = tkCanvas.o tkCanvArc.o tkCanvBmap.o tkCanvImg.o \
292         tkCanvLine.o tkCanvPoly.o tkCanvPs.o tkCanvText.o \
293         tkCanvUtil.o tkCanvWind.o tkRectOval.o tkTrig.o
294
295 IMAGEOBJS = tkImage.o tkImgBmap.o tkImgGIF.o tkImgPPM.o tkImgPhoto.o
296
297 TEXTOBJS = tkText.o tkTextBTree.o tkTextDisp.o tkTextImage.o tkTextIndex.o \
298         tkTextMark.o tkTextTag.o tkTextWind.o
299
300 UNIXOBJS = tkUnix.o tkUnix3d.o tkUnixButton.o tkUnixColor.o tkUnixConfig.o \
301         tkUnixCursor.o tkUnixDraw.o tkUnixEmbed.o tkUnixEvent.o \
302         tkUnixFocus.o tkUnixFont.o tkUnixInit.o tkUnixKey.o tkUnixMenu.o \
303         tkUnixMenubu.o tkUnixScale.o tkUnixScrlbr.o tkUnixSelect.o \
304         tkUnixSend.o tkUnixWm.o tkUnixXId.o tkStubInit.o tkStubLib.o
305
306 STUB_LIB_OBJS = tkStubLib.o tkStubImg.o
307
308 OBJS =  tk3d.o tkArgv.o tkAtom.o tkBind.o tkBitmap.o tkClipboard.o tkCmds.o \
309         tkColor.o tkConfig.o tkConsole.o tkCursor.o tkError.o tkEvent.o \
310         tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o tkGrab.o tkGrid.o \
311         tkMain.o tkObj.o tkOldConfig.o tkOption.o tkPack.o tkPlace.o \
312         tkSelect.o tkUtil.o tkVisual.o tkWindow.o  \
313         $(UNIXOBJS) $(WIDGOBJS) $(CANVOBJS) $(IMAGEOBJS) $(TEXTOBJS)
314
315 TK_DECLS = \
316         $(GENERIC_DIR)/tk.decls \
317         $(GENERIC_DIR)/tkInt.decls
318
319 SRCS = \
320         $(GENERIC_DIR)/tk3d.c $(GENERIC_DIR)/tkArgv.c \
321         $(GENERIC_DIR)/tkAtom.c $(GENERIC_DIR)/tkBind.c \
322         $(GENERIC_DIR)/tkBitmap.c $(GENERIC_DIR)/tkClipboard.c \
323         $(GENERIC_DIR)/tkCmds.c $(GENERIC_DIR)/tkColor.c \
324         $(GENERIC_DIR)/tkConfig.c $(GENERIC_DIR)/tkCursor.c \
325         $(GENERIC_DIR)/tkError.c $(GENERIC_DIR)/tkEvent.c \
326         $(GENERIC_DIR)/tkFocus.c $(GENERIC_DIR)/tkFont.c \
327         $(GENERIC_DIR)/tkGet.c $(GENERIC_DIR)/tkGC.c \
328         $(GENERIC_DIR)/tkGeometry.c $(GENERIC_DIR)/tkGrab.c \
329         $(GENERIC_DIR)/tkGrid.c $(GENERIC_DIR)/tkConsole.c \
330         $(GENERIC_DIR)/tkMain.c $(GENERIC_DIR)/tkOption.c \
331         $(GENERIC_DIR)/tkPack.c $(GENERIC_DIR)/tkPlace.c \
332         $(GENERIC_DIR)/tkSelect.c $(GENERIC_DIR)/tkUtil.c \
333         $(GENERIC_DIR)/tkVisual.c $(GENERIC_DIR)/tkWindow.c \
334         $(GENERIC_DIR)/tkButton.c $(GENERIC_DIR)/tkObj.c \
335         $(GENERIC_DIR)/tkEntry.c $(GENERIC_DIR)/tkFrame.c \
336         $(GENERIC_DIR)/tkListbox.c $(GENERIC_DIR)/tkMenu.c \
337         $(GENERIC_DIR)/tkMenubutton.c $(GENERIC_DIR)/tkMenuDraw.c \
338         $(GENERIC_DIR)/tkMessage.c \
339         $(GENERIC_DIR)/tkScale.c $(GENERIC_DIR)/tkScrollbar.c \
340         $(GENERIC_DIR)/tkCanvas.c $(GENERIC_DIR)/tkCanvArc.c \
341         $(GENERIC_DIR)/tkCanvBmap.c $(GENERIC_DIR)/tkCanvImg.c \
342         $(GENERIC_DIR)/tkCanvLine.c $(GENERIC_DIR)/tkCanvPoly.c \
343         $(GENERIC_DIR)/tkCanvPs.c $(GENERIC_DIR)/tkCanvText.c \
344         $(GENERIC_DIR)/tkCanvUtil.c \
345         $(GENERIC_DIR)/tkCanvWind.c $(GENERIC_DIR)/tkRectOval.c \
346         $(GENERIC_DIR)/tkTrig.c $(GENERIC_DIR)/tkImage.c \
347         $(GENERIC_DIR)/tkImgBmap.c $(GENERIC_DIR)/tkImgGIF.c \
348         $(GENERIC_DIR)/tkImgPPM.c \
349         $(GENERIC_DIR)/tkImgPhoto.c $(GENERIC_DIR)/tkText.c \
350         $(GENERIC_DIR)/tkTextBTree.c $(GENERIC_DIR)/tkTextDisp.c \
351         $(GENERIC_DIR)/tkTextImage.c \
352         $(GENERIC_DIR)/tkTextIndex.c $(GENERIC_DIR)/tkTextMark.c \
353         $(GENERIC_DIR)/tkTextTag.c $(GENERIC_DIR)/tkTextWind.c \
354         $(GENERIC_DIR)/tkOldConfig.c \
355         $(GENERIC_DIR)/tkSquare.c $(GENERIC_DIR)/tkTest.c \
356         $(GENERIC_DIR)/tkStubInit.c $(GENERIC_DIR)/tkStubLib.c \
357         $(UNIX_DIR)/tkAppInit.c $(UNIX_DIR)/tkUnix.c \
358         $(UNIX_DIR)/tkUnix3d.c \
359         $(UNIX_DIR)/tkUnixButton.c $(UNIX_DIR)/tkUnixColor.c \
360         $(UNIX_DIR)/tkUnixConfig.c \
361         $(UNIX_DIR)/tkUnixCursor.c \
362         $(UNIX_DIR)/tkUnixDraw.c \
363         $(UNIX_DIR)/tkUnixEmbed.c $(UNIX_DIR)/tkUnixEvent.c \
364         $(UNIX_DIR)/tkUnixFocus.c \
365         $(UNIX_DIR)/tkUnixFont.c $(UNIX_DIR)/tkUnixInit.c \
366         $(UNIX_DIR)/tkUnixKey.c \
367         $(UNIX_DIR)/tkUnixMenu.c $(UNIX_DIR)/tkUnixMenubu.c \
368         $(UNIX_DIR)/tkUnixScale.c $(UNIX_DIR)/tkUnixScrlbr.c \
369         $(UNIX_DIR)/tkUnixSelect.c \
370         $(UNIX_DIR)/tkUnixSend.c $(UNIX_DIR)/tkUnixWm.c \
371         $(UNIX_DIR)/tkUnixXId.c
372
373
374 HDRS = bltList.h \
375         default.h ks_names.h tkPatch.h tk.h tkButton.h tkCanvas.h tkInt.h  \
376         tkPort.h tkScrollbar.h tkText.h
377
378 INSTALL_HDRS = $(GENERIC_DIR)/tk.h  \
379         $(GENERIC_DIR)/tkInt.h \
380         $(GENERIC_DIR)/tkDecls.h \
381         $(GENERIC_DIR)/tkIntXlibDecls.h
382
383 DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget
384
385 all: binaries libraries doc
386
387 binaries: ${TK_LIB_FILE} ${STUB_LIB_FILE} wish
388
389 libraries:
390
391 $(SRC_DIR)/doc/man.macros:
392         chmod +x $(UNIX_DIR)/install-sh
393         $(INSTALL_DATA) @TCL_SRC_DIR@/doc/man.macros $(SRC_DIR)/doc/man.macros
394
395 doc: $(SRC_DIR)/doc/man.macros
396
397 # The following target is configured by autoconf to generate either
398 # a shared library or non-shared library for Tk.
399 ${TK_LIB_FILE}: ${OBJS}
400         rm -f ${TK_LIB_FILE}
401         @MAKE_LIB@
402         $(TK_RANLIB) ${TK_LIB_FILE}
403
404 ${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
405         rm -f ${STUB_LIB_FILE}
406         @MAKE_STUB_LIB@
407         $(TK_RANLIB) ${STUB_LIB_FILE}
408
409 # Make target which outputs the list of the .o contained in the Tk lib
410 # usefull to build a single big shared library containing Tcl/Tk and other
411 # extensions.  used for the Tcl Plugin.  -- dl
412 tkLibObjs:
413         @echo ${OBJS}
414
415 # This targets actually build the objects needed for the lib in the above
416 # case
417 objs: ${OBJS}
418
419
420 wish: $(WISH_OBJS) $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) @TCL_LIB_FULL_PATH@
421         $(CC) $(LDFLAGS) $(WISH_OBJS) \
422                 @TK_BUILD_LIB_SPEC@ \
423                 $(WISH_LIBS) $(TK_CC_SEARCH_FLAGS) -o wish
424
425 # This rule is executed if the user tried to run tktest without first
426 # building tcltest in the Tcl bin directory. Just do it for them.
427 ${TCL_BIN_DIR}/tcltest:
428         cd ${TCL_BIN_DIR} ; \
429         make tcltest
430
431 tktest: ${TCL_BIN_DIR}/tcltest $(TKTEST_OBJS) $(TK_LIB_FILE) @TCL_LIB_FULL_PATH@
432         ${CC} $(LDFLAGS) $(TKTEST_OBJS) \
433                 @TK_BUILD_LIB_SPEC@ \
434                 $(WISH_LIBS) $(TK_CC_SEARCH_FLAGS) -o tktest
435
436 xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE) @TCL_LIB_FULL_PATH@
437         ${CC} $(LDFLAGS) test.o tkTest.o tkSquare.o \
438                 @TK_BUILD_LIB_SPEC@ \
439                 $(WISH_LIBS) $(TK_LD_SEARCH_FLAGS) -lXt -o xttest
440
441 # Note, in the target below TCL_LIBRARY needs to be set or else
442 # "make test" won't work in the case where the compilation directory
443 # isn't the same as the source directory.
444
445 test: tktest
446         LD_LIBRARY_PATH=`pwd`:${TCL_BIN_DIR}:${LD_LIBRARY_PATH}; \
447         export LD_LIBRARY_PATH; \
448         LIBPATH=`pwd`:${TCL_BIN_DIR}:${LIBPATH}; export LIBPATH; \
449         SHLIB_PATH=`pwd`:${TCL_BIN_DIR}:${SHLIB_PATH}; \
450         export SHLIB_PATH; \
451         TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
452         TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
453         ./tktest $(TOP_DIR)/tests/all.tcl -geometry +0+0 $(TCLTESTARGS)
454
455 # Useful target to launch a built tktest with the proper path,...
456 runtest: tktest
457         LD_LIBRARY_PATH=`pwd`:${TCL_BIN_DIR}:${LD_LIBRARY_PATH}; \
458         export LD_LIBRARY_PATH; \
459         LIBPATH=`pwd`:${TCL_BIN_DIR}:${LIBPATH}; export LIBPATH; \
460         SHLIB_PATH=`pwd`:${TCL_BIN_DIR}:${SHLIB_PATH}; export SHLIB_PATH; \
461         TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
462         TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
463         ./tktest
464
465 install: all install-binaries install-libraries install-demos install-doc
466
467 # Note: before running ranlib below, must cd to target directory because
468 # some ranlibs write to current directory, and this might not always be
469 # possible (e.g. if installing as root).
470
471 install-binaries: $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(TK_BUILD_EXP_FILE) wish
472         @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
473             do \
474             if [ ! -d $$i ] ; then \
475                 echo "Making directory $$i"; \
476                 mkdir -p $$i; \
477                 chmod 755 $$i; \
478                 else true; \
479                 fi; \
480             done;
481         @if test ! -x $(UNIX_DIR)/install-sh; then \
482             chmod +x $(UNIX_DIR)/install-sh; \
483             fi
484         @if test ! -x $(UNIX_DIR)/mkLinks; then \
485             chmod +x $(UNIX_DIR)/mkLinks; \
486             fi
487         @echo "Installing $(TK_LIB_FILE) to $(LIB_INSTALL_DIR)/"
488         @$(INSTALL_DATA) $(TK_LIB_FILE) $(LIB_INSTALL_DIR)/$(TK_LIB_FILE)
489         @(cd $(LIB_INSTALL_DIR); $(TK_RANLIB) $(TK_LIB_FILE))
490         @chmod 555 $(LIB_INSTALL_DIR)/$(TK_LIB_FILE)
491         @echo "Installing wish as $(BIN_INSTALL_DIR)/wish$(VERSION)"
492         @$(INSTALL_PROGRAM) wish $(BIN_INSTALL_DIR)/wish$(VERSION)
493         @echo "Installing tkConfig.sh to $(LIB_INSTALL_DIR)/"
494         @$(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tkConfig.sh
495         @if test "$(TK_BUILD_EXP_FILE)" != ""; then \
496             echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
497             $(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \
498                         $(LIB_INSTALL_DIR)/$(TK_EXP_FILE); \
499             fi
500         @if test "$(TK_STUB_LIB_FILE)" != "" ; then \
501             echo "Installing $(TK_STUB_LIB_FILE) to $(LIB_INSTALL_DIR)/"; \
502             $(INSTALL_DATA) $(STUB_LIB_FILE) \
503                          $(LIB_INSTALL_DIR)/$(TK_STUB_LIB_FILE); \
504             fi
505
506 install-libraries:
507         @for i in $(INSTALL_ROOT)@datadir@ $(INCLUDE_INSTALL_DIR) \
508                 $(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images; \
509             do \
510             if [ ! -d $$i ] ; then \
511                 echo "Making directory $$i"; \
512                 mkdir -p $$i; \
513                 chmod 755 $$i; \
514                 else true; \
515                 fi; \
516             done;
517         @if test ! -x $(UNIX_DIR)/install-sh; then \
518             chmod +x $(UNIX_DIR)/install-sh; \
519             fi
520         @echo "Installing header files";
521         @for i in $(INSTALL_HDRS) ; \
522             do \
523             $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
524             done;
525         @echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
526         @for i in $(SRC_DIR)/library/*.tcl $(GENERIC_DIR)/prolog.ps \
527                 $(SRC_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \
528             do \
529             $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
530             done;
531         @echo "Installing library images directory";
532         @for i in $(SRC_DIR)/library/images/*; \
533             do \
534             if [ -f $$i ] ; then \
535                 $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/images; \
536             fi; \
537             done;
538
539 # CYGNUS LOCAL: install-minimal target.
540 install-minimal:
541         @for i in $(INSTALL_ROOT)@datadir@ $(INCLUDE_INSTALL_DIR) \
542                 $(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images; \
543             do \
544             if [ ! -d $$i ] ; then \
545                 echo "Making directory $$i"; \
546                 mkdir $$i; \
547                 chmod 755 $$i; \
548                 else true; \
549                 fi; \
550             done;
551         for i in $(SRC_DIR)/library/*.tcl $(SRC_DIR)/library/tclIndex $(SRC_DIR)/library/prolog.ps; \
552             do \
553             echo "Installing $$i"; \
554             $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
555             done;
556
557 install-demos:
558         @for i in $(INSTALL_ROOT)@datadir@ $(SCRIPT_INSTALL_DIR) \
559                 $(SCRIPT_INSTALL_DIR)/demos \
560                 $(SCRIPT_INSTALL_DIR)/demos/images ; \
561             do \
562             if [ ! -d $$i ] ; then \
563                 echo "Making directory $$i"; \
564                 mkdir -p $$i; \
565                 chmod 755 $$i; \
566                 else true; \
567                 fi; \
568             done;
569         @echo "Installing demos to $(SCRIPT_INSTALL_DIR)/demos/";
570         @for i in $(SRC_DIR)/library/demos/*; \
571             do \
572             if [ -f $$i ] ; then \
573                 sed -e '3 s|exec wish|exec wish$(VERSION)|' \
574                         $$i > $(SCRIPT_INSTALL_DIR)/demos/`basename $$i`; \
575             fi; \
576             done;
577         @for i in $(DEMOPROGS); \
578             do \
579             chmod 755 $(SCRIPT_INSTALL_DIR)/demos/$$i; \
580             done;
581         @echo "Installing demo images";
582         @for i in $(SRC_DIR)/library/demos/images/*; \
583             do \
584             if [ -f $$i ] ; then \
585                 $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \
586                 fi; \
587             done;
588
589 install-doc:
590         @for i in $(MAN_INSTALL_DIR) $(MAN1_INSTALL_DIR) $(MAN3_INSTALL_DIR) $(MANN_INSTALL_DIR) ; \
591             do \
592             if [ ! -d $$i ] ; then \
593                 echo "Making directory $$i"; \
594                 mkdir -p $$i; \
595                 chmod 755 $$i; \
596                 else true; \
597                 fi; \
598             done;
599         @echo "Installing top-level (.1) docs";
600         @cd $(SRC_DIR)/doc; for i in *.1; \
601             do \
602             rm -f $(MAN1_INSTALL_DIR)/$$i; \
603             sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
604                     $$i > $(MAN1_INSTALL_DIR)/$$i; \
605             chmod 644 $(MAN1_INSTALL_DIR)/$$i; \
606             done;
607         @echo "Cross-linking top-level (.1) docs";
608         @$(UNIX_DIR)/mkLinks $(MAN1_INSTALL_DIR)
609         @echo "Installing C API (.3) docs";
610         @cd $(SRC_DIR)/doc; for i in *.3; \
611             do \
612             rm -f $(MAN3_INSTALL_DIR)/$$i; \
613             sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
614                     $$i > $(MAN3_INSTALL_DIR)/$$i; \
615             chmod 644 $(MAN3_INSTALL_DIR)/$$i; \
616             done;
617         @echo "Cross-linking top-level (.3) docs";
618         @$(UNIX_DIR)/mkLinks $(MAN3_INSTALL_DIR)
619         @echo "Installing command (.n) docs";
620         @cd $(SRC_DIR)/doc; for i in *.n; \
621             do \
622             rm -f $(MANN_INSTALL_DIR)/$$i; \
623             sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
624                     $$i > $(MANN_INSTALL_DIR)/$$i; \
625             chmod 644 $(MANN_INSTALL_DIR)/$$i; \
626             done;
627         @echo "Cross-linking command (.n) docs";
628         @$(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)
629
630 Makefile: $(UNIX_DIR)/Makefile.in config.status
631         $(SHELL) config.status
632
633 config.status: $(UNIX_DIR)/configure
634         ./config.status --recheck
635
636 clean:
637         rm -f *.a *.o libtk* core errs *~ \#* TAGS *.E a.out errors \
638                 tktest wish config.info lib.exp
639
640 distclean: clean
641         rm -f Makefile config.status config.cache config.log tkConfig.sh \
642                 $(PACKAGE).* prototype
643
644 depend:
645         makedepend -- $(DEPEND_SWITCHES) -- $(SRCS)
646
647 # Test binaries.  The rule for tkTestInit.o is complicated because
648 # it is is compiled from tkAppInit.c.  Can't use the "-o" option
649 # because this doesn't work on some strange compilers (e.g. UnixWare).
650
651 tkTestInit.o: $(UNIX_DIR)/tkAppInit.c
652         @if test -f tkAppInit.o ; then \
653             rm -f tkAppInit.sav; \
654             mv tkAppInit.o tkAppInit.sav; \
655         fi;
656         $(CC) -c $(CC_SWITCHES_NO_STUBS) -DTK_TEST $(UNIX_DIR)/tkAppInit.c
657         rm -f tkTestInit.o
658         mv tkAppInit.o tkTestInit.o
659         @if test -f tkAppInit.sav ; then \
660             mv tkAppInit.sav tkAppInit.o; \
661         fi;
662
663 tkAppInit.o: $(UNIX_DIR)/tkAppInit.c
664         $(CC) -c $(CC_SWITCHES_NO_STUBS) $(UNIX_DIR)/tkAppInit.c
665
666 tk3d.o: $(GENERIC_DIR)/tk3d.c
667         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tk3d.c
668
669 tkArgv.o: $(GENERIC_DIR)/tkArgv.c
670         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkArgv.c
671
672 tkAtom.o: $(GENERIC_DIR)/tkAtom.c
673         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkAtom.c
674
675 tkBind.o: $(GENERIC_DIR)/tkBind.c
676         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBind.c
677
678 tkBitmap.o: $(GENERIC_DIR)/tkBitmap.c
679         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBitmap.c
680
681 tkClipboard.o: $(GENERIC_DIR)/tkClipboard.c
682         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkClipboard.c
683
684 tkCmds.o: $(GENERIC_DIR)/tkCmds.c
685         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCmds.c
686
687 tkColor.o: $(GENERIC_DIR)/tkColor.c
688         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkColor.c
689
690 tkConfig.o: $(GENERIC_DIR)/tkConfig.c
691         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConfig.c
692
693 tkConsole.o: $(GENERIC_DIR)/tkConsole.c
694         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConsole.c
695
696 tkCursor.o: $(GENERIC_DIR)/tkCursor.c
697         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCursor.c
698
699 tkError.o: $(GENERIC_DIR)/tkError.c
700         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkError.c
701
702 tkEvent.o: $(GENERIC_DIR)/tkEvent.c
703         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEvent.c
704
705 tkFocus.o: $(GENERIC_DIR)/tkFocus.c
706         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFocus.c
707
708 tkFont.o: $(GENERIC_DIR)/tkFont.c
709         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFont.c
710
711 tkGet.o: $(GENERIC_DIR)/tkGet.c
712         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGet.c
713
714 tkGC.o: $(GENERIC_DIR)/tkGC.c
715         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGC.c
716
717 tkGeometry.o: $(GENERIC_DIR)/tkGeometry.c
718         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGeometry.c
719
720 tkGrab.o: $(GENERIC_DIR)/tkGrab.c
721         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrab.c
722
723 tkGrid.o: $(GENERIC_DIR)/tkGrid.c
724         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrid.c
725
726 tkMain.o: $(GENERIC_DIR)/tkMain.c
727         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMain.c
728
729 tkObj.o: $(GENERIC_DIR)/tkObj.c
730         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkObj.c
731
732 tkOldConfig.o: $(GENERIC_DIR)/tkOldConfig.c
733         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOldConfig.c
734
735 tkOption.o: $(GENERIC_DIR)/tkOption.c
736         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOption.c
737
738 tkPack.o: $(GENERIC_DIR)/tkPack.c
739         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPack.c
740
741 tkPlace.o: $(GENERIC_DIR)/tkPlace.c
742         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPlace.c
743
744 tkSelect.o: $(GENERIC_DIR)/tkSelect.c
745         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkSelect.c
746
747 tkUtil.o: $(GENERIC_DIR)/tkUtil.c
748         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkUtil.c
749
750 tkVisual.o: $(GENERIC_DIR)/tkVisual.c
751         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c
752
753 tkWindow.o: $(GENERIC_DIR)/tkWindow.c
754         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkWindow.c
755
756 tkButton.o: $(GENERIC_DIR)/tkButton.c
757         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c
758
759 tkEntry.o: $(GENERIC_DIR)/tkEntry.c
760         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEntry.c
761
762 tkFrame.o: $(GENERIC_DIR)/tkFrame.c
763         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFrame.c
764
765 tkListbox.o: $(GENERIC_DIR)/tkListbox.c
766         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkListbox.c
767
768 tkMenu.o: $(GENERIC_DIR)/tkMenu.c
769         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenu.c
770
771 tkMenubutton.o: $(GENERIC_DIR)/tkMenubutton.c
772         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenubutton.c
773
774 tkMenuDraw.o: $(GENERIC_DIR)/tkMenuDraw.c
775         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenuDraw.c
776
777 tkMessage.o: $(GENERIC_DIR)/tkMessage.c
778         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMessage.c
779
780 tkScale.o: $(GENERIC_DIR)/tkScale.c
781         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScale.c
782
783 tkScrollbar.o: $(GENERIC_DIR)/tkScrollbar.c
784         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScrollbar.c
785
786 tkSquare.o: $(GENERIC_DIR)/tkSquare.c
787         $(CC) -c $(CC_SWITCHES_NO_STUBS) $(GENERIC_DIR)/tkSquare.c
788
789 tkCanvas.o: $(GENERIC_DIR)/tkCanvas.c
790         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvas.c
791
792 tkCanvArc.o: $(GENERIC_DIR)/tkCanvArc.c
793         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvArc.c
794
795 tkCanvBmap.o: $(GENERIC_DIR)/tkCanvBmap.c
796         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvBmap.c
797
798 tkCanvImg.o: $(GENERIC_DIR)/tkCanvImg.c
799         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvImg.c
800
801 tkCanvLine.o: $(GENERIC_DIR)/tkCanvLine.c
802         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvLine.c
803
804 tkCanvPoly.o: $(GENERIC_DIR)/tkCanvPoly.c
805         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPoly.c
806
807 tkCanvPs.o: $(GENERIC_DIR)/tkCanvPs.c
808         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPs.c
809
810 tkCanvText.o: $(GENERIC_DIR)/tkCanvText.c
811         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvText.c
812
813 tkCanvUtil.o: $(GENERIC_DIR)/tkCanvUtil.c
814         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvUtil.c
815
816 tkCanvWind.o: $(GENERIC_DIR)/tkCanvWind.c
817         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvWind.c
818
819 tkRectOval.o: $(GENERIC_DIR)/tkRectOval.c
820         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkRectOval.c
821
822 tkTrig.o: $(GENERIC_DIR)/tkTrig.c
823         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTrig.c
824
825 tkImage.o: $(GENERIC_DIR)/tkImage.c
826         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImage.c
827
828 tkImgBmap.o: $(GENERIC_DIR)/tkImgBmap.c
829         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgBmap.c
830
831 tkImgGIF.o: $(GENERIC_DIR)/tkImgGIF.c
832         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgGIF.c
833
834 tkImgPPM.o: $(GENERIC_DIR)/tkImgPPM.c
835         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPPM.c
836
837 tkImgPhoto.o: $(GENERIC_DIR)/tkImgPhoto.c
838         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPhoto.c
839
840 tkTest.o: $(GENERIC_DIR)/tkTest.c
841         $(CC) -c $(CC_SWITCHES_NO_STUBS) $(GENERIC_DIR)/tkTest.c
842
843 tkText.o: $(GENERIC_DIR)/tkText.c
844         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkText.c
845
846 tkTextBTree.o: $(GENERIC_DIR)/tkTextBTree.c
847         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextBTree.c
848
849 tkTextDisp.o: $(GENERIC_DIR)/tkTextDisp.c
850         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextDisp.c
851
852 tkTextImage.o: $(GENERIC_DIR)/tkTextImage.c
853         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextImage.c
854
855 tkTextIndex.o: $(GENERIC_DIR)/tkTextIndex.c
856         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextIndex.c
857
858 tkTextMark.o: $(GENERIC_DIR)/tkTextMark.c
859         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextMark.c
860
861 tkTextTag.o: $(GENERIC_DIR)/tkTextTag.c
862         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextTag.c
863
864 tkTextWind.o: $(GENERIC_DIR)/tkTextWind.c
865         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextWind.c
866
867 tkStubInit.o: $(GENERIC_DIR)/tkStubInit.c
868         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubInit.c
869
870 # Stub library binaries, these must be compiled for use in a shared library
871 # even though they will be placed in a static archive
872
873 tkStubLib.o: $(GENERIC_DIR)/tkStubLib.c
874         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubLib.c
875
876 tkStubImg.o: $(GENERIC_DIR)/tkStubImg.c
877         $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubImg.c
878
879 tkUnix.o: $(UNIX_DIR)/tkUnix.c
880         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnix.c
881
882 tkUnix3d.o: $(UNIX_DIR)/tkUnix3d.c
883         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnix3d.c
884
885 tkUnixButton.o: $(UNIX_DIR)/tkUnixButton.c
886         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixButton.c
887
888 tkUnixColor.o: $(UNIX_DIR)/tkUnixColor.c
889         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixColor.c
890
891 tkUnixConfig.o: $(UNIX_DIR)/tkUnixConfig.c
892         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixConfig.c
893
894 tkUnixCursor.o: $(UNIX_DIR)/tkUnixCursor.c
895         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixCursor.c
896
897 tkUnixDraw.o: $(UNIX_DIR)/tkUnixDraw.c
898         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixDraw.c
899
900 tkUnixEmbed.o: $(UNIX_DIR)/tkUnixEmbed.c
901         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixEmbed.c
902
903 tkUnixEvent.o: $(UNIX_DIR)/tkUnixEvent.c
904         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixEvent.c
905
906 tkUnixFocus.o: $(UNIX_DIR)/tkUnixFocus.c
907         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFocus.c
908
909 tkUnixFont.o: $(UNIX_DIR)/tkUnixFont.c
910         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFont.c
911
912 tkUnixInit.o: $(UNIX_DIR)/tkUnixInit.c $(GENERIC_DIR)/tkInitScript.h tkConfig.sh
913         $(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" \
914             $(UNIX_DIR)/tkUnixInit.c
915
916 tkUnixKey.o: $(UNIX_DIR)/tkUnixKey.c
917         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixKey.c
918
919 tkUnixMenu.o: $(UNIX_DIR)/tkUnixMenu.c
920         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixMenu.c
921
922 tkUnixMenubu.o: $(UNIX_DIR)/tkUnixMenubu.c
923         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixMenubu.c
924
925 tkUnixScale.o: $(UNIX_DIR)/tkUnixScale.c
926         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixScale.c
927
928 tkUnixScrlbr.o: $(UNIX_DIR)/tkUnixScrlbr.c
929         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixScrlbr.c
930
931 tkUnixSelect.o: $(UNIX_DIR)/tkUnixSelect.c
932         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixSelect.c
933
934 tkUnixSend.o: $(UNIX_DIR)/tkUnixSend.c
935         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixSend.c
936
937 tkUnixWm.o: $(UNIX_DIR)/tkUnixWm.c
938         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixWm.c
939
940 tkUnixXId.o: $(UNIX_DIR)/tkUnixXId.c
941         $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixXId.c
942
943 .c.o:
944         $(CC) -c $(CC_SWITCHES) $<
945
946 #
947 # Target to check for proper usage of UCHAR macro.
948 #
949
950 checkuchar:
951         -egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR
952
953 #
954 # Target to make sure that only symbols with "Tk" prefixes are
955 # exported.
956 #
957
958 checkexports: $(TK_LIB_FILE)
959         -nm -p $(TK_LIB_FILE) | awk '$$2 ~ /[TDB]/ { print $$3 }' | sort -n | grep -v '^[Tt]k'
960
961 # Target to regenerate header files and stub files from the *.decls tables.
962 #
963
964 genstubs:
965         $(TCL_EXE) $(TOOL_DIR)/genStubs.tcl $(GENERIC_DIR) \
966                 $(GENERIC_DIR)/tk.decls $(GENERIC_DIR)/tkInt.decls
967
968 #
969 # Target to check that all exported functions have an entry in the stubs
970 # tables.
971 #
972
973 checkstubs:
974         -@for i in `nm -p $(TK_LIB_FILE) | awk '$$2 ~ /T/ { print $$3 }' \
975                 | sort -n`; do \
976                 match=0; \
977                 for j in $(TK_DECLS); do \
978                     if [ `grep -c $$i $$j` -gt 0 ]; then \
979                         match=1; \
980                     fi; \
981                 done; \
982                 if [ $$match -eq 0 ]; then echo $$i; fi \
983         done
984
985
986 #
987 # Target to create a Tk RPM for Linux.  Requires that you be on a Linux
988 # system.
989 #
990
991 rpm: all /bin/rpm
992         rm -f THIS.TCL.SPEC
993         echo "%define _builddir `pwd`" > THIS.TK.SPEC
994         echo "%define _rpmdir `pwd`/RPMS" >> THIS.TK.SPEC
995         cat tk.spec >> THIS.TK.SPEC
996         mkdir -p RPMS/i386
997         rpm -bb THIS.TK.SPEC
998         mv RPMS/i386/*.rpm .
999         rm -rf RPMS THIS.TK.SPEC
1000
1001 #
1002 # Target to create a proper Tk distribution from information in the
1003 # master source directory.  DISTDIR must be defined to indicate where
1004 # to put the distribution.  DISTDIR must be an absolute path name.
1005 #
1006
1007 DISTROOT = /tmp/dist
1008 DISTNAME =      tk@TK_VERSION@@TK_PATCH_LEVEL@
1009 ZIPNAME =       tk@TK_MAJOR_VERSION@@TK_MINOR_VERSION@@TK_PATCH_LEVEL@.zip
1010 DISTDIR =       $(DISTROOT)/$(DISTNAME)
1011 TCLDIR =        @TCL_SRC_DIR@
1012 $(UNIX_DIR)/configure:
1013         autoconf $(UNIX_DIR)/configure.in > $(UNIX_DIR)/configure
1014
1015 dist:   $(UNIX_DIR)/configure
1016         rm -rf $(DISTDIR)
1017         mkdir -p $(DISTDIR)
1018         mkdir $(DISTDIR)/unix
1019         cp -p $(UNIX_DIR)/*.c $(UNIX_DIR)/*.h $(DISTDIR)/unix
1020         cp $(TOP_DIR)/license.terms $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix
1021         chmod 664 $(DISTDIR)/unix/Makefile.in
1022         cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in \
1023                 $(UNIX_DIR)/aclocal.m4 \
1024                 $(UNIX_DIR)/tkConfig.sh.in $(TCLDIR)/unix/install-sh \
1025                 $(UNIX_DIR)/README $(DISTDIR)/unix
1026         chmod 775 $(DISTDIR)/unix/configure $(DISTDIR)/unix/configure.in
1027         chmod +x $(DISTDIR)/unix/install-sh
1028         $(TCL_EXE) $(TCLDIR)/unix/mkLinks.tcl $(TOP_DIR)/doc/*.[13n] \
1029                 > $(DISTDIR)/unix/mkLinks
1030         chmod +x $(DISTDIR)/unix/mkLinks
1031         mkdir $(DISTDIR)/bitmaps
1032         @(cd $(TOP_DIR); for i in bitmaps/* ; do \
1033             if [ -f $$i ] ; then \
1034                 sed -e 's/static char/static unsigned char/' \
1035                        $$i > $(DISTDIR)/$$i; \
1036             fi; \
1037         done;)
1038         mkdir $(DISTDIR)/generic
1039         cp -p $(GENERIC_DIR)/*.c $(GENERIC_DIR)/*.h $(GENERIC_DIR)/prolog.ps \
1040                 $(DISTDIR)/generic
1041         cp -p $(GENERIC_DIR)/*.decls $(DISTDIR)/generic
1042         cp -p $(GENERIC_DIR)/README $(DISTDIR)/generic
1043         cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README \
1044                 $(TOP_DIR)/license.terms $(DISTDIR)
1045         rm -f $(DISTDIR)/generic/blt*.[ch]
1046         mkdir $(DISTDIR)/win
1047         cp $(TOP_DIR)/win/Makefile.in $(DISTDIR)/win
1048         cp $(TOP_DIR)/win/configure.in \
1049                 $(TOP_DIR)/win/configure \
1050                 $(TOP_DIR)/win/tkConfig.sh.in \
1051                 $(TOP_DIR)/win/aclocal.m4 \
1052                 $(DISTDIR)/win
1053         cp -p $(TOP_DIR)/win/*.c $(TOP_DIR)/win/*.h $(DISTDIR)/win
1054         cp -p $(TOP_DIR)/win/*.bat $(DISTDIR)/win
1055         cp -p $(TOP_DIR)/win/makefile.* $(DISTDIR)/win
1056         cp -p $(TOP_DIR)/win/README $(DISTDIR)/win
1057         cp -p $(TOP_DIR)/license.terms $(DISTDIR)/win
1058         mkdir $(DISTDIR)/win/rc
1059         cp -p $(TOP_DIR)/win/rc/*.rc $(TOP_DIR)/win/rc/*.cur \
1060                 $(TOP_DIR)/win/rc/*.ico $(TOP_DIR)/win/rc/*.bmp \
1061                 $(DISTDIR)/win/rc
1062         mkdir $(DISTDIR)/mac
1063         cp -p $(TOP_DIR)/mac/tkMacProjects.sea.hqx $(DISTDIR)/mac
1064         cp -p $(TOP_DIR)/mac/*.c $(TOP_DIR)/mac/*.h $(TOP_DIR)/mac/*.r \
1065                 $(DISTDIR)/mac
1066         cp -p $(TOP_DIR)/mac/README $(DISTDIR)/mac
1067         cp -p $(TOP_DIR)/license.terms $(DISTDIR)/mac
1068         cp -p $(TOP_DIR)/mac/*.pch $(DISTDIR)/mac
1069         cp -p $(TOP_DIR)/mac/*.doc $(DISTDIR)/mac
1070         cp -p $(TOP_DIR)/mac/*.exp $(DISTDIR)/mac
1071         cp -p $(TOP_DIR)/mac/*.tcl $(DISTDIR)/mac
1072         mkdir $(DISTDIR)/compat
1073         cp -p $(TOP_DIR)/license.terms $(TCLDIR)/compat/unistd.h \
1074                 $(TCLDIR)/compat/stdlib.h $(TCLDIR)/compat/limits.h \
1075                 $(DISTDIR)/compat
1076         mkdir $(DISTDIR)/xlib
1077         cp -p $(TOP_DIR)/xlib/*.h $(TOP_DIR)/xlib/*.c $(DISTDIR)/xlib
1078         cp -p $(TOP_DIR)/license.terms $(DISTDIR)/xlib
1079         mkdir $(DISTDIR)/xlib/X11
1080         cp -p $(TOP_DIR)/xlib/X11/*.h $(DISTDIR)/xlib/X11
1081         cp -p $(TOP_DIR)/license.terms $(DISTDIR)/xlib/X11
1082         mkdir $(DISTDIR)/library
1083         cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \
1084                 $(TOP_DIR)/library/tclIndex \
1085                 $(DISTDIR)/library
1086         mkdir $(DISTDIR)/library/images
1087         @(cd $(TOP_DIR); for i in library/images/* ; do \
1088             if [ -f $$i ] ; then \
1089                 cp $$i $(DISTDIR)/$$i; \
1090             fi; \
1091         done;)
1092         mkdir $(DISTDIR)/library/demos
1093         cp -pr $(TOP_DIR)/library/demos/*.tcl \
1094                 $(TOP_DIR)/library/demos/tclIndex \
1095                 $(TOP_DIR)/library/demos/browse \
1096                 $(TOP_DIR)/library/demos/hello $(TOP_DIR)/library/demos/ixset \
1097                 $(TOP_DIR)/library/demos/rmt $(TOP_DIR)/library/demos/rolodex \
1098                 $(TOP_DIR)/library/demos/square \
1099                 $(TOP_DIR)/library/demos/tcolor \
1100                 $(TOP_DIR)/library/demos/timer \
1101                 $(TOP_DIR)/library/demos/widget \
1102                 $(TOP_DIR)/library/demos/README \
1103                 $(TOP_DIR)/license.terms $(DISTDIR)/library/demos
1104         mkdir $(DISTDIR)/library/demos/images
1105         @(cd $(TOP_DIR); for i in library/demos/images/* ; do \
1106             if [ -f $$i ] ; then \
1107                 cp $$i $(DISTDIR)/$$i; \
1108             fi; \
1109         done;)
1110         mkdir $(DISTDIR)/doc
1111         cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/doc/*.[13n] \
1112                 $(TCLDIR)/doc/man.macros $(DISTDIR)/doc
1113         mkdir $(DISTDIR)/tests
1114         cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/tests/*.test \
1115                 $(TOP_DIR)/tests/*.tcl $(TOP_DIR)/tests/README \
1116                 $(TOP_DIR)/tests/option.file* $(DISTDIR)/tests
1117
1118 #
1119 # The following target can only be used for non-patch releases.  Use
1120 # the "allpatch" target below for patch releases.
1121 #
1122
1123 alldist: dist
1124         rm -f $(DISTROOT)/$(DISTNAME).tar.Z \
1125                 $(DISTROOT)/$(DISTNAME).tar.gz \
1126                 $(DISTROOT)/$(ZIPNAME)
1127         cd $(DISTROOT); tar cf $(DISTNAME).tar $(DISTNAME); \
1128                 gzip -9 -c $(DISTNAME).tar > $(DISTNAME).tar.gz; \
1129                 compress $(DISTNAME).tar; zip -qr8 $(ZIPNAME) $(DISTNAME)
1130
1131 #
1132 # The target below is similar to "alldist" except it works for patch
1133 # releases.  It is needed because patch releases are peculiar: the
1134 # patch designation appears in the name of the compressed file
1135 # (e.g. tcl8.0p1.tar.gz) but the extracted source directory doesn't
1136 # include the patch designation (e.g. tcl8.0).
1137 #
1138
1139 allpatch: dist
1140         rm -f $(DISTROOT)/$(DISTNAME).tar.Z \
1141                 $(DISTROOT)/$(DISTNAME).tar.gz \
1142                 $(DISTROOT)/$(ZIPNAME)
1143         mv $(DISTROOT)/tk${VERSION} $(DISTROOT)/old
1144         mv $(DISTROOT)/$(DISTNAME) $(DISTROOT)/tk${VERSION}
1145         cd $(DISTROOT); tar cf $(DISTNAME).tar tk${VERSION}; \
1146                 gzip -9 -c $(DISTNAME).tar > $(DISTNAME).tar.gz; \
1147                 compress $(DISTNAME).tar; zip -r8 $(ZIPNAME) tk${VERSION}
1148         mv $(DISTROOT)/tk${VERSION} $(DISTROOT)/$(DISTNAME)
1149         mv $(DISTROOT)/old $(DISTROOT)/tk${VERSION}
1150
1151 #
1152 # Target to create a Macintosh version of the distribution.  This will
1153 # do a normal distribution and then massage the output to prepare it
1154 # for moving to the Mac platform.  This requires a few scripts and
1155 # programs found only in the Tcl greoup's tool workspace.
1156 #
1157
1158 macdist: dist
1159         rm -f $(DISTDIR)/mac/tkMacProjects.sea.hqx
1160         $(TCL_EXE) $(TOOL_DIR)/man2html.tcl $(DISTDIR)/tmp ../.. tk$(VERSION)
1161         mv $(DISTDIR)/tmp/tk$(VERSION) $(DISTDIR)/html
1162         rm -rf $(DISTDIR)/doc
1163         rm -rf $(DISTDIR)/tmp
1164         $(TCL_EXE) $(TOOL_DIR)/cvtEOL.tcl $(DISTDIR)
1165
1166 #
1167 # Targets to build Solaris package of the distribution for the current
1168 # architecture.  To build stream packages for both sun4 and i86pc
1169 # architectures: 
1170 #
1171 #   On the sun4 machine, execute the following:
1172 #     make distclean; ./configure
1173 #     make DISTDIR=<distdir> package
1174 #
1175 #   Once the build is complete, execute the following on the i86pc
1176 #   machine:
1177 #     make DISTDIR=<distdir> package-quick
1178 #
1179 # <distdir> is the absolute path to a directory where the build should
1180 # take place.  These steps will generate the $(PACKAGE).sun4 and
1181 # $(PACKAGE).i86pc stream packages.  It is important that the packages be
1182 # built in this fashion in order to ensure that the architecture
1183 # independent files are exactly the same, including timestamps, in
1184 # both packages.
1185 #
1186
1187 PACKAGE=SCRPtk
1188
1189 package: dist package-config package-common package-binaries package-generate
1190 package-quick: package-config package-binaries package-generate
1191
1192 #
1193 # Configure for the current architecture in the dist directory.
1194 #
1195 package-config:
1196         mkdir -p $(DISTDIR)/unix/`arch`
1197         cd $(DISTDIR)/unix/`arch`; \
1198         ../configure --prefix=/opt/SUNWtcl/$(TCLVERSION) \
1199                 --exec_prefix=/opt/SUNWtcl/$(TCLVERSION)/`arch` \
1200                 --with-tcl=$(DISTDIR)/../tcl$(TCLVERSION)/unix/`arch` \
1201                 --enable-shared
1202         mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)
1203         mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
1204
1205 #
1206 # Build and install the architecture independent files in the dist directory.
1207 #
1208
1209 package-common:
1210         cd $(DISTDIR)/unix/`arch`;\
1211         $(MAKE); \
1212         $(MAKE) install-libraries install-doc \
1213                 prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \
1214                 exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
1215         mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin
1216         sed -e "s/TCLVERSION/$(TCLVERSION)/g" \
1217                 -e "s/TKVERSION/$(VERSION)/g" < $(UNIX_DIR)/wish.sh \
1218                 > $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin/wish$(VERSION)
1219         chmod 755 $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin/wish$(VERSION)
1220
1221 #
1222 # Build and install the architecture specific files in the dist directory.
1223 #
1224
1225 package-binaries: 
1226         cd $(DISTDIR)/unix/`arch`; \
1227         $(MAKE); \
1228         $(MAKE) install-binaries prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \
1229                 exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
1230
1231 #
1232 # Generate a package from the installed files in the dist directory for the
1233 # current architecture.
1234 #
1235
1236 package-generate:
1237         pkgproto $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin=bin \
1238                  $(DISTDIR)/SUNWtcl/$(TCLVERSION)/include=include \
1239                  $(DISTDIR)/SUNWtcl/$(TCLVERSION)/lib=lib \
1240                  $(DISTDIR)/SUNWtcl/$(TCLVERSION)/man=man \
1241                  $(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`=`arch` \
1242         | $(TCL_EXE) $(TCLDIR)/unix/mkProto.tcl $(TCLVERSION) \
1243                 $(UNIX_DIR) > prototype
1244         pkgmk -o -d . -f prototype -a `arch`
1245         pkgtrans -s . $(PACKAGE).`arch` $(PACKAGE)
1246         rm -rf $(PACKAGE)
1247
1248 # DO NOT DELETE THIS LINE -- make depend depends on it.
1249