TEA (tclconfig) Source Code

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 check-ins occurring around 3c009701ef190671.

2016-07-31
13:22
New version 0.5

Removed the seperate classes tracking static vs. dynamic binary extensions. They are now a single class and the build strategy is determined by the "static" define.

Created a unified "Configure" method which used by both the config.sh and compile method. It turns out that much of what config.sh needs isn't known until autoconf is run.

Fixed a quoting problem for spaces in -D flags

Simplified the arguments for ::practcl::build::static-tclsh. We now only need to pass the master object, the script can figure out the rest. (For now, so long as there are two sub-objects TCLCORE and TKCORE) check-in: 8b2c5d5403 user: hypnotoad tags: practcl

2016-07-25
15:09
Developed a new mechanism for advertising a package, but not invoking its loader. The key part is to build a minimalist proc in the tcl interp that can invoke the PROJ_Init from the interpreter in response to a "package require".

We can't use Tcl_StaticPackage, because that assumes the Init call was already loaded check-in: 6979153dcc user: hypnotoad tags: practcl

2016-07-05
13:40
Pulled a puts statement check-in: 0c2b56e291 user: hypnotoad tags: practcl
2016-06-29
22:54
Going back to disabling stubs for static libraries. Something in stock make files for TEA packages dies horribly on [make all] with --disable-shared but -enable-stubs check-in: a6169325e2 user: hypnotoad tags: practcl
20:59
Adding a new "domake.tcl" which is designed to exercise a practcl tcl make system.

Behavioral fixes for sub-components which can have elements of the Init() process farmed to them

Added handlers for compiling a library and basekit in debug mode

Added a mechanism for the build system to compile a different obj file for debug mode

Added tweaks for Tk extensions

Fixed the pkgindex.tcl file generator for static libraries.

Practcl libraries now burn Tcl initialization code into the C library itself, eliminating the need for an external tcl file check-in: 3dfb97da54 user: hypnotoad tags: practcl

2016-06-27
13:51
Tweaked modules and libraries to honor the desire of sub-modules and dynamic sources to express themselves as seperate C files check-in: b684dbfbf8 user: hypnotoad tags: practcl
2016-06-25
15:03
Finally have a working implementation to build shared libraries from Tcl.

Moved the makefile snippet generator to a proc.

Added a few more substitutions that the tcl based make system requires check-in: d1d02eb80e user: hypnotoad tags: practcl

2016-06-24
14:44
Added facilities to build an internal pkgIndex.tcl file for kits

Added version detection and tracking for static packages, as well as a flag to indicate if a package should be automatically loaded when the shell initializes check-in: 3d7c8fae82 user: hypnotoad tags: practcl

2016-06-23
19:33
Adapted the build process such that dynamic C code can decide for itself to be compiled as a standalone C file rather than be massed into the main application/library loader check-in: 9244b28b3e user: hypnotoad tags: practcl
2016-06-21
23:45
Based on feedback from the community, changed the "practcl.tcl.in" template to "config.tcl.in", and it stores a key/value list instead of a stream of Tcl commands

Rewrote chunks of practcl to better handle builds in a different directory than the source checkout.

The kit builder now creates its own build folders for binary packages

Package objects now compute a builddir on startup

Replaced calls the the global ::project array with calls to [define get]. (Note: make files are still welcome to write to a ::project array. That array is simply no longer assumed to be present and populated by most of the practcl library.) check-in: b19812c359 user: hypnotoad tags: practcl

14:40
Added a --with-tclsh option, to allow dynamic build systems to utilize a known good Tcl interpreter instead of guessing when generating dynamic content check-in: 57bcbae0cb user: hypnotoad tags: practcl
2016-06-20
18:59
Added a built-in tool to fill in the gaps provided by autoconf for platforms where autoconf is not available.

Added a mechanism for the tclkit integrator to derive ./configure time information from the Makefile for packages where a "practcl.rc" file is not generated.

The process of substituting DEFS and generating self contained executables are now procedures instead of object methods.

Added a mechanism for compiled objects to specify their output product's file name.

Added handlers for compiling and linking C++ code.

Added hooks to exploit the new static library build features of TEA 3.10

Incorporated the SUBPACKAGE method defined in IRM to the main practcl library.

Added several common subpackage component classes to the practcl library

Added a new export PRACTCL_CFLAGS, which provides a snapshot of the CFLAGS generated by autoconf for a package minus the package specific flags check-in: 148be84c92 user: hypnotoad tags: practcl

2016-06-11
11:42
Pulling changes from trunk check-in: b9ed8aa410 user: hypnotoad tags: practcl
11:22
Updating comments

Condensing the STUBS_BUILD behaviors to one subroutine check-in: ba3a2928e5 user: hypnotoad tags: trunk

11:19
Fixing a typo in TEA check-in: e8d611141b user: hypnotoad tags: practcl
10:47
Pulling changes from trunk check-in: 1279f82873 user: hypnotoad tags: practcl
10:47
Added an --disable-stubs flag which can be used in conjuction with the --disable-shared flag will prevent the USE_TCL_STUBS and USE_TK_STUBS flags from being set check-in: ba73067b41 user: hypnotoad tags: trunk
2016-05-25
08:18
Modified the kitbuilder to no longer require a seperate KIT array. The data needed was already encoded in TCL and TK check-in: a82acf8adb user: hypnotoad tags: practcl
2016-04-07
23:37
Improvements to practcl:

Updated version to 0.3

Introduces some platform auto-dectect functions

Embeds a local copy of zip::mkzip

Adds a rudimentary build dependency system

Allows direct compilation of executables, shared libraries, and static libraries

Allows the downloading, compiling, and embedding of external Tcl binary (and script) packages check-in: 96175a5ab5 user: hypnotoad tags: practcl

2016-03-15
21:00
Fixes to practcl.

Practcl's package-ifneeded method now writes code that wraps properly inside of an amaglamated pkgIndex script check-in: e315779c3b user: hypnotoad tags: practcl

15:52
Bumped practcl to 0.2 check-in: cbe5f3d89b user: hypnotoad tags: practcl
15:48
Merging changes from trunk check-in: 986d80d3f4 user: hypnotoad tags: practcl
15:46
Improvments to practcl to allow for the creation of multiple static or dynamic libraries for a project.

Added several PRACTCL_ defines which allow a practcl enable build script to synthesize the instructions needed to compile libraries on the target platform. (MAKE_LIB, etc are unchanged) check-in: 5fce60ae04 user: hypnotoad tags: practcl

15:31
Fixes in the implementation to support odielib. This branch *should* be ready for others to start playing with it. check-in: dbb639b5c0 user: hypnotoad tags: practcl
2016-03-11
18:32
Fixed a missing quote. check-in: 3c009701ef user: hypnotoad tags: trunk
17:02
Creating a branch to explore using Tcl for package building automation. This project is build around the concepts introduced in the "practcl" package. check-in: b1a033f31d user: hypnotoad tags: practcl
15:40
Update the changelog check-in: 13585b8aa2 user: hypnotoad tags: trunk
15:25
Fixed whitespace and a typo on that last patch check-in: 82dfb08bb7 user: hypnotoad tags: trunk
15:07
Added tests to detect a static or threads built shell in the TCLSRC/win or TKSRC/win directory check-in: cf351061fd user: hypnotoad tags: trunk
2015-10-05
12:24
Fix for [3f2849aefcd09a] (ahum): square brackets must be doubled, otherwise they will be eliminated in the configure script :-) check-in: 60ecf0f95c user: jan.nijtmans tags: trunk
10:55
Fix [06f1692bbe]: cross compilation with native mingw compiler in Cygwin environment check-in: e0eb523adc user: jan.nijtmans tags: trunk
2015-09-30
11:19
Don't limit Universal runtime support to VisualStudio version 14 only, future versions will probably have it as well. check-in: 3f2849aefc user: jan.nijtmans tags: trunk
2015-08-28
13:33
Fix 00189c4afc: Allow semi-static UCRT build on Windows with VC 14.0 check-in: b433d084bb user: jan.nijtmans tags: trunk
2015-04-21
09:53
Fix comment, stating configure.in in stead of configure.ac. No functional change. check-in: a9aa1b9ba1 user: jan.nijtmans tags: trunk
2015-01-20
01:43
Add support for PACKAGE_LIB_PREFIX, useful when the library name cannot simply be 'libPkgName'. check-in: 1b09bad17f user: mistachkin tags: trunk
2014-09-27
23:18
Make SHLIB_VERSION optional. Only affects OpenBSD. check-in: 0c902862aa user: stwo tags: trunk
2014-09-11
08:40
Add INSTALL_DATA_DIR and INSTALL_LIBRARY for use in Makefile.in. Suggested by Stuart Cassoff [604f8d1457] check-in: 983f5da9f2 user: jan.nijtmans tags: trunk
2014-09-09
22:54
Better pic flag for OpenBSD. check-in: 6dc8f5ce34 user: stwo tags: trunk
2014-09-03
10:47
Cherry-pick a37bbd81ea from Tcl, for use in TEA as well: Combine TCL_SHLIB_LD_EXTRAS+TK_SHLIB_LD_EXTRAS (for Cygwin and FreeBSD) to a single SHLIB_LD_LIBS usable for both Tcl and Tk. check-in: a5c46e4a5b user: jan.nijtmans tags: trunk
2014-07-03
07:30
Restore FreeBSD-3.* rules to what they were before (unintended change in previous commit) check-in: 7f7291daf2 user: jan.nijtmans tags: trunk
2014-03-20
11:18
Fix 2f7cbd01c3: tcl8.6.1 fails to build on FreeBSD 10.0 check-in: 8d7373477b user: jan.nijtmans tags: trunk
2014-02-10
15:33
Some win32 compilers don't define __WIN32__ check-in: a0146cdddc user: jan.nijtmans tags: trunk
2014-01-23
13:15
Follow-up to [3324676]: Some TEA makefiles use INSTALL_(DATA|PROGRAM|SCRIPT), which should be provided for compatibility too. check-in: 8abeae4c1f user: jan.nijtmans tags: trunk
2013-12-29
10:57
Ticket [00ed054f4f]: Search in Debian per-version directories check-in: 9fb41ed228 user: jan.nijtmans tags: trunk
2013-11-21
12:52
Allow (dummy) enable-64bit on Cygwin64 check-in: 723e1db525 user: jan.nijtmans tags: trunk
2013-10-08
12:43
Bug [172223e008]: Wrong filename in --disable-shared compile on MinGW check-in: fd8dcd53b1 user: jan.nijtmans tags: trunk
2013-10-04
12:06
When compiling with MSVC++, no longer link the stub library with msvcrt??.dll. This way, workarounds in extensions like http://core.tcl.tk/itcl/info/a961f0729c are no longer necessary. check-in: 1f965ec888 user: jan.nijtmans tags: trunk
11:40
Follow-up on previous commit: -static-libgcc is gcc-specific check-in: 23e10752a6 user: jan.nijtmans tags: trunk
2013-10-01
12:39
Workaround for MinGW bug #2065: "gcc --shared" links with libgcc_s_dw2-1.dll when using 64-bit division in C check-in: 3d006aecf9 user: jan.nijtmans tags: trunk
2013-07-06
23:43
OpenBSD/m88k is now elf. Remove unneeded elf check. check-in: 19ae7b935c user: stwo tags: trunk