Building Tcl under cygwin with MINGW

Difference between version 8 and 9 - Previous - Next
page started by [TV].


** See Also **

   [cygwin]:   

   [Building Tcl and Tk with Cygwin]:   

   [Building Tcl and Tk for Windows with MSYS2]:   
   [MinGW]:   A Window s port of gcc & binutils.
   [MSYS]:   A fork of cygwin.
   [BAWT]:   isA a Tcl -based configurable framework for automatically building C/C++ based software libraries from source code.



** Description **


The official Tcl has had the Cygwin build support removed, because it was
in need of someone to maintain it, and no one came forward. Users looking
for the most simple way to build Tcl/Tk under Windows should take a look at
[Building Tcl/Tk with Mingw].

Recently trying out the latest [CVS] version of tcl 8.5, I found the standard distr. 
doesn't allow a [cygwin] build. That in itself is not disastrous, but I at least would 
like to use my installed [cygwin] env to build. That should be possible with [mingw], 
which however is already present in the cygwin distr., usually.

The main trick was suggested by [GPS], to make cygwin not use its normal gcc,
but in fact the 9as ''(what?)'' I used before: -mno-cygwin option (under bash):

======none
export CC="gcc -mno-cygwin"
./configure
make
======

A comment on the outcome: I wanted to use the resulting tclsh without installing, which is problematic because it looks for a valid init.tcl . It appears that a '''make shell'''
or '''make runtest''' is possible.

======none
make test
======

works normally.



** Tcl 8.6.4 under Cygwin with a native minGW **

[PYK] 2015-10-05:


Cygwin includes a build of [minGW] that targets the Cygwin platform, but with
the aid of `-mno-cygwin`  will also cross-compile to Windows binaries.  It is
also possible to use a native Windows [minGW] build to do the compiling, with
Cygwin as the build environment.  This produces a "pure" Windows build, with no
Cygwin configuration. As of Tcl-8.6.4, some patching is necessary.  Here are
the steps:

    :   Download and apply [https://chiselapp.com/user/pooryorick/repository/distpatches/artifact?filename=tcl/tcl-8.6.4-cygwin_native_minGW.diff&ci=trunk%|%this patch]

        :   invoke a script like the following, substituting in some valid path to the minGW bin directory:

======none
#! /bin/env bash
PATH=/path/to/minGW/bin:${PATH:+:$PATH}
cd tcl8.6.4/win
./configure --prefix='/cygdrive/c/some/installation/path' --enable-64bit --target=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
make
make install
======

Packages distributed in the pkgs directory should also build and install
succesfully.  If adding packages to that directory, have a look at the patches,
and then patch the added package accordingly.  Better yet, path it and build it
separately using the newly-build Tcl.