asterisk/build_tools
George Joseph 0af6b5de62 build_system: Split COMPILE_DOUBLE from DONT_OPTIMIZE
I can't ever recall actually needing the intermediate files or the checking
that a double compile produces.  What I CAN remember is every DONT_OPTIMIZE
build needing 3 invocations of gcc instead of 1 just to do the checks and
produce those intermediate files.

Having said that, Richard pointed out that the reason for the double compile
was that there were cases in the past where a submitted patch failed to compile
because the submitter never tried it with the optimizations turned on.

To get the best of both worlds, COMPILE_DOUBLE has been split into its own
option.  If DONT_OPTIMIZE is turned on, COMPILE_DOUBLE will also be selected
BUT you can then turn it off if all you need are the debugging symbols.  This
way you have to make an informed decision about disabling COMPILE_DOUBLE.

To allow COMPILE_DOUBLE to be both auto-selected and turned off, a new feature
was added to menuselect.  The <use> element can now contain an "autoselect"
attribute which will turn the used member on but not create a hard dependency.
The cflags.xml implementation for COMPILE_DOUBLE looks like this...

<member name="DONT_OPTIMIZE" displayname="Disable Optimizations ...">
	<use autoselect="yes">COMPILE_DOUBLE</use>
	<support_level>core</support_level>
</member>
<member name="COMPILE_DOUBLE" displayname="Pre-compile with ...>
	<depend>DONT_OPTIMIZE</depend>
	<support_level>core</support_level>
</member>

When DONT_OPTIMIZE is turned on, COMPILE_DOUBLE is turned on because
of the use.
When DONT_OPTIMIZE is turned off, COMPILE_DOUBLE is turned off because
of the depend.
When COMPILE_DOUBLE is turned on, DONT_OPTIMIZE is turned on because
of the depend.
When COMPILE_DOUBLE is turned off, DONT_OPTIMIZE is left as is because
it only uses COMPILE_DOUBLE, it doesn't depend on it.

I also made a few tweaks to the ncurses implementation to move things
left a bit to allow longer descriptions.

Change-Id: Id49ca930ac4b5ec4fc2d8141979ad888da7b1611
2016-03-13 15:11:39 -06:00
..
.gitignore Add .gitignore and .gitreview files 2015-04-11 19:43:43 -06:00
cflags-devmode.xml Refactor operations to access the stasis cache instead of objects directly when retrieving information. 2013-07-08 19:19:55 +00:00
cflags.xml build_system: Split COMPILE_DOUBLE from DONT_OPTIMIZE 2016-03-13 15:11:39 -06:00
embed_modules.xml Change the internal name of the menuselect options that are used to control 2011-10-14 21:37:51 +00:00
find_missing_support_level Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
get_documentation remove empty awk pattern (//) 2009-10-28 20:50:52 +00:00
get_documentation.py Add AMI event documentation 2012-06-25 17:59:34 +00:00
get_makeopts Merged revisions 139909 via svnmerge from 2008-08-25 21:32:10 +00:00
get_moduleinfo res_pjsip_dlg_options: Fix MODULEINFO section. 2015-05-02 02:22:31 -05:00
install_subst install_subst: helper script for installing with path substitution 2014-02-14 08:52:07 +00:00
make_build_h Merged revisions 260801 via svnmerge from 2010-05-04 15:49:57 +00:00
make_buildopts_h Build System: Prevent unneeded changes to asterisk/buildopts.h. 2015-04-29 04:03:00 -04:00
make_check_alembic Build System: Add support for checking alembic branches. 2016-01-21 17:15:35 -06:00
make_defaults_h Address OpenSSL initialization issues when using third-party libraries. 2012-01-30 21:21:16 +00:00
make_linker_eo_script give embedded modules a helping hand by backing up and restoring their global variables when they are loaded and unloaded 2007-02-22 02:36:00 +00:00
make_linker_version_script Clean up Makefile "warning" clutter when makeopts doesn't exist. 2013-04-08 18:24:50 +00:00
make_sample_voicemail Merged revisions 299907 via svnmerge from 2010-12-29 18:24:19 +00:00
make_version build_tools/make_version: Update version parsing for Git migration 2015-04-13 10:33:30 -05:00
make_version_c Fix cli display of build options. 2015-11-04 09:15:51 -05:00
menuselect-deps.in Build: Added testing compiler to support the system sanitizes 2016-02-10 05:40:32 +00:00
mkpkgconfig build_tools/mkpkgconfig: Fix Cflags concatenation error in asterisk.pc 2015-01-14 15:40:31 +00:00
post_process_documentation.py build_tools: Skip managerEvent combining for AMI action responses 2014-08-07 03:04:49 +00:00
prep_tarball Update prep_tarball with new documentation files on the Asterisk wiki 2013-09-18 17:23:49 +00:00
sha1sum-sh Add an sha1sum-workalike for platforms which don't have it (like Mac OS X) 2010-05-18 22:49:13 +00:00