736 lines
22 KiB
Makefile
736 lines
22 KiB
Makefile
# 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.
|
|
|
|
VERSION = @TK_VERSION@
|
|
PATCH_LEVEL = @TK_PATCH_LEVEL@
|
|
|
|
#----------------------------------------------------------------
|
|
# 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 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 = $(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)
|
|
|
|
# Directory in which to (optionally) install the private tk headers:
|
|
PRIVATE_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
|
|
# Tk commands:
|
|
MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann
|
|
|
|
# Libraries built with optimization switches have this additional extension
|
|
TK_DBGX = @TK_DBGX@
|
|
|
|
# Directory in which to install the pkgIndex.tcl file for loadable Tk
|
|
PKG_INSTALL_DIR = $(LIB_INSTALL_DIR)/tk$(VERSION)$(TK_DBGX)
|
|
|
|
# Package index file for loadable Tk
|
|
PKG_INDEX = $(PKG_INSTALL_DIR)/pkgIndex.tcl
|
|
|
|
# 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
|
|
|
|
# The directory containing the platform specific Tcl sources and headers
|
|
# appropriate for this version of Tk:
|
|
TCL_PLATFORM_DIR = @TCL_SRC_DIR@/win
|
|
|
|
TCL_TOOL_DIR = @TCL_SRC_DIR@/tools
|
|
|
|
# Converts a POSIX path to a Windows native path.
|
|
CYGPATH = @CYGPATH@
|
|
|
|
# The name of the Tcl library.
|
|
TCL_LIB_FILE = "$(shell $(CYGPATH) '@TCL_BIN_DIR@/@TCL_LIB_FILE@')"
|
|
TCL_STUB_LIB_FILE = "$(shell $(CYGPATH) '@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
|
|
TTK_DIR = $(GENERIC_DIR)/ttk
|
|
BITMAP_DIR = $(ROOT_DIR)/bitmaps
|
|
XLIB_DIR = $(ROOT_DIR)/xlib
|
|
RC_DIR = $(WIN_DIR)/rc
|
|
|
|
ROOT_DIR_NATIVE = $(shell $(CYGPATH) '$(ROOT_DIR)' | sed 's!\\!/!g')
|
|
WIN_DIR_NATIVE = $(shell $(CYGPATH) '$(WIN_DIR)' | sed 's!\\!/!g')
|
|
GENERIC_DIR_NATIVE = $(shell $(CYGPATH) '$(GENERIC_DIR)' | sed 's!\\!/!g')
|
|
BITMAP_DIR_NATIVE = $(ROOT_DIR_NATIVE)/bitmaps
|
|
XLIB_DIR_NATIVE = $(ROOT_DIR_NATIVE)/xlib
|
|
RC_DIR_NATIVE = $(WIN_DIR_NATIVE)/rc
|
|
TCL_GENERIC_NATIVE = $(shell $(CYGPATH) '$(TCL_GENERIC_DIR)' | sed 's!\\!/!g')
|
|
TCL_PLATFORM_NATIVE = $(shell $(CYGPATH) '$(TCL_PLATFORM_DIR)' | sed 's!\\!/!g')
|
|
TCL_SRC_DIR_NATIVE = $(shell $(CYGPATH) '$(TCL_SRC_DIR)' | sed 's!\\!/!g')
|
|
|
|
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$(EXEEXT)
|
|
MAN2TCL = man2tcl$(EXEEXT)
|
|
|
|
@SET_MAKE@
|
|
|
|
# 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):$(TTK_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@
|
|
|
|
# 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 =
|
|
#NO_DEPRECATED_FLAGS = -DTCL_NO_DEPRECATED -DTK_NO_DEPRECATED
|
|
|
|
# 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@ $(NO_DEPRECATED_FLAGS)
|
|
|
|
# Special compiler flags to use when building man2tcl on Windows.
|
|
MAN2TCLFLAGS = @MAN2TCLFLAGS@
|
|
|
|
AR = @AR@
|
|
RANLIB = @RANLIB@
|
|
CC = @CC@
|
|
RC = @RC@
|
|
RES = @RES@
|
|
TK_RES = @TK_RES@
|
|
AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@ @TCL_DEFS@
|
|
CPPFLAGS = @CPPFLAGS@
|
|
LDFLAGS = @LDFLAGS@ @LDFLAGS_DEFAULT@
|
|
LDFLAGS_CONSOLE = @LDFLAGS_CONSOLE@
|
|
LDFLAGS_WINDOW = @LDFLAGS_WINDOW@
|
|
EXEEXT = @EXEEXT@
|
|
OBJEXT = @OBJEXT@
|
|
STLIB_LD = @STLIB_LD@
|
|
SHLIB_LD = @SHLIB_LD@
|
|
SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
|
|
SHLIB_CFLAGS = @SHLIB_CFLAGS@
|
|
SHLIB_SUFFIX = @SHLIB_SUFFIX@
|
|
VER = @TK_MAJOR_VERSION@@TK_MINOR_VERSION@
|
|
DOTVER = @TK_MAJOR_VERSION@.@TK_MINOR_VERSION@
|
|
LIBS = $(TCL_STUB_LIB_FILE) @LIBS@ @LIBS_GUI@
|
|
RMDIR = rm -rf
|
|
MKDIR = mkdir -p
|
|
SHELL = @SHELL@
|
|
RM = rm -f
|
|
COPY = cp
|
|
|
|
BUILD_TCLSH = @BUILD_TCLSH@
|
|
|
|
# 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_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}" -I"${TCL_PLATFORM_NATIVE}" ${AC_FLAGS}
|
|
|
|
CC_OBJNAME = @CC_OBJNAME@
|
|
CC_EXENAME = @CC_EXENAME@
|
|
|
|
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)
|
|
|
|
TKTEST_OBJS = \
|
|
testMain.$(OBJEXT) \
|
|
tkSquare.$(OBJEXT) \
|
|
tkTest.$(OBJEXT) \
|
|
tkOldTest.$(OBJEXT) \
|
|
tkWinTest.$(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) \
|
|
tkWinSendCom.$(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) \
|
|
tkPanedWindow.$(OBJEXT) \
|
|
tkObj.$(OBJEXT) \
|
|
tkOldConfig.$(OBJEXT) \
|
|
tkOption.$(OBJEXT) \
|
|
tkPack.$(OBJEXT) \
|
|
tkPlace.$(OBJEXT) \
|
|
tkPointer.$(OBJEXT) \
|
|
tkRectOval.$(OBJEXT) \
|
|
tkScale.$(OBJEXT) \
|
|
tkScrollbar.$(OBJEXT) \
|
|
tkSelect.$(OBJEXT) \
|
|
tkStyle.$(OBJEXT) \
|
|
tkText.$(OBJEXT) \
|
|
tkTextBTree.$(OBJEXT) \
|
|
tkTextDisp.$(OBJEXT) \
|
|
tkTextImage.$(OBJEXT) \
|
|
tkTextIndex.$(OBJEXT) \
|
|
tkTextMark.$(OBJEXT) \
|
|
tkTextTag.$(OBJEXT) \
|
|
tkTextWind.$(OBJEXT) \
|
|
tkTrig.$(OBJEXT) \
|
|
tkUndo.$(OBJEXT) \
|
|
tkUtil.$(OBJEXT) \
|
|
tkVisual.$(OBJEXT) \
|
|
tkStubInit.$(OBJEXT) \
|
|
tkWindow.$(OBJEXT) \
|
|
$(TTK_OBJS)
|
|
|
|
TTK_OBJS = \
|
|
ttkWinMonitor.$(OBJEXT) \
|
|
ttkWinTheme.$(OBJEXT) \
|
|
ttkWinXPTheme.$(OBJEXT) \
|
|
ttkBlink.$(OBJEXT) \
|
|
ttkButton.$(OBJEXT) \
|
|
ttkCache.$(OBJEXT) \
|
|
ttkClamTheme.$(OBJEXT) \
|
|
ttkClassicTheme.$(OBJEXT) \
|
|
ttkDefaultTheme.$(OBJEXT) \
|
|
ttkElements.$(OBJEXT) \
|
|
ttkEntry.$(OBJEXT) \
|
|
ttkFrame.$(OBJEXT) \
|
|
ttkImage.$(OBJEXT) \
|
|
ttkInit.$(OBJEXT) \
|
|
ttkLabel.$(OBJEXT) \
|
|
ttkLayout.$(OBJEXT) \
|
|
ttkManager.$(OBJEXT) \
|
|
ttkNotebook.$(OBJEXT) \
|
|
ttkPanedwindow.$(OBJEXT) \
|
|
ttkProgress.$(OBJEXT) \
|
|
ttkScale.$(OBJEXT) \
|
|
ttkScrollbar.$(OBJEXT) \
|
|
ttkScroll.$(OBJEXT) \
|
|
ttkSeparator.$(OBJEXT) \
|
|
ttkSquare.$(OBJEXT) \
|
|
ttkState.$(OBJEXT) \
|
|
ttkTagSet.$(OBJEXT) \
|
|
ttkTheme.$(OBJEXT) \
|
|
ttkTrace.$(OBJEXT) \
|
|
ttkTrack.$(OBJEXT) \
|
|
ttkTreeview.$(OBJEXT) \
|
|
ttkWidget.$(OBJEXT) \
|
|
ttkStubInit.$(OBJEXT)
|
|
|
|
STUB_OBJS = \
|
|
tkStubLib.$(OBJEXT) \
|
|
ttkStubLib.$(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
|
|
|
|
SHELL_ENV = \
|
|
@TCL_LIBRARY="$(TCL_SRC_DIR_NATIVE)/library"; export TCL_LIBRARY; \
|
|
TK_LIBRARY="$(ROOT_DIR_NATIVE)/library"; export TK_LIBRARY; \
|
|
PATH="$(TCL_BIN_DIR):$(PATH)"; export PATH;
|
|
|
|
# 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: $(ROOT_DIR)/doc/man.macros
|
|
|
|
winhelp: $(TCL_SRC_DIR)/tools/man2help.tcl $(MAN2TCL)
|
|
$(TCL_EXE) "$(TCL_SRC_DIR_NATIVE)/tools/man2help.tcl" tcl "$(VER)" $(CORE_DOCS)
|
|
$(COPY) "$(TCL_BIN_DIR)/tcl.hpj" ./
|
|
hcw /c /e tcl.hpj
|
|
$(COPY) ./tcl$(VER).cnt ./TCL$(VER).HLP "$(TCL_SRC_DIR_NATIVE)/tools/"
|
|
|
|
$(MAN2TCL): $(TCL_SRC_DIR)/tools/man2tcl.c
|
|
$(CC) $(CFLAGS_OPTIMIZE) $(MAN2TCLFLAGS) -o $(MAN2TCL) "$(TCL_SRC_DIR_NATIVE)/tools/man2tcl.c"
|
|
|
|
# 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: test-classic test-ttk
|
|
|
|
test-classic: binaries $(TKTEST) $(CAT32)
|
|
$(SHELL_ENV) ./$(TKTEST) "$(ROOT_DIR_NATIVE)/tests/all.tcl" \
|
|
$(TESTFLAGS) | ./$(CAT32)
|
|
|
|
test-ttk: binaries $(TKTEST) $(CAT32)
|
|
$(SHELL_ENV) ./$(TKTEST) "$(ROOT_DIR_NATIVE)/tests/ttk/all.tcl" \
|
|
$(TESTFLAGS) | ./$(CAT32)
|
|
|
|
runtest: binaries $(TKTEST)
|
|
$(SHELL_ENV) ./$(TKTEST) $(TESTFLAGS) $(SCRIPT)
|
|
|
|
# This target can be used to run wish from the build directory
|
|
# via `make shell` or `make shell SCRIPT=foo.tcl`
|
|
shell: binaries
|
|
$(SHELL_ENV) ./$(WISH) $(SCRIPT)
|
|
|
|
demo: $(WISH)
|
|
$(SHELL_ENV) ./$(WISH) $(ROOT_DIR)/library/demos/widget
|
|
|
|
# This target can be used to run wish inside either gdb or insight
|
|
gdb: binaries
|
|
@echo "set env TCL_LIBRARY=$(TCL_SRC_DIR_NATIVE)/library" > gdb.run
|
|
@echo "set env TK_LIBRARY=$(ROOT_DIR_NATIVE)/library" >> gdb.run
|
|
PATH="$(TCL_BIN_DIR):$(PATH)"; export PATH; \
|
|
gdb ./$(WISH) --command=gdb.run
|
|
@$(RM) gdb.run
|
|
|
|
install: all install-binaries install-libraries install-doc install-demos
|
|
|
|
install-binaries: binaries
|
|
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) $(PKG_INSTALL_DIR); \
|
|
do \
|
|
if [ ! -d $$i ] ; then \
|
|
echo "Making directory $$i"; \
|
|
$(MKDIR) $$i; \
|
|
chmod 755 $$i; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@for i in $(TK_DLL_FILE) $(WISH); \
|
|
do \
|
|
if [ -f $$i ]; then \
|
|
echo "Installing $$i to $(BIN_INSTALL_DIR)/"; \
|
|
$(COPY) $$i "$(BIN_INSTALL_DIR)"; \
|
|
fi; \
|
|
done
|
|
@echo "Creating package index $(PKG_INDEX)";
|
|
@$(RM) $(PKG_INDEX);
|
|
@(\
|
|
echo "if {[catch {package present Tcl 8.5.0}]} return";\
|
|
echo "if {(\$$::tcl_platform(platform) eq \"unix\") && ([info exists ::env(DISPLAY)]";\
|
|
echo " || ([info exists ::argv] && (\"-display\" in \$$::argv)))} {";\
|
|
echo " package ifneeded Tk $(VERSION)$(PATCH_LEVEL) [list load [file normalize [file join \$$dir .. .. bin libtk$(VERSION).dll]] Tk]";\
|
|
echo "} else {";\
|
|
echo " package ifneeded Tk $(VERSION)$(PATCH_LEVEL) [list load [file normalize [file join \$$dir .. .. bin $(TK_DLL_FILE)]] Tk]";\
|
|
echo "}";\
|
|
) > $(PKG_INDEX);
|
|
@for i in tkConfig.sh $(TK_LIB_FILE) $(TK_STUB_LIB_FILE); \
|
|
do \
|
|
if [ -f $$i ]; then \
|
|
echo "Installing $$i to $(LIB_INSTALL_DIR)/"; \
|
|
$(COPY) $$i "$(LIB_INSTALL_DIR)"; \
|
|
fi; \
|
|
done
|
|
|
|
install-libraries: libraries
|
|
@for i in $(INSTALL_ROOT)$(prefix)/lib \
|
|
$(INCLUDE_INSTALL_DIR) $(INCLUDE_INSTALL_DIR)/X11 \
|
|
$(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images \
|
|
$(SCRIPT_INSTALL_DIR)/msgs $(SCRIPT_INSTALL_DIR)/ttk; \
|
|
do \
|
|
if [ ! -d $$i ] ; then \
|
|
echo "Making directory $$i"; \
|
|
$(MKDIR) $$i; \
|
|
chmod 755 $$i; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing header files to $(INCLUDE_INSTALL_DIR)/";
|
|
@for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkPlatDecls.h \
|
|
$(GENERIC_DIR)/tkIntXlibDecls.h $(GENERIC_DIR)/tkDecls.h ; \
|
|
do \
|
|
$(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
|
|
done;
|
|
@for i in $(XLIB_DIR)/X11/*.h; \
|
|
do \
|
|
$(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR)/X11; \
|
|
done;
|
|
@echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
|
|
@for i in $(ROOT_DIR)/library/*.tcl $(ROOT_DIR)/library/tclIndex \
|
|
$(UNIX_DIR)/tkAppInit.c; \
|
|
do \
|
|
$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
|
|
done;
|
|
@echo "Installing library ttk directory";
|
|
@for i in $(ROOT_DIR)/library/ttk/*.tcl; \
|
|
do \
|
|
if [ -f $$i ] ; then \
|
|
$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/ttk; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing library images directory";
|
|
@for i in $(ROOT_DIR)/library/images/*; \
|
|
do \
|
|
if [ -f $$i ] ; then \
|
|
$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/images; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing translation directory";
|
|
@for i in $(ROOT_DIR)/library/msgs/*.msg; \
|
|
do \
|
|
if [ -f $$i ] ; then \
|
|
$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/msgs; \
|
|
fi; \
|
|
done;
|
|
|
|
install-demos:
|
|
@for i in $(INSTALL_ROOT)$(prefix)/lib $(SCRIPT_INSTALL_DIR) \
|
|
$(SCRIPT_INSTALL_DIR)/demos \
|
|
$(SCRIPT_INSTALL_DIR)/demos/images ; \
|
|
do \
|
|
if [ ! -d $$i ] ; then \
|
|
echo "Making directory $$i"; \
|
|
$(MKDIR) $$i; \
|
|
chmod 755 $$i; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing demos to $(SCRIPT_INSTALL_DIR)/demos/";
|
|
@for i in $(ROOT_DIR)/library/demos/*; \
|
|
do \
|
|
if [ -f $$i ] ; then \
|
|
sed -e '3 s|exec wish|exec wish$(VER)|' \
|
|
$$i > $(SCRIPT_INSTALL_DIR)/demos/`basename $$i`; \
|
|
fi; \
|
|
done;
|
|
@for i in $(DEMOPROGS); \
|
|
do \
|
|
if test $$i = "square"; then \
|
|
rm -f $(SCRIPT_INSTALL_DIR)/demos/$$i; \
|
|
else \
|
|
chmod 755 $(SCRIPT_INSTALL_DIR)/demos/$$i; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing demo images";
|
|
@for i in $(ROOT_DIR)/library/demos/images/*; \
|
|
do \
|
|
if [ -f $$i ] ; then \
|
|
$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \
|
|
fi; \
|
|
done;
|
|
|
|
install-doc: doc
|
|
|
|
# Optional target to install private headers
|
|
install-private-headers: libraries
|
|
@for i in $(PRIVATE_INCLUDE_INSTALL_DIR); \
|
|
do \
|
|
if [ ! -d $$i ] ; then \
|
|
echo "Making directory $$i"; \
|
|
$(MKDIR) $$i; \
|
|
chmod 755 $$i; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing private header files to $(PRIVATE_INCLUDE_INSTALL_DIR)/";
|
|
@for i in $(GENERIC_DIR)/tkInt.h $(GENERIC_DIR)/tkIntDecls.h \
|
|
$(GENERIC_DIR)/tkIntPlatDecls.h $(GENERIC_DIR)/tkPort.h \
|
|
$(WIN_DIR)/tkWinPort.h $(WIN_DIR)/tkWinInt.h $(WIN_DIR)/tkWin.h; \
|
|
do \
|
|
$(INSTALL_DATA) $$i $(PRIVATE_INCLUDE_INSTALL_DIR); \
|
|
done;
|
|
|
|
$(WISH): $(WISH_OBJS) $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) wish.$(RES)
|
|
$(CC) $(CFLAGS) $(WISH_OBJS) $(TCL_LIB_FILE) $(TK_LIB_FILE) $(LIBS) \
|
|
wish.$(RES) $(CC_EXENAME) $(LDFLAGS_WINDOW)
|
|
@VC_MANIFEST_EMBED_EXE@
|
|
|
|
tktest: $(TKTEST)
|
|
|
|
$(TKTEST): $(TKTEST_OBJS) $(TK_LIB_FILE) wish.$(RES)
|
|
$(CC) $(CFLAGS) $(TKTEST_OBJS) $(TCL_LIB_FILE) \
|
|
$(TK_LIB_FILE) $(LIBS) \
|
|
wish.$(RES) $(CC_EXENAME) $(LDFLAGS_WINDOW)
|
|
@VC_MANIFEST_EMBED_EXE@
|
|
|
|
# Msys make requires this next rule for some reason.
|
|
$(TCL_SRC_DIR)/win/cat.c:
|
|
|
|
cat32.${OBJEXT}: $(TCL_SRC_DIR)/win/cat.c
|
|
$(CC) -c $(CC_SWITCHES) "$(TCL_SRC_DIR)/win/cat.c" $(CC_OBJNAME)
|
|
|
|
$(CAT32): cat32.${OBJEXT}
|
|
$(CC) $(CFLAGS) cat32.$(OBJEXT) $(CC_EXENAME) $(LIBS) $(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_STUB_LIB@ ${STUB_OBJS}
|
|
@POST_MAKE_LIB@
|
|
|
|
${TK_DLL_FILE}: ${TK_OBJS} $(TK_RES)
|
|
@$(RM) ${TK_DLL_FILE}
|
|
@MAKE_DLL@ ${TK_OBJS} $(TK_RES) $(SHLIB_LD_LIBS)
|
|
@VC_MANIFEST_EMBED_DLL@
|
|
|
|
${TK_LIB_FILE}: ${TK_OBJS}
|
|
@$(RM) ${TK_LIB_FILE}
|
|
@MAKE_LIB@ ${TK_OBJS}
|
|
@POST_MAKE_LIB@
|
|
|
|
# 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)
|
|
|
|
tkOldTest.$(OBJEXT): tkOldTest.c
|
|
$(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tkWinTest.$(OBJEXT): tkWinTest.c
|
|
$(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tkSquare.$(OBJEXT): tkSquare.c
|
|
$(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
# Extra dependency info
|
|
tkConsole.$(OBJEXT): configure Makefile
|
|
tkMain.$(OBJEXT): configure Makefile
|
|
tkWindow.$(OBJEXT): configure Makefile
|
|
|
|
# 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 Tk library
|
|
|
|
%.$(OBJEXT): %.c
|
|
$(CC) -c $(STUB_CC_SWITCHES) -DBUILD_tk -DBUILD_ttk @DEPARG@ $(CC_OBJNAME)
|
|
|
|
.rc.$(RES):
|
|
$(RC) @RC_OUT@ $@ @RC_TYPE@ @RC_DEFINES@ @RC_INCLUDE@ "$(GENERIC_DIR_NATIVE)" @RC_INCLUDE@ "$(TCL_GENERIC_NATIVE)" @RC_INCLUDE@ "$(TCL_PLATFORM_NATIVE)" @RC_INCLUDE@ "$(RC_DIR_NATIVE)" @DEPARG@
|
|
|
|
depend:
|
|
|
|
cleanhelp:
|
|
$(RM) *.hlp *.cnt *.hpj *.GID *.rtf man2tcl${EXEEXT}
|
|
|
|
clean: cleanhelp
|
|
$(RM) *.lib *.a *.exp *.dll *.res *.${OBJEXT} *~ \#* TAGS a.out
|
|
$(RM) $(WISH) $(TKTEST) $(CAT32)
|
|
$(RM) *.pch *.ilk *.pdb
|
|
|
|
distclean: clean
|
|
$(RM) Makefile config.status config.cache config.log tkConfig.sh \
|
|
wish.exe.manifest
|
|
|
|
Makefile: $(SRC_DIR)/Makefile.in
|
|
./config.status
|
|
|
|
#
|
|
# Regenerate the stubs files.
|
|
#
|
|
|
|
$(GENERIC_DIR)/tkStubInit.c: $(GENERIC_DIR)/tk.decls \
|
|
$(GENERIC_DIR)/tkInt.decls
|
|
@echo "Warning: tkStubInit.c may be out of date."
|
|
@echo "Developers may want to run \"make genstubs\" to regenerate."
|
|
@echo "This warning can be safely ignored, do not report as a bug!"
|
|
|
|
genstubs:
|
|
$(TCL_EXE) "$(TCL_TOOL_DIR)/genStubs.tcl" \
|
|
"$(GENERIC_DIR_NATIVE)" \
|
|
"$(GENERIC_DIR_NATIVE)/tk.decls" \
|
|
"$(GENERIC_DIR_NATIVE)/tkInt.decls"
|
|
$(TCL_EXE) "$(TTK_DIR)/ttkGenStubs.tcl" \
|
|
"$(TTK_DIR)" \
|
|
"$(TTK_DIR)/ttk.decls"
|
|
|
|
#
|
|
# The list of all the targets that do not correspond to real files. This stops
|
|
# 'make' from getting confused when someone makes an error in a rule.
|
|
#
|
|
|
|
.PHONY: all binaries libraries doc tkLibObjs objs tktest-real test test-classic
|
|
.PHONY: test-ttk testlang runtest shell demo gdb install install-strip
|
|
.PHONY: install-binaries install-libraries install-demos install-doc
|
|
.PHONY: install-private-headers clean distclean depend genstubs checkstubs
|
|
.PHONY: checkuchar checkexports rpm dist alldist allpatch html html-tcl html-tk
|
|
|
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|