Tcl Source Code

View Ticket
Login
Ticket UUID: 1857612
Title: TEA_PRIVATE_*_HEADERS doesn't find installed private headers
Type: Support Version: None
Submitter: jenglish Created on: 2007-12-24 16:28:27
Subsystem: None Assigned To: hobbs
Priority: 7 High Severity:
Status: Closed Last Modified: 2009-07-29 19:40:53
Resolution: Closed By: hobbs
    Closed on: 2008-11-04 23:30:35
Description:
As of 8.4.11 or so, tcl and tk provide a `make install-private-headers` target, so extensions needing them can be built without requiring that the core source directories be left lying around.  (This is a requirement for nearly every distributor build environment.)

However, the TEA_TCL_PRIVATE_HEADERS macro still only looks in $(TCL_SRC_DIR), and aborts if the expected headers are not found there.  Ditto TEA_TK_PRIVATE_HEADERS.
User Comments: dkf added on 2009-07-29 19:40:53:

IP - Comment Removed: 130.88.1.31

dkf added on 2008-12-26 14:22:34:

data_type - 210894

jenglish added on 2008-11-05 07:50:12:
Thanks!

It should still only be a warning, not a hard error, if TEA_PRIVATE_*_HEADERS doesn't find what it's looking for though.  There really needs to be an escape hatch so people can say "use the CPPFLAGS that I'm giving you and don't worry if things aren't where you expect them to be."  Distros, site admins, and vendors have come up with all sorts of different ways to work around the private headers problem over the years.

hobbs added on 2008-11-05 06:30:54:
See also 1631922

hobbs added on 2008-11-05 06:30:31:
Then the proper thing would be to use --with-tcl|tkinclude.  I have an updated TEA that will account for this (TEA 3.7).

jenglish added on 2007-12-28 04:09:39:
Logged In: YES 
user_id=68433
Originator: YES

Considering how many different ways private header installation can (and does!) go wrong, it'd probably be better to make this a warning (AC_MSG_WARN) instead of a hard error (AC_MSG_ERROR); that way packagers can at least force the issue by setting CPPFLAGS in the environment.

hobbs added on 2007-12-28 02:51:25:
Logged In: YES 
user_id=72656
Originator: NO

Planning to rewrite to AC_REQUIRE the TCL_PUBLIC_*_HEADERS equivalent, then check for the Int.h in the cached dir, otherwise fall back on current code.  That means it is still an error to not find the Int.h header, just with more options to find it.

jenglish added on 2007-12-24 23:32:48:

File Added - 259657: tea-private-includes.patch

Logged In: YES 
user_id=68433
Originator: YES

Attached patch is a partial workaround.  It just changes AC_MSG_ERROR to AC_MSG_WARN so that the configure script will run to completion.  Packagers may need to set CPPFLAGS="-I${tcl_includedir}" in the environment at configure-time.
File Added: tea-private-includes.patch

Attachments: