On Mar 5, 2014, at 16:19, c...@macports.org wrote: > Revision > 117621 > Author > c...@macports.org > Date > 2014-03-05 14:19:14 -0800 (Wed, 05 Mar 2014) > Log Message > > macports: use a local copy of Tcl 8.5, mostly fix out-of-source build (#28001) > > This change switches MacPorts to a private copy of Tcl 8.5 that will be > extracted, configured, built > and installed along with MacPorts. This will allow us to drop Tcl > 8.4-compatibility for older OS > releases that didn't ship Tcl 8.5 and is an important step towards Tcl 8.6 > compatibility. > > Most of the changes to make this happen were in aclocal.m4 (where I > re-implemented a custom version > of AC_CONFIG_SUBDIRS similar to what was proposed upstream in > > http://lists.gnu.org/archive/html/autoconf/2011-04/msg00000.html > but never actually merged), > configure.ac and the vendor directory. > > Since we want to build MacPorts against the headers of our custom Tcl, this > change also required > adjusting Mk/macports.autoconf.mk.in to pass the correct path to the headers. > However, we cannot use > the build directory containing the public headers, because this directory is > also clobbered with > other headers such as regex.h, breaking the build later on when this file is > included in pextlib1.0. > Fortunately, the Tcl autoconf macros take care of all the other details > required to build against > a private Tcl. > > Not having the blessed copy of Tcl around during configure lead to some other > difficulties such as > the MP_TCL_PLATFORM macro, which uses $TCLSH to read the $tcl_platform > variable. I have > re-implemented this as MP_PLATFORM using uname in the same way as the > $tcl_platform variable is set > up in the Tcl source code. > > Besides a standard Tcl distribution, this change also installs the Tcl Thread > package (required for > trace mode) and Tcllib, a package containing various helpful modules for Tcl > (such as an > 8.6-compatible try implementation). It also drops support for the Tcl sqlite3 > extension that is > present on OS X and was previously picked up by configure, but isn't used in > the source. > > While I was refactoring the build system I also mostly fixed out-of-source > builds (see #28001, > caused all Makefile -> Makefile.in moves). The remaining issue is that the > pkgIndex.tcl files > generated by pkg_mkIndex only list the files present in the build directory > (i.e. all files that > have been re-inplaced or built from source), but not those from the source > directory. That currently > causes the Tcl scripts in the install target to fail. > > I also unified indentation in aclocal.m4.
Thank you for doing all of this work! I’m really excited about the future improvements this will make possible. _______________________________________________ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev