Build System: Prevent unneeded changes to asterisk/buildopts.h.

* Add AST_DEVMODE to BUILDOPTS
* Remove CFLAGS that do not effect ABI from BUILDOPTS.
* Use BUILDOPTS to generate AST_BUILDOPT_SUM.
* Remove loop that defined AST_MODULE_*

These changes ensure that only ABI effecting options are considered for
AST_BUILDOPT_SUM.  This also reduces unneeded full system rebuilds caused
by enabling or disabling one module that another is dependent on.

ASTERISK-25028 #close
Reported by: Corey Farrell

Change-Id: I2c516d93df9f6aaa09ae079a8168c887a6ff93a2
This commit is contained in:
Corey Farrell 2015-04-29 04:03:00 -04:00
parent 50d8aea753
commit ce86340403

View file

@ -7,27 +7,37 @@ cat << END
*/
END
if ${GREP} "AST_DEVMODE" makeopts | ${GREP} -q "yes"
then
echo "#define AST_DEVMODE 1"
BUILDOPTS="AST_DEVMODE"
fi
TMP=`${GREP} -e "^MENUSELECT_CFLAGS" menuselect.makeopts | sed 's/MENUSELECT_CFLAGS\=//g' | sed 's/-D//g'`
for x in ${TMP}; do
echo "#define ${x} 1"
if test "${x}" = "DONT_OPTIMIZE" \
-o "${x}" = "BETTER_BACKTRACES" \
-o "${x}" = "LOTS_OF_SPANS" \
-o "${x}" = "BUILD_NATIVE" \
-o "${x}" = "AO2_DEBUG" \
-o "${x}" = "REBUILD_PARSERS" \
-o "${x}" = "RADIO_RELAX" \
-o "${x}" = "DEBUG_SCHEDULER" \
-o "${x}" = "DETECT_DEADLOCKS" \
-o "${x}" = "DUMP_SCHEDULER" ; then
# These aren't ABI affecting options, keep them out of AST_BUILDOPTS
continue
fi
if test "x${BUILDOPTS}" != "x" ; then
BUILDOPTS="${BUILDOPTS}, ${x}"
else
BUILDOPTS="${x}"
fi
done
TMP=`${GREP} -e "^MENUSELECT_BUILD_DEPS" menuselect.makeopts | sed 's/MENUSELECT_BUILD_DEPS\=//g'`
for x in ${TMP}; do
x2=`echo ${x} | tr a-z A-Z`
echo "#define AST_MODULE_${x2} 1"
done
if ${GREP} "AST_DEVMODE" makeopts | ${GREP} -q "yes"
then
echo "#define AST_DEVMODE 1"
TMP="${TMP} AST_DEVMODE"
fi
BUILDSUM=`echo ${TMP} | ${MD5} | cut -c1-32`
BUILDSUM=`echo ${BUILDOPTS} | ${MD5} | cut -c1-32`
echo "#define AST_BUILDOPT_SUM \"${BUILDSUM}\""
echo "#define AST_BUILDOPTS \"${BUILDOPTS}\""