Re: Enhancement request: Watch source files for changes
Hey, Is there anyone available to give feedback on my enhancement proposal? Thanks, -- Noah Slater, http://tumbolia.org/nslater ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
Re: Enhancement request: Watch source files for changes
I'm just another make user. I like the idea - some operating systems have change notification mechanisms. One could use this for a kind of continuous integration - rebuilding files as they are changed or checked in. Putting make in an internal loop would be pointless - one might as well write the script. It would be really efficient for make to act as a kind of continuously running dependency database, where you could tell it about changes and it would recompute actions. I am not an expert on the source code but I think it is a fairly large change to try to apply to make. Regards, Tim 2009/2/4 Noah Slater nsla...@gnu.org: Hey, Is there anyone available to give feedback on my enhancement proposal? Thanks, -- Noah Slater, http://tumbolia.org/nslater ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make -- You could help some brave and decent people to have access to uncensored news by making a donation at: http://www.thezimbabwean.co.uk/ ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
Re: Enhancement request: Watch source files for changes
On Wed, Feb 04, 2009 at 03:59:45PM +, Tim Murphy wrote: I am not an expert on the source code but I think it is a fairly large change to try to apply to make. This would surprise me. Once the makefiles have been parsed and DAG has been built, GNU Make does a check of the filesystem. How hard could it be to put this last step in some kind of loop? -- Noah Slater, http://tumbolia.org/nslater ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
Re: Enhancement request: Watch source files for changes
On Wed, Feb 4, 2009 at 8:25 AM, Noah Slater nsla...@gnu.org wrote: On Wed, Feb 04, 2009 at 03:59:45PM +, Tim Murphy wrote: I am not an expert on the source code but I think it is a fairly large change to try to apply to make. This would surprise me. Once the makefiles have been parsed and DAG has been built, GNU Make does a check of the filesystem. How hard could it be to put this last step in some kind of loop? Putting the loop there would be incorrect, as then the dependency graph wouldn't be updated when stuff changes in the filesystem. (Caveat: I'm not a GNU make developer) What seemed lacking to me in your original email was an analysis of gains and losses of putting this functionality in to make. - Why is this better built in than in a shell script wrapper (which you already have!)? - What problems with the shell script version are unsolvable there but solvable when built in? - The shell script can be customized in a number of ways by simply editing it. Examples: o) changing the delay o) making the delay vary depending on whether anything was rebuilt o) triggering extra actions depending on whether anything was rebuilt o) filtering of output What's the plan for performing these customizations if this is built in? - Is there precedent to this sort of enhancement, other build or dependency tools that have done this sort of thing that could serve as a model? If this is completely a new area of design, then I would expect it to take several tries to get the behavior matching the user expectation Those are just the sort of items I would consider if this was my project; Paul and the other developers may have completely different criteria in mind, but I would be surprised if they didn't overlap some. Philip Guenther ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
Re: Enhancement request: Watch source files for changes
On Wed, 2009-02-04 at 10:24 -0800, Philip Guenther wrote: Those are just the sort of items I would consider if this was my project; Paul and the other developers may have completely different criteria in mind, but I would be surprised if they didn't overlap some. I think all of Philip's points are appropriate. To my mind the only real advantage to doing this as a built-in-to-make facility vs. just having people script it, as Noah did, is if we can work out a way to make it faster by being built in. The only way I can see that happening, realistically, is to avoid the read step and, second and subsequent times through, we would start after we've already read the makefiles and before we start trying to build the goals. However, I think this would be a lot of effort; make is not designed to be clean in that way; as far as I know there's no simple way to get back to that fresh, just read state (no Irish Spring for make internals! :-)). Make really just exits when its done and lets the system recover all its resources, rather than spending time running around freeing things etc. So offhand I think this is a lot of work for not a huge amount of gain. Anyway that's my $0.02. ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
[bug #25493] -include filename does not show correct dependency errors
URL: http://savannah.gnu.org/bugs/?25493 Summary: -include filename does not show correct dependency errors Project: make Submitted by: willard Submitted on: Wed 04 Feb 2009 09:52:12 PM GMT Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: 3.81 Operating System: None Fixed Release: None ___ Details: When using the -include filename(instead of just include filename), if this filename includes dependencies that are missing, make does not show those missing dependencies... For example, if using: -include foo.d with foo.d being: food.d foo.o: foo.c xxx.h Let's say xxx.h does not exist (and cannot be generated) , the make fails, but it does not say it's because of xxx.h missing. If instead, this is used: include foo.d then it works fine... I understand that the '-' in front of include means that THIS file 'foo.d' should not itself generate an error, but I would expect the content of foo.d to be used normally Full 1st example: - $ cat bad.mak all: foo.d foo.ooo COMPILE=gcc %.o: %.c $(COMPILE) -c $ %.d: %.c $(COMPILE) -c $ -MM -o $*.d -include foo.d foo.ooo: foo.o ld -o foo.ooo foo.o [/cygdrive/d/tstmake] $ make -f bad.mak make: *** No rule to make target `foo.d', needed by `all'. Stop. [/cygdrive/d/tstmake] $ cat good.mak all: foo.d foo.ooo COMPILE=gcc %.o: %.c $(COMPILE) -c $ %.d: %.c $(COMPILE) -c $ -MM -o $*.d include foo.d foo.ooo: foo.o ld -o foo.ooo foo.o [/cygdrive/d/tstmake] $ make -f good.mak make: *** No rule to make target `xxx.h', needed by `foo.d'. Stop. [/cygdrive/d/tstmake] $ cat foo.d foo.d foo.o: foo.c xxx.h the only difference between the 'good.mak' and 'bad.mak' is the '-' prefix on the include... See that the good.mak really displays what the problem is... whereas the bad.mak messages are not helpful. Full 2nd example: - it's the same if foo.d is not a direct target. It's even worse as make fails without ANY error message. Example2: $ cat bad2.mak all: foo.ooo COMPILE=gcc %.o: %.c $(COMPILE) -c $ %.d: %.c $(COMPILE) -c $ -MM -o $*.d -include foo.d foo.ooo: foo.o ld -o foo.ooo foo.o [/cygdrive/d/tstmake] $ make -f bad2.mak [/cygdrive/d/tstmake] $ cat makefile all: $(MAKE) -f bad2.mak [/cygdrive/d/tstmake] $ make make -f bad2.mak make: *** [all] Error 2 [/cygdrive/d/tstmake] $ cat foo.d foo.d foo.o: foo.c xxx.h See that the 'make -f bad2.mak' shows no message at all..(but going thru a makefile shows Error 2). ___ Reply to this item at: http://savannah.gnu.org/bugs/?25493 ___ Message sent via/by Savannah http://savannah.gnu.org/ ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make