I'm trying to build Tcl 8.6.1 along with the contained itcl 4.0.0 as static libraries. Adding the configure option --disable-shared worked for Tcl. However, for itcl, the invoked configure command has the option --enable-shared added AFTER the --disable-shared from my Tcl setup, thus overriding my attempt at doing a static build. The Tcl and itcl builds and tests run to completion without errors, but I end up with Tcl static libraries and itcl shared libraries.
I assume I can build itcl as a static library, since I saw nothing in the READMEs to indicate otherwise. If there is some reason that the itcl configure requires the --enable-shared and --enable-threads options, then this should be noted.
It was created by tcl configure 8.6, which was
generated by GNU Autoconf 2.59. Invocation command line was
Hmm, I just looked at the other packages in Tcl for DBs and thread. They all seem to have the same issue, where their configure command has the --enable-shared and --enable-threads options added. So again, they all build as shared libraries when I asked for static ones.
Did some more digging and it appears the problem originates in the Tcl Makefile.in file with the following macro:
configure-packages:
@for i in $(PKGS_DIR)/*; do \
if [ -d $$i ]; then \
if [ -x $$i/configure ]; then \
pkg=
basename $$i; \echo "Configuring package '$$pkg'"; \
mkdir -p $(PKG_DIR)/$$pkg; \
if [ ! -f $(PKG_DIR)/$$pkg/Makefile ]; then \
( cd $(PKG_DIR)/$$pkg; \
$$i/configure --with-tcl=../.. \
--with-tclinclude=$(GENERIC_DIR) \
$(PKG_CFG_ARGS) --libdir=$(PACKAGE_DIR) \
--enable-shared --enable-threads; ) || exit $$?; \
fi; \
fi; \
fi; \
done
The --enable-shared and --enable-threads options are hard-coded on any pkgs configure command. This also occurs in the "win" directory for Windows builds.
So should this bug be filed against Tcl instead? If yes, can it be transferred or do I need to resubmit it?