# # This file is a Makefile for Tk. If it has the name "Makefile.in" # then it is a template for a Makefile; to generate the actual Makefile, # run "./configure", which is a configuration script generated by the # "autoconf" program (constructs like "@foo@" will get replaced in the # actual Makefile. # # RCS: @(#) $Id: Makefile.in,v 1.72 2002/06/25 16:45:12 rmax Exp $ # Current Tk version; used in various names. TCLVERSION = @TCL_VERSION@ VERSION = @TK_VERSION@ LOCALES = @LOCALES@ #---------------------------------------------------------------- # Things you can change to personalize the Makefile for your own # site (you can make these changes in either Makefile.in or # Makefile, but changes to Makefile will get lost if you re-run # the configuration script). #---------------------------------------------------------------- # Default top-level directories in which to install architecture- # specific files (exec_prefix) and machine-independent files such # as scripts (prefix). The values specified here may be overridden # at configure-time with the --exec-prefix and --prefix options # to the "configure" script. prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ libdir = @libdir@ includedir = @includedir@ mandir = @mandir@ # The following definition can be set to non-null for special systems # like AFS with replication. It allows the pathnames used for installation # to be different than those used for actually reference files at # run-time. INSTALL_ROOT is prepended to $prefix and $exec_prefix # when installing files. INSTALL_ROOT = # Directory from which applications will reference the library of Tcl # scripts (note: you can set the TK_LIBRARY environment variable at # run-time to override the compiled-in location): TK_LIBRARY = $(prefix)/lib/tk$(VERSION) # Path to use at runtime to refer to LIB_INSTALL_DIR: LIB_RUNTIME_DIR = $(libdir) # Directory in which to install the program wish: BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir) # Directory in which to install the .a or .so binary for the Tk library: LIB_INSTALL_DIR = $(INSTALL_ROOT)$(libdir) # Path name to use when installing library scripts: SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TK_LIBRARY) # Directory in which to install the include file tk.h: INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir) # Top-level directory for manual entries: MAN_INSTALL_DIR = $(INSTALL_ROOT)$(mandir) # Directory in which to install manual entry for wish: MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1 # Directory in which to install manual entries for Tk's C library # procedures: MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3 # Directory in which to install manual entries for the built-in # Tcl commands implemented by Tk: MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann # The directory containing the Tcl sources and headers appropriate # for this version of Tk ("srcdir" will be replaced or has already # been replaced by the configure script): TCL_GENERIC_DIR = @TCL_SRC_DIR@/generic # The directory containing the Tcl library archive file appropriate # for this version of Tk: TCL_BIN_DIR = @TCL_BIN_DIR@ # The linker flags needed to link in the Tcl library (ex: -ltcl8.2) TCL_LIB_FLAG = @TCL_LIB_FLAG@ # Libraries built with optimization switches have this additional extension TK_DBGX = @TK_DBGX@ # warning flags CFLAGS_WARNING = @CFLAGS_WARNING@ # The default switches for optimization or debugging CFLAGS_DEBUG = @CFLAGS_DEBUG@ CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@ # To change the compiler switches, for example to change from optimization to # debugging symbols, change the following line: #CFLAGS = $(CFLAGS_DEBUG) #CFLAGS = $(CFLAGS_OPTIMIZE) #CFLAGS = $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE) CFLAGS = @CFLAGS@ @CFLAGS_DEFAULT@ # Flags to pass to the linker LDFLAGS_DEBUG = @LDFLAGS_DEBUG@ LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@ LDFLAGS = @LDFLAGS@ @LDFLAGS_DEFAULT@ # A "-I" switch that can be used when compiling to make all of the # X11 include files accessible (the configure script will try to # set this value, and will cause it to be an empty string if the # include files are accessible via /usr/include). X11_INCLUDES = @XINCLUDES@ # Linker switch(es) to use to link with the X11 library archive (the # configure script will try to set this value automatically, but you # can override it). X11_LIB_SWITCHES = @XLIBSW@ # To turn off the security checks that disallow incoming sends when # the X server appears to be insecure, reverse the comments on the # following lines: SECURITY_FLAGS = #SECURITY_FLAGS = -DTK_NO_SECURITY # To disable ANSI-C procedure prototypes reverse the comment characters # on the following lines: PROTO_FLAGS = #PROTO_FLAGS = -DNO_PROTOTYPE # To enable memory debugging reverse the comment characters on the following # lines. Warning: if you enable memory debugging, you must do it # *everywhere*, including all the code that calls Tcl, and you must use # ckalloc and ckfree everywhere instead of malloc and free. MEM_DEBUG_FLAGS = #MEM_DEBUG_FLAGS = -DTCL_MEM_DEBUG # If your X server is X11R4 or earlier, then you may wish to reverse # the comment characters on the following two lines. This will enable # extra code to speed up XStringToKeysym. In X11R5 and later releases # XStringToKeysym is plenty fast, so you needn't define REDO_KEYSYM_LOOKUP. KEYSYM_FLAGS = #KEYSYM_FLAGS = -DREDO_KEYSYM_LOOKUP # Tk does not used deprecated Tcl constructs so it should # compile fine with -DTCL_NO_DEPRECATED. To remove its own # set of deprecated code uncomment the second line. NO_DEPRECATED_FLAGS = -DTCL_NO_DEPRECATED #NO_DEPRECATED_FLAGS = -DTCL_NO_DEPRECATED -DTK_NO_DEPRECATED # Some versions of make, like SGI's, use the following variable to # determine which shell to use for executing commands: SHELL = /bin/sh # Tk used to let the configure script choose which program to use # for installing, but there are just too many different versions of # "install" around; better to use the install-sh script that comes # with the distribution, which is slower but guaranteed to work. INSTALL = @srcdir@/install-sh -c INSTALL_PROGRAM = ${INSTALL} INSTALL_DATA = ${INSTALL} -m 644 # TCL_EXE is the name of a tclsh executable that is available *BEFORE* # running make for the first time. Certain build targets (make genstubs) # need it to be available on the PATH. This executable should *NOT* be # required just to do a normal build although it can be required to run # make dist. TCL_EXE = tclsh # The symbols below provide support for dynamic loading and shared # libraries. The values of the symbols are normally set by the # configure script. You shouldn't normally need to modify any of # these definitions by hand. SHLIB_CFLAGS = @SHLIB_CFLAGS@ # To enable support for stubs in Tcl. STUB_LIB_FILE = @TK_STUB_LIB_FILE@ TK_STUB_LIB_FILE = @TK_STUB_LIB_FILE@ #TK_STUB_LIB_FILE = libtkstub.a TK_STUB_LIB_FLAG = @TK_STUB_LIB_FLAG@ #TK_STUB_LIB_FLAG = -ltkstub TK_LIB_FILE = @TK_LIB_FILE@ #TK_LIB_FILE = libtk.a TK_LIB_FLAG = @TK_LIB_FLAG@ #TK_LIB_FLAG = -ltk TCL_LIB_SPEC = @TCL_LIB_SPEC@ TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@ TCL_STUB_LIB_FLAG = @TCL_STUB_LIB_FLAG@ TK_EXP_FILE = @TK_EXP_FILE@ TK_BUILD_EXP_FILE = @TK_BUILD_EXP_FILE@ TCL_STUB_FLAGS = @TCL_STUB_FLAGS@ # Libraries to use when linking. This definition is determined by the # configure script. LIBS = @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ WISH_LIBS = $(TCL_LIB_SPEC) @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ # The symbol below provides support for dynamic loading and shared # libraries. See configure.in for a description of what it means. # The values of the symbolis normally set by the configure script. STLIB_LD = @STLIB_LD@ SHLIB_LD = @SHLIB_LD@ SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ # Additional search flags needed to find the various shared libraries # at run-time. The first symbol is for use when creating a binary # with cc, and the second is for use when running ld directly. TK_CC_SEARCH_FLAGS = @TK_CC_SEARCH_FLAGS@ TK_LD_SEARCH_FLAGS = @TK_LD_SEARCH_FLAGS@ #---------------------------------------------------------------- # The information below is modified by the configure script when # Makefile is generated from Makefile.in. You shouldn't normally # modify any of this stuff by hand. #---------------------------------------------------------------- AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@ AR = @AR@ RANLIB = @RANLIB@ SRC_DIR = @srcdir@/.. TOP_DIR = @srcdir@/.. GENERIC_DIR = $(TOP_DIR)/generic UNIX_DIR = @srcdir@ BMAP_DIR = $(TOP_DIR)/bitmaps TOOL_DIR = @TCL_SRC_DIR@/tools #---------------------------------------------------------------- # The information below should be usable as is. The configure # script won't modify it and you shouldn't need to modify it # either. #---------------------------------------------------------------- # Flags to be passed to mkLinks to control whether the manpages # should be compressed and linked with softlinks MKLINKS_FLAGS = @MKLINKS_FLAGS@ CC = @CC@ CC_SWITCHES_NO_STUBS = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \ -I${UNIX_DIR} -I${GENERIC_DIR} \ -I${BMAP_DIR} -I${TCL_GENERIC_DIR} ${X11_INCLUDES} \ ${AC_FLAGS} ${PROTO_FLAGS} \ ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} ${KEYSYM_FLAGS} ${NO_DEPRECATED_FLAGS} CC_SWITCHES = ${CC_SWITCHES_NO_STUBS} ${TCL_STUB_FLAGS} DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \ -I${BMAP_DIR} \ -I${TCL_GENERIC_DIR} ${X11_INCLUDES} \ ${AC_FLAGS} ${PROTO_FLAGS} ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} \ ${KEYSYM_FLAGS} WISH_OBJS = tkAppInit.o TKTEST_OBJS = tkTestInit.o tkTest.o tkSquare.o WIDGOBJS = tkButton.o tkEntry.o tkFrame.o tkListbox.o \ tkMenu.o tkMenubutton.o tkMenuDraw.o tkMessage.o \ tkPanedWindow.o tkScale.o tkScrollbar.o CANVOBJS = tkCanvas.o tkCanvArc.o tkCanvBmap.o tkCanvImg.o \ tkCanvLine.o tkCanvPoly.o tkCanvPs.o tkCanvText.o \ tkCanvUtil.o tkCanvWind.o tkRectOval.o tkTrig.o IMAGEOBJS = tkImage.o tkImgBmap.o tkImgGIF.o tkImgPPM.o tkImgPhoto.o TEXTOBJS = tkText.o tkTextBTree.o tkTextDisp.o tkTextImage.o tkTextIndex.o \ tkTextMark.o tkTextTag.o tkTextWind.o UNIXOBJS = tkUnix.o tkUnix3d.o tkUnixButton.o tkUnixColor.o tkUnixConfig.o \ tkUnixCursor.o tkUnixDraw.o tkUnixEmbed.o tkUnixEvent.o \ tkUnixFocus.o tkUnixFont.o tkUnixInit.o tkUnixKey.o tkUnixMenu.o \ tkUnixMenubu.o tkUnixScale.o tkUnixScrlbr.o tkUnixSelect.o \ tkUnixSend.o tkUnixWm.o tkUnixXId.o tkStubInit.o tkStubLib.o STUB_LIB_OBJS = tkStubLib.o tkStubImg.o OBJS = tk3d.o tkArgv.o tkAtom.o tkBind.o tkBitmap.o tkClipboard.o tkCmds.o \ tkColor.o tkConfig.o tkConsole.o tkCursor.o tkError.o tkEvent.o \ tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o tkGrab.o tkGrid.o \ tkMain.o tkObj.o tkOldConfig.o tkOption.o tkPack.o tkPlace.o \ tkSelect.o tkStyle.o tkUndo.o tkUtil.o tkVisual.o tkWindow.o \ $(UNIXOBJS) $(WIDGOBJS) $(CANVOBJS) $(IMAGEOBJS) $(TEXTOBJS) TK_DECLS = \ $(GENERIC_DIR)/tk.decls \ $(GENERIC_DIR)/tkInt.decls SRCS = \ $(GENERIC_DIR)/tk3d.c $(GENERIC_DIR)/tkArgv.c \ $(GENERIC_DIR)/tkAtom.c $(GENERIC_DIR)/tkBind.c \ $(GENERIC_DIR)/tkBitmap.c $(GENERIC_DIR)/tkClipboard.c \ $(GENERIC_DIR)/tkCmds.c $(GENERIC_DIR)/tkColor.c \ $(GENERIC_DIR)/tkConfig.c $(GENERIC_DIR)/tkCursor.c \ $(GENERIC_DIR)/tkError.c $(GENERIC_DIR)/tkEvent.c \ $(GENERIC_DIR)/tkFocus.c $(GENERIC_DIR)/tkFont.c \ $(GENERIC_DIR)/tkGet.c $(GENERIC_DIR)/tkGC.c \ $(GENERIC_DIR)/tkGeometry.c $(GENERIC_DIR)/tkGrab.c \ $(GENERIC_DIR)/tkGrid.c $(GENERIC_DIR)/tkConsole.c \ $(GENERIC_DIR)/tkMain.c $(GENERIC_DIR)/tkOption.c \ $(GENERIC_DIR)/tkPack.c $(GENERIC_DIR)/tkPlace.c \ $(GENERIC_DIR)/tkSelect.c $(GENERIC_DIR)/tkStyle.c \ $(GENERIC_DIR)/tkUndo.c $(GENERIC_DIR)/tkUtil.c \ $(GENERIC_DIR)/tkVisual.c $(GENERIC_DIR)/tkWindow.c \ $(GENERIC_DIR)/tkButton.c $(GENERIC_DIR)/tkObj.c \ $(GENERIC_DIR)/tkEntry.c $(GENERIC_DIR)/tkFrame.c \ $(GENERIC_DIR)/tkListbox.c $(GENERIC_DIR)/tkMenu.c \ $(GENERIC_DIR)/tkMenubutton.c $(GENERIC_DIR)/tkMenuDraw.c \ $(GENERIC_DIR)/tkMessage.c $(GENERIC_DIR)/tkPanedWindow.c \ $(GENERIC_DIR)/tkScale.c $(GENERIC_DIR)/tkScrollbar.c \ $(GENERIC_DIR)/tkCanvas.c $(GENERIC_DIR)/tkCanvArc.c \ $(GENERIC_DIR)/tkCanvBmap.c $(GENERIC_DIR)/tkCanvImg.c \ $(GENERIC_DIR)/tkCanvLine.c $(GENERIC_DIR)/tkCanvPoly.c \ $(GENERIC_DIR)/tkCanvPs.c $(GENERIC_DIR)/tkCanvText.c \ $(GENERIC_DIR)/tkCanvUtil.c \ $(GENERIC_DIR)/tkCanvWind.c $(GENERIC_DIR)/tkRectOval.c \ $(GENERIC_DIR)/tkTrig.c $(GENERIC_DIR)/tkImage.c \ $(GENERIC_DIR)/tkImgBmap.c $(GENERIC_DIR)/tkImgGIF.c \ $(GENERIC_DIR)/tkImgPPM.c \ $(GENERIC_DIR)/tkImgPhoto.c $(GENERIC_DIR)/tkText.c \ $(GENERIC_DIR)/tkTextBTree.c $(GENERIC_DIR)/tkTextDisp.c \ $(GENERIC_DIR)/tkTextImage.c \ $(GENERIC_DIR)/tkTextIndex.c $(GENERIC_DIR)/tkTextMark.c \ $(GENERIC_DIR)/tkTextTag.c $(GENERIC_DIR)/tkTextWind.c \ $(GENERIC_DIR)/tkOldConfig.c \ $(GENERIC_DIR)/tkSquare.c $(GENERIC_DIR)/tkTest.c \ $(GENERIC_DIR)/tkStubInit.c $(GENERIC_DIR)/tkStubLib.c \ $(UNIX_DIR)/tkAppInit.c $(UNIX_DIR)/tkUnix.c \ $(UNIX_DIR)/tkUnix3d.c \ $(UNIX_DIR)/tkUnixButton.c $(UNIX_DIR)/tkUnixColor.c \ $(UNIX_DIR)/tkUnixConfig.c \ $(UNIX_DIR)/tkUnixCursor.c \ $(UNIX_DIR)/tkUnixDraw.c \ $(UNIX_DIR)/tkUnixEmbed.c $(UNIX_DIR)/tkUnixEvent.c \ $(UNIX_DIR)/tkUnixFocus.c \ $(UNIX_DIR)/tkUnixFont.c $(UNIX_DIR)/tkUnixInit.c \ $(UNIX_DIR)/tkUnixKey.c \ $(UNIX_DIR)/tkUnixMenu.c $(UNIX_DIR)/tkUnixMenubu.c \ $(UNIX_DIR)/tkUnixScale.c $(UNIX_DIR)/tkUnixScrlbr.c \ $(UNIX_DIR)/tkUnixSelect.c \ $(UNIX_DIR)/tkUnixSend.c $(UNIX_DIR)/tkUnixWm.c \ $(UNIX_DIR)/tkUnixXId.c HDRS = bltList.h \ default.h ks_names.h tkPatch.h tk.h tkButton.h tkCanvas.h tkInt.h \ tkPort.h tkScrollbar.h tkText.h DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget all: binaries libraries doc binaries: ${TK_LIB_FILE} ${STUB_LIB_FILE} wish libraries: $(SRC_DIR)/doc/man.macros: chmod +x $(UNIX_DIR)/install-sh $(INSTALL_DATA) @TCL_SRC_DIR@/doc/man.macros $(SRC_DIR)/doc/man.macros doc: $(SRC_DIR)/doc/man.macros # The following target is configured by autoconf to generate either # a shared library or non-shared library for Tk. ${TK_LIB_FILE}: ${OBJS} rm -f ${TK_LIB_FILE} @MAKE_LIB@ $(RANLIB) ${TK_LIB_FILE} ${STUB_LIB_FILE}: ${STUB_LIB_OBJS} rm -f ${STUB_LIB_FILE} @MAKE_STUB_LIB@ $(RANLIB) ${STUB_LIB_FILE} # Make target which outputs the list of the .o contained in the Tk lib # usefull to build a single big shared library containing Tcl/Tk and other # extensions. used for the Tcl Plugin. -- dl tkLibObjs: @echo ${OBJS} # This targets actually build the objects needed for the lib in the above # case objs: ${OBJS} wish: $(WISH_OBJS) $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(CC) $(LDFLAGS) $(WISH_OBJS) \ @TK_BUILD_LIB_SPEC@ \ $(WISH_LIBS) $(TK_CC_SEARCH_FLAGS) -o wish # Resetting the LIB_RUNTIME_DIR below is required so that # the generated tktest executable gets the build directory # burned into its ld search path. This keeps tktest from # picking up an already installed version of the Tcl or # Tk shared libraries. tktest: $(TKTEST_OBJS) $(TK_LIB_FILE) $(MAKE) tktest-real LIB_RUNTIME_DIR=`pwd`:$(TCL_BIN_DIR) tktest-real: ${CC} $(LDFLAGS) $(TKTEST_OBJS) \ @TK_BUILD_LIB_SPEC@ \ $(WISH_LIBS) $(TK_CC_SEARCH_FLAGS) -o tktest # FIXME: This xttest rule seems to be broken in a number of ways. # It should use TK_CC_SEARCH_FLAGS, it does not include the shared # lib location logic from tktest, and it is not clear where this # test.o object file comes from. xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE) ${CC} $(LDFLAGS) test.o tkTest.o tkSquare.o \ @TK_BUILD_LIB_SPEC@ \ $(WISH_LIBS) $(TK_LD_SEARCH_FLAGS) -lXt -o xttest # Note, in the target below TCL_LIBRARY needs to be set or else # "make test" won't work in the case where the compilation directory # isn't the same as the source directory. # Specifying TESTFLAGS on the command line is the standard way to pass # args to tcltest, ie: # % make test TESTFLAGS="-verbose bps -file fileName.test" test: tktest TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \ TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \ ./tktest $(TOP_DIR)/tests/all.tcl -geometry +0+0 \ $(TESTFLAGS) $(TCLTESTARGS) # Tests with different languages testlang: tktest TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \ TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \ for lang in $(LOCALES) ; \ do \ LANG=$(lang); export LANG; \ ./tktest $(TOP_DIR)/tests/all.tcl -geometry +0+0 \ $(TESTFLAGS) $(TCLTESTARGS); \ done # Useful target to launch a built tktest with the proper path,... runtest: tktest TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \ TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \ ./tktest # This target can be used to run wish from the build directory # via `make shell` or `make shell SCRIPT=/tmp/foo.tcl` shell: wish LD_LIBRARY_PATH=`pwd`:${TCL_BIN_DIR}:${LD_LIBRARY_PATH}; \ export LD_LIBRARY_PATH; \ LIBPATH=`pwd`:${TCL_BIN_DIR}:${LIBPATH}; export LIBPATH; \ SHLIB_PATH=`pwd`:${TCL_BIN_DIR}:${SHLIB_PATH}; \ export SHLIB_PATH; \ TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \ TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \ ./wish $(SCRIPT) # This target can be used to run wish inside either gdb or insight gdb: wish @echo "set env LD_LIBRARY_PATH=`pwd`:${TCL_BIN_DIR}:${LD_LIBRARY_PATH}" > gdb.run @echo "set env LIBPATH=`pwd`:${TCL_BIN_DIR}:${LIBPATH}" >> gdb.run @echo "set env SHLIB_PATH=`pwd`:${TCL_BIN_DIR}:${SHLIB_PATH}" >> gdb.run @echo "set env TCL_LIBRARY=@TCL_SRC_DIR@/library" >> gdb.run @echo "set env TK_LIBRARY=@TK_SRC_DIR@/library" >> gdb.run gdb ./wish --command=gdb.run rm gdb.run install: all install-binaries install-libraries install-demos install-doc # Note: before running ranlib below, must cd to target directory because # some ranlibs write to current directory, and this might not always be # possible (e.g. if installing as root). install-binaries: $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(TK_BUILD_EXP_FILE) wish @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir -p $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @if test ! -x $(UNIX_DIR)/install-sh; then \ chmod +x $(UNIX_DIR)/install-sh; \ fi @echo "Installing $(TK_LIB_FILE) to $(LIB_INSTALL_DIR)/" @$(INSTALL_DATA) $(TK_LIB_FILE) $(LIB_INSTALL_DIR)/$(TK_LIB_FILE) @(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TK_LIB_FILE)) @chmod 555 $(LIB_INSTALL_DIR)/$(TK_LIB_FILE) @echo "Installing wish as $(BIN_INSTALL_DIR)/wish$(VERSION)" @$(INSTALL_PROGRAM) wish $(BIN_INSTALL_DIR)/wish$(VERSION) @echo "Installing tkConfig.sh to $(LIB_INSTALL_DIR)/" @$(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tkConfig.sh @if test "$(TK_BUILD_EXP_FILE)" != ""; then \ echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \ $(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \ $(LIB_INSTALL_DIR)/$(TK_EXP_FILE); \ fi @if test "$(TK_STUB_LIB_FILE)" != "" ; then \ echo "Installing $(TK_STUB_LIB_FILE) to $(LIB_INSTALL_DIR)/"; \ $(INSTALL_DATA) $(STUB_LIB_FILE) \ $(LIB_INSTALL_DIR)/$(TK_STUB_LIB_FILE); \ fi install-libraries: @for i in $(INCLUDE_INSTALL_DIR) \ $(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images \ $(SCRIPT_INSTALL_DIR)/msgs; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir -p $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @if test ! -x $(UNIX_DIR)/install-sh; then \ chmod +x $(UNIX_DIR)/install-sh; \ fi @echo "Installing header files"; @for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDecls.h \ $(GENERIC_DIR)/tkPlatDecls.h ; \ do \ $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \ done; @echo "Installing library files to $(SCRIPT_INSTALL_DIR)"; @for i in $(SRC_DIR)/library/*.tcl $(GENERIC_DIR)/prolog.ps \ $(SRC_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \ do \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \ done; @echo "Installing library images directory"; @for i in $(SRC_DIR)/library/images/*; \ do \ if [ -f $$i ] ; then \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/images; \ fi; \ done; @echo "Installing translation directory"; @for i in $(SRC_DIR)/library/msgs/*.msg; \ do \ if [ -f $$i ] ; then \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/msgs; \ fi; \ done; install-demos: @for i in $(SCRIPT_INSTALL_DIR) \ $(SCRIPT_INSTALL_DIR)/demos \ $(SCRIPT_INSTALL_DIR)/demos/images ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir -p $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @echo "Installing demos to $(SCRIPT_INSTALL_DIR)/demos/"; @for i in $(SRC_DIR)/library/demos/*; \ do \ if [ -f $$i ] ; then \ sed -e '3 s|exec wish|exec wish$(VERSION)|' \ $$i > $(SCRIPT_INSTALL_DIR)/demos/`basename $$i`; \ fi; \ done; @for i in $(DEMOPROGS); \ do \ chmod 755 $(SCRIPT_INSTALL_DIR)/demos/$$i; \ done; @echo "Installing demo images"; @for i in $(SRC_DIR)/library/demos/images/*; \ do \ if [ -f $$i ] ; then \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \ fi; \ done; install-doc: @if test ! -x $(UNIX_DIR)/mkLinks; then \ chmod +x $(UNIX_DIR)/mkLinks; \ fi @for i in $(MAN_INSTALL_DIR) $(MAN1_INSTALL_DIR) $(MAN3_INSTALL_DIR) $(MANN_INSTALL_DIR) ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir -p $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @echo "Installing top-level (.1) docs"; @cd $(SRC_DIR)/doc; for i in *.1; \ do \ rm -f $(MAN1_INSTALL_DIR)/$$i; \ sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ $$i > $(MAN1_INSTALL_DIR)/$$i; \ chmod 444 $(MAN1_INSTALL_DIR)/$$i; \ done; @echo "Cross-linking top-level (.1) docs"; @$(UNIX_DIR)/mkLinks $(MKLINKS_FLAGS) $(MAN1_INSTALL_DIR) @echo "Installing C API (.3) docs"; @cd $(SRC_DIR)/doc; for i in *.3; \ do \ rm -f $(MAN3_INSTALL_DIR)/$$i; \ sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ $$i > $(MAN3_INSTALL_DIR)/$$i; \ chmod 444 $(MAN3_INSTALL_DIR)/$$i; \ done; @echo "Cross-linking top-level (.3) docs"; @$(UNIX_DIR)/mkLinks $(MKLINKS_FLAGS) $(MAN3_INSTALL_DIR) @echo "Installing command (.n) docs"; @cd $(SRC_DIR)/doc; for i in *.n; \ do \ rm -f $(MANN_INSTALL_DIR)/$$i; \ sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ $$i > $(MANN_INSTALL_DIR)/$$i; \ chmod 444 $(MANN_INSTALL_DIR)/$$i; \ done; @echo "Cross-linking command (.n) docs"; @$(UNIX_DIR)/mkLinks $(MKLINKS_FLAGS) $(MANN_INSTALL_DIR) Makefile: $(UNIX_DIR)/Makefile.in $(SHELL) config.status clean: rm -f *.a *.o libtk* core errs *~ \#* TAGS *.E a.out errors \ tktest wish config.info lib.exp distclean: clean rm -f Makefile config.status config.cache config.log tkConfig.sh \ $(PACKAGE).* prototype depend: makedepend -- $(DEPEND_SWITCHES) -- $(SRCS) # Test binaries. The rule for tkTestInit.o is complicated because # it is is compiled from tkAppInit.c. Can't use the "-o" option # because this doesn't work on some strange compilers (e.g. UnixWare). tkTestInit.o: $(UNIX_DIR)/tkAppInit.c @if test -f tkAppInit.o ; then \ rm -f tkAppInit.sav; \ mv tkAppInit.o tkAppInit.sav; \ fi; $(CC) -c $(CC_SWITCHES_NO_STUBS) -DTK_TEST $(UNIX_DIR)/tkAppInit.c rm -f tkTestInit.o mv tkAppInit.o tkTestInit.o @if test -f tkAppInit.sav ; then \ mv tkAppInit.sav tkAppInit.o; \ fi; tkAppInit.o: $(UNIX_DIR)/tkAppInit.c $(CC) -c $(CC_SWITCHES_NO_STUBS) $(UNIX_DIR)/tkAppInit.c tk3d.o: $(GENERIC_DIR)/tk3d.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tk3d.c tkArgv.o: $(GENERIC_DIR)/tkArgv.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkArgv.c tkAtom.o: $(GENERIC_DIR)/tkAtom.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkAtom.c tkBind.o: $(GENERIC_DIR)/tkBind.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBind.c tkBitmap.o: $(GENERIC_DIR)/tkBitmap.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBitmap.c tkClipboard.o: $(GENERIC_DIR)/tkClipboard.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkClipboard.c tkCmds.o: $(GENERIC_DIR)/tkCmds.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCmds.c tkColor.o: $(GENERIC_DIR)/tkColor.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkColor.c tkConfig.o: $(GENERIC_DIR)/tkConfig.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConfig.c tkConsole.o: $(GENERIC_DIR)/tkConsole.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConsole.c tkCursor.o: $(GENERIC_DIR)/tkCursor.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCursor.c tkError.o: $(GENERIC_DIR)/tkError.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkError.c tkEvent.o: $(GENERIC_DIR)/tkEvent.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEvent.c tkFocus.o: $(GENERIC_DIR)/tkFocus.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFocus.c tkFont.o: $(GENERIC_DIR)/tkFont.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFont.c tkGet.o: $(GENERIC_DIR)/tkGet.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGet.c tkGC.o: $(GENERIC_DIR)/tkGC.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGC.c tkGeometry.o: $(GENERIC_DIR)/tkGeometry.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGeometry.c tkGrab.o: $(GENERIC_DIR)/tkGrab.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrab.c tkGrid.o: $(GENERIC_DIR)/tkGrid.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrid.c tkMain.o: $(GENERIC_DIR)/tkMain.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMain.c tkObj.o: $(GENERIC_DIR)/tkObj.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkObj.c tkOldConfig.o: $(GENERIC_DIR)/tkOldConfig.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOldConfig.c tkOption.o: $(GENERIC_DIR)/tkOption.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOption.c tkPack.o: $(GENERIC_DIR)/tkPack.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPack.c tkPlace.o: $(GENERIC_DIR)/tkPlace.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPlace.c tkSelect.o: $(GENERIC_DIR)/tkSelect.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkSelect.c tkStyle.o: $(GENERIC_DIR)/tkStyle.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStyle.c tkUtil.o: $(GENERIC_DIR)/tkUtil.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkUtil.c tkVisual.o: $(GENERIC_DIR)/tkVisual.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c tkWindow.o: $(GENERIC_DIR)/tkWindow.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkWindow.c tkButton.o: $(GENERIC_DIR)/tkButton.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c tkEntry.o: $(GENERIC_DIR)/tkEntry.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEntry.c tkFrame.o: $(GENERIC_DIR)/tkFrame.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFrame.c tkListbox.o: $(GENERIC_DIR)/tkListbox.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkListbox.c tkMenu.o: $(GENERIC_DIR)/tkMenu.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenu.c tkMenubutton.o: $(GENERIC_DIR)/tkMenubutton.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenubutton.c tkMenuDraw.o: $(GENERIC_DIR)/tkMenuDraw.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenuDraw.c tkMessage.o: $(GENERIC_DIR)/tkMessage.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMessage.c tkPanedWindow.o: $(GENERIC_DIR)/tkPanedWindow.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPanedWindow.c tkScale.o: $(GENERIC_DIR)/tkScale.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScale.c tkScrollbar.o: $(GENERIC_DIR)/tkScrollbar.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScrollbar.c tkSquare.o: $(GENERIC_DIR)/tkSquare.c $(CC) -c $(CC_SWITCHES_NO_STUBS) $(GENERIC_DIR)/tkSquare.c tkCanvas.o: $(GENERIC_DIR)/tkCanvas.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvas.c tkCanvArc.o: $(GENERIC_DIR)/tkCanvArc.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvArc.c tkCanvBmap.o: $(GENERIC_DIR)/tkCanvBmap.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvBmap.c tkCanvImg.o: $(GENERIC_DIR)/tkCanvImg.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvImg.c tkCanvLine.o: $(GENERIC_DIR)/tkCanvLine.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvLine.c tkCanvPoly.o: $(GENERIC_DIR)/tkCanvPoly.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPoly.c tkCanvPs.o: $(GENERIC_DIR)/tkCanvPs.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPs.c tkCanvText.o: $(GENERIC_DIR)/tkCanvText.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvText.c tkCanvUtil.o: $(GENERIC_DIR)/tkCanvUtil.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvUtil.c tkCanvWind.o: $(GENERIC_DIR)/tkCanvWind.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvWind.c tkRectOval.o: $(GENERIC_DIR)/tkRectOval.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkRectOval.c tkTrig.o: $(GENERIC_DIR)/tkTrig.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTrig.c tkImage.o: $(GENERIC_DIR)/tkImage.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImage.c tkImgBmap.o: $(GENERIC_DIR)/tkImgBmap.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgBmap.c tkImgGIF.o: $(GENERIC_DIR)/tkImgGIF.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgGIF.c tkImgPPM.o: $(GENERIC_DIR)/tkImgPPM.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPPM.c tkImgPhoto.o: $(GENERIC_DIR)/tkImgPhoto.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPhoto.c tkTest.o: $(GENERIC_DIR)/tkTest.c $(CC) -c $(CC_SWITCHES_NO_STUBS) $(GENERIC_DIR)/tkTest.c tkText.o: $(GENERIC_DIR)/tkText.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkText.c tkTextBTree.o: $(GENERIC_DIR)/tkTextBTree.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextBTree.c tkTextDisp.o: $(GENERIC_DIR)/tkTextDisp.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextDisp.c tkTextImage.o: $(GENERIC_DIR)/tkTextImage.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextImage.c tkTextIndex.o: $(GENERIC_DIR)/tkTextIndex.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextIndex.c tkTextMark.o: $(GENERIC_DIR)/tkTextMark.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextMark.c tkTextTag.o: $(GENERIC_DIR)/tkTextTag.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextTag.c tkTextWind.o: $(GENERIC_DIR)/tkTextWind.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextWind.c tkStubInit.o: $(GENERIC_DIR)/tkStubInit.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubInit.c # Stub library binaries, these must be compiled for use in a shared library # even though they will be placed in a static archive tkStubLib.o: $(GENERIC_DIR)/tkStubLib.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubLib.c tkStubImg.o: $(GENERIC_DIR)/tkStubImg.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubImg.c tkUndo.o: $(GENERIC_DIR)/tkUndo.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkUndo.c tkUnix.o: $(UNIX_DIR)/tkUnix.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnix.c tkUnix3d.o: $(UNIX_DIR)/tkUnix3d.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnix3d.c tkUnixButton.o: $(UNIX_DIR)/tkUnixButton.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixButton.c tkUnixColor.o: $(UNIX_DIR)/tkUnixColor.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixColor.c tkUnixConfig.o: $(UNIX_DIR)/tkUnixConfig.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixConfig.c tkUnixCursor.o: $(UNIX_DIR)/tkUnixCursor.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixCursor.c tkUnixDraw.o: $(UNIX_DIR)/tkUnixDraw.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixDraw.c tkUnixEmbed.o: $(UNIX_DIR)/tkUnixEmbed.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixEmbed.c tkUnixEvent.o: $(UNIX_DIR)/tkUnixEvent.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixEvent.c tkUnixFocus.o: $(UNIX_DIR)/tkUnixFocus.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFocus.c tkUnixFont.o: $(UNIX_DIR)/tkUnixFont.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFont.c tkUnixInit.o: $(UNIX_DIR)/tkUnixInit.c $(GENERIC_DIR)/tkInitScript.h tkConfig.sh $(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" \ $(UNIX_DIR)/tkUnixInit.c tkUnixKey.o: $(UNIX_DIR)/tkUnixKey.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixKey.c tkUnixMenu.o: $(UNIX_DIR)/tkUnixMenu.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixMenu.c tkUnixMenubu.o: $(UNIX_DIR)/tkUnixMenubu.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixMenubu.c tkUnixScale.o: $(UNIX_DIR)/tkUnixScale.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixScale.c tkUnixScrlbr.o: $(UNIX_DIR)/tkUnixScrlbr.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixScrlbr.c tkUnixSelect.o: $(UNIX_DIR)/tkUnixSelect.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixSelect.c tkUnixSend.o: $(UNIX_DIR)/tkUnixSend.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixSend.c tkUnixWm.o: $(UNIX_DIR)/tkUnixWm.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixWm.c tkUnixXId.o: $(UNIX_DIR)/tkUnixXId.c $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixXId.c .c.o: $(CC) -c $(CC_SWITCHES) $< # # Target to check for proper usage of UCHAR macro. # checkuchar: -egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR # # Target to make sure that only symbols with "Tk" prefixes are # exported. # checkexports: $(TK_LIB_FILE) -nm -p $(TK_LIB_FILE) | awk '$$2 ~ /[TDB]/ { print $$3 }' | sort -n | grep -v '^[Tt]k' # # Regenerate the stubs files. # $(GENERIC_DIR)/tkStubInit.c: $(GENERIC_DIR)/tk.decls \ $(GENERIC_DIR)/tkInt.decls @echo "Warning: run \"make genstubs\" to regenerate tkStubInit.c" genstubs: $(TCL_EXE) $(TOOL_DIR)/genStubs.tcl $(GENERIC_DIR) \ $(GENERIC_DIR)/tk.decls $(GENERIC_DIR)/tkInt.decls # # Target to check that all exported functions have an entry in the stubs # tables. # checkstubs: -@for i in `nm -p $(TK_LIB_FILE) | awk '$$2 ~ /T/ { print $$3 }' \ | sort -n`; do \ match=0; \ for j in $(TK_DECLS); do \ if [ `grep -c $$i $$j` -gt 0 ]; then \ match=1; \ fi; \ done; \ if [ $$match -eq 0 ]; then echo $$i; fi \ done # # Target to create a Tk RPM for Linux. Requires that you be on a Linux # system. # rpm: all /bin/rpm rm -f THIS.TCL.SPEC echo "%define _builddir `pwd`" > THIS.TK.SPEC echo "%define _rpmdir `pwd`/RPMS" >> THIS.TK.SPEC cat tk.spec >> THIS.TK.SPEC mkdir -p RPMS/i386 rpm -bb THIS.TK.SPEC mv RPMS/i386/*.rpm . rm -rf RPMS THIS.TK.SPEC mklinks: $(TCL_EXE) $(TCLDIR)/unix/mkLinks.tcl \ $(UNIX_DIR)/../doc/*.[13n] > $(UNIX_DIR)/mkLinks chmod +x $(UNIX_DIR)/mkLinks # # Target to create a proper Tk distribution from information in the # master source directory. DISTDIR must be defined to indicate where # to put the distribution. DISTDIR must be an absolute path name. # DISTROOT = /tmp/dist DISTNAME = tk@TK_VERSION@@TK_PATCH_LEVEL@ ZIPNAME = tk@TK_MAJOR_VERSION@@TK_MINOR_VERSION@@TK_PATCH_LEVEL@.zip DISTDIR = $(DISTROOT)/$(DISTNAME) TCLDIR = @TCL_SRC_DIR@ $(UNIX_DIR)/configure: $(UNIX_DIR)/configure.in autoconf $(UNIX_DIR)/configure.in > $(UNIX_DIR)/configure dist: $(UNIX_DIR)/configure mklinks rm -rf $(DISTDIR) mkdir -p $(DISTDIR) mkdir $(DISTDIR)/unix cp -p $(UNIX_DIR)/*.c $(UNIX_DIR)/*.h $(DISTDIR)/unix cp $(TOP_DIR)/license.terms $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix chmod 664 $(DISTDIR)/unix/Makefile.in cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in $(UNIX_DIR)/tk.spec \ $(UNIX_DIR)/aclocal.m4 $(UNIX_DIR)/tcl.m4 \ $(UNIX_DIR)/tkConfig.sh.in $(TCLDIR)/unix/install-sh \ $(UNIX_DIR)/README $(UNIX_DIR)/mkLinks $(DISTDIR)/unix chmod 775 $(DISTDIR)/unix/configure $(DISTDIR)/unix/configure.in chmod +x $(DISTDIR)/unix/install-sh mkdir $(DISTDIR)/bitmaps @(cd $(TOP_DIR); for i in bitmaps/* ; do \ if [ -f $$i ] ; then \ sed -e 's/static char/static unsigned char/' \ $$i > $(DISTDIR)/$$i; \ fi; \ done;) mkdir $(DISTDIR)/generic cp -p $(GENERIC_DIR)/*.c $(GENERIC_DIR)/*.h $(GENERIC_DIR)/prolog.ps \ $(DISTDIR)/generic cp -p $(GENERIC_DIR)/*.decls $(DISTDIR)/generic cp -p $(GENERIC_DIR)/README $(DISTDIR)/generic cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README \ $(TOP_DIR)/license.terms $(DISTDIR) rm -f $(DISTDIR)/generic/blt*.[ch] mkdir $(DISTDIR)/win cp $(TOP_DIR)/win/Makefile.in $(DISTDIR)/win cp $(TOP_DIR)/win/configure.in \ $(TOP_DIR)/win/configure \ $(TOP_DIR)/win/tkConfig.sh.in \ $(TOP_DIR)/win/aclocal.m4 $(TOP_DIR)/win/tcl.m4 \ $(DISTDIR)/win cp -p $(TOP_DIR)/win/*.c $(TOP_DIR)/win/*.h $(DISTDIR)/win cp -p $(TOP_DIR)/win/*.bat $(DISTDIR)/win $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/*.bat cp -p $(TOP_DIR)/win/makefile.* $(DISTDIR)/win $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/makefile.* cp -p $(TOP_DIR)/win/rules.vc $(DISTDIR)/win $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rules.vc cp -p $(TOP_DIR)/win/README $(DISTDIR)/win cp -p $(TOP_DIR)/license.terms $(DISTDIR)/win mkdir $(DISTDIR)/win/rc cp -p $(TOP_DIR)/win/rc/wish.exe.manifest $(DISTDIR)/win/rc/ cp -p $(TOP_DIR)/win/rc/*.rc $(TOP_DIR)/win/rc/*.cur \ $(TOP_DIR)/win/rc/*.ico $(TOP_DIR)/win/rc/*.bmp \ $(DISTDIR)/win/rc $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rc/*.rc $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rc/wish.exe.manifest mkdir $(DISTDIR)/mac cp -p $(TOP_DIR)/mac/tkMacProjects.sea.hqx $(DISTDIR)/mac cp -p $(TOP_DIR)/mac/*.c $(TOP_DIR)/mac/*.h $(TOP_DIR)/mac/*.r \ $(DISTDIR)/mac cp -p $(TOP_DIR)/mac/README $(DISTDIR)/mac cp -p $(TOP_DIR)/license.terms $(DISTDIR)/mac cp -p $(TOP_DIR)/mac/*.pch $(DISTDIR)/mac cp -p $(TOP_DIR)/mac/*.doc $(DISTDIR)/mac cp -p $(TOP_DIR)/mac/*.tcl $(DISTDIR)/mac mkdir $(DISTDIR)/compat cp -p $(TOP_DIR)/license.terms $(TCLDIR)/compat/unistd.h \ $(TCLDIR)/compat/stdlib.h $(TCLDIR)/compat/limits.h \ $(DISTDIR)/compat mkdir $(DISTDIR)/xlib cp -p $(TOP_DIR)/xlib/*.h $(TOP_DIR)/xlib/*.c $(DISTDIR)/xlib cp -p $(TOP_DIR)/license.terms $(DISTDIR)/xlib mkdir $(DISTDIR)/xlib/X11 cp -p $(TOP_DIR)/xlib/X11/*.h $(DISTDIR)/xlib/X11 cp -p $(TOP_DIR)/license.terms $(DISTDIR)/xlib/X11 mkdir $(DISTDIR)/library cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \ $(TOP_DIR)/library/tclIndex \ $(DISTDIR)/library mkdir $(DISTDIR)/library/images @(cd $(TOP_DIR); for i in library/images/* ; do \ if [ -f $$i ] ; then \ cp $$i $(DISTDIR)/$$i; \ fi; \ done;) mkdir $(DISTDIR)/library/msgs @(cd $(TOP_DIR); for i in library/msgs/*.msg ; do \ if [ -f $$i ] ; then \ cp $$i $(DISTDIR)/$$i; \ fi; \ done;) mkdir $(DISTDIR)/library/demos cp -pr $(TOP_DIR)/library/demos/*.tcl \ $(TOP_DIR)/library/demos/tclIndex \ $(TOP_DIR)/library/demos/browse \ $(TOP_DIR)/library/demos/hello $(TOP_DIR)/library/demos/ixset \ $(TOP_DIR)/library/demos/rmt $(TOP_DIR)/library/demos/rolodex \ $(TOP_DIR)/library/demos/square \ $(TOP_DIR)/library/demos/tcolor \ $(TOP_DIR)/library/demos/timer \ $(TOP_DIR)/library/demos/widget \ $(TOP_DIR)/library/demos/README \ $(TOP_DIR)/license.terms $(DISTDIR)/library/demos mkdir $(DISTDIR)/library/demos/images @(cd $(TOP_DIR); for i in library/demos/images/* ; do \ if [ -f $$i ] ; then \ cp $$i $(DISTDIR)/$$i; \ fi; \ done;) mkdir $(DISTDIR)/doc cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/doc/*.[13n] \ $(TCLDIR)/doc/man.macros $(DISTDIR)/doc mkdir $(DISTDIR)/tests cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/tests/*.test \ $(TOP_DIR)/tests/*.tcl $(TOP_DIR)/tests/README \ $(TOP_DIR)/tests/option.file* $(DISTDIR)/tests # # The following target can only be used for non-patch releases. Use # the "allpatch" target below for patch releases. # alldist: dist rm -f $(DISTROOT)/$(DISTNAME).tar.Z \ $(DISTROOT)/$(DISTNAME).tar.gz \ $(DISTROOT)/$(ZIPNAME) cd $(DISTROOT); tar cf $(DISTNAME).tar $(DISTNAME); \ gzip -9 -c $(DISTNAME).tar > $(DISTNAME).tar.gz; \ compress $(DISTNAME).tar; zip -qr8 $(ZIPNAME) $(DISTNAME) # # The target below is similar to "alldist" except it works for patch # releases. It is needed because patch releases are peculiar: the # patch designation appears in the name of the compressed file # (e.g. tcl8.0p1.tar.gz) but the extracted source directory doesn't # include the patch designation (e.g. tcl8.0). # allpatch: dist rm -f $(DISTROOT)/$(DISTNAME).tar.Z \ $(DISTROOT)/$(DISTNAME).tar.gz \ $(DISTROOT)/$(ZIPNAME) mv $(DISTROOT)/tk${VERSION} $(DISTROOT)/old mv $(DISTROOT)/$(DISTNAME) $(DISTROOT)/tk${VERSION} cd $(DISTROOT); tar cf $(DISTNAME).tar tk${VERSION}; \ gzip -9 -c $(DISTNAME).tar > $(DISTNAME).tar.gz; \ compress $(DISTNAME).tar; zip -r8 $(ZIPNAME) tk${VERSION} mv $(DISTROOT)/tk${VERSION} $(DISTROOT)/$(DISTNAME) mv $(DISTROOT)/old $(DISTROOT)/tk${VERSION} # # Target to create a Macintosh version of the distribution. This will # do a normal distribution and then massage the output to prepare it # for moving to the Mac platform. This requires a few scripts and # programs found only in the Tcl greoup's tool workspace. # macdist: dist rm -f $(DISTDIR)/mac/tkMacProjects.sea.hqx $(TCL_EXE) $(TOOL_DIR)/man2html.tcl $(DISTDIR)/tmp ../.. tk$(VERSION) mv $(DISTDIR)/tmp/tk$(VERSION) $(DISTDIR)/html rm -rf $(DISTDIR)/doc rm -rf $(DISTDIR)/tmp $(TCL_EXE) $(TOOL_DIR)/cvtEOL.tcl $(DISTDIR) # # Targets to build Solaris package of the distribution for the current # architecture. To build stream packages for both sun4 and i86pc # architectures: # # On the sun4 machine, execute the following: # make distclean; ./configure # make DISTDIR= package # # Once the build is complete, execute the following on the i86pc # machine: # make DISTDIR= package-quick # # is the absolute path to a directory where the build should # take place. These steps will generate the $(PACKAGE).sun4 and # $(PACKAGE).i86pc stream packages. It is important that the packages be # built in this fashion in order to ensure that the architecture # independent files are exactly the same, including timestamps, in # both packages. # PACKAGE=SCRPtk package: dist package-config package-common package-binaries package-generate package-quick: package-config package-binaries package-generate # # Configure for the current architecture in the dist directory. # package-config: mkdir -p $(DISTDIR)/unix/`arch` cd $(DISTDIR)/unix/`arch`; \ ../configure --prefix=/opt/SUNWtcl/$(TCLVERSION) \ --exec_prefix=/opt/SUNWtcl/$(TCLVERSION)/`arch` \ --with-tcl=$(DISTDIR)/../tcl$(TCLVERSION)/unix/`arch` \ --enable-shared mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION) mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch` # # Build and install the architecture independent files in the dist directory. # package-common: cd $(DISTDIR)/unix/`arch`;\ $(MAKE); \ $(MAKE) install-libraries install-doc \ prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \ exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch` mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin sed -e "s/TCLVERSION/$(TCLVERSION)/g" \ -e "s/TKVERSION/$(VERSION)/g" < $(UNIX_DIR)/wish.sh \ > $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin/wish$(VERSION) chmod 755 $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin/wish$(VERSION) # # Build and install the architecture specific files in the dist directory. # package-binaries: cd $(DISTDIR)/unix/`arch`; \ $(MAKE); \ $(MAKE) install-binaries prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \ exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch` # # Generate a package from the installed files in the dist directory for the # current architecture. # package-generate: pkgproto $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin=bin \ $(DISTDIR)/SUNWtcl/$(TCLVERSION)/include=include \ $(DISTDIR)/SUNWtcl/$(TCLVERSION)/lib=lib \ $(DISTDIR)/SUNWtcl/$(TCLVERSION)/man=man \ $(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`=`arch` \ | $(TCL_EXE) $(TCLDIR)/unix/mkProto.tcl $(TCLVERSION) \ $(UNIX_DIR) > prototype pkgmk -o -d . -f prototype -a `arch` pkgtrans -s . $(PACKAGE).`arch` $(PACKAGE) rm -rf $(PACKAGE) # DO NOT DELETE THIS LINE -- make depend depends on it.