# # 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. # # %Z% %M% %I% %E% %U% #---------------------------------------------------------------- # 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. exec_prefix = /usr/local prefix = /usr/local # Directory in which to install the library of Tk scripts and demos # (note: you can set the TK_LIBRARY environment variable at run-time to # override the compiled-in location): TK_LIBRARY = $(prefix)/lib/tk # Directory in which to install the archive libtk.a: LIB_DIR = $(exec_prefix)/lib # Directory in which to install the program wish: BIN_DIR = $(exec_prefix)/bin # Directory in which to install the include file tk.h: INCLUDE_DIR = $(prefix)/include # Top-level directory for manual entries: MAN_DIR = $(prefix)/man # Directory in which to install manual entry for wish: MAN1_DIR = $(MAN_DIR)/man1 # Directory in which to install manual entries for Tk's C library # procedures: MAN3_DIR = $(MAN_DIR)/man3 # Directory in which to install manual entries for the built-in # Tcl commands implemented by Tk: MANN_DIR = $(MAN_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_DIR = @srcdir@/../tcl7.4 # The directory containing the Tcl library archive file appropriate # for this version of Tk: TCL_BIN_DIR = ../tcl7.4 # 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@ # Libraries to use when linking: must include at least Tk, Tcl, Xlib, # and the math library (in that order). The "@LIBS@" part will be # replaced (or has already been replaced) with relevant libraries as # determined by the configure script. LIBS = libtk.a $(TCL_BIN_DIR)/libtcl.a $(X11_LIB_SWITCHES) @LIBS@ @MATH_LIBS@ # To change the compiler switches, for example to change from -O # to -g, change the following line: CFLAGS = -O # 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 # Some versions of make, like SGI's, use the following variable to # determine which shell to use for executing commands: SHELL = /bin/sh #---------------------------------------------------------------- # 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 = @DEFS@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ RANLIB = @RANLIB@ SRC_DIR = @srcdir@ VPATH = @srcdir@ #---------------------------------------------------------------- # The information below should be usable as is. The configure # script won't modify it and you shouldn't need to modify it # either. #---------------------------------------------------------------- CC = @CC@ CC_SWITCHES = ${CFLAGS} -I${SRC_DIR} -I${TCL_DIR} ${X11_INCLUDES} \ ${AC_FLAGS} ${PROTO_FLAGS} ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} \ -DTK_LIBRARY=\"${TK_LIBRARY}\" WIDGOBJS = tkButton.o tkEntry.o tkFrame.o tkListbox.o \ tkMenu.o tkMenubutton.o tkMessage.o tkScale.o \ tkScrollbar.o CANVOBJS = tkCanvas.o tkCanvArc.o tkCanvBmap.o tkCanvImg.o \ tkCanvLine.o tkCanvPoly.o tkCanvPs.o tkCanvText.o \ tkCanvWind.o tkRectOval.o tkTrig.o IMAGEOBJS = tkImage.o tkImgBmap.o TEXTOBJS = tkText.o tkTextBTree.o tkTextDisp.o tkTextIndex.o \ tkTextMark.o tkTextTag.o tkTextWind.o OBJS = tk3d.o tkArgv.o tkAtom.o tkBind.o tkBitmap.o tkClipboard.o tkCmds.o \ tkColor.o tkConfig.o tkCursor.o tkError.o tkEvent.o \ tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o tkGrab.o \ tkMain.o tkOption.o tkPack.o tkPlace.o \ tkPreserve.o tkSelect.o tkSend.o tkUtil.o tkVisual.o \ tkWindow.o tkWm.o tkXEvent.o tkXId.o \ $(WIDGOBJS) $(CANVOBJS) $(IMAGEOBJS) $(TEXTOBJS) SRCS = tk3d.c tkArgv.c tkAtom.c tkBind.c tkBitmap.c tkClipboard.c tkCmds.c \ tkColor.c tkConfig.c tkCursor.c tkError.c tkEvent.c \ tkFocus.c tkFont.c tkGet.c tkGC.c tkGeometry.c tkGrab.c \ tkMain.c tkOption.c tkPack.c tkPlace.c \ tkPreserve.c tkSelect.c tkSend.c tkUtil.c tkVisual.c \ tkWindow.c tkWm.c tkXEvent.c tkXId.c \ tkButton.c tkEntry.c tkFrame.c tkListbox.c \ tkMenu.c tkMenubutton.c tkMessage.c tkScale.c \ tkScrollbar.c tkCanvas.c tkCanvArc.c tkCanvBmap.c tkCanvImg.c \ tkCanvLine.c tkCanvPoly.c tkCanvPs.c tkCanvText.c \ tkCanvWind.c tkRectOval.c tkTrig.c \ tkImage.c tkImgBmap.c \ tkText.c tkTextBTree.c tkTextDisp.c tkTextIndex.c \ tkTextMark.c tkTextTag.c tkTextWind.c HDRS = default.h ks_names.h patchlevel.h tk.h tkCanvas.h tkInt.h \ tkPort.h tkText.h DEMOPROGS = browse color dialog hello ixset rmt rolodex size square \ tcolor timer widget all: libtk.a wish libtk.a: $(OBJS) rm -f libtk.a ar cr libtk.a $(OBJS) $(RANLIB) libtk.a wish: tkAppInit.o libtk.a $(TCL_BIN_DIR)/libtcl.a $(CC) $(CC_SWITCHES) tkAppInit.o $(LIBS) -o wish tktest: tkTest.o tkSquare.o libtk.a $(TCL_BIN_DIR)/libtcl.a ${CC} ${CC_SWITCHES} tkTest.o tkSquare.o $(LIBS) -o tktest test: tktest @cwd=`pwd`; \ cd $(TCL_DIR); TCL_LIBRARY=`pwd`/library; export TCL_LIBRARY; \ cd $$cwd; cd $(SRC_DIR); TK_LIBRARY=`pwd`/library; export TK_LIBRARY; \ cd $$cwd; ( echo cd $(SRC_DIR)/tests\; source all\; exit ) | ./tktest install: install-binaries install-libraries install-demos install-man install-binaries: libtk.a wish @for i in $(LIB_DIR) $(BIN_DIR) ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @echo "Installing libtk.a" @$(INSTALL_DATA) libtk.a $(LIB_DIR) @$(RANLIB) $(LIB_DIR)/libtk.a @echo "Installing wish" @$(INSTALL_PROGRAM) wish $(BIN_DIR) install-libraries: @for i in $(prefix)/lib $(INCLUDE_DIR) $(TK_LIBRARY) ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @echo "Installing tk.h" @$(INSTALL_DATA) $(SRC_DIR)/tk.h $(INCLUDE_DIR) @cd $(SRC_DIR)/library; for i in *.tcl tclIndex prolog.ps; \ do \ echo "Installing library/$$i"; \ $(INSTALL_DATA) $$i $(TK_LIBRARY); \ done; install-demos: @for i in $(prefix)/lib $(TK_LIBRARY) $(TK_LIBRARY)/demos \ $(TK_LIBRARY)/demos/bitmaps ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @cd $(SRC_DIR)/library/demos; for i in *; \ do \ if [ -f $$i ] ; then \ echo "Installing library/demos/$$i"; \ sed -e '1 s|/usr/local/bin/wish|$(BIN_DIR)/wish|' \ $$i > $(TK_LIBRARY)/demos/$$i; \ fi; \ done; @for i in $(DEMOPROGS); \ do \ chmod 755 $(TK_LIBRARY)/demos/$$i; \ done; @cd $(SRC_DIR)/library/demos/bitmaps; for i in *; \ do \ if [ -f $$i ] ; then \ echo "Installing library/demos/bitmaps/$$i"; \ $(INSTALL_DATA) $$i $(TK_LIBRARY)/demos/bitmaps; \ fi; \ done; install-man: @for i in $(MAN_DIR) $(MAN1_DIR) $(MAN3_DIR) $(MANN_DIR) ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @cd $(SRC_DIR)/doc; for i in *.1; \ do \ echo "Installing doc/$$i"; \ rm -f $(MAN1_DIR)/$$i; \ sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ $$i > $(MAN1_DIR)/$$i; \ chmod 444 $(MAN1_DIR)/$$i; \ done; @cd $(SRC_DIR)/doc; for i in *.3; \ do \ echo "Installing doc/$$i"; \ rm -f $(MAN3_DIR)/$$i; \ sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ $$i > $(MAN3_DIR)/$$i; \ chmod 444 $(MAN3_DIR)/$$i; \ done; @cd $(SRC_DIR)/doc; for i in *.n; \ do \ echo "Installing doc/$$i"; \ rm -f $(MANN_DIR)/$$i; \ sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ $$i > $(MANN_DIR)/$$i; \ chmod 444 $(MANN_DIR)/$$i; \ done; Makefile: $(SRC_DIR)/Makefile.in $(SHELL) config.status clean: rm -f *.a *.o core errs *~ \#* TAGS *.E a.out errors tktest wish distclean: clean rm -f Makefile config.status depend: makedepend -- $(CC_SWITCHES) -- $(SRCS) .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 $(SRCS) | grep -v UCHAR # # 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. # TCLDIR = ../tcl configure: configure.in autoconf dist: configure rm -rf $(DISTDIR) mkdir $(DISTDIR) cp Makefile.in $(DISTDIR) chmod 664 $(DISTDIR)/Makefile.in cp -p $(SRCS) tkAppInit.c tkSquare.c tkTest.c $(HDRS) $(DISTDIR) mkdir $(DISTDIR)/bitmaps @for i in bitmaps/* ; do \ if [ -f $$i ] ; then \ sed -e 's/static char/static unsigned char/' \ $$i > $(DISTDIR)/$$i; \ fi; \ done; mkdir $(DISTDIR)/compat cp -p $(TCLDIR)/compat/unistd.h $(TCLDIR)/compat/stdlib.h \ $(DISTDIR)/compat cp -p README ToDo changes porting.notes $(DISTDIR) cp -p configure configure.in $(TCLDIR)/install.sh $(DISTDIR) chmod 775 $(DISTDIR)/configure $(DISTDIR)/configure.in mkdir $(DISTDIR)/library cp -p library/*.tcl library/tclIndex $(DISTDIR)/library cp -p library/prolog.ps $(DISTDIR)/library mkdir $(DISTDIR)/library/demos cp -pr library/demos/*.tcl library/demos/bitmaps \ library/demos/tclIndex library/demos/browse \ library/demos/color library/demos/dialog \ library/demos/hello library/demos/ixset \ library/demos/rmt library/demos/rolodex \ library/demos/size library/demos/square \ library/demos/tcolor library/demos/timer \ library/demos/widget library/demos/README \ $(DISTDIR)/library/demos mkdir $(DISTDIR)/doc cp -p man/*.[13n] man/man.macros $(DISTDIR)/doc mkdir $(DISTDIR)/tests cp -p tests/*.test tests/visual tests/*.tcl tests/README \ tests/all tests/defs tests/option.file* $(DISTDIR)/tests # DO NOT DELETE THIS LINE -- make depend depends on it.