sl@0: # sl@0: # This file is a Makefile for Tcl. If it has the name "Makefile.in" sl@0: # then it is a template for a Makefile; to generate the actual Makefile, sl@0: # run "./configure", which is a configuration script generated by the sl@0: # "autoconf" program (constructs like "@foo@" will get replaced in the sl@0: # actual Makefile. sl@0: # sl@0: # RCS: @(#) $Id: Makefile.in,v 1.68.2.7 2007/01/30 23:21:12 hobbs Exp $ sl@0: sl@0: VERSION = @TCL_VERSION@ sl@0: sl@0: #---------------------------------------------------------------- sl@0: # Things you can change to personalize the Makefile for your own sl@0: # site (you can make these changes in either Makefile.in or sl@0: # Makefile, but changes to Makefile will get lost if you re-run sl@0: # the configuration script). sl@0: #---------------------------------------------------------------- sl@0: sl@0: # Default top-level directories in which to install architecture- sl@0: # specific files (exec_prefix) and machine-independent files such sl@0: # as scripts (prefix). The values specified here may be overridden sl@0: # at configure-time with the --exec-prefix and --prefix options sl@0: # to the "configure" script. sl@0: sl@0: prefix = @prefix@ sl@0: exec_prefix = @exec_prefix@ sl@0: bindir = @bindir@ sl@0: libdir = @libdir@ sl@0: includedir = @includedir@ sl@0: mandir = @mandir@ sl@0: sl@0: # The following definition can be set to non-null for special systems sl@0: # like AFS with replication. It allows the pathnames used for installation sl@0: # to be different than those used for actually reference files at sl@0: # run-time. INSTALL_ROOT is prepended to $prefix and $exec_prefix sl@0: # when installing files. sl@0: INSTALL_ROOT = sl@0: sl@0: # Directory from which applications will reference the library of Tcl sl@0: # scripts (note: you can set the TCL_LIBRARY environment variable at sl@0: # run-time to override this value): sl@0: TCL_LIBRARY = $(prefix)/lib/tcl$(VERSION) sl@0: sl@0: # Path to use at runtime to refer to LIB_INSTALL_DIR: sl@0: LIB_RUNTIME_DIR = $(libdir) sl@0: sl@0: # Directory in which to install the program tclsh: sl@0: BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir) sl@0: sl@0: # Directory in which to install the .a or .so binary for the Tcl library: sl@0: LIB_INSTALL_DIR = $(INSTALL_ROOT)$(libdir) sl@0: sl@0: # Path name to use when installing library scripts. sl@0: SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY) sl@0: sl@0: # Directory in which to install the include file tcl.h: sl@0: INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir) sl@0: sl@0: # Directory in which to (optionally) install the private tcl headers: sl@0: PRIVATE_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir) sl@0: sl@0: # Top-level directory in which to install manual entries: sl@0: MAN_INSTALL_DIR = $(INSTALL_ROOT)$(mandir) sl@0: sl@0: # Directory in which to install manual entry for tclsh: sl@0: MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1 sl@0: sl@0: # Directory in which to install manual entries for Tcl's C library sl@0: # procedures: sl@0: MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3 sl@0: sl@0: # Directory in which to install manual entries for the built-in sl@0: # Tcl commands: sl@0: MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann sl@0: sl@0: # Libraries built with optimization switches have this additional extension sl@0: TCL_DBGX = @TCL_DBGX@ sl@0: sl@0: # warning flags sl@0: CFLAGS_WARNING = @CFLAGS_WARNING@ sl@0: sl@0: # The default switches for optimization or debugging sl@0: CFLAGS_DEBUG = @CFLAGS_DEBUG@ sl@0: CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@ sl@0: sl@0: # To change the compiler switches, for example to change from optimization to sl@0: # debugging symbols, change the following line: sl@0: #CFLAGS = $(CFLAGS_DEBUG) sl@0: #CFLAGS = $(CFLAGS_OPTIMIZE) sl@0: #CFLAGS = $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE) sl@0: CFLAGS = @CFLAGS@ @CFLAGS_DEFAULT@ sl@0: sl@0: # To enable compilation debugging reverse the comment characters on sl@0: # one of the following lines. sl@0: COMPILE_DEBUG_FLAGS = sl@0: #COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG sl@0: #COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS sl@0: sl@0: # Special compiler flags to use when building man2tcl on Windows. sl@0: MAN2TCLFLAGS = @MAN2TCLFLAGS@ sl@0: sl@0: SRC_DIR = @srcdir@ sl@0: ROOT_DIR = @srcdir@/.. sl@0: GENERIC_DIR = @srcdir@/../generic sl@0: WIN_DIR = @srcdir@ sl@0: COMPAT_DIR = @srcdir@/../compat sl@0: sl@0: # Converts a POSIX path to a Windows native path. sl@0: CYGPATH = @CYGPATH@ sl@0: sl@0: GENERIC_DIR_NATIVE = $(shell $(CYGPATH) '$(GENERIC_DIR)' | sed 's!\\!/!g') sl@0: WIN_DIR_NATIVE = $(shell $(CYGPATH) '$(WIN_DIR)' | sed 's!\\!/!g') sl@0: ROOT_DIR_NATIVE = $(shell $(CYGPATH) '$(ROOT_DIR)' | sed 's!\\!/!g') sl@0: sl@0: LIBRARY_DIR = $(ROOT_DIR_NATIVE)/library sl@0: sl@0: DLLSUFFIX = @DLLSUFFIX@ sl@0: LIBSUFFIX = @LIBSUFFIX@ sl@0: EXESUFFIX = @EXESUFFIX@ sl@0: sl@0: TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@ sl@0: TCL_DLL_FILE = @TCL_DLL_FILE@ sl@0: TCL_LIB_FILE = @TCL_LIB_FILE@ sl@0: DDE_DLL_FILE = tcldde$(DDEVER)${DLLSUFFIX} sl@0: DDE_LIB_FILE = tcldde$(DDEVER)${LIBSUFFIX} sl@0: REG_DLL_FILE = tclreg$(REGVER)${DLLSUFFIX} sl@0: REG_LIB_FILE = tclreg$(REGVER)${LIBSUFFIX} sl@0: PIPE_DLL_FILE = tclpip$(VER)${DLLSUFFIX} sl@0: sl@0: SHARED_LIBRARIES = $(TCL_DLL_FILE) $(TCL_STUB_LIB_FILE) \ sl@0: $(DDE_DLL_FILE) $(REG_DLL_FILE) $(PIPE_DLL_FILE) sl@0: STATIC_LIBRARIES = $(TCL_LIB_FILE) $(REG_LIB_FILE) $(DDE_LIB_FILE) sl@0: sl@0: # TCL_EXE is the name of a tclsh executable that is available *BEFORE* sl@0: # running make for the first time. Certain build targets (make genstubs) sl@0: # need it to be available on the PATH. This executable should *NOT* be sl@0: # required just to do a normal build although it can be required to run sl@0: # make dist. sl@0: TCL_EXE = tclsh sl@0: sl@0: TCLSH = tclsh$(VER)${EXESUFFIX} sl@0: TCLTEST = tcltest${EXEEXT} sl@0: CAT32 = cat32$(EXEEXT) sl@0: MAN2TCL = man2tcl$(EXEEXT) sl@0: sl@0: @SET_MAKE@ sl@0: sl@0: # Setting the VPATH variable to a list of paths will cause the sl@0: # makefile to look into these paths when resolving .c to .obj sl@0: # dependencies. sl@0: sl@0: VPATH = $(GENERIC_DIR):$(WIN_DIR):$(COMPAT_DIR) sl@0: sl@0: AR = @AR@ sl@0: RANLIB = @RANLIB@ sl@0: CC = @CC@ sl@0: RC = @RC@ sl@0: RES = @RES@ sl@0: AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@ sl@0: CPPFLAGS = @CPPFLAGS@ sl@0: LDFLAGS_DEBUG = @LDFLAGS_DEBUG@ sl@0: LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@ sl@0: LDFLAGS = @LDFLAGS@ @LDFLAGS_DEFAULT@ sl@0: LDFLAGS_CONSOLE = @LDFLAGS_CONSOLE@ sl@0: LDFLAGS_WINDOW = @LDFLAGS_WINDOW@ sl@0: EXEEXT = @EXEEXT@ sl@0: OBJEXT = @OBJEXT@ sl@0: STLIB_LD = @STLIB_LD@ sl@0: SHLIB_LD = @SHLIB_LD@ sl@0: SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ $(LIBS) sl@0: SHLIB_CFLAGS = @SHLIB_CFLAGS@ sl@0: SHLIB_SUFFIX = @SHLIB_SUFFIX@ sl@0: VER = @TCL_MAJOR_VERSION@@TCL_MINOR_VERSION@ sl@0: DOTVER = @TCL_MAJOR_VERSION@.@TCL_MINOR_VERSION@ sl@0: DDEVER = @TCL_DDE_MAJOR_VERSION@@TCL_DDE_MINOR_VERSION@ sl@0: DDEDOTVER = @TCL_DDE_MAJOR_VERSION@.@TCL_DDE_MINOR_VERSION@ sl@0: REGVER = @TCL_REG_MAJOR_VERSION@@TCL_REG_MINOR_VERSION@ sl@0: REGDOTVER = @TCL_REG_MAJOR_VERSION@.@TCL_REG_MINOR_VERSION@ sl@0: LIBS = @LIBS@ sl@0: sl@0: RMDIR = rm -rf sl@0: MKDIR = mkdir -p sl@0: SHELL = @SHELL@ sl@0: RM = rm -f sl@0: COPY = cp sl@0: sl@0: CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${TCL_SHLIB_CFLAGS} \ sl@0: -I"${GENERIC_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" ${AC_FLAGS} \ sl@0: ${COMPILE_DEBUG_FLAGS} sl@0: sl@0: CC_OBJNAME = @CC_OBJNAME@ sl@0: CC_EXENAME = @CC_EXENAME@ sl@0: sl@0: STUB_CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \ sl@0: -I"${GENERIC_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" ${AC_FLAGS} \ sl@0: ${COMPILE_DEBUG_FLAGS} sl@0: sl@0: TCLTEST_OBJS = \ sl@0: tclTest.$(OBJEXT) \ sl@0: tclTestObj.$(OBJEXT) \ sl@0: tclTestProcBodyObj.$(OBJEXT) \ sl@0: tclThreadTest.$(OBJEXT) \ sl@0: tclWinTest.$(OBJEXT) \ sl@0: testMain.$(OBJEXT) sl@0: sl@0: GENERIC_OBJS = \ sl@0: regcomp.$(OBJEXT) \ sl@0: regexec.$(OBJEXT) \ sl@0: regfree.$(OBJEXT) \ sl@0: regerror.$(OBJEXT) \ sl@0: tclAlloc.$(OBJEXT) \ sl@0: tclAsync.$(OBJEXT) \ sl@0: tclBasic.$(OBJEXT) \ sl@0: tclBinary.$(OBJEXT) \ sl@0: tclCkalloc.$(OBJEXT) \ sl@0: tclClock.$(OBJEXT) \ sl@0: tclCmdAH.$(OBJEXT) \ sl@0: tclCmdIL.$(OBJEXT) \ sl@0: tclCmdMZ.$(OBJEXT) \ sl@0: tclCompCmds.$(OBJEXT) \ sl@0: tclCompExpr.$(OBJEXT) \ sl@0: tclCompile.$(OBJEXT) \ sl@0: tclDate.$(OBJEXT) \ sl@0: tclEncoding.$(OBJEXT) \ sl@0: tclEnv.$(OBJEXT) \ sl@0: tclEvent.$(OBJEXT) \ sl@0: tclExecute.$(OBJEXT) \ sl@0: tclFCmd.$(OBJEXT) \ sl@0: tclFileName.$(OBJEXT) \ sl@0: tclGet.$(OBJEXT) \ sl@0: tclHash.$(OBJEXT) \ sl@0: tclHistory.$(OBJEXT) \ sl@0: tclIndexObj.$(OBJEXT) \ sl@0: tclInterp.$(OBJEXT) \ sl@0: tclIO.$(OBJEXT) \ sl@0: tclIOCmd.$(OBJEXT) \ sl@0: tclIOGT.$(OBJEXT) \ sl@0: tclIOSock.$(OBJEXT) \ sl@0: tclIOUtil.$(OBJEXT) \ sl@0: tclLink.$(OBJEXT) \ sl@0: tclLiteral.$(OBJEXT) \ sl@0: tclListObj.$(OBJEXT) \ sl@0: tclLoad.$(OBJEXT) \ sl@0: tclMain.$(OBJEXT) \ sl@0: tclNamesp.$(OBJEXT) \ sl@0: tclNotify.$(OBJEXT) \ sl@0: tclObj.$(OBJEXT) \ sl@0: tclPanic.$(OBJEXT) \ sl@0: tclParse.$(OBJEXT) \ sl@0: tclParseExpr.$(OBJEXT) \ sl@0: tclPipe.$(OBJEXT) \ sl@0: tclPkg.$(OBJEXT) \ sl@0: tclPosixStr.$(OBJEXT) \ sl@0: tclPreserve.$(OBJEXT) \ sl@0: tclProc.$(OBJEXT) \ sl@0: tclRegexp.$(OBJEXT) \ sl@0: tclResolve.$(OBJEXT) \ sl@0: tclResult.$(OBJEXT) \ sl@0: tclScan.$(OBJEXT) \ sl@0: tclStringObj.$(OBJEXT) \ sl@0: tclStubInit.$(OBJEXT) \ sl@0: tclStubLib.$(OBJEXT) \ sl@0: tclThread.$(OBJEXT) \ sl@0: tclThreadAlloc.$(OBJEXT) \ sl@0: tclThreadJoin.$(OBJEXT) \ sl@0: tclTimer.$(OBJEXT) \ sl@0: tclUtf.$(OBJEXT) \ sl@0: tclUtil.$(OBJEXT) \ sl@0: tclVar.$(OBJEXT) sl@0: sl@0: WIN_OBJS = \ sl@0: tclWin32Dll.$(OBJEXT) \ sl@0: tclWinChan.$(OBJEXT) \ sl@0: tclWinConsole.$(OBJEXT) \ sl@0: tclWinSerial.$(OBJEXT) \ sl@0: tclWinError.$(OBJEXT) \ sl@0: tclWinFCmd.$(OBJEXT) \ sl@0: tclWinFile.$(OBJEXT) \ sl@0: tclWinInit.$(OBJEXT) \ sl@0: tclWinLoad.$(OBJEXT) \ sl@0: tclWinMtherr.$(OBJEXT) \ sl@0: tclWinNotify.$(OBJEXT) \ sl@0: tclWinPipe.$(OBJEXT) \ sl@0: tclWinSock.$(OBJEXT) \ sl@0: tclWinThrd.$(OBJEXT) \ sl@0: tclWinTime.$(OBJEXT) sl@0: sl@0: COMPAT_OBJS = \ sl@0: strftime.$(OBJEXT) strtoll.$(OBJEXT) strtoull.$(OBJEXT) sl@0: sl@0: PIPE_OBJS = stub16.$(OBJEXT) sl@0: sl@0: DDE_OBJS = tclWinDde.$(OBJEXT) sl@0: sl@0: REG_OBJS = tclWinReg.$(OBJEXT) sl@0: sl@0: STUB_OBJS = tclStubLib.$(OBJEXT) sl@0: sl@0: TCLSH_OBJS = tclAppInit.$(OBJEXT) sl@0: sl@0: TCL_OBJS = ${GENERIC_OBJS} ${WIN_OBJS} ${COMPAT_OBJS} sl@0: sl@0: TCL_DOCS = "$(ROOT_DIR_NATIVE)"/doc/*.[13n] sl@0: sl@0: all: binaries libraries doc sl@0: sl@0: tcltest: $(TCLTEST) sl@0: sl@0: binaries: @LIBRARIES@ $(TCLSH) sl@0: sl@0: libraries: sl@0: sl@0: doc: sl@0: sl@0: winhelp: $(ROOT_DIR)/tools/man2help.tcl $(MAN2TCL) sl@0: TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \ sl@0: ./$(TCLSH) "$(ROOT_DIR_NATIVE)"/tools/man2help.tcl tcl "$(VER)" $(TCL_DOCS) sl@0: hcw /c /e tcl.hpj sl@0: sl@0: $(MAN2TCL): $(ROOT_DIR)/tools/man2tcl.c sl@0: $(CC) $(CFLAGS_OPTIMIZE) $(MAN2TCLFLAGS) -o $(MAN2TCL) "$(ROOT_DIR_NATIVE)"/tools/man2tcl.c sl@0: sl@0: $(TCLSH): $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE) $(TCLSH_OBJS) tclsh.$(RES) sl@0: $(CC) $(CFLAGS) $(TCLSH_OBJS) $(TCL_LIB_FILE) $(LIBS) \ sl@0: tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE) sl@0: sl@0: $(TCLTEST): $(TCL_LIB_FILE) $(TCLTEST_OBJS) $(CAT32) tclsh.$(RES) sl@0: $(CC) $(CFLAGS) $(TCLTEST_OBJS) $(TCL_LIB_FILE) $(LIBS) \ sl@0: tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE) sl@0: sl@0: cat32.$(OBJEXT): cat.c sl@0: $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: $(CAT32): cat32.$(OBJEXT) sl@0: $(CC) $(CFLAGS) cat32.$(OBJEXT) $(CC_EXENAME) $(LIBS) $(LDFLAGS_CONSOLE) sl@0: sl@0: # The following targets are configured by autoconf to generate either sl@0: # a shared library or static library sl@0: sl@0: ${TCL_STUB_LIB_FILE}: ${STUB_OBJS} sl@0: @$(RM) ${TCL_STUB_LIB_FILE} sl@0: @MAKE_LIB@ ${STUB_OBJS} sl@0: @POST_MAKE_LIB@ sl@0: sl@0: ${TCL_DLL_FILE}: ${TCL_OBJS} tcl.$(RES) sl@0: @$(RM) ${TCL_DLL_FILE} sl@0: @MAKE_DLL@ ${TCL_OBJS} tcl.$(RES) $(SHLIB_LD_LIBS) sl@0: sl@0: ${TCL_LIB_FILE}: ${TCL_OBJS} sl@0: @$(RM) ${TCL_LIB_FILE} sl@0: @MAKE_LIB@ ${TCL_OBJS} sl@0: @POST_MAKE_LIB@ sl@0: sl@0: ${DDE_DLL_FILE}: ${DDE_OBJS} ${TCL_STUB_LIB_FILE} sl@0: @$(RM) ${DDE_DLL_FILE} sl@0: @MAKE_DLL@ ${DDE_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS) sl@0: sl@0: ${DDE_LIB_FILE}: ${DDE_OBJS} ${TCL_LIB_FILE} sl@0: @$(RM) ${DDE_LIB_FILE} sl@0: @MAKE_LIB@ ${DDE_OBJS} ${TCL_LIB_FILE} sl@0: sl@0: ${REG_DLL_FILE}: ${REG_OBJS} ${TCL_STUB_LIB_FILE} sl@0: @$(RM) ${REG_DLL_FILE} sl@0: @MAKE_DLL@ ${REG_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS) sl@0: sl@0: ${REG_LIB_FILE}: ${REG_OBJS} ${TCL_LIB_FILE} sl@0: @$(RM) ${REG_LIB_FILE} sl@0: @MAKE_LIB@ ${REG_OBJS} ${TCL_LIB_FILE} sl@0: sl@0: # PIPE_DLL_FILE is actually an executable, don't build it sl@0: # like a DLL. sl@0: sl@0: ${PIPE_DLL_FILE}: ${PIPE_OBJS} sl@0: @$(RM) ${PIPE_DLL_FILE} sl@0: @MAKE_EXE@ $(CFLAGS) ${PIPE_OBJS} $(LIBS) $(LDFLAGS_CONSOLE) sl@0: sl@0: # Add the object extension to the implicit rules. By default .obj is not sl@0: # automatically added. sl@0: sl@0: .SUFFIXES: .${OBJEXT} sl@0: .SUFFIXES: .$(RES) sl@0: .SUFFIXES: .rc sl@0: sl@0: # Special case object targets sl@0: sl@0: tclWinInit.${OBJEXT}: tclWinInit.c sl@0: $(CC) -c $(CC_SWITCHES) -DBUILD_tcl $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: tclWinPipe.${OBJEXT}: tclWinPipe.c sl@0: $(CC) -c $(CC_SWITCHES) -DBUILD_tcl -DTCL_PIPE_DLL=\"$(PIPE_DLL_FILE)\" \ sl@0: $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: testMain.${OBJEXT}: tclAppInit.c sl@0: $(CC) -c $(CC_SWITCHES) -DTCL_TEST @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: tclTest.${OBJEXT}: tclTest.c sl@0: $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: tclTestObj.${OBJEXT}: tclTestObj.c sl@0: $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: tclWinTest.${OBJEXT}: tclWinTest.c sl@0: $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: tclAppInit.${OBJEXT} : tclAppInit.c sl@0: $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: # The following objects should be built using the stub interfaces sl@0: sl@0: tclWinReg.${OBJEXT} : tclWinReg.c sl@0: $(CC) -c $(CC_SWITCHES) -DUSE_TCL_STUBS @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: tclWinDde.${OBJEXT} : tclWinDde.c sl@0: $(CC) -c $(CC_SWITCHES) -DUSE_TCL_STUBS @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: # The following objects are part of the stub library and should not sl@0: # be built as DLL objects but none of the symbols should be exported sl@0: sl@0: tclStubLib.${OBJEXT}: tclStubLib.c sl@0: $(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: sl@0: # Implicit rule for all object files that will end up in the Tcl library sl@0: sl@0: .c.${OBJEXT}: sl@0: $(CC) -c $(CC_SWITCHES) -DBUILD_tcl @DEPARG@ $(CC_OBJNAME) sl@0: sl@0: .rc.$(RES): sl@0: $(RC) @RC_OUT@ $@ @RC_TYPE@ @RC_DEFINES@ @RC_INCLUDE@ "$(GENERIC_DIR_NATIVE)" @RC_INCLUDE@ "$(WIN_DIR_NATIVE)" @DEPARG@ sl@0: sl@0: install: all install-binaries install-libraries install-doc sl@0: sl@0: install-binaries: binaries sl@0: @for i in "$(LIB_INSTALL_DIR)" "$(BIN_INSTALL_DIR)" ; \ sl@0: do \ sl@0: if [ ! -d $$i ] ; then \ sl@0: echo "Making directory $$i"; \ sl@0: $(MKDIR) $$i; \ sl@0: chmod 755 $$i; \ sl@0: else true; \ sl@0: fi; \ sl@0: done; sl@0: @for i in dde1.2 reg1.1; \ sl@0: do \ sl@0: if [ ! -d $(LIB_INSTALL_DIR)/$$i ] ; then \ sl@0: echo "Making directory $(LIB_INSTALL_DIR)/$$i"; \ sl@0: $(MKDIR) $(LIB_INSTALL_DIR)/$$i; \ sl@0: else true; \ sl@0: fi; \ sl@0: done; sl@0: @for i in $(TCL_DLL_FILE) $(TCLSH) $(PIPE_DLL_FILE); \ sl@0: do \ sl@0: if [ -f $$i ]; then \ sl@0: echo "Installing $$i to $(BIN_INSTALL_DIR)/"; \ sl@0: $(COPY) $$i "$(BIN_INSTALL_DIR)"; \ sl@0: fi; \ sl@0: done sl@0: @for i in tclConfig.sh $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE); \ sl@0: do \ sl@0: if [ -f $$i ]; then \ sl@0: echo "Installing $$i to $(LIB_INSTALL_DIR)/"; \ sl@0: $(COPY) $$i "$(LIB_INSTALL_DIR)"; \ sl@0: fi; \ sl@0: done sl@0: @if [ -f $(DDE_DLL_FILE) ]; then \ sl@0: echo installing $(DDE_DLL_FILE); \ sl@0: $(COPY) $(DDE_DLL_FILE) $(LIB_INSTALL_DIR)/dde1.2; \ sl@0: $(COPY) $(ROOT_DIR)/library/dde/pkgIndex.tcl \ sl@0: $(LIB_INSTALL_DIR)/dde1.2; \ sl@0: fi sl@0: @if [ -f $(DDE_LIB_FILE) ]; then \ sl@0: echo installing $(DDE_LIB_FILE); \ sl@0: $(COPY) $(DDE_LIB_FILE) $(LIB_INSTALL_DIR)/dde1.2; \ sl@0: fi sl@0: @if [ -f $(REG_DLL_FILE) ]; then \ sl@0: echo installing $(REG_DLL_FILE); \ sl@0: $(COPY) $(REG_DLL_FILE) $(LIB_INSTALL_DIR)/reg1.1; \ sl@0: $(COPY) $(ROOT_DIR)/library/reg/pkgIndex.tcl \ sl@0: $(LIB_INSTALL_DIR)/reg1.1; \ sl@0: fi sl@0: @if [ -f $(REG_LIB_FILE) ]; then \ sl@0: echo installing $(REG_LIB_FILE); \ sl@0: $(COPY) $(REG_LIB_FILE) $(LIB_INSTALL_DIR)/reg1.1; \ sl@0: fi sl@0: sl@0: install-libraries: libraries sl@0: @for i in $(prefix)/lib $(INCLUDE_INSTALL_DIR) \ sl@0: $(SCRIPT_INSTALL_DIR); \ sl@0: do \ sl@0: if [ ! -d $$i ] ; then \ sl@0: echo "Making directory $$i"; \ sl@0: $(MKDIR) $$i; \ sl@0: else true; \ sl@0: fi; \ sl@0: done; sl@0: @for i in http1.0 http2.5 opt0.4 encoding msgcat1.3 tcltest2.2; \ sl@0: do \ sl@0: if [ ! -d $(SCRIPT_INSTALL_DIR)/$$i ] ; then \ sl@0: echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \ sl@0: $(MKDIR) $(SCRIPT_INSTALL_DIR)/$$i; \ sl@0: else true; \ sl@0: fi; \ sl@0: done; sl@0: @echo "Installing header files"; sl@0: @for i in "$(GENERIC_DIR)/tcl.h" "$(GENERIC_DIR)/tclDecls.h" \ sl@0: "$(GENERIC_DIR)/tclPlatDecls.h" ; \ sl@0: do \ sl@0: $(COPY) "$$i" "$(INCLUDE_INSTALL_DIR)"; \ sl@0: done; sl@0: @echo "Installing library files to $(SCRIPT_INSTALL_DIR)"; sl@0: @for i in $(ROOT_DIR)/library/*.tcl $(ROOT_DIR)/library/tclIndex; \ sl@0: do \ sl@0: $(COPY) "$$i" "$(SCRIPT_INSTALL_DIR)"; \ sl@0: done; sl@0: @echo "Installing library http1.0 directory"; sl@0: @for j in $(ROOT_DIR)/library/http1.0/*.tcl; \ sl@0: do \ sl@0: $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/http1.0"; \ sl@0: done; sl@0: @echo "Installing library http2.5 directory"; sl@0: @for j in $(ROOT_DIR)/library/http/*.tcl; \ sl@0: do \ sl@0: $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/http2.5"; \ sl@0: done; sl@0: @echo "Installing library opt0.4 directory"; sl@0: @for j in $(ROOT_DIR)/library/opt/*.tcl; \ sl@0: do \ sl@0: $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/opt0.4"; \ sl@0: done; sl@0: @echo "Installing library msgcat1.3 directory"; sl@0: @for j in $(ROOT_DIR)/library/msgcat/*.tcl; \ sl@0: do \ sl@0: $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/msgcat1.3"; \ sl@0: done; sl@0: @echo "Installing library tcltest2.2 directory"; sl@0: @for j in $(ROOT_DIR)/library/tcltest/*.tcl; \ sl@0: do \ sl@0: $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/tcltest2.2"; \ sl@0: done; sl@0: @echo "Installing encodings"; sl@0: @for i in $(ROOT_DIR)/library/encoding/*.enc ; do \ sl@0: $(COPY) "$$i" "$(SCRIPT_INSTALL_DIR)/encoding"; \ sl@0: done; sl@0: sl@0: install-doc: doc sl@0: sl@0: # Optional target to install private headers sl@0: install-private-headers: libraries sl@0: @for i in $(PRIVATE_INCLUDE_INSTALL_DIR); \ sl@0: do \ sl@0: if [ ! -d $$i ] ; then \ sl@0: echo "Making directory $$i"; \ sl@0: $(MKDIR) $$i; \ sl@0: chmod 755 $$i; \ sl@0: else true; \ sl@0: fi; \ sl@0: done; sl@0: @echo "Installing private header files to $(PRIVATE_INCLUDE_INSTALL_DIR)/"; sl@0: @for i in "$(GENERIC_DIR)/tclInt.h" "$(GENERIC_DIR)/tclIntDecls.h" \ sl@0: "$(GENERIC_DIR)/tclIntPlatDecls.h" "$(GENERIC_DIR)/tclPort.h" \ sl@0: "$(WIN_DIR)/tclWinPort.h" ; \ sl@0: do \ sl@0: $(COPY) "$$i" "$(PRIVATE_INCLUDE_INSTALL_DIR)"; \ sl@0: done; sl@0: sl@0: # Specifying TESTFLAGS on the command line is the standard way to pass sl@0: # args to tcltest, ie: sl@0: # % make test TESTFLAGS="-verbose bps -file fileName.test" sl@0: sl@0: test: binaries $(TCLTEST) sl@0: TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \ sl@0: ./$(TCLTEST) "$(ROOT_DIR_NATIVE)/tests/all.tcl" $(TESTFLAGS) \ sl@0: | ./$(CAT32) sl@0: sl@0: # Useful target to launch a built tcltest with the proper path,... sl@0: runtest: binaries $(TCLTEST) sl@0: @TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \ sl@0: ./$(TCLTEST) $(TESTFLAGS) $(SCRIPT) sl@0: sl@0: # This target can be used to run tclsh from the build directory sl@0: # via `make shell SCRIPT=foo.tcl` sl@0: shell: binaries sl@0: @TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \ sl@0: ./$(TCLSH) $(SCRIPT) sl@0: sl@0: # This target can be used to run tclsh inside either gdb or insight sl@0: gdb: binaries sl@0: @echo "set env TCL_LIBRARY=$(LIBRARY_DIR)" > gdb.run sl@0: gdb ./tclsh --command=gdb.run sl@0: rm gdb.run sl@0: sl@0: depend: sl@0: sl@0: Makefile: $(SRC_DIR)/Makefile.in sl@0: ./config.status sl@0: sl@0: cleanhelp: sl@0: $(RM) *.hlp *.cnt *.GID *.rtf man2tcl.exe sl@0: sl@0: clean: cleanhelp sl@0: $(RM) *.lib *.a *.exp *.dll *.$(RES) *.${OBJEXT} *~ \#* TAGS a.out sl@0: $(RM) $(TCLSH) $(TCLTEST) $(CAT32) sl@0: $(RM) *.pch *.ilk *.pdb sl@0: sl@0: distclean: clean sl@0: $(RM) Makefile config.status config.cache config.log tclConfig.sh \ sl@0: tcl.hpj sl@0: sl@0: # sl@0: # Regenerate the stubs files. sl@0: # sl@0: sl@0: $(GENERIC_DIR)/tclStubInit.c: $(GENERIC_DIR)/tcl.decls \ sl@0: $(GENERIC_DIR)/tclInt.decls sl@0: @echo "Warning: tclStubInit.c may be out of date." sl@0: @echo "Developers may want to run \"make genstubs\" to regenerate." sl@0: @echo "This warning can be safely ignored, do not report as a bug!" sl@0: sl@0: genstubs: sl@0: $(TCL_EXE) "$(ROOT_DIR_NATIVE)\tools\genStubs.tcl" \ sl@0: "$(GENERIC_DIR_NATIVE)" \ sl@0: "$(GENERIC_DIR_NATIVE)\tcl.decls" \ sl@0: "$(GENERIC_DIR_NATIVE)\tclInt.decls"