If a build for Gdk or Qt is started with flex, bison, or gperf unavailable, the build will fail with non-obvious error messages even after those tools are later installed.
Created attachment 16309 [details] Proposed fix Attached a proposed fix for this bug, requesting review.
Comment on attachment 16309 [details] Proposed fix >+ } elsif (isGdk() or isQt()) { >+ my @cmds = qw(flex bison gperf); >+ foreach my $cmd (@cmds) { >+ if (not `$cmd --version`) { >+ die ((join ", ", @cmds) . " required to build WebKit.\n"); >+ } >+ } > } Thanks for taking the time to file a bug and create a patch! This looks good, but I'd like to see the code changed to test for all three commands and report only the ones that are missing. For example if flex and bison are installed but not gperf, the developer gets a message about all three being required to build instead of a message about "gperf" missing.
Created attachment 16317 [details] Updated fix Actually the initial patch prints an error message for the first command that can't be executed, followed by the message about the list of all required commands. But why not take one more step towards usability indeed. I've updated the patch according to the feedback, requesting a new review. Example output: ~/svn/WebKit$ WebKitTools/Scripts/build-webkit --gdk Can't exec "flex": No such file or directory at /home/tuukka/svn/WebKit/WebKitTools/Scripts/webkitdirs.pm line 497. Can't exec "gperf": No such file or directory at /home/tuukka/svn/WebKit/WebKitTools/Scripts/webkitdirs.pm line 497. flex, gperf missing but required to build WebKit. ~/svn/WebKit$
Comment on attachment 16317 [details] Updated fix Looks good! r=me
Committed revision 25639. Added "ERROR: " to the die() statement to make it clearer that this is an error.