# 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.15 1999/12/07 01:03:19 wart Exp $ TCLVERSION = @TCL_VERSION@ VERSION = @TK_VERSION@ #---------------------------------------------------------------- # 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@ # 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 Tk # scripts (note: you can set the TK_LIBRARY environment variable at # run-time to override this value): TK_LIBRARY = $(prefix)/lib/tk$(VERSION) # Path to use at runtime to refer to LIB_INSTALL_DIR: LIB_RUNTIME_DIR = $(exec_prefix)/lib # Directory in which to install the program wish: BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin # Directory in which to install libtk.so or libtk.a: LIB_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/lib # 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)$(prefix)/include # Top-level directory in which to install manual entries: MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man # 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 # Tk commands: MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann # Libraries built with optimization switches have this additional extension TK_DBGX = @TK_DBGX@ # The directory containing the Tcl source and header files. TCL_SRC_DIR = @TCL_SRC_DIR@ # The directory containing the Tcl library archive file appropriate # for this version of Tk: TCL_BIN_DIR = @TCL_BIN_DIR@ # 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 # This is a switch passed to a Cygwin script that generates file # names based on the platform. PATHTYPE = @PATHTYPE@ # The name of the Tcl library. TCL_LIB_FILE = "$(shell cygpath $(PATHTYPE) '@TCL_BIN_DIR@/@TCL_LIB_FILE@')" TCL_STUB_LIB_FILE = "$(shell cygpath $(PATHTYPE) '@TCL_BIN_DIR@/@TCL_STUB_LIB_FILE@')" SRC_DIR = @srcdir@ ROOT_DIR = $(SRC_DIR)/.. WIN_DIR = $(SRC_DIR) UNIX_DIR = $(SRC_DIR)/../unix GENERIC_DIR = $(SRC_DIR)/../generic BITMAP_DIR = $(ROOT_DIR)/bitmaps XLIB_DIR = $(ROOT_DIR)/xlib RC_DIR = $(WIN_DIR)/rc ROOT_DIR_NATIVE = $(shell cygpath $(PATHTYPE) '$(ROOT_DIR)') WIN_DIR_NATIVE = $(shell cygpath $(PATHTYPE) '$(WIN_DIR)') GENERIC_DIR_NATIVE = $(shell cygpath $(PATHTYPE) '$(GENERIC_DIR)') BITMAP_DIR_NATIVE = $(shell cygpath $(PATHTYPE) '$(ROOT_DIR)/bitmaps') XLIB_DIR_NATIVE = $(shell cygpath $(PATHTYPE) '$(ROOT_DIR)/xlib') TCL_GENERIC_NATIVE = $(shell cygpath $(PATHTYPE) '$(TCL_GENERIC_DIR)') TCL_SRC_DIR_NATIVE = $(shell cygpath $(PATHTYPE) '$(TCL_SRC_DIR)') TCL_BIN_DIR_NATIVE = $(shell cygpath $(PATHTYPE) '$(TCL_BIN_DIR)') DLLSUFFIX = @DLLSUFFIX@ LIBSUFFIX = @LIBSUFFIX@ EXESUFFIX = @EXESUFFIX@ TK_STUB_LIB_FILE = @TK_STUB_LIB_FILE@ TK_LIB_FILE = @TK_LIB_FILE@ TK_DLL_FILE = @TK_DLL_FILE@ SHARED_LIBRARIES = $(TK_DLL_FILE) $(TK_STUB_LIB_FILE) STATIC_LIBRARIES = $(TK_LIB_FILE) WISH = wish$(VER)${EXESUFFIX} TKTEST = tktest${EXEEXT} CAT32 = cat32 MAN2TCL = man2tcl$(EXEEXT) @SET_MAKE@ # Macro that expands to the first dependency argument with the appropriate # path type already resolved. DEPARG = "$(shell cygpath $(PATHTYPE) $<)" # Setting the VPATH variable to a list of paths will cause the # makefile to look into these paths when resolving .c to .obj # dependencies. VPATH = $(GENERIC_DIR);$(WIN_DIR);$(UNIX_DIR);$(XLIB_DIR);$(RC_DIR) # warning flags CFLAGS_WARNING = @CFLAGS_WARNING@ # The default switches for optimization or debugging CFLAGS_DEBUG = @CFLAGS_DEBUG@ CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@ # The default switches for optimization or debugging LDFLAGS_DEBUG = @LDFLAGS_DEBUG@ LDFLAGS_OPTIMIZE = @LDFLAGS_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@ # Special compiler flags to use when building man2tcl on Windows. MAN2TCLFLAGS = @MAN2TCLFLAGS@ AR = @AR@ CC = @CC@ RC = @RC@ AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@ CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LDFLAGS_CONSOLE = @LDFLAGS_CONSOLE@ LDFLAGS_WINDOW = @LDFLAGS_WINDOW@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ SHLIB_LD = @SHLIB_LD@ SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ $(TCL_STUB_LIB_FILE) gdi32.lib comdlg32.lib SHLIB_CFLAGS = @SHLIB_CFLAGS@ SHLIB_SUFFIX = @SHLIB_SUFFIX@ VER = @TK_MAJOR_VERSION@@TK_MINOR_VERSION@ DOTVER = @TK_MAJOR_VERSION@.@TK_MINOR_VERSION@ LIBS = @LIBS@ gdi32.lib comdlg32.lib RMDIR = rm -rf MKDIR = mkdir -p SHELL = @SHELL@ RM = rm -f COPY = cp CC_OBJNAME = @CC_OBJNAME@ CC_EXENAME = @CC_EXENAME@ TCLSH_PROG = @TCLSH_PROG@ CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \ -I"${GENERIC_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" \ -I"${XLIB_DIR_NATIVE}" -I"${BITMAP_DIR_NATIVE}" \ -I"${TCL_GENERIC_NATIVE}" ${AC_FLAGS} STUB_CC_SWITCHES = ${CC_SWITCHES} -DUSE_TCL_STUBS CON_CC_SWITCHES = ${CC_SWITCHES} -DCONSOLE # 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 = cp INSTALL_PROGRAM = ${INSTALL} INSTALL_DATA = ${INSTALL} WISH_OBJS = \ winMain.$(OBJEXT) TCLTEST_OBJS = \ ${TCL_BIN_DIR}/tclThreadTest.$(OBJEXT) TCLTEST_OBJS_NATIVE = \ "${TCL_BIN_DIR_NATIVE}/tclThreadTest.$(OBJEXT)" TKTEST_OBJS = \ $(TCLTEST_OBJS) \ testMain.$(OBJEXT) \ tkSquare.$(OBJEXT) \ tkTest.$(OBJEXT) TKTEST_OBJS_NATIVE = \ $(TCLTEST_OBJS_NATIVE) \ testMain.$(OBJEXT) \ tkSquare.$(OBJEXT) \ tkTest.$(OBJEXT) XLIB_OBJS = \ xcolors.$(OBJEXT) \ xdraw.$(OBJEXT) \ xgc.$(OBJEXT) \ ximage.$(OBJEXT) \ xutil.$(OBJEXT) TK_OBJS = \ tkConsole.$(OBJEXT) \ tkUnixMenubu.$(OBJEXT) \ tkUnixScale.$(OBJEXT) \ $(XLIB_OBJS) \ tkWin3d.$(OBJEXT) \ tkWin32Dll.$(OBJEXT) \ tkWinButton.$(OBJEXT) \ tkWinClipboard.$(OBJEXT) \ tkWinColor.$(OBJEXT) \ tkWinConfig.$(OBJEXT) \ tkWinCursor.$(OBJEXT) \ tkWinDialog.$(OBJEXT) \ tkWinDraw.$(OBJEXT) \ tkWinEmbed.$(OBJEXT) \ tkWinFont.$(OBJEXT) \ tkWinImage.$(OBJEXT) \ tkWinInit.$(OBJEXT) \ tkWinKey.$(OBJEXT) \ tkWinMenu.$(OBJEXT) \ tkWinPixmap.$(OBJEXT) \ tkWinPointer.$(OBJEXT) \ tkWinRegion.$(OBJEXT) \ tkWinScrlbr.$(OBJEXT) \ tkWinSend.$(OBJEXT) \ tkWinTest.$(OBJEXT) \ tkWinWindow.$(OBJEXT) \ tkWinWm.$(OBJEXT) \ tkWinX.$(OBJEXT) \ stubs.$(OBJEXT) \ tk3d.$(OBJEXT) \ tkArgv.$(OBJEXT) \ tkAtom.$(OBJEXT) \ tkBind.$(OBJEXT) \ tkBitmap.$(OBJEXT) \ tkButton.$(OBJEXT) \ tkCanvArc.$(OBJEXT) \ tkCanvBmap.$(OBJEXT) \ tkCanvImg.$(OBJEXT) \ tkCanvLine.$(OBJEXT) \ tkCanvPoly.$(OBJEXT) \ tkCanvPs.$(OBJEXT) \ tkCanvText.$(OBJEXT) \ tkCanvUtil.$(OBJEXT) \ tkCanvWind.$(OBJEXT) \ tkCanvas.$(OBJEXT) \ tkClipboard.$(OBJEXT) \ tkCmds.$(OBJEXT) \ tkColor.$(OBJEXT) \ tkConfig.$(OBJEXT) \ tkCursor.$(OBJEXT) \ tkEntry.$(OBJEXT) \ tkError.$(OBJEXT) \ tkEvent.$(OBJEXT) \ tkFileFilter.$(OBJEXT) \ tkFocus.$(OBJEXT) \ tkFont.$(OBJEXT) \ tkFrame.$(OBJEXT) \ tkGC.$(OBJEXT) \ tkGeometry.$(OBJEXT) \ tkGet.$(OBJEXT) \ tkGrab.$(OBJEXT) \ tkGrid.$(OBJEXT) \ tkImage.$(OBJEXT) \ tkImgBmap.$(OBJEXT) \ tkImgGIF.$(OBJEXT) \ tkImgPPM.$(OBJEXT) \ tkImgPhoto.$(OBJEXT) \ tkImgUtil.$(OBJEXT) \ tkListbox.$(OBJEXT) \ tkMacWinMenu.$(OBJEXT) \ tkMain.$(OBJEXT) \ tkMenu.$(OBJEXT) \ tkMenubutton.$(OBJEXT) \ tkMenuDraw.$(OBJEXT) \ tkMessage.$(OBJEXT) \ tkObj.$(OBJEXT) \ tkOldConfig.$(OBJEXT) \ tkOption.$(OBJEXT) \ tkPack.$(OBJEXT) \ tkPlace.$(OBJEXT) \ tkPointer.$(OBJEXT) \ tkRectOval.$(OBJEXT) \ tkScale.$(OBJEXT) \ tkScrollbar.$(OBJEXT) \ tkSelect.$(OBJEXT) \ tkText.$(OBJEXT) \ tkTextBTree.$(OBJEXT) \ tkTextDisp.$(OBJEXT) \ tkTextImage.$(OBJEXT) \ tkTextIndex.$(OBJEXT) \ tkTextMark.$(OBJEXT) \ tkTextTag.$(OBJEXT) \ tkTextWind.$(OBJEXT) \ tkTrig.$(OBJEXT) \ tkUtil.$(OBJEXT) \ tkVisual.$(OBJEXT) \ tkStubInit.$(OBJEXT) \ tkStubLib.$(OBJEXT) \ tkWindow.$(OBJEXT) STUB_OBJS = \ tkStubLib.$(OBJEXT) TCL_DOCS = "$(TCL_SRC_DIR_NATIVE)"/../doc/*.[13n] TK_DOCS = "$(ROOT_DIR_NATIVE)"/doc/*.[13n] CORE_DOCS = $(TCL_DOCS) $(TK_DOCS) DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget # Main targets. The default target -- all -- builds the binaries, # performs any post processing on libraries or documents. all: binaries libraries doc binaries: @LIBRARIES@ $(WISH) libraries: $(ROOT_DIR)/doc/man.macros: $(INSTALL_DATA) @TCL_SRC_DIR@/../doc/man.macros $(ROOT_DIR)/doc/man.macros doc: winhelp: $(ROOT_DIR)/doc/man.macros $(TCL_SRC_DIR_NATIVE)/../tools/man2help.tcl $(MAN2TCL) TCL_LIBRARY="$(TCL_SRC_DIR_NATIVE)/../library"; export TCL_LIBRARY; \ TK_LIBRARY="$(ROOT_DIR_NATIVE)/library"; export TK_LIBRARY; \ PATH="$(PATH):$(TCL_BIN_DIR)"; export PATH; \ $(TCLSH_PROG) "$(TCL_SRC_DIR_NATIVE)"/../tools/man2help.tcl tcl "$(VER)" $(CORE_DOCS) hcw /c /e tcl.hpj $(MAN2TCL): $(TCL_SRC_DIR_NATIVE)/../tools/man2tcl.c $(CC) $(CFLAGS_OPTIMIZE) $(MAN2TCLFLAGS) -o $(MAN2TCL) "$(TCL_SRC_DIR_NATIVE)"/../tools/man2tcl.c test: binaries $(TKTEST) @TCL_LIBRARY="$(TCL_SRC_DIR_NATIVE)/../library"; export TCL_LIBRARY; \ TK_LIBRARY="$(ROOT_DIR_NATIVE)/library"; export TK_LIBRARY; \ PATH="$(PATH):$(TCL_BIN_DIR)"; export PATH; \ ./$(TKTEST) "$(ROOT_DIR_NATIVE)/tests/all.tcl" $(TESTFLAGS) \ | ./$(CAT32) runtest: tktest @TCL_LIBRARY="$(TCL_SRC_DIR_NATIVE)/../library"; export TCL_LIBRARY; \ TK_LIBRARY="$(ROOT_DIR_NATIVE)/library"; export TK_LIBRARY; \ PATH="$(PATH):$(TCL_BIN_DIR)"; export PATH; \ ./$(TKTEST) install: all install-binaries install-libraries install-doc install-demos install-binaries: @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \ do \ echo " $$i"; \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ $(MKDIR) $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @echo "Installing $(TK_LIB_FILE)" @$(INSTALL_DATA) $(TK_LIB_FILE) $(LIB_INSTALL_DIR)/$(TK_LIB_FILE) @echo "Installing $(WISH)" @$(INSTALL_PROGRAM) $(WISH) $(BIN_INSTALL_DIR)/$(WISH) @if test "$(DLLSUFFIX)" != "" ; then \ echo "Installing $(TK_DLL_FILE)" ; \ $(INSTALL_PROGRAM) $(TK_DLL_FILE) \ $(BIN_INSTALL_DIR)/$(TK_DLL_FILE) ; \ fi @if test "$(TK_STUB_LIB_FILE)" != "" ; then \ if [ -f $(TK_STUB_LIB_FILE) ]; then \ echo "Installing $(TK_STUB_LIB_FILE)"; \ $(INSTALL_DATA) $(TK_STUB_LIB_FILE) \ $(LIB_INSTALL_DIR)/$(TK_STUB_LIB_FILE); \ fi; \ fi echo "Installing tkConfig.sh" $(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tkConfig.sh install-libraries: @echo "Install Directories:" @for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \ $(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images; \ do \ echo " $$i"; \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ $(MKDIR) $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDecls.h ; \ do \ echo "Installing $$i"; \ $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \ done; @for i in $(ROOT_DIR)/library/*.tcl $(GENERIC_DIR)/prolog.ps \ $(ROOT_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \ do \ echo "Installing $$i"; \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \ done; @for i in $(ROOT_DIR)/library/images/*; \ do \ if [ -f $$i ] ; then \ echo "Installing $$i"; \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/images; \ fi; \ done; install-demos: @echo "Install Directories:" @for i in $(INSTALL_ROOT)$(prefix)/lib $(SCRIPT_INSTALL_DIR) \ $(SCRIPT_INSTALL_DIR)/demos \ $(SCRIPT_INSTALL_DIR)/demos/images ; \ do \ echo " $$i"; \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ $(MKDIR) $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @for i in $(ROOT_DIR)/library/demos/*; \ do \ if [ -f $$i ] ; then \ echo "Installing $$i"; \ sed -e '3 s|exec $(WISH)|exec $(WISH)|' \ $$i > $(SCRIPT_INSTALL_DIR)/demos/`basename $$i`; \ fi; \ done; @for i in $(DEMOPROGS); \ do \ chmod 755 $(SCRIPT_INSTALL_DIR)/demos/$$i; \ done; @for i in $(ROOT_DIR)/library/demos/images/*; \ do \ if [ -f $$i ] ; then \ echo "Installing $$i"; \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \ fi; \ done; install-doc: $(WISH): $(TK_LIB_FILE) $(WISH_OBJS) wish.res $(CC) $(CFLAGS) $(WISH_OBJS) $(TCL_LIB_FILE) $(TK_LIB_FILE) $(LIBS) \ wish.res $(CC_EXENAME) -link $(LDFLAGS_WINDOW) tktest : $(TKTEST) $(TKTEST): $(TK_LIB_FILE) $(TKTEST_OBJS) wish.res $(CAT32) $(CC) $(CFLAGS) $(TKTEST_OBJS_NATIVE) $(TCL_LIB_FILE) \ $(TK_LIB_FILE) $(LIBS) \ wish.res $(CC_EXENAME) -link $(LDFLAGS_WINDOW) $(CAT32): $(TCL_SRC_DIR)/cat.c $(CC) -c $(CC_SWITCHES) $(DEPARG) $(CC_OBJNAME) $(CC) $(CFLAGS) cat32.$(OBJEXT) $(CC_EXENAME) -link $(LDFLAGS_CONSOLE) # The following targets are configured by autoconf to generate either # a shared library or static library ${TK_STUB_LIB_FILE}: ${STUB_OBJS} @$(RM) ${TK_STUB_LIB_FILE} @MAKE_LIB@ ${STUB_OBJS} ${TK_DLL_FILE}: ${TK_OBJS} tk.res @$(RM) ${TK_DLL_FILE} @MAKE_DLL@ ${TK_OBJS} tk.res ${TK_LIB_FILE}: ${TK_OBJS} @$(RM) ${TK_LIB_FILE} @MAKE_LIB@ ${TK_OBJS} # Special case object file targets winMain.$(OBJEXT): winMain.c $(CC) -c $(CC_SWITCHES) $(DEPARG) $(CC_OBJNAME) testMain.$(OBJEXT): winMain.c $(CC) -c $(CC_SWITCHES) $(DEPARG) -DTK_TEST $(CC_OBJNAME) tkTest.$(OBJEXT): tkTest.c $(CC) -c $(CC_SWITCHES) $(DEPARG) $(CC_OBJNAME) tkSquare.$(OBJEXT): tkSquare.c $(CC) -c $(CC_SWITCHES) $(DEPARG) $(CC_OBJNAME) tclThreadTest.$(OBJEXT): $(TCL_BIN_DIR)/tclThreadTest.$(OBJEXT) # Add the object extension to the implicit rules. By default .obj is not # automatically added. .SUFFIXES: .${OBJEXT} .SUFFIXES: .res .SUFFIXES: .rc # Implicit rule for all object files that will end up in the Tcl library .c.${OBJEXT}: $(CC) -c $(STUB_CC_SWITCHES) -DBUILD_tk ${DEPARG} $(CC_OBJNAME) .rc.res: $(RC) -fo $@ -r -i "$(GENERIC_DIR_NATIVE)" -i "$(TCL_GENERIC_NATIVE)" $(DEPARG) depend: clean: $(RM) *.lib *.exp *.dll *.${OBJEXT} *~ \#* TAGS a.out $(RM) $(WISH) $(TKTEST) $(RM) *.pch distclean: clean $(RM) Makefile config.status config.cache config.log Makefile: Makefile.in ./config.status