From 8bb9bc448fdea2fd557b000733dda032dbc90067 Mon Sep 17 00:00:00 2001 From: ericm Date: Tue, 13 Jun 2000 21:01:05 +0000 Subject: * win/tcl.m4: * win/configure.in: * win/Makefile.in: Applied patch from [RFE: 5844], to extend support for mingw compile environment on Windows. --- ChangeLog | 8 +++++++- win/Makefile.in | 27 +++++++++++++------------ win/configure.in | 12 ++++++++++- win/tcl.m4 | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 4 files changed, 89 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9f69d72..4f874ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,17 @@ 2000-06-13 Eric Melski + * win/tcl.m4: + * win/configure.in: + * win/Makefile.in: Applied patch from [RFE: 5844], to extend + support for mingw compile environment on Windows. + * win/tclWinDde.c: * win/tclWinInit.c: * win/tclWinNotify.c: * win/tclWinPipe.c: * win/tclWinReg.c: - * win/tclWinThrd.c: Applied patch from [Bug 5794]. + * win/tclWinThrd.c: Applied patch from [Bug: 5794], to fix + compiler warnings when using mingw on Windows. 2000-05-31 Jeff Hobbs diff --git a/win/Makefile.in b/win/Makefile.in index c2a66b6..228e01a 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -5,7 +5,7 @@ # "autoconf" program (constructs like "@foo@" will get replaced in the # actual Makefile. # -# RCS: @(#) $Id: Makefile.in,v 1.36 2000/05/19 18:57:59 hobbs Exp $ +# RCS: @(#) $Id: Makefile.in,v 1.37 2000/06/13 21:01:05 ericm Exp $ VERSION = @TCL_VERSION@ @@ -47,7 +47,7 @@ LIB_RUNTIME_DIR = $(libdir) # Directory in which to install the program tclsh: BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir) -# Directory in which to install libtcl.so or libtcl.a: +# 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. @@ -130,7 +130,7 @@ DDE_DLL_FILE = tcldde$(VER)${DLLSUFFIX} DDE_LIB_FILE = tcldde$(VER)${LIBSUFFIX} REG_DLL_FILE = tclreg$(VER)${DLLSUFFIX} REG_LIB_FILE = tclreg$(VER)${LIBSUFFIX} -PIPE_DLL_FILE = tclpip$(VER).dll +PIPE_DLL_FILE = tclpip$(VER)${DLLSUFFIX} SHARED_LIBRARIES = $(TCL_DLL_FILE) $(TCL_STUB_LIB_FILE) \ $(DDE_DLL_FILE) $(REG_DLL_FILE) $(PIPE_DLL_FILE) @@ -169,7 +169,7 @@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ STLIB_LD = @STLIB_LD@ SHLIB_LD = @SHLIB_LD@ -SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ +SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ $(LIBS) SHLIB_CFLAGS = @SHLIB_CFLAGS@ SHLIB_SUFFIX = @SHLIB_SUFFIX@ VER = @TCL_MAJOR_VERSION@@TCL_MINOR_VERSION@ @@ -178,6 +178,7 @@ LIBS = @LIBS@ RMDIR = rm -rf MKDIR = mkdir -p +SHELL = @SHELL@ RM = rm -f COPY = cp @@ -301,7 +302,7 @@ all: binaries libraries doc tcltest: $(TCLTEST) -binaries: @LIBRARIES@ $(STATIC_LIBRARIES) $(TCLSH) +binaries: @LIBRARIES@ $(TCLSH) libraries: @@ -323,11 +324,11 @@ $(TCLTEST): $(TCL_LIB_FILE) $(TCLTEST_OBJS) $(CAT32) tclsh.$(RES) $(CC) $(CFLAGS) $(TCLTEST_OBJS) $(TCL_LIB_FILE) $(LIBS) \ tclsh.$(RES) $(CC_EXENAME) -cat32.${OBJEXT}: cat.c +cat32.$(OBJEXT): cat.c $(CC) -c $(CC_SWITCHES) $(DEPARG) $(CC_OBJNAME) -$(CAT32): cat32.${OBJEXT} - $(CC) $(CFLAGS) cat32.${OBJEXT} $(CC_EXENAME) $(LDFLAGS_CONSOLE) +$(CAT32): cat32.$(OBJEXT) + $(CC) $(CFLAGS) cat32.$(OBJEXT) $(CC_EXENAME) $(LDFLAGS_CONSOLE) # The following targets are configured by autoconf to generate either # a shared library or static library @@ -339,7 +340,7 @@ ${TCL_STUB_LIB_FILE}: ${STUB_OBJS} ${TCL_DLL_FILE}: ${TCL_OBJS} tcl.$(RES) @$(RM) ${TCL_DLL_FILE} - @MAKE_DLL@ ${TCL_OBJS} tcl.$(RES) + @MAKE_DLL@ ${TCL_OBJS} tcl.$(RES) $(SHLIB_LD_LIBS) ${TCL_LIB_FILE}: ${TCL_OBJS} @$(RM) ${TCL_LIB_FILE} @@ -348,11 +349,11 @@ ${TCL_LIB_FILE}: ${TCL_OBJS} ${DDE_DLL_FILE}: ${DDE_OBJS} ${TCL_STUB_LIB_FILE} @$(RM) ${DDE_DLL_FILE} - @MAKE_DLL@ ${DDE_OBJS} ${TCL_STUB_LIB_FILE} + @MAKE_DLL@ ${DDE_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS) ${REG_DLL_FILE}: ${REG_OBJS} ${TCL_STUB_LIB_FILE} @$(RM) ${REG_DLL_FILE} - @MAKE_DLL@ ${REG_OBJS} ${TCL_STUB_LIB_FILE} + @MAKE_DLL@ ${REG_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS) # PIPE_DLL_FILE is actually an executable, don't build it # like a DLL. @@ -513,14 +514,14 @@ runtest: tcltest depend: -Makefile: Makefile.in +Makefile: $(SRC_DIR)/Makefile.in ./config.status cleanhelp: $(RM) *.hlp *.cnt *.GID *.rtf man2tcl.exe clean: cleanhelp - $(RM) *.lib *.exp *.dll *.$(RES) *.${OBJEXT} *~ \#* TAGS a.out + $(RM) *.lib *.a *.exp *.dll *.$(RES) *.${OBJEXT} *~ \#* TAGS a.out $(RM) $(TCLSH) $(TCLTEST) $(CAT32) $(RM) *.pch *.ilk *.pdb diff --git a/win/configure.in b/win/configure.in index 2f35312..875f2f0 100644 --- a/win/configure.in +++ b/win/configure.in @@ -2,7 +2,7 @@ # generate the file "configure", which is run during Tcl installation # to configure the system for the local environment. # -# RCS: @(#) $Id: configure.in,v 1.22 2000/05/18 22:19:17 hobbs Exp $ +# RCS: @(#) $Id: configure.in,v 1.23 2000/06/13 21:01:06 ericm Exp $ AC_INIT(../generic/tcl.h) @@ -79,6 +79,12 @@ TCL_DBGX=${DBGX} AC_CHECK_HEADER(errno.h, , MAN2TCLFLAGS="-DNO_ERRNO_H") AC_SUBST(MAN2TCLFLAGS) +#------------------------------------------------------------------------ +# tclConfig.sh refers to this by a different name +#------------------------------------------------------------------------ + +TCL_SHARED_BUILD=${SHARED_BUILD} + #-------------------------------------------------------------------- # Perform final evaluations of variables with possible substitutions. #-------------------------------------------------------------------- @@ -91,6 +97,7 @@ eval "TCL_SRC_DIR=`cd $srcdir; pwd`" eval "TCL_STUB_LIB_FILE=${LIBPREFIX}tclstub$VER${LIBSUFFIX}" eval "TCL_DLL_FILE=tcl$VER${DLLSUFFIX}" eval "TCL_LIB_FILE=${LIBPREFIX}tcl$VER${LIBSUFFIX}" + eval "DLLSUFFIX=${DLLSUFFIX}" eval "LIBPREFIX=${LIBPREFIX}" eval "LIBSUFFIX=${LIBSUFFIX}" @@ -113,6 +120,7 @@ AC_SUBST(TCL_DBGX) AC_SUBST(CFG_TCL_SHARED_LIB_SUFFIX) AC_SUBST(CFG_TCL_UNSHARED_LIB_SUFFIX) AC_SUBST(CFG_TCL_EXPORT_FILE_SUFFIX) +AC_SUBST(TCL_SHARED_BUILD) AC_SUBST(PATHTYPE) AC_SUBST(CYGPATH) @@ -140,6 +148,8 @@ AC_SUBST(RC_OUT) AC_SUBST(RC_TYPE) AC_SUBST(RC_INCLUDE) AC_SUBST(RES) +AC_SUBST(LIBS) +AC_SUBST(LIBS_GUI) AC_SUBST(DLLSUFFIX) AC_SUBST(LIBPREFIX) AC_SUBST(LIBSUFFIX) diff --git a/win/tcl.m4 b/win/tcl.m4 index 798d6b0..a687a2a 100644 --- a/win/tcl.m4 +++ b/win/tcl.m4 @@ -165,6 +165,10 @@ AC_DEFUN(SC_LOAD_TKCONFIG, [ # # Sets the following vars: # CC Command to use for the compiler +# AR Comman for the archive tool +# RANLIB Command for the archive indexing tool +# RC Command for the resource compiler +# #------------------------------------------------------------------------ AC_DEFUN(SC_ENABLE_GCC, [ @@ -335,7 +339,7 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [ # # Results: # -# Defines the following vars for all compilers: +# Can the following vars: # EXTRA_CFLAGS # CFLAGS_DEBUG # CFLAGS_OPTIMIZE @@ -349,12 +353,13 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [ # PATHTYPE # VPSEP # CYGPATH -# -# Defines the following vars for non-gcc compilers # SHLIB_LD # SHLIB_LD_LIBS # LIBS # AR +# RC +# RES +# # MAKE_LIB # MAKE_EXE # MAKE_DLL @@ -507,7 +512,8 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [ # dynamic AC_MSG_RESULT([using shared flags]) runtime=-MD - MAKE_DLL="\${SHLIB_LD} \${SHLIB_LD_LIBS} \$(LDFLAGS) -out:\[$]@" + # Add SHLIB_LD_LIBS to the Make rule, not here. + MAKE_DLL="\${SHLIB_LD} \$(LDFLAGS) -out:\[$]@" LIBSUFFIX="\${DBGX}.lib" DLLSUFFIX="\${DBGX}.dll" EXESUFFIX="\${DBGX}.exe" @@ -570,3 +576,50 @@ AC_DEFUN(SC_WITH_TCL, [ AC_SUBST(TCL_BIN_DIR) ]) +# FIXME : SC_PROG_TCLSH should really look for the installed tclsh and +# not the build version. If we want to use the build version in the +# tk script, it is better to hardcode that! + +#------------------------------------------------------------------------ +# SC_PROG_TCLSH +# Locate a tclsh shell in the following directories: +# ${exec_prefix}/bin +# ${prefix}/bin +# ${TCL_BIN_DIR} +# ${TCL_BIN_DIR}/../bin +# ${PATH} +# +# Arguments +# none +# +# Results +# Subst's the following values: +# TCLSH_PROG +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PROG_TCLSH, [ + AC_MSG_CHECKING([for tclsh]) + + AC_CACHE_VAL(ac_cv_path_tclsh, [ + search_path=`echo ${exec_prefix}/bin:${prefix}/bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${PATH} | sed -e 's/:/ /g'` + for dir in $search_path ; do + for j in `ls -r $dir/tclsh[[8-9]]*.exe 2> /dev/null` \ + `ls -r $dir/tclsh* 2> /dev/null` ; do + if test x"$ac_cv_path_tclsh" = x ; then + if test -f "$j" ; then + ac_cv_path_tclsh=$j + break + fi + fi + done + done + ]) + + if test -f "$ac_cv_path_tclsh" ; then + TCLSH_PROG=$ac_cv_path_tclsh + AC_MSG_RESULT($TCLSH_PROG) + else + AC_MSG_ERROR(No tclsh found in PATH: $search_path) + fi + AC_SUBST(TCLSH_PROG) +]) -- cgit v0.12