In http://lists.digium.com/pipermail/asterisk-dev/2007-December/031145.html,
commit2eea680f4164079957504820df8d4acb59432700
authorkpfleming <kpfleming@614ede4d-c843-0410-af14-a771ab80d22e>
Mon, 17 Dec 2007 06:44:51 +0000 (17 06:44 +0000)
committerkpfleming <kpfleming@614ede4d-c843-0410-af14-a771ab80d22e>
Mon, 17 Dec 2007 06:44:51 +0000 (17 06:44 +0000)
tree3c0af506fe3ada2a6e90a348490026520059d45f
parenta2d8c0cc0d410ba32f865b69b435538080055b81
In lists.digium.com/pipermail/asterisk-dev/2007-December/031145.html,
rizzo brought up some issues related to the way that the metadata required
for menuselect and the rest of the build system is extracted from the source
files. Since I had a few hours to kill on an airplane today, I decided to
improve this situation... so now the system caches the extracted metadata
and uses it to build the menuselect 'tree' as much as it can. The result
of this is that when a single source file is changed, only the metadata for
that file needs to be extracted again, and the rest is used from the cache
files. I also reduced the number of forked processes required to do the
metadata extraction; it was actually possible to do most of what we needed
in the Makefiles themselves without using any shell scripts at all! On my
laptop, these changes resulted in an 80% decrease in the time required
for the 'menuselect.makeopts' automatic check to occur after editing a single
source file.

While doing this work I also cleaned up a few minor things in the Makefiles,
adding a check for 'awk' to the configure script and changed all remaining
places we use 'grep' or 'awk' to use the ones found by the configure script,
and changed the 'prep_tarball' script to build the menuselect metadata so
that tarballs of Asterisk will include it and won't require the user to
wait while it is extracted after unpacking.

git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@93180 614ede4d-c843-0410-af14-a771ab80d22e
17 files changed:
Makefile
Makefile.moddir_rules
apps/Makefile
build_tools/make_version
build_tools/prep_moduledeps [deleted file]
build_tools/prep_tarball
cdr/Makefile
channels/Makefile
codecs/Makefile
configure
configure.ac
formats/Makefile
funcs/Makefile
include/asterisk/autoconfig.h.in
makeopts.in
pbx/Makefile
res/Makefile