Tcl Source Code

View Ticket
Login
2025-05-20
15:54 Ticket [3335120320] makefile.vc: package with include folder requires this folder to exist status still Closed with 6 other changes artifact: 6536e2d465 user: oehhar
05:30
Fix [3335120320]. Create include dir for installing extensions in non-default locations check-in: a5086d777b user: apnadkarni tags: trunk, main
05:28 Closed ticket [3335120320]: makefile.vc: package with include folder requires this folder to exist plus 6 other changes artifact: 779ac12ce7 user: apnadkarni
05:26
Fix [3335120320]. Create include dir for installing extensions in non-default locations Leaf check-in: 761808a5e8 user: apnadkarni tags: core-9-0-branch
2025-05-18
15:53 Ticket [3335120320] makefile.vc: package with include folder requires this folder to exist status still Open with 3 other changes artifact: ceb6de8035 user: apnadkarni
15:53
Bug [3335120320]. Fix for case where extension is installed into a directory other than where Tcl is... Closed-Leaf check-in: ee68735740 user: apnadkarni tags: apn-bug-3335120320
2025-05-09
15:36 Ticket [3335120320] makefile.vc: package with include folder requires this folder to exist status still Open with 3 other changes artifact: 9fe995ac1f user: oehhar
15:35 New ticket [3335120320]. artifact: dd5b755946 user: oehhar

Ticket UUID: 3335120320518c9535503985c5278f328a833880
Title: makefile.vc: package with include folder requires this folder to exist
Type: Bug Version: 9.0.1
Submitter: oehhar Created on: 2025-05-09 15:35:13
Subsystem: 53. Configuration and Build Tools Assigned To: nobody
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2025-05-20 15:54:22
Resolution: Fixed Closed By: oehhar
    Closed on: 2025-05-20 15:54:22
Description:

VS2022 64 bit prompt on Win11 x64 OS:

A compiled and installed TCL 9.0.1 is in c:\myprograms\tcl9.0_x64. A checkout of tdbc-main is in C:\test\fossil\tdbc\tdbc-main.

An VS2022 64 bit native prompt gets the following commands:

% nmake -f makefile.vc TCLDIR=c:\myprograms\tcl9.0_x64
% nmake -f makefile.vc install TCLDIR=c:\myprograms\tcl9.0_x64 INSTALLDIR=..\..\install_x64
...
Installing headers to '..\..\install_x64\..\include'

When looking in the install folder (e.g. "..\.."), there is:

  • if folder "include" did not exist in advance: a file named "include" with the contents of "tdbcDecls.h" in the build directory (wrong behaviour)
  • if folder "include" existed in advance: two files "tdbc.h" and "tdbcDecls.h" are written to the folder (correct behaviour)

It might be helpful, to create the folder '..\..\install_x64\..\include', if it does not exist.

The relevant entries in makefile.vc are:

PRJ_HEADERS_PUBLIC = \
	$(GENERICDIR)\tdbc.h \
	$(GENERICDIR)\tdbcDecls.h

I am reporting this here, as IMHO, the machinery for this is here and not in tdbc-main.

Thanks for all, Harald

User Comments: oehhar added on 2025-05-20 15:54:22:

Thanks for the fix, it works.

What I still find interesting is, that the folder "include" is created beside the given INSTALLDIR, not in the installdir.

It is also interesting, that the mostly useless documentation files (*.n) are written into the installation folder.

Also, tdbcstub.lib and tdbcConfig.sh are written into the installation folder, which are IMHO expected in lib.

So, anything what is normally in doc/lib goes into the installation folder, with the exception of the include folder.

I suppose, this is done to work as bundled package.

Anyway, great fix.

Thanks for all, Harald


apnadkarni added on 2025-05-20 05:28:00:
Fixed in [761808a5e8].

Harald, please verify for your case.

apnadkarni added on 2025-05-18 15:53:58:
Proposed fix in branch apn-bug-3335120320.