1231 lines
41 KiB
Makefile
Vendored
1231 lines
41 KiB
Makefile
Vendored
#
|
|
# This file is a Makefile for Tcl. 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 = @TCL_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@
|
|
bindir = @bindir@
|
|
libdir = @libdir@
|
|
includedir = @includedir@
|
|
datarootdir = @datarootdir@
|
|
runstatedir = @runstatedir@
|
|
mandir = @mandir@
|
|
|
|
# Configure arguments
|
|
PKG_CFG_ARGS = @PKG_CFG_ARGS@
|
|
|
|
# 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 TCL_LIBRARY environment variable at run-time to
|
|
# override this value):
|
|
TCL_LIBRARY = $(prefix)/lib/tcl$(VERSION)
|
|
|
|
# Path to use at runtime to refer to LIB_INSTALL_DIR:
|
|
LIB_RUNTIME_DIR = $(libdir)
|
|
|
|
# Directory in which to install the program tclsh:
|
|
BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir)
|
|
|
|
# Directory in which to install the .a or .so binary for the Tcl library:
|
|
LIB_INSTALL_DIR = $(INSTALL_ROOT)$(libdir)
|
|
|
|
# Path name to use when installing library scripts.
|
|
SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY)
|
|
|
|
# Path name to use when installing Tcl modules.
|
|
MODULE_INSTALL_DIR = $(SCRIPT_INSTALL_DIR)/../tcl9
|
|
|
|
# Directory in which to install the include file tcl.h:
|
|
INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir)
|
|
|
|
# Directory in which to (optionally) install the private tcl headers:
|
|
PRIVATE_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir)
|
|
|
|
# Top-level directory in which to install manual entries:
|
|
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(mandir)
|
|
|
|
# Directory in which to install manual entry for tclsh:
|
|
MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1
|
|
|
|
# Directory in which to install manual entries for Tcl's C library procedures:
|
|
MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3
|
|
|
|
# Directory in which to install manual entries for the built-in Tcl commands:
|
|
MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann
|
|
|
|
# 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@ -DMP_FIXED_CUTOFFS -D__USE_MINGW_ANSI_STDIO=0
|
|
|
|
# To compile without backward compatibility and deprecated code uncomment the
|
|
# following
|
|
NO_DEPRECATED_FLAGS =
|
|
#NO_DEPRECATED_FLAGS = -DTCL_NO_DEPRECATED
|
|
|
|
# To enable compilation debugging reverse the comment characters on one of the
|
|
# following lines.
|
|
COMPILE_DEBUG_FLAGS =
|
|
#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG
|
|
#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
|
|
|
|
SRC_DIR = @srcdir@
|
|
ROOT_DIR = @srcdir@/..
|
|
TOP_DIR = $(shell cd '@srcdir@/..'; pwd -W 2>/dev/null || pwd -P)
|
|
BUILD_DIR = @builddir@
|
|
GENERIC_DIR = $(TOP_DIR)/generic
|
|
WIN_DIR = $(TOP_DIR)/win
|
|
UNIX_DIR = $(TOP_DIR)/unix
|
|
COMPAT_DIR = $(TOP_DIR)/compat
|
|
PKGS_DIR = $(TOP_DIR)/pkgs
|
|
TOOL_DIR = $(TOP_DIR)/tools
|
|
ZLIB_DIR = $(COMPAT_DIR)/zlib
|
|
MINIZIP_DIR = $(ZLIB_DIR)/contrib/minizip
|
|
TOMMATH_DIR = $(TOP_DIR)/libtommath
|
|
|
|
# Converts a POSIX path to a Windows native path.
|
|
CYGPATH = @CYGPATH@
|
|
|
|
libdir_native = $(shell $(CYGPATH) '$(libdir)')
|
|
bindir_native = $(shell $(CYGPATH) '$(bindir)')
|
|
includedir_native = $(shell $(CYGPATH) '$(includedir)')
|
|
mandir_native = $(shell $(CYGPATH) '$(mandir)')
|
|
TCL_LIBRARY_NATIVE = $(shell $(CYGPATH) '$(TCL_LIBRARY)')
|
|
GENERIC_DIR_NATIVE = $(shell $(CYGPATH) '$(GENERIC_DIR)')
|
|
WIN_DIR_NATIVE = $(shell $(CYGPATH) '$(WIN_DIR)')
|
|
ROOT_DIR_NATIVE = $(shell $(CYGPATH) '$(ROOT_DIR)')
|
|
TOOL_DIR_NATIVE = $(shell $(CYGPATH) '$(TOOL_DIR)')
|
|
SCRIPT_INSTALL_DIR_NATIVE = $(shell $(CYGPATH) '$(SCRIPT_INSTALL_DIR)')
|
|
INCLUDE_INSTALL_DIR_NATIVE = $(shell $(CYGPATH) '$(INCLUDE_INSTALL_DIR)')
|
|
MAN_INSTALL_DIR_NATIVE = $(shell $(CYGPATH) '$(MAN_INSTALL_DIR)')
|
|
ROOT_DIR_WIN_NATIVE = $(shell cd '$(ROOT_DIR)' ; pwd -W 2>/dev/null || pwd -P)
|
|
ZLIB_DIR_NATIVE = $(shell $(CYGPATH) '$(ZLIB_DIR)')
|
|
MINIZIP_DIR_NATIVE = $(shell $(CYGPATH) '$(MINIZIP_DIR)')
|
|
TOMMATH_DIR_NATIVE = $(shell $(CYGPATH) '$(TOMMATH_DIR)')
|
|
|
|
DLLSUFFIX = @DLLSUFFIX@
|
|
LIBSUFFIX = @LIBSUFFIX@
|
|
EXESUFFIX = @EXESUFFIX@
|
|
|
|
VER = @TCL_MAJOR_VERSION@@TCL_MINOR_VERSION@
|
|
DOTVER = @TCL_MAJOR_VERSION@.@TCL_MINOR_VERSION@
|
|
DDEVER = @TCL_DDE_MAJOR_VERSION@@TCL_DDE_MINOR_VERSION@
|
|
DDEDOTVER = @TCL_DDE_MAJOR_VERSION@.@TCL_DDE_MINOR_VERSION@
|
|
REGVER = @TCL_REG_MAJOR_VERSION@@TCL_REG_MINOR_VERSION@
|
|
REGDOTVER = @TCL_REG_MAJOR_VERSION@.@TCL_REG_MINOR_VERSION@
|
|
|
|
TCL_ZIP_FILE = @TCL_ZIP_FILE@
|
|
TCL_VFS_PATH = libtcl.vfs/tcl_library
|
|
TCL_VFS_ROOT = libtcl.vfs
|
|
|
|
|
|
TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@
|
|
TCL_DLL_FILE = @TCL_DLL_FILE@
|
|
TCL_LIB_FILE = @TCL_LIB_FILE@
|
|
DDE_DLL_FILE = tcl9dde$(DDEVER)${DLLSUFFIX}
|
|
DDE_DLL_FILE8 = tcldde$(DDEVER)${DLLSUFFIX}
|
|
DDE_LIB_FILE = @LIBPREFIX@tcldde$(DDEVER)${DLLSUFFIX}${LIBSUFFIX}
|
|
REG_DLL_FILE = tcl9registry$(REGVER)${DLLSUFFIX}
|
|
REG_DLL_FILE8 = tclregistry$(REGVER)${DLLSUFFIX}
|
|
REG_LIB_FILE = @LIBPREFIX@tclregistry$(REGVER)${DLLSUFFIX}${LIBSUFFIX}
|
|
TEST_DLL_FILE = tcltest$(VER)${DLLSUFFIX}
|
|
TEST_EXE_FILE = tcltest${EXESUFFIX}
|
|
TEST_LIB_FILE = @LIBPREFIX@tcltest$(VER)${DLLSUFFIX}${LIBSUFFIX}
|
|
TEST_LOAD_PRMS = lappend ::auto_path {$(ROOT_DIR_WIN_NATIVE)/tests};\
|
|
package ifneeded dde 1.4.6 [list load ${DDE_DLL_FILE}];\
|
|
package ifneeded registry 1.3.7 [list load ${REG_DLL_FILE}]
|
|
TEST_LOAD_FACILITIES = package ifneeded tcl::test ${VERSION}@TCL_PATCH_LEVEL@ [list load ${TEST_DLL_FILE} Tcltest];\
|
|
$(TEST_LOAD_PRMS)
|
|
ZLIB_DLL_FILE = zlib1.dll
|
|
TOMMATH_DLL_FILE = libtommath.dll
|
|
|
|
SHARED_LIBRARIES = $(TCL_DLL_FILE) @ZLIB_DLL_FILE@ @TOMMATH_DLL_FILE@
|
|
STATIC_LIBRARIES = $(TCL_LIB_FILE)
|
|
|
|
TCLSH = tclsh$(VER)${EXESUFFIX}
|
|
WINE = @WINE@
|
|
CAT32 = cat32$(EXEEXT)
|
|
|
|
# For cross-compiled builds, TCL_EXE is the name of a tclsh executable that is
|
|
# available *BEFORE* running make for the first time. Certain build targets
|
|
# (make genstubs, make install) 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 = @TCL_EXE@
|
|
|
|
@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):$(WIN_DIR):$(COMPAT_DIR):$(ZLIB_DIR):$(TOMMATH_DIR)
|
|
|
|
AR = @AR@
|
|
RANLIB = @RANLIB@
|
|
CC = @CC@
|
|
RC = @RC@
|
|
RES = @RES@
|
|
AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@
|
|
CPPFLAGS = @CPPFLAGS@
|
|
LDFLAGS_DEBUG = @LDFLAGS_DEBUG@
|
|
LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@
|
|
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@
|
|
LIBS = @LIBS@ $(shell $(CYGPATH) '@ZLIB_LIBS@') $(shell $(CYGPATH) '@TOMMATH_LIBS@')
|
|
|
|
RMDIR = rm -rf
|
|
MKDIR = mkdir -p
|
|
SHELL = @SHELL@
|
|
RM = rm -f
|
|
COPY = cp
|
|
LN = ln
|
|
GDB = gdb
|
|
INSTALL = $(SHELL) $(UNIX_DIR)/install-sh -c
|
|
INSTALL_PROGRAM = ${INSTALL}
|
|
INSTALL_LIBRARY = ${INSTALL}
|
|
INSTALL_DATA = ${INSTALL} -m 644
|
|
INSTALL_DATA_DIR = ${INSTALL} -d -m 755
|
|
|
|
###
|
|
# Tip 430 - ZipFS Modifications
|
|
###
|
|
|
|
TCL_ZIP_FILE = @TCL_ZIP_FILE@
|
|
TCL_VFS_PATH = libtcl.vfs/tcl_library
|
|
TCL_VFS_ROOT = libtcl.vfs
|
|
|
|
HOST_CC = @CC_FOR_BUILD@
|
|
HOST_EXEEXT = @EXEEXT_FOR_BUILD@
|
|
HOST_OBJEXT = @OBJEXT_FOR_BUILD@
|
|
ZIPFS_BUILD = @ZIPFS_BUILD@
|
|
NATIVE_ZIP = @ZIP_PROG@
|
|
ZIP_PROG_OPTIONS = @ZIP_PROG_OPTIONS@
|
|
ZIP_PROG_VFSSEARCH = @ZIP_PROG_VFSSEARCH@
|
|
SHARED_BUILD = @SHARED_BUILD@
|
|
INSTALL_MSGS = @INSTALL_MSGS@
|
|
INSTALL_LIBRARIES = @INSTALL_LIBRARIES@
|
|
|
|
# Fully qualify library path so that `make test`
|
|
# does not depend on the current directory.
|
|
# Only define these if not embedding the library
|
|
ifeq ($(ZIPFS_BUILD), 0)
|
|
LIBRARY_DIR1 = $(shell cd '$(ROOT_DIR_NATIVE)/library' ; pwd -P)
|
|
LIBRARY_DIR = $(shell $(CYGPATH) '$(LIBRARY_DIR1)')
|
|
endif
|
|
|
|
# Minizip
|
|
MINIZIP_OBJS = \
|
|
adler32.$(HOST_OBJEXT) \
|
|
compress.$(HOST_OBJEXT) \
|
|
crc32.$(HOST_OBJEXT) \
|
|
deflate.$(HOST_OBJEXT) \
|
|
infback.$(HOST_OBJEXT) \
|
|
inffast.$(HOST_OBJEXT) \
|
|
inflate.$(HOST_OBJEXT) \
|
|
inftrees.$(HOST_OBJEXT) \
|
|
ioapi.$(HOST_OBJEXT) \
|
|
iowin32.$(HOST_OBJEXT) \
|
|
trees.$(HOST_OBJEXT) \
|
|
uncompr.$(HOST_OBJEXT) \
|
|
zip.$(HOST_OBJEXT) \
|
|
zutil.$(HOST_OBJEXT) \
|
|
minizip.$(HOST_OBJEXT)
|
|
|
|
ZIP_INSTALL_OBJS = @ZIP_INSTALL_OBJS@
|
|
|
|
CC_SWITCHES = -I"${BUILD_DIR}" -I"${GENERIC_DIR_NATIVE}" -I"${TOMMATH_DIR_NATIVE}" \
|
|
-I"${ZLIB_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" \
|
|
${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} -DMP_PREC=4 \
|
|
${AC_FLAGS} ${COMPILE_DEBUG_FLAGS} ${NO_DEPRECATED_FLAGS}
|
|
|
|
CC_OBJNAME = @CC_OBJNAME@
|
|
CC_EXENAME = @CC_EXENAME@
|
|
|
|
STUB_CC_SWITCHES = -I"${GENERIC_DIR_NATIVE}" -I"${TOMMATH_DIR_NATIVE}" \
|
|
-I"${ZLIB_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" \
|
|
${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} -DMP_PREC=4 \
|
|
${AC_FLAGS} ${COMPILE_DEBUG_FLAGS}
|
|
|
|
TCLTEST_OBJS = \
|
|
tclTest.$(OBJEXT) \
|
|
tclTestABSList.$(OBJEXT) \
|
|
tclTestObj.$(OBJEXT) \
|
|
tclTestProcBodyObj.$(OBJEXT) \
|
|
tclMutexTest.$(OBJEXT) \
|
|
tclThreadTest.$(OBJEXT) \
|
|
tclWinTest.$(OBJEXT)
|
|
|
|
GENERIC_OBJS = \
|
|
regcomp.$(OBJEXT) \
|
|
regexec.$(OBJEXT) \
|
|
regfree.$(OBJEXT) \
|
|
regerror.$(OBJEXT) \
|
|
tclAlloc.$(OBJEXT) \
|
|
tclArithSeries.$(OBJEXT) \
|
|
tclAssembly.$(OBJEXT) \
|
|
tclAsync.$(OBJEXT) \
|
|
tclBasic.$(OBJEXT) \
|
|
tclBinary.$(OBJEXT) \
|
|
tclCkalloc.$(OBJEXT) \
|
|
tclClock.$(OBJEXT) \
|
|
tclClockFmt.$(OBJEXT) \
|
|
tclCmdAH.$(OBJEXT) \
|
|
tclCmdIL.$(OBJEXT) \
|
|
tclCmdMZ.$(OBJEXT) \
|
|
tclCompCmds.$(OBJEXT) \
|
|
tclCompCmdsGR.$(OBJEXT) \
|
|
tclCompCmdsSZ.$(OBJEXT) \
|
|
tclCompExpr.$(OBJEXT) \
|
|
tclCompile.$(OBJEXT) \
|
|
tclConfig.$(OBJEXT) \
|
|
tclDate.$(OBJEXT) \
|
|
tclDictObj.$(OBJEXT) \
|
|
tclDisassemble.$(OBJEXT) \
|
|
tclEncoding.$(OBJEXT) \
|
|
tclEnsemble.$(OBJEXT) \
|
|
tclEnv.$(OBJEXT) \
|
|
tclEvent.$(OBJEXT) \
|
|
tclExecute.$(OBJEXT) \
|
|
tclFCmd.$(OBJEXT) \
|
|
tclFileName.$(OBJEXT) \
|
|
tclGet.$(OBJEXT) \
|
|
tclHash.$(OBJEXT) \
|
|
tclHistory.$(OBJEXT) \
|
|
tclIcu.$(OBJEXT) \
|
|
tclIndexObj.$(OBJEXT) \
|
|
tclInterp.$(OBJEXT) \
|
|
tclIO.$(OBJEXT) \
|
|
tclIOCmd.$(OBJEXT) \
|
|
tclIOGT.$(OBJEXT) \
|
|
tclIORChan.$(OBJEXT) \
|
|
tclIORTrans.$(OBJEXT) \
|
|
tclIOSock.$(OBJEXT) \
|
|
tclIOUtil.$(OBJEXT) \
|
|
tclLink.$(OBJEXT) \
|
|
tclLiteral.$(OBJEXT) \
|
|
tclListObj.$(OBJEXT) \
|
|
tclLoad.$(OBJEXT) \
|
|
tclMainW.$(OBJEXT) \
|
|
tclMain.$(OBJEXT) \
|
|
tclNamesp.$(OBJEXT) \
|
|
tclNotify.$(OBJEXT) \
|
|
tclOO.$(OBJEXT) \
|
|
tclOOBasic.$(OBJEXT) \
|
|
tclOOCall.$(OBJEXT) \
|
|
tclOODefineCmds.$(OBJEXT) \
|
|
tclOOInfo.$(OBJEXT) \
|
|
tclOOMethod.$(OBJEXT) \
|
|
tclOOProp.$(OBJEXT) \
|
|
tclOOStubInit.$(OBJEXT) \
|
|
tclObj.$(OBJEXT) \
|
|
tclOptimize.$(OBJEXT) \
|
|
tclPanic.$(OBJEXT) \
|
|
tclParse.$(OBJEXT) \
|
|
tclPathObj.$(OBJEXT) \
|
|
tclPipe.$(OBJEXT) \
|
|
tclPkg.$(OBJEXT) \
|
|
tclPkgConfig.$(OBJEXT) \
|
|
tclPosixStr.$(OBJEXT) \
|
|
tclPreserve.$(OBJEXT) \
|
|
tclProc.$(OBJEXT) \
|
|
tclProcess.$(OBJEXT) \
|
|
tclRegexp.$(OBJEXT) \
|
|
tclResolve.$(OBJEXT) \
|
|
tclResult.$(OBJEXT) \
|
|
tclScan.$(OBJEXT) \
|
|
tclStringObj.$(OBJEXT) \
|
|
tclStrIdxTree.$(OBJEXT) \
|
|
tclStrToD.$(OBJEXT) \
|
|
tclStubInit.$(OBJEXT) \
|
|
tclThread.$(OBJEXT) \
|
|
tclThreadAlloc.$(OBJEXT) \
|
|
tclThreadJoin.$(OBJEXT) \
|
|
tclThreadStorage.$(OBJEXT) \
|
|
tclTimer.$(OBJEXT) \
|
|
tclTomMathInterface.$(OBJEXT) \
|
|
tclTrace.$(OBJEXT) \
|
|
tclUtf.$(OBJEXT) \
|
|
tclUtil.$(OBJEXT) \
|
|
tclVar.$(OBJEXT) \
|
|
tclZipfs.$(OBJEXT) \
|
|
tclZlib.$(OBJEXT)
|
|
|
|
TOMMATH_OBJS = \
|
|
bn_mp_add.${OBJEXT} \
|
|
bn_mp_add_d.${OBJEXT} \
|
|
bn_mp_and.${OBJEXT} \
|
|
bn_mp_clamp.${OBJEXT} \
|
|
bn_mp_clear.${OBJEXT} \
|
|
bn_mp_clear_multi.${OBJEXT} \
|
|
bn_mp_cmp.${OBJEXT} \
|
|
bn_mp_cmp_d.${OBJEXT} \
|
|
bn_mp_cmp_mag.${OBJEXT} \
|
|
bn_mp_cnt_lsb.${OBJEXT} \
|
|
bn_mp_copy.${OBJEXT} \
|
|
bn_mp_count_bits.${OBJEXT} \
|
|
bn_mp_div.${OBJEXT} \
|
|
bn_mp_div_d.${OBJEXT} \
|
|
bn_mp_div_2.${OBJEXT} \
|
|
bn_mp_div_2d.${OBJEXT} \
|
|
bn_s_mp_div_3.${OBJEXT} \
|
|
bn_mp_exch.${OBJEXT} \
|
|
bn_mp_expt_n.${OBJEXT} \
|
|
bn_mp_get_mag_u64.${OBJEXT} \
|
|
bn_mp_grow.${OBJEXT} \
|
|
bn_mp_init.${OBJEXT} \
|
|
bn_mp_init_copy.${OBJEXT} \
|
|
bn_mp_init_i64.${OBJEXT} \
|
|
bn_mp_init_multi.${OBJEXT} \
|
|
bn_mp_init_set.${OBJEXT} \
|
|
bn_mp_init_size.${OBJEXT} \
|
|
bn_mp_init_u64.${OBJEXT} \
|
|
bn_mp_lshd.${OBJEXT} \
|
|
bn_mp_mod.${OBJEXT} \
|
|
bn_mp_mod_2d.${OBJEXT} \
|
|
bn_mp_mul.${OBJEXT} \
|
|
bn_mp_mul_2.${OBJEXT} \
|
|
bn_mp_mul_2d.${OBJEXT} \
|
|
bn_mp_mul_d.${OBJEXT} \
|
|
bn_mp_neg.${OBJEXT} \
|
|
bn_mp_or.${OBJEXT} \
|
|
bn_mp_pack.${OBJEXT} \
|
|
bn_mp_pack_count.${OBJEXT} \
|
|
bn_mp_radix_size.${OBJEXT} \
|
|
bn_mp_radix_smap.${OBJEXT} \
|
|
bn_mp_read_radix.${OBJEXT} \
|
|
bn_mp_rshd.${OBJEXT} \
|
|
bn_mp_set_i64.${OBJEXT} \
|
|
bn_mp_set_u64.${OBJEXT} \
|
|
bn_mp_shrink.${OBJEXT} \
|
|
bn_mp_sqr.${OBJEXT} \
|
|
bn_mp_sqrt.${OBJEXT} \
|
|
bn_mp_sub.${OBJEXT} \
|
|
bn_mp_sub_d.${OBJEXT} \
|
|
bn_mp_signed_rsh.${OBJEXT} \
|
|
bn_mp_to_ubin.${OBJEXT} \
|
|
bn_mp_to_radix.${OBJEXT} \
|
|
bn_mp_ubin_size.${OBJEXT} \
|
|
bn_mp_unpack.${OBJEXT} \
|
|
bn_mp_xor.${OBJEXT} \
|
|
bn_mp_zero.${OBJEXT} \
|
|
bn_s_mp_add.${OBJEXT} \
|
|
bn_s_mp_balance_mul.$(OBJEXT) \
|
|
bn_s_mp_karatsuba_mul.${OBJEXT} \
|
|
bn_s_mp_karatsuba_sqr.$(OBJEXT) \
|
|
bn_s_mp_mul_digs.${OBJEXT} \
|
|
bn_s_mp_mul_digs_fast.${OBJEXT} \
|
|
bn_s_mp_reverse.${OBJEXT} \
|
|
bn_s_mp_sqr_fast.${OBJEXT} \
|
|
bn_s_mp_sqr.${OBJEXT} \
|
|
bn_s_mp_sub.${OBJEXT} \
|
|
bn_s_mp_toom_mul.${OBJEXT} \
|
|
bn_s_mp_toom_sqr.${OBJEXT}
|
|
|
|
|
|
WIN_OBJS = \
|
|
tclWin32Dll.$(OBJEXT) \
|
|
tclWinChan.$(OBJEXT) \
|
|
tclWinConsole.$(OBJEXT) \
|
|
tclWinSerial.$(OBJEXT) \
|
|
tclWinError.$(OBJEXT) \
|
|
tclWinFCmd.$(OBJEXT) \
|
|
tclWinFile.$(OBJEXT) \
|
|
tclWinInit.$(OBJEXT) \
|
|
tclWinLoad.$(OBJEXT) \
|
|
tclWinNotify.$(OBJEXT) \
|
|
tclWinPipe.$(OBJEXT) \
|
|
tclWinSock.$(OBJEXT) \
|
|
tclWinThrd.$(OBJEXT) \
|
|
tclWinTime.$(OBJEXT)
|
|
|
|
DDE_OBJS = tclWinDde.$(OBJEXT)
|
|
|
|
REG_OBJS = tclWinReg.$(OBJEXT)
|
|
|
|
STUB_OBJS = \
|
|
tclStubLib.$(OBJEXT) \
|
|
tclStubCall.$(OBJEXT) \
|
|
tclStubLibTbl.$(OBJEXT) \
|
|
tclTomMathStubLib.$(OBJEXT) \
|
|
tclOOStubLib.$(OBJEXT) \
|
|
tclWinPanic.$(OBJEXT)
|
|
|
|
TCLSH_OBJS = tclAppInit.$(OBJEXT)
|
|
|
|
ZLIB_OBJS = \
|
|
adler32.$(OBJEXT) \
|
|
compress.$(OBJEXT) \
|
|
crc32.$(OBJEXT) \
|
|
deflate.$(OBJEXT) \
|
|
infback.$(OBJEXT) \
|
|
inffast.$(OBJEXT) \
|
|
inflate.$(OBJEXT) \
|
|
inftrees.$(OBJEXT) \
|
|
trees.$(OBJEXT) \
|
|
uncompr.$(OBJEXT) \
|
|
zutil.$(OBJEXT)
|
|
|
|
TCL_OBJS = ${GENERIC_OBJS} ${WIN_OBJS} @ZLIB_OBJS@ @TOMMATH_OBJS@
|
|
|
|
TCL_DOCS = "$(ROOT_DIR_NATIVE)"/doc/*.[13n]
|
|
|
|
all: binaries libraries doc packages
|
|
|
|
# Test-suite helper (can be used to test Tcl from build directory with all expected modules).
|
|
# To start from windows shell use:
|
|
# > tcltest.cmd -verbose bps -file fileName.test
|
|
# or from mingw/msys shell:
|
|
# $ ./tcltest -verbose bps -file fileName.test
|
|
|
|
tcltest.cmd: Makefile
|
|
@echo 'Create tcltest.cmd helpers';
|
|
@(\
|
|
echo '@echo off'; \
|
|
echo 'rem set LANG=en_US'; \
|
|
echo 'set BDP=%~dp0'; \
|
|
echo 'set OWD=%CD%'; \
|
|
echo 'cd /d %TEMP%'; \
|
|
echo 'rem "%BDP%\$(TCLSH)" "$(ROOT_DIR_WIN_NATIVE)/tests/all.tcl" %TESTFLAGS% -load "$(TEST_LOAD_FACILITIES)" %*'; \
|
|
echo '"%BDP%\$(TEST_EXE_FILE)" "$(ROOT_DIR_WIN_NATIVE)/tests/all.tcl" %TESTFLAGS% -load "$(TEST_LOAD_PRMS)" %*'; \
|
|
echo 'cd /d %OWD%'; \
|
|
) > tcltest.cmd;
|
|
@(\
|
|
echo '#!/bin/sh'; \
|
|
echo '#LANG=en_US'; \
|
|
echo 'BDP=$$(dirname $$(readlink -f %0))'; \
|
|
echo 'cd /tmp'; \
|
|
echo '#"$$BDP/$(TCLSH)" "$(ROOT_DIR_WIN_NATIVE)/tests/all.tcl" $$TESTFLAGS -load "$(TEST_LOAD_FACILITIES)" "$$@"'; \
|
|
echo '"$$BDP/$(TEST_EXE_FILE)" "$(ROOT_DIR_WIN_NATIVE)/tests/all.tcl" $$TESTFLAGS -load "$(TEST_LOAD_PRMS)" "$$@"'; \
|
|
) > tcltest.sh;
|
|
|
|
tcltest.sh: tcltest.cmd
|
|
|
|
tcltest: binaries $(TEST_EXE_FILE) $(TEST_DLL_FILE) $(CAT32) tcltest.cmd
|
|
|
|
binaries: $(TCL_STUB_LIB_FILE) @LIBRARIES@ winextensions ${TCL_ZIP_FILE} $(TCLSH)
|
|
|
|
winextensions: ${DDE_DLL_FILE} ${REG_DLL_FILE} ${DDE_DLL_FILE8} ${REG_DLL_FILE8}
|
|
|
|
libraries:
|
|
|
|
doc:
|
|
|
|
tclzipfile: ${TCL_ZIP_FILE}
|
|
|
|
${TCL_ZIP_FILE}: ${ZIP_INSTALL_OBJS} ${DDE_DLL_FILE} ${REG_DLL_FILE}
|
|
@rm -rf ${TCL_VFS_ROOT}
|
|
@mkdir -p ${TCL_VFS_PATH}
|
|
@echo "creating ${TCL_VFS_PATH} (prepare compression)"
|
|
@( \
|
|
$(COPY) -a $(TOP_DIR)/library/* ${TCL_VFS_PATH}; \
|
|
$(COPY) -a ${TCL_VFS_PATH}/manifest.txt ${TCL_VFS_PATH}/pkgIndex.tcl; \
|
|
rm -rf ${TCL_VFS_PATH}/dde; \
|
|
rm -rf ${TCL_VFS_PATH}/registry; \
|
|
)
|
|
(zip=`(realpath '${NATIVE_ZIP}' || readlink -m '${NATIVE_ZIP}') 2>/dev/null || \
|
|
(echo '${NATIVE_ZIP}' | sed "s?^\./?$$(pwd)/?")`; \
|
|
cd '${TCL_VFS_ROOT}' && \
|
|
$$zip ${ZIP_PROG_OPTIONS} ../${TCL_ZIP_FILE} ${ZIP_PROG_VFSSEARCH} >/dev/null && \
|
|
echo "${TCL_ZIP_FILE} successful created with $$zip" && \
|
|
cd ..)
|
|
|
|
$(TCLSH): $(TCLSH_OBJS) @LIBRARIES@ $(TCL_STUB_LIB_FILE) tclsh.$(RES) ${TCL_ZIP_FILE}
|
|
$(CC) $(CFLAGS) $(TCLSH_OBJS) $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE) $(LIBS) \
|
|
tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
|
|
$(COPY) tclsh.exe.manifest $(TCLSH).manifest
|
|
@VC_MANIFEST_EMBED_EXE@
|
|
@if test "${ZIPFS_BUILD}" = "2" ; then \
|
|
cat ${TCL_ZIP_FILE} >> ${TCLSH}; \
|
|
fi
|
|
|
|
cat32.$(OBJEXT): cat.c
|
|
$(CC) -c $(CC_SWITCHES) -DUNICODE -D_UNICODE @DEPARG@ $(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
|
|
|
|
${TCL_STUB_LIB_FILE}: ${STUB_OBJS} ${DDE_OBJS} ${REG_OBJS}
|
|
@$(RM) ${TCL_STUB_LIB_FILE}
|
|
@MAKE_STUB_LIB@ ${STUB_OBJS} ${DDE_OBJS} ${REG_OBJS}
|
|
@POST_MAKE_LIB@
|
|
|
|
${TCL_DLL_FILE}: ${TCL_LIB_FILE} ${TCL_OBJS} tcl.$(RES) @ZLIB_DLL_FILE@ @TOMMATH_DLL_FILE@ ${TCL_ZIP_FILE}
|
|
@$(RM) ${TCL_DLL_FILE} $(TCL_LIB_FILE)
|
|
@MAKE_DLL@ ${TCL_OBJS} tcl.$(RES) $(SHLIB_LD_LIBS)
|
|
$(COPY) tclsh.exe.manifest ${TCL_DLL_FILE}.manifest
|
|
@VC_MANIFEST_EMBED_DLL@
|
|
@if test "${ZIPFS_BUILD}" = "1" ; then \
|
|
cat ${TCL_ZIP_FILE} >> ${TCL_DLL_FILE}; \
|
|
fi
|
|
|
|
ifeq (,$(findstring --disable-shared,$(PKG_CFG_ARGS)))
|
|
${TCL_LIB_FILE}:
|
|
@$(RM) ${TCL_DLL_FILE} $(TCL_LIB_FILE)
|
|
else
|
|
${TCL_LIB_FILE}: ${TCL_OBJS} tclWinPanic.$(OBJEXT) ${DDE_OBJS} ${REG_OBJS}
|
|
@$(RM) ${TCL_LIB_FILE}
|
|
@MAKE_LIB@ ${TCL_OBJS} tclWinPanic.$(OBJEXT) ${DDE_OBJS} ${REG_OBJS}
|
|
@POST_MAKE_LIB@
|
|
endif
|
|
|
|
${DDE_DLL_FILE}: ${TCL_STUB_LIB_FILE} ${DDE_OBJS}
|
|
@MAKE_DLL@ ${DDE_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS)
|
|
$(COPY) tclsh.exe.manifest ${DDE_DLL_FILE}.manifest
|
|
|
|
${REG_DLL_FILE}: ${TCL_STUB_LIB_FILE} ${REG_OBJS}
|
|
@MAKE_DLL@ ${REG_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS)
|
|
$(COPY) tclsh.exe.manifest ${REG_DLL_FILE}.manifest
|
|
|
|
${DDE_DLL_FILE8}: ${TCL_STUB_LIB_FILE} tcl8WinDde.$(OBJEXT)
|
|
@MAKE_DLL@ tcl8WinDde.$(OBJEXT) $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS)
|
|
$(COPY) tclsh.exe.manifest ${DDE_DLL_FILE8}.manifest
|
|
|
|
${REG_DLL_FILE8}: ${TCL_STUB_LIB_FILE} tcl8WinReg.$(OBJEXT)
|
|
@MAKE_DLL@ -DTCL_MAJOR_VERSION=8 tcl8WinReg.$(OBJEXT) $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS)
|
|
$(COPY) tclsh.exe.manifest ${REG_DLL_FILE8}.manifest
|
|
|
|
${TEST_DLL_FILE}: ${TCL_STUB_LIB_FILE} ${TCLTEST_OBJS}
|
|
@$(RM) ${TEST_DLL_FILE} ${TEST_LIB_FILE}
|
|
@MAKE_DLL@ ${TCLTEST_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS)
|
|
$(COPY) tclsh.exe.manifest ${TEST_DLL_FILE}.manifest
|
|
|
|
${TEST_EXE_FILE}: @LIBRARIES@ ${TCL_STUB_LIB_FILE} ${TCLTEST_OBJS} tclTestMain.${OBJEXT}
|
|
@$(RM) ${TEST_EXE_FILE}
|
|
$(CC) $(CFLAGS) $(TCLTEST_OBJS) tclTestMain.$(OBJEXT) $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE) $(LIBS) \
|
|
tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
|
|
$(COPY) tclsh.exe.manifest ${TEST_EXE_FILE}.manifest
|
|
|
|
# use prebuilt zlib1.dll
|
|
${ZLIB_DLL_FILE}: ${TCL_STUB_LIB_FILE}
|
|
@if test "@ZLIB_LIBS@set" = "${ZLIB_DIR_NATIVE}/win64-arm/zdll.libset" ; then \
|
|
$(COPY) $(ZLIB_DIR)/win64-arm/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \
|
|
elif test "@ZLIB_LIBS@set" = "${ZLIB_DIR_NATIVE}/win64-arm/libz.dll.aset" ; then \
|
|
$(COPY) $(ZLIB_DIR)/win64-arm/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \
|
|
elif test "@ZLIB_LIBS@set" = "${ZLIB_DIR_NATIVE}/win32/zdll.libset" ; then \
|
|
$(COPY) $(ZLIB_DIR)/win32/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \
|
|
else \
|
|
$(COPY) $(ZLIB_DIR)/win64/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \
|
|
fi;
|
|
|
|
# use pre-built libtommath.dll
|
|
${TOMMATH_DLL_FILE}: ${TCL_STUB_LIB_FILE}
|
|
@if test "@TOMMATH_LIBS@set" = "${TOMMATH_DIR_NATIVE}/win64-arm/tommath.libset" ; then \
|
|
$(COPY) $(TOMMATH_DIR)/win64-arm/${TOMMATH_DLL_FILE} ${TOMMATH_DLL_FILE}; \
|
|
elif test "@TOMMATH_LIBS@set" = "${TOMMATH_DIR_NATIVE}/win64-arm/libtommath.dll.aset" ; then \
|
|
$(COPY) $(TOMMATH_DIR)/win64-arm/${TOMMATH_DLL_FILE} ${TOMMATH_DLL_FILE}; \
|
|
elif test "@TOMMATH_LIBS@set" = "${TOMMATH_DIR_NATIVE}/win32/tommath.libset" ; then \
|
|
$(COPY) $(TOMMATH_DIR)/win32/${TOMMATH_DLL_FILE} ${TOMMATH_DLL_FILE}; \
|
|
else \
|
|
$(COPY) $(TOMMATH_DIR)/win64/${TOMMATH_DLL_FILE} ${TOMMATH_DLL_FILE}; \
|
|
fi;
|
|
|
|
# Add the object extension to the implicit rules. By default .obj is not
|
|
# automatically added.
|
|
|
|
.SUFFIXES: .${OBJEXT}
|
|
.SUFFIXES: .$(RES)
|
|
.SUFFIXES: .rc
|
|
|
|
# Special case object targets
|
|
|
|
tclTestMain.${OBJEXT}: tclAppInit.c
|
|
$(CC) -c $(CC_SWITCHES) -DTCL_TEST -DUNICODE -D_UNICODE $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclWinInit.${OBJEXT}: tclWinInit.c
|
|
$(CC) -c $(CC_SWITCHES) -DBUILD_tcl $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclWinPipe.${OBJEXT}: tclWinPipe.c
|
|
$(CC) -c $(CC_SWITCHES) -DBUILD_tcl $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclWinReg.${OBJEXT}: tclWinReg.c
|
|
$(CC) -c $(CC_SWITCHES) $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tcl8WinReg.${OBJEXT}: tclWinReg.c
|
|
$(CC) -o $@ -c $(CC_SWITCHES) -DTCL_MAJOR_VERSION=8 $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclWinDde.${OBJEXT}: tclWinDde.c
|
|
$(CC) -c $(CC_SWITCHES) $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tcl8WinDde.${OBJEXT}: tclWinDde.c
|
|
$(CC) -o $@ -c $(CC_SWITCHES) -DTCL_MAJOR_VERSION=8 $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclAppInit.${OBJEXT}: tclAppInit.c
|
|
$(CC) -c $(CC_SWITCHES) $(EXTFLAGS) -DUNICODE -D_UNICODE @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclMainW.${OBJEXT}: tclMain.c
|
|
$(CC) -c $(CC_SWITCHES) -DBUILD_tcl -DUNICODE -D_UNICODE @DEPARG@ $(CC_OBJNAME)
|
|
|
|
# TIP #430, ZipFS Support
|
|
tclZipfs.${OBJEXT}: $(GENERIC_DIR)/tclZipfs.c
|
|
$(CC) -c $(CC_SWITCHES) -DBUILD_tcl \
|
|
$(ZLIB_INCLUDE) -I$(MINIZIP_DIR_NATIVE) @DEPARG@ $(CC_OBJNAME)
|
|
|
|
|
|
# TIP #59, embedding of configuration information into the binary library.
|
|
#
|
|
# Part of Tcl's configuration information are the paths where it was installed
|
|
# and where it will look for its libraries (which can be different). We derive
|
|
# this information from the variables which can be overridden by the user. As
|
|
# every path can be configured separately we do not remember one general
|
|
# prefix/exec_prefix but all the different paths individually.
|
|
|
|
tclPkgConfig.${OBJEXT}: tclPkgConfig.c
|
|
$(CC) -c $(CC_SWITCHES) \
|
|
-DCFG_INSTALL_LIBDIR="\"$(LIB_INSTALL_DIR_NATIVE)\"" \
|
|
-DCFG_INSTALL_BINDIR="\"$(BIN_INSTALL_DIR_NATIVE)\"" \
|
|
-DCFG_INSTALL_SCRDIR="\"$(SCRIPT_INSTALL_DIR_NATIVE)\"" \
|
|
-DCFG_INSTALL_INCDIR="\"$(INCLUDE_INSTALL_DIR_NATIVE)\"" \
|
|
-DCFG_INSTALL_DOCDIR="\"$(MAN_INSTALL_DIR_NATIVE)\"" \
|
|
\
|
|
-DCFG_RUNTIME_LIBDIR="\"$(libdir_native)\"" \
|
|
-DCFG_RUNTIME_BINDIR="\"$(bindir_native)\"" \
|
|
-DCFG_RUNTIME_SCRDIR="\"$(TCL_LIBRARY_NATIVE)\"" \
|
|
-DCFG_RUNTIME_INCDIR="\"$(includedir_native)\"" \
|
|
-DCFG_RUNTIME_DOCDIR="\"$(mandir_native)\"" \
|
|
-DCFG_RUNTIME_DLLFILE="\"$(TCL_DLL_FILE)\"" \
|
|
-DBUILD_tcl \
|
|
@DEPARG@ $(CC_OBJNAME)
|
|
|
|
# tclDate.h dependencies:
|
|
tclClock.${OBJEXT}: tclClock.c tclDate.h
|
|
tclClockFmt.${OBJEXT}: tclClockFmt.c tclDate.h
|
|
tclDate.${OBJEXT}: tclDate.c tclDate.h
|
|
|
|
tclEvent.${OBJEXT}: tclEvent.c tclUuid.h
|
|
|
|
tclTest.${OBJEXT}: tclTest.c tclUuid.h
|
|
|
|
$(TOP_DIR)/manifest.uuid:
|
|
printf "git-" >$(TOP_DIR)/manifest.uuid
|
|
(cd '$(TOP_DIR)'; git rev-parse HEAD >>$(TOP_DIR)/manifest.uuid || \
|
|
(printf "svn-r" >$(TOP_DIR)/manifest.uuid ; \
|
|
svn info --show-item last-changed-revision >>$(TOP_DIR)/manifest.uuid) || \
|
|
printf "unknown" >$(TOP_DIR)/manifest.uuid)
|
|
|
|
tclUuid.h: $(TOP_DIR)/manifest.uuid
|
|
echo "#define TCL_VERSION_UUID \\" >$@
|
|
cat $(TOP_DIR)/manifest.uuid >>$@
|
|
echo "" >>$@
|
|
|
|
# The following objects are part of the stub library and should not be built
|
|
# as DLL objects but none of the symbols should be exported
|
|
|
|
tclStubLib.${OBJEXT}: tclStubLib.c
|
|
$(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @CFLAGS_NOLTO@ @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclStubCall.${OBJEXT}: tclStubCall.c
|
|
$(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD \
|
|
-DCFG_RUNTIME_DLLFILE="\"$(TCL_DLL_FILE)\"" \
|
|
-DCFG_RUNTIME_BINDIR="\"$(bindir_native)\"" \
|
|
@DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclStubLibTbl.${OBJEXT}: tclStubLibTbl.c
|
|
$(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclTomMathStubLib.${OBJEXT}: tclTomMathStubLib.c
|
|
$(CC) -c $(CC_SWITCHES) @CFLAGS_NOLTO@ @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclOOStubLib.${OBJEXT}: tclOOStubLib.c
|
|
$(CC) -c $(CC_SWITCHES) @CFLAGS_NOLTO@ @DEPARG@ $(CC_OBJNAME)
|
|
|
|
tclWinPanic.${OBJEXT}: tclWinPanic.c
|
|
$(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @DEPARG@ $(CC_OBJNAME)
|
|
|
|
# Implicit rule for all object files that will end up in the Tcl library
|
|
|
|
%.${OBJEXT}: %.c
|
|
$(CC) -c $(CC_SWITCHES) -DBUILD_tcl @DEPARG@ $(CC_OBJNAME)
|
|
|
|
.rc.$(RES):
|
|
$(RC) @RC_OUT@ $@ @RC_TYPE@ @RC_DEFINES@ @RC_INCLUDE@ "$(GENERIC_DIR_NATIVE)" @RC_INCLUDE@ "$(WIN_DIR_NATIVE)" @DEPARG@
|
|
|
|
#--------------------------------------------------------------------------
|
|
# Minizip implementation
|
|
#--------------------------------------------------------------------------
|
|
adler32.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/adler32.c
|
|
|
|
compress.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/compress.c
|
|
|
|
crc32.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/crc32.c
|
|
|
|
deflate.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/deflate.c
|
|
|
|
ioapi.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -DMINIZIP_FOPEN_NO_64=1 -I$(ZLIB_DIR) -I$(ZLIB_DIR)/contrib/minizip -c \
|
|
$(ZLIB_DIR)/contrib/minizip/ioapi.c
|
|
|
|
iowin32.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -I$(ZLIB_DIR)/contrib/minizip -c $(ZLIB_DIR)/contrib/minizip/iowin32.c
|
|
|
|
infback.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/infback.c
|
|
|
|
inffast.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/inffast.c
|
|
|
|
inflate.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/inflate.c
|
|
|
|
inftrees.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/inftrees.c
|
|
|
|
trees.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/trees.c
|
|
|
|
uncompr.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/uncompr.c
|
|
|
|
zip.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -I$(ZLIB_DIR)/contrib/minizip -c $(ZLIB_DIR)/contrib/minizip/zip.c
|
|
|
|
zutil.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -I$(ZLIB_DIR) -c $(ZLIB_DIR)/zutil.c
|
|
|
|
minizip.$(HOST_OBJEXT):
|
|
$(HOST_CC) -o $@ -DMINIZIP_FOPEN_NO_64=1 -DHAVE_DIRENT_H=1 -I$(ZLIB_DIR) -I$(ZLIB_DIR)/contrib/minizip -c \
|
|
$(ZLIB_DIR)/contrib/minizip/minizip.c
|
|
|
|
minizip${HOST_EXEEXT}: $(MINIZIP_OBJS)
|
|
$(HOST_CC) -o $@ $(MINIZIP_OBJS)
|
|
|
|
# The following target generates the file generic/tclDate.c from the yacc
|
|
# grammar found in generic/tclGetDate.y. This is only run by hand as yacc is
|
|
# not available in all environments. The name of the .c file is different than
|
|
# the name of the .y file so that make doesn't try to automatically regenerate
|
|
# the .c file.
|
|
|
|
gendate:
|
|
bison --output-file=$(GENERIC_DIR)/tclDate.c \
|
|
--name-prefix=TclDate \
|
|
--no-lines \
|
|
$(GENERIC_DIR)/tclGetDate.y
|
|
|
|
INSTALL_BASE_TARGETS = install-binaries $(INSTALL_LIBRARIES) $(INSTALL_MSGS) $(INSTALL_TZDATA)
|
|
INSTALL_DOC_TARGETS = install-doc
|
|
INSTALL_PACKAGE_TARGETS = install-packages
|
|
INSTALL_DEV_TARGETS = install-headers
|
|
INSTALL_EXTRA_TARGETS =
|
|
INSTALL_TARGETS = $(INSTALL_BASE_TARGETS) $(INSTALL_DOC_TARGETS) $(INSTALL_DEV_TARGETS) \
|
|
$(INSTALL_PACKAGE_TARGETS) $(INSTALL_EXTRA_TARGETS)
|
|
|
|
install: $(INSTALL_TARGETS)
|
|
|
|
install-binaries: binaries
|
|
@for i in "$(LIB_INSTALL_DIR)" "$(BIN_INSTALL_DIR)"; \
|
|
do \
|
|
if [ ! -d "$$i" ] ; then \
|
|
echo "Making directory $$i"; \
|
|
$(MKDIR) "$$i"; \
|
|
chmod 755 "$$i"; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@for i in dde${DDEDOTVER} registry${REGDOTVER}; \
|
|
do \
|
|
if [ ! -d "$(LIB_INSTALL_DIR)/$$i" ] ; then \
|
|
echo "Making directory $(LIB_INSTALL_DIR)/$$i"; \
|
|
$(MKDIR) "$(LIB_INSTALL_DIR)/$$i"; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@for i in $(TCL_DLL_FILE) $(ZLIB_DLL_FILE) $(TOMMATH_DLL_FILE) $(TCLSH); \
|
|
do \
|
|
if [ -f $$i ]; then \
|
|
echo "Installing $$i to $(BIN_INSTALL_DIR)/"; \
|
|
$(COPY) $$i "$(BIN_INSTALL_DIR)"; \
|
|
fi; \
|
|
done
|
|
@for i in tclConfig.sh tclooConfig.sh $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE) @ZLIB_LIBS@ @TOMMATH_LIBS@; \
|
|
do \
|
|
if [ -f $$i ]; then \
|
|
echo "Installing $$i to $(LIB_INSTALL_DIR)/"; \
|
|
$(COPY) $$i "$(LIB_INSTALL_DIR)"; \
|
|
fi; \
|
|
done
|
|
@if [ -f $(DDE_DLL_FILE) ]; then \
|
|
echo Installing $(DDE_DLL_FILE); \
|
|
$(COPY) $(DDE_DLL_FILE) "$(LIB_INSTALL_DIR)/dde${DDEDOTVER}"; \
|
|
$(COPY) $(ROOT_DIR)/library/dde/pkgIndex.tcl \
|
|
"$(LIB_INSTALL_DIR)/dde${DDEDOTVER}"; \
|
|
fi
|
|
@if [ -f $(DDE_DLL_FILE8) ]; then \
|
|
echo Installing $(DDE_DLL_FILE8); \
|
|
$(COPY) $(DDE_DLL_FILE8) "$(LIB_INSTALL_DIR)/dde${DDEDOTVER}"; \
|
|
fi
|
|
@if [ -f $(DDE_LIB_FILE) ]; then \
|
|
echo Installing $(DDE_LIB_FILE); \
|
|
$(COPY) $(DDE_LIB_FILE) "$(LIB_INSTALL_DIR)/dde${DDEDOTVER}"; \
|
|
fi
|
|
@if [ -f $(REG_DLL_FILE) ]; then \
|
|
echo Installing $(REG_DLL_FILE); \
|
|
$(COPY) $(REG_DLL_FILE) "$(LIB_INSTALL_DIR)/registry${REGDOTVER}"; \
|
|
$(COPY) $(ROOT_DIR)/library/registry/pkgIndex.tcl \
|
|
"$(LIB_INSTALL_DIR)/registry${REGDOTVER}"; \
|
|
fi
|
|
@if [ -f $(REG_DLL_FILE8) ]; then \
|
|
echo Installing $(REG_DLL_FILE8); \
|
|
$(COPY) $(REG_DLL_FILE8) "$(LIB_INSTALL_DIR)/registry${REGDOTVER}"; \
|
|
fi
|
|
@if [ -f $(REG_LIB_FILE) ]; then \
|
|
echo Installing $(REG_LIB_FILE); \
|
|
$(COPY) $(REG_LIB_FILE) "$(LIB_INSTALL_DIR)/registry${REGDOTVER}"; \
|
|
fi
|
|
@echo "Installing pkg-config file to $(LIB_INSTALL_DIR)/pkgconfig/"
|
|
@$(INSTALL_DATA_DIR) "$(LIB_INSTALL_DIR)/pkgconfig"
|
|
@$(INSTALL_DATA) tcl.pc "$(LIB_INSTALL_DIR)/pkgconfig/tcl.pc"
|
|
|
|
install-libraries: libraries install-tzdata install-msgs
|
|
@for i in "$(prefix)/lib" "$(INCLUDE_INSTALL_DIR)" \
|
|
"$(SCRIPT_INSTALL_DIR)" "$(MODULE_INSTALL_DIR)"; \
|
|
do \
|
|
if [ ! -d "$$i" ] ; then \
|
|
echo "Making directory $$i"; \
|
|
$(MKDIR) "$$i"; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@for i in opt0.4 cookiejar0.2 encoding; \
|
|
do \
|
|
if [ ! -d "$(SCRIPT_INSTALL_DIR)/$$i" ] ; then \
|
|
echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
|
|
$(MKDIR) "$(SCRIPT_INSTALL_DIR)/$$i"; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@for i in 9.0 9.0/platform; \
|
|
do \
|
|
if [ ! -d "$(MODULE_INSTALL_DIR)/$$i" ] ; then \
|
|
echo "Making directory $(MODULE_INSTALL_DIR)/$$i"; \
|
|
$(MKDIR) "$(MODULE_INSTALL_DIR)/$$i"; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
|
|
@for i in $(ROOT_DIR)/library/*.tcl $(ROOT_DIR)/library/tclIndex; do \
|
|
$(COPY) "$$i" "$(SCRIPT_INSTALL_DIR)"; \
|
|
done;
|
|
@echo "Installing package cookiejar 0.2"
|
|
@for j in $(ROOT_DIR)/library/cookiejar/*.tcl \
|
|
$(ROOT_DIR)/library/cookiejar/*.gz; do \
|
|
$(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/cookiejar0.2"; \
|
|
done;
|
|
@echo "Installing package http 2.10.2 as a Tcl Module";
|
|
@$(COPY) $(ROOT_DIR)/library/http/http.tcl "$(MODULE_INSTALL_DIR)/9.0/http-2.10.2.tm";
|
|
@echo "Installing package opt 0.4.10";
|
|
@for j in $(ROOT_DIR)/library/opt/*.tcl; do \
|
|
$(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/opt0.4"; \
|
|
done;
|
|
@echo "Installing package msgcat 1.7.1 as a Tcl Module";
|
|
@$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl "$(MODULE_INSTALL_DIR)/9.0/msgcat-1.7.1.tm";
|
|
@echo "Installing package tcltest 2.5.11 as a Tcl Module";
|
|
@$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl "$(MODULE_INSTALL_DIR)/9.0/tcltest-2.5.11.tm";
|
|
@echo "Installing package platform 1.1.0 as a Tcl Module";
|
|
@$(COPY) $(ROOT_DIR)/library/platform/platform.tcl "$(MODULE_INSTALL_DIR)/9.0/platform-1.1.0.tm";
|
|
@echo "Installing package platform::shell 1.1.4 as a Tcl Module";
|
|
@$(COPY) $(ROOT_DIR)/library/platform/shell.tcl "$(MODULE_INSTALL_DIR)/9.0/platform/shell-1.1.4.tm";
|
|
@echo "Installing encodings";
|
|
@for i in $(ROOT_DIR)/library/encoding/*.enc ; do \
|
|
$(COPY) "$$i" "$(SCRIPT_INSTALL_DIR)/encoding"; \
|
|
done;
|
|
|
|
install-tzdata:
|
|
@echo "Installing time zone data"
|
|
@$(TCL_EXE) "$(ROOT_DIR)/tools/installData.tcl" \
|
|
"$(ROOT_DIR)/library/tzdata" "$(SCRIPT_INSTALL_DIR_NATIVE)/tzdata"
|
|
|
|
install-msgs:
|
|
@echo "Installing message catalogs"
|
|
$(TCL_EXE) "$(ROOT_DIR)/tools/installData.tcl" \
|
|
"$(ROOT_DIR)/library/msgs" "$(SCRIPT_INSTALL_DIR_NATIVE)/msgs"
|
|
|
|
install-doc: doc
|
|
@for i in "$(MAN_INSTALL_DIR)" "$(MAN1_INSTALL_DIR)" "$(MAN3_INSTALL_DIR)" "$(MANN_INSTALL_DIR)" ; \
|
|
do \
|
|
if [ ! -d "$$i" ] ; then \
|
|
echo "Making directory $$i"; \
|
|
$(INSTALL_DATA_DIR) "$$i"; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing and cross-linking top-level (.1) docs to $(MAN1_INSTALL_DIR)/";
|
|
@for i in $(TOP_DIR)/doc/*.1; do \
|
|
$(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN1_INSTALL_DIR)"; \
|
|
done
|
|
@echo "Installing and cross-linking C API (.3) docs to $(MAN3_INSTALL_DIR)/";
|
|
@for i in $(TOP_DIR)/doc/*.3; do \
|
|
$(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN3_INSTALL_DIR)"; \
|
|
done
|
|
@echo "Installing and cross-linking command (.n) docs to $(MANN_INSTALL_DIR)/";
|
|
@for i in $(TOP_DIR)/doc/*.n; do \
|
|
$(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MANN_INSTALL_DIR)"; \
|
|
done
|
|
|
|
install-headers:
|
|
@for i in "$(INCLUDE_INSTALL_DIR)"; \
|
|
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)/tcl.h" "$(GENERIC_DIR)/tclDecls.h" \
|
|
"$(GENERIC_DIR)/tclOO.h" "$(GENERIC_DIR)/tclOODecls.h" \
|
|
"$(GENERIC_DIR)/tclPlatDecls.h" \
|
|
"$(GENERIC_DIR)/tclTomMath.h" \
|
|
"$(GENERIC_DIR)/tclTomMathDecls.h"; \
|
|
do \
|
|
$(COPY) "$$i" "$(INCLUDE_INSTALL_DIR)"; \
|
|
done;
|
|
|
|
# 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; \
|
|
else true; \
|
|
fi; \
|
|
done;
|
|
@echo "Installing private header files";
|
|
@for i in "$(GENERIC_DIR)/tclInt.h" "$(GENERIC_DIR)/tclIntDecls.h" \
|
|
"$(GENERIC_DIR)/tclIntPlatDecls.h" "$(GENERIC_DIR)/tclPort.h" \
|
|
"$(GENERIC_DIR)/tclOOInt.h" "$(GENERIC_DIR)/tclOOIntDecls.h" \
|
|
"$(WIN_DIR)/tclWinPort.h" ; \
|
|
do \
|
|
$(COPY) "$$i" "$(PRIVATE_INCLUDE_INSTALL_DIR)"; \
|
|
done;
|
|
|
|
# Specifying TESTFLAGS on the command line is the standard way to pass args to
|
|
# tcltest, i.e.:
|
|
# % make test TESTFLAGS="-verbose bps -file fileName.test"
|
|
|
|
test: test-tcl test-packages
|
|
|
|
test-tcl: tcltest
|
|
TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \
|
|
$(WINE) ./$(TCLSH) "$(ROOT_DIR_NATIVE)/tests/all.tcl" $(TESTFLAGS) \
|
|
-load "$(TEST_LOAD_FACILITIES)"
|
|
|
|
# Useful target to launch a built tclsh with the proper path,...
|
|
runtest: tcltest
|
|
@TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \
|
|
$(WINE) ./$(TCLSH) $(SCRIPT) $(TESTFLAGS) -load "$(TEST_LOAD_FACILITIES)"
|
|
|
|
# This target can be used to run tclsh from the build directory via
|
|
# `make shell SCRIPT=foo.tcl`
|
|
shell: binaries
|
|
@TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \
|
|
$(WINE) ./$(TCLSH) $(SCRIPT)
|
|
|
|
# This target can be used to run tclsh inside either gdb or insight
|
|
gdb: binaries
|
|
@echo "set env TCL_LIBRARY=$(LIBRARY_DIR)" > gdb.run
|
|
$(GDB) ./$(TCLSH) --command=gdb.run
|
|
rm gdb.run
|
|
|
|
shquotequote = $(subst ',\",$(subst ",\",$(1)))
|
|
gdb-test: tcltest
|
|
@printf '%s ' 'set env TCL_LIBRARY=$(LIBRARY_DIR)' > gdb.run
|
|
@printf '\n' >>gdb.run
|
|
@printf '%s ' set args $(ROOT_DIR_NATIVE)/tests/all.tcl \
|
|
$(call shquotequote,$(TESTFLAGS)) -singleproc 1 >> gdb.run
|
|
$(GDB) ${TEST_EXE_FILE} --command=gdb.run
|
|
rm gdb.run
|
|
|
|
depend:
|
|
|
|
Makefile: $(SRC_DIR)/Makefile.in
|
|
./config.status
|
|
|
|
cleanhelp:
|
|
$(RM) *.hlp *.cnt *.GID
|
|
|
|
clean: cleanhelp clean-packages
|
|
$(RM) *.lib *.a *.exp *.dll *.$(RES) *.${OBJEXT} *~ \#* TAGS a.out
|
|
$(RM) $(TCLSH) $(CAT32) $(TEST_EXE_FILE) $(TEST_DLL_FILE) tcltest.cmd tcltest.sh
|
|
# remaining binaries (inclusive manifests) by version/branch switch, but retain tclsh.exe.manifest (that created on configure phase)
|
|
find . -maxdepth 1 -type f -regex '\./tcl\(sh[^.]+\|test\|[^.]+.dll\)\.[^.]*\(\.manifest\)?' \
|
|
-a -not -name 'tclsh.exe.manifest' -exec rm {} \;
|
|
$(RM) *.pch *.ilk *.pdb *.zip
|
|
$(RM) minizip${HOST_EXEEXT} *.${HOST_OBJEXT}
|
|
$(RMDIR) *.vfs
|
|
|
|
distclean: distclean-packages clean
|
|
$(RM) Makefile config.status config.cache config.log tclConfig.sh \
|
|
config.status.lineno tclsh.exe.manifest tclUuid.h
|
|
|
|
#
|
|
# Bundled package targets
|
|
#
|
|
|
|
PKG_DIR = ./pkgs
|
|
|
|
packages:
|
|
@builddir="`$(CYGPATH) "$$(pwd -P)"`"; \
|
|
for i in '$(PKGS_DIR)'/*/; do \
|
|
if [ -x $$i/configure ] ; then \
|
|
pkg=`basename $$i`; \
|
|
mkdir -p '$(PKG_DIR)'/$$pkg; \
|
|
if [ ! -f '$(PKG_DIR)'/$$pkg/Makefile ]; then \
|
|
( cd '$(PKG_DIR)'/$$pkg; \
|
|
echo "Configuring package '$$i' wd = `$(CYGPATH) $$(pwd -P)`"; \
|
|
$$i/configure --with-tcl=$$builddir --with-tclinclude=$(GENERIC_DIR_NATIVE) $(PKG_CFG_ARGS) --enable-shared; ) \
|
|
fi ; \
|
|
echo "Building package '$$pkg'"; \
|
|
( cd '$(PKG_DIR)'/$$pkg; $(MAKE); ) \
|
|
fi; \
|
|
done; \
|
|
cd "$$builddir"
|
|
|
|
install-packages: packages
|
|
@builddir=`pwd -P`; \
|
|
for i in '$(PKGS_DIR)'/*; do \
|
|
if [ -d $$i ]; then \
|
|
pkg=`basename $$i`; \
|
|
if [ -f '$(PKG_DIR)'/$$pkg/Makefile ]; then \
|
|
echo "Installing package '$$pkg'"; \
|
|
( cd '$(PKG_DIR)'/$$pkg; $(MAKE) install "DESTDIR=$(INSTALL_ROOT)"; ) \
|
|
fi; \
|
|
fi; \
|
|
done; \
|
|
cd "$$builddir"
|
|
|
|
test-packages: tcltest packages
|
|
@builddir=`pwd -P`; \
|
|
for i in $(PKGS_DIR)/*; do \
|
|
if [ -d $$i ]; then \
|
|
pkg=`basename $$i`; \
|
|
if [ -f '$(PKG_DIR)'/$$pkg/Makefile ]; then \
|
|
echo "Testing package '$$pkg'"; \
|
|
( cd '$(PKG_DIR)'/$$pkg; $(MAKE) "LD_LIBRARY_PATH=$$builddir:${LD_LIBRARY_PATH}" "TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" "TCLLIBPATH=$$builddir/pkgs" test "TCLSH_PROG=$$builddir/${TCLSH}"; ) \
|
|
fi; \
|
|
fi; \
|
|
done; \
|
|
cd "$$builddir"
|
|
|
|
clean-packages:
|
|
@builddir=`pwd -P`; \
|
|
for i in '$(PKGS_DIR)'/*; do \
|
|
if [ -d $$i ]; then \
|
|
pkg=`basename $$i`; \
|
|
if [ -f '$(PKG_DIR)'/$$pkg/Makefile ]; then \
|
|
( cd '$(PKG_DIR)'/$$pkg; $(MAKE) clean; ) \
|
|
fi; \
|
|
fi; \
|
|
done; \
|
|
cd "$$builddir"
|
|
|
|
distclean-packages:
|
|
@builddir=`pwd -P`; \
|
|
for i in $(PKGS_DIR)/*; do \
|
|
if [ -d $$i ]; then \
|
|
pkg=`basename $$i`; \
|
|
if [ -f '$(PKG_DIR)'/$$pkg/Makefile ]; then \
|
|
( cd '$(PKG_DIR)'/$$pkg; $(MAKE) distclean; ) \
|
|
fi; \
|
|
cd $$builddir; \
|
|
rm -rf '$(PKG_DIR)'/$$pkg; \
|
|
fi; \
|
|
done; \
|
|
rm -rf '$(PKG_DIR)'
|
|
|
|
#
|
|
# Regenerate the stubs files.
|
|
#
|
|
|
|
$(GENERIC_DIR)/tclStubInit.c: $(GENERIC_DIR)/tcl.decls \
|
|
$(GENERIC_DIR)/tclInt.decls
|
|
@echo "Warning: tclStubInit.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) "$(TOOL_DIR_NATIVE)/genStubs.tcl" \
|
|
"$(GENERIC_DIR_NATIVE)" \
|
|
"$(GENERIC_DIR_NATIVE)/tcl.decls" \
|
|
"$(GENERIC_DIR_NATIVE)/tclInt.decls" \
|
|
"$(GENERIC_DIR_NATIVE)/tclTomMath.decls"
|
|
$(TCL_EXE) "$(TOOL_DIR_NATIVE)/genStubs.tcl" \
|
|
"$(GENERIC_DIR_NATIVE)" \
|
|
"$(GENERIC_DIR_NATIVE)/tclOO.decls"
|
|
|
|
#
|
|
# This target creates the HTML folder for Tcl & Tk and places it in
|
|
# DISTDIR/html. It uses the tcltk-man2html.tcl tool from the Tcl group's tool
|
|
# workspace. It depends on the Tcl & Tk being in directories called tcl9.* &
|
|
# tk8.* up two directories from the TOOL_DIR.
|
|
#
|
|
|
|
TOOL_DIR=$(ROOT_DIR)/tools
|
|
HTML_INSTALL_DIR=$(ROOT_DIR)/html
|
|
html:
|
|
$(MAKE) shell SCRIPT="$(TOOL_DIR)/tcltk-man2html.tcl --htmldir=$(HTML_INSTALL_DIR) --srcdir=$(ROOT_DIR)/.. $(BUILD_HTML_FLAGS)"
|
|
|
|
html-tcl: $(TCLSH)
|
|
$(MAKE) shell SCRIPT="$(TOOL_DIR)/tcltk-man2html.tcl --htmldir=$(HTML_INSTALL_DIR) --srcdir=$(ROOT_DIR)/.. $(BUILD_HTML_FLAGS) --tcl"
|
|
|
|
html-tk: $(TCLSH)
|
|
$(MAKE) shell SCRIPT="$(TOOL_DIR)/tcltk-man2html.tcl --htmldir=$(HTML_INSTALL_DIR) --srcdir=$(ROOT_DIR)/.. $(BUILD_HTML_FLAGS) --tk"
|
|
|
|
#
|
|
# 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 tcltest binaries libraries doc gendate gentommath_h install
|
|
.PHONY: install-binaries install-libraries install-tzdata install-msgs
|
|
.PHONY: install-doc install-private-headers test test-tcl runtest shell
|
|
.PHONY: gdb depend cleanhelp clean distclean packages install-packages
|
|
.PHONY: test-packages clean-packages distclean-packages genstubs html
|
|
.PHONY: html-tcl html-tk genscript
|
|
.PHONY: tclzipfile
|
|
|
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|