Ticket UUID: | 465874 | |||
Title: | Don't run genstubs from `make all` | |||
Type: | Patch | Version: | None | |
Submitter: | mdejong | Created on: | 2001-09-28 01:10:01 | |
Subsystem: | 53. Configure and Build Tools | Assigned To: | mdejong | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2002-07-17 06:13:59 | |
Resolution: | Fixed | Closed By: | mdejong | |
Closed on: | 2002-07-16 23:13:59 | |||
Description: |
Here is an example of the sort of build error people are seeing. tclsh ./../tools/genStubs.tcl ./../generic \ ./../generic/tcl.decls ./../generic/tclInt.decls sh: tclsh: not found. *** Error exit code 127 This is caused by the tclStubInit.c dep in Makefile.in. Instead of running the equiv of genstubs automatically, we should just print a message telling the user it needs to be done. The attached patch implements this change. | |||
User Comments: |
mdejong added on 2002-07-17 06:13:59:
Logged In: YES user_id=90858 I changed the output to be much more descriptive. Warning: tclStubInit.c may be out of date. Developers may want to run "make genstubs" to regenerate. This warning can be safely ignored, do not report as a bug! If folks still complain after this, I give up. mdejong added on 2002-07-03 02:01:17: Logged In: YES user_id=90858 I don't think printing the warning only when a CVS subdir exists makes sense. Perhaps we could improve the warning message or find out why the timestamps are wrong and fix that. dgp added on 2002-06-28 00:07:26: Logged In: YES user_id=80530 Re-opening. As I predicted, we're getting reports from early beta testers in the Tcl'ers chat about the error message telling them they need to `make genstubs` when in fact they do not. This is just a quirk of what files get written first when the tarball is unpacked. We came up with a possible alternative in the chat. Can the tclStubInit.c target be revised so that it only prints out its warning message if there is a subdirectory of $(GENERIC_DIR) named "CVS". Then the warning will be limited to environments that (look like) CVS sandboxes where they are acutally useful, and suppressed for end users where they only add confusion. mdejong added on 2001-11-08 10:47:00: Logged In: YES user_id=90858 Committed patch on 2001-11-07. I don't buy the argument that core developers need this done automatically. This patch will simply print a warning in the case where changes have been made. It does not hurt and in fact helps those folks that can't build at all because of out of date files. Commenting out build rules seems like a huge hack, but we might want to investigate adding --enable-maintainer-mode features to the Tcl build process in the future. dgp added on 2001-09-28 08:51:08: Logged In: YES user_id=80530 This patch is effective, but I think I'd prefer just commenting out the tclStubInit.c target. If the tclStubInit.c target is kept, but commented out, then core developers can simply uncomment it, and get the useful function of automatically keeping their code up to date with changes in the *.decls files. For end-users, commenting it out makes it completely silent about the timestamps of *.decls files being younger than other files in a fresh unpack. In contrast, if we accept the attached patch, then core developers will have to build 'make genstubs' by hand when prompted, rather than having the option of getting that done automatically. Also, although end-users will not have their builds interrupted by an error, attentive end users will see what looks like an error or warning message, and we'll get reports about that. If they interrupt the build to follow the instruction ('make genstubs') it will fail for the same reason it automatically fails now. Either option is an improvement to what we have, so I'll accept whatever Mo wants to do. dgp added on 2001-09-28 08:35:00: Logged In: YES user_id=80530 See Tcl Bugs 420501, 423988, 444308, 464874. mdejong added on 2001-09-28 08:10:01: File Added - 11307: genstub.patch |
Attachments:
- genstub.patch [download] added by mdejong on 2001-09-28 08:10:01. [details]