BAWT is a Tcl based configurable framework for automatically building C/C++ based software libraries from source code.

Its main usage is for the Windows operating system, where different build environments (ex. configure/make via MSYS/MinGW, nmake, CMake, Visual Studio Solutions) and compiler (MSYS/MinGW gcc, different Visual Studio versions) are needed to build these libraries.

See the release history for more details.

PO 2016/06/24 - BAWT version 0.1 released. Introduction at EuroTcl 2016.

PO 2016/08/28 - BAWT version 0.2 released. Contains more than 40 libraries, generation of tclkits as well as a Batteries Included Tcl/Tk installation program for Windows.

PO 2016/10/23 - BAWT version 0.3 released. Improved build actions. New and updated libraries. tcllib speed-optimized with critcl.

PO 2016/12/28 - BAWT version 0.4 released. Improved build actions. New and updated libraries. CMake based Tcl3D-Basic version.

PO 2017/03/19 - BAWT version 0.5 released. Improved build actions. New and updated libraries. Implemented dependency checking of libraries.

PO 2017/07/20 - BAWT version 0.6 released. Improved build actions. New and updated libraries. Applied bug fix for building Tk on Mac.

PO 2017/08/26 - BAWT version 0.7 released. Support for Tcl/Tk 8.6.7. New and updated libraries.

PO 2017/09/12 - BAWT version 0.7.1 released. Support for Tcl/Tk 8.7.

PO 2017/09/24 - BAWT version 0.7.2 released. Support for Visual Studio 2017.

PO 2018/01/04 - BAWT version 0.7.3 released. Support for Tcl/Tk 8.6.8.

PO 2018/07/04 - BAWT version 0.8.0 released. Support for nested Setup files.

PO 2018/12/28 - BAWT version 0.9.0 released. Support for Tcl/Tk 8.6.9.

PO 2019/03/09 - BAWT version 0.9.1 released. Better support for Debug build mode.

PO 2019/06/23 - BAWT version 1.0.0 released. Several incompatible changes. Support for Visual Studio 2019.

PO 2019/12/28 - BAWT version 1.1.0 released. Tcl/Tk 8.6.10. Improved MinGW support for several libraries. New and updated libraries.

PO 2020/01/12 - BAWT version 1.1.1 released. Improved handling of C++ based Tcl extensions (tkdnd, photoresize) on Windows.

PO 2020/02/16 - BAWT version 1.1.2 released. Improved BawtLogViewer. New and updated libraries.

PO 2020/03/15 - BAWT version 1.1.3 released. Improved Linux build. Updated libraries.

PO 2020/05/02 - BAWT version 1.1.4 released. Improved MinGW support for several libraries. New and updated libraries.

PO 2020/06/09 - BAWT version 1.2.0 released. Additional MSYS2 support. New and updated libraries.

PO 2020/09/05 - BAWT version 1.2.1 released. Support for Tcl/Tk 8.7.a4. New and updated libraries.

PO 2021/01/08 - BAWT version 1.3.0 released. Support for Tcl/Tk 8.6.11. Improved support for Tcl/Tk 8.7a4. New and updated libraries.

PO 2021/08/22 - BAWT version 2.0.0 released. Incompatible changes in build scripts. Support for primary and secondary compiler on Windows. Support for Tcl/Tk 8.7a5. Support for user supplied build scripts. New and updated libraries.

PO 2021/12/28 - BAWT version 2.1.0 released. Support for Tcl/Tk 8.6.12. New and updated libraries.

PO 2022/04/15 - BAWT version 2.2.0 released. Support for MinGW gcc 11. New and updated libraries.

PO 2022/07/17 - BAWT version 2.2.1 released. Maintenance release. New and updated libraries.

EF BAWT serves as the bootstrapping software for creating a new Docker image that provides a Tcl (and packages a plenty) compiled from source. As the content of the images is not dictated by the packages that are available in Linux distributions such as Ubuntu, Debian or Alpine, the image leverages the latest versions of a number of packages and libraries. Also, since BAWT is able to compile for Windows, the technique used in the image could be used to generate a Windows Docker image in the future.

EF What about supporting the latest version of TLS in BAWT? At the time of writing, latest is 1.7.11, while the version provided in BAWT comes from sourceforge and is 1.6.7.

PO tcltls 1.7.12 is now part of BAWT 0.6.

arjen - 2017-03-22 14:08:10

My mathemaTcl package (or rather collection of packages) has a somewhat related goal, though it adds Linux and OSX to the mix, as well as Fortran libraries besides C libraries. However, the real focus is on mathematical and numerical applications. As such its tasks are probably much more limited and therefore easier to implement.