Webstack reviewers, I'm part of the MySQL build team and worked with Sunanda on this issue. I will try explain what this change is about.
Those "sleep" commands could likely be removed. The reason they are there is that I have seen "sleep" used to make time stamps "differ a bit more" in other build setups, not to trigger a make rule, needed when distributing source that are to build on many different operating systems and "make" command incarnations. If those "sleep" statements are a problem, feel free to remove them. In the case of Solaris I doubt they are needed. As you know, GNU autotools is a "generator". A developer runs those tools, the one creating the source TAR to distribute runs it, but those using that source TAR just to build from source doesn't run GNU autotools. They run the pre-created "configure" script and use the generated "Makefile.in" and other pre-generated files. The reason for the time stamps being needed is that in the webstack build a large patch for adding dtrace support is applied. The patch was created by someone working in a MySQL Bazaar repository tree, the source you use is a released source TAR. The developer creating the patch naturally runs GNU autotools himself and the time stamps on files ends up being different that the same generated files in the source TAR. And as it happens, after applying the dtrace patch time stamps has changed in a way that some rule in "Makefile", derived from the "automake" pre-created "Makefile.in", is triggered that try rerun GNU autotools, and looks for the versions used when the source TAR was created. For a developer these extra rules to rerun different GNU autotools are great, if doing changes in "configure.in", "Makefile.am" or other input to any of the GNU autotools, the tools are automatically rerun. Saves you from the mistake of not manually rerunning the tools, wondering why your change "didn't take". I guess you all have been there, loosing time on such simple mistakes. So the sequence of "touch" commands I found out by examining the make rules in the "Makefile.in" files. And the order of course comes from what file is input to what GNU auto tool and generates what other file. So it is not just about the generated "configure" script, but also the generated "Makefile.in" files and other files that is input to, and generated from, GNU autotools. Note that some files generated by one of the GNU autotools might be input to some other GNU autotool, that is why the exact sequence is important when we "touch" files to avoid any rerun. I hope this made it clearer. I definitely don't mind if you remove the "sleep" commands. I would not dare as I would fear other build "glitches" from removing them, but if you know for sure that "touch foo; touch bar" would *never* create the same time stamp on those from GNU make's perspective on Solaris, please remove them. I'm pretty sure no "sleep" commands are needed, only left them there as I had other more important and urgent tasks to do than digging deeper into this. I'm pretty sure that it was only with Cygwin running on some old windows version it was really needed, that had a one second time resolution, but to remove the "sleep" commands I had to spend more time on making sure. The "touch" commands need to stay, unless you demand the guy producing this patch to do it in a very different way, causing delay and lots of work for him. I don't know enough about what the patch is really changing, so I would not know if possible to create a "clean small patch" that doesn't touch the files generated by GNU autotools, to avoid a retrigger of GNU autotools. I would prefer you moved to a MySQL version that *does* contain dtrace support, but that is just wishful thinking... :) kent -- Kent Boortz, Senior Production Engineer Sun Microsystems Inc., the MySQL team Office: +46 863 11 363 Mobile: +46 70 279 11 71