mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-28 10:46:33 +08:00
Tools to ease nuttx config maintenance (#6452)
* Added tool to restore defconfig sections after make [old|menu]config
* Use tool to restore defconfig sections after make [old|menu]config
invocation:
make px4fmu-v2_default oldconfig_px4fmu-v2
make px4fmu-v2_default menuconfig_px4fmu-v2
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "Usage: $0 <path to defconfig>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
configsdir=nuttx-configs
|
||||||
|
defconf=$1
|
||||||
|
configsrc=$configsdir${defconf##*$configsdir}
|
||||||
|
|
||||||
|
if [ ! -f $defconf ]
|
||||||
|
then
|
||||||
|
echo "$defconf does not exist"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
lastconf=$defconf.last
|
||||||
|
chunk=$defconf.chunk
|
||||||
|
|
||||||
|
echo $configsrc
|
||||||
|
git show HEAD:$configsrc > $lastconf
|
||||||
|
|
||||||
|
lead='^# Board Selection$'
|
||||||
|
tail='^# Common Board Options$'
|
||||||
|
|
||||||
|
cat $lastconf | sed -n "/$lead/,/$tail/p" | sed '1d;$d' > $chunk
|
||||||
|
|
||||||
|
echo "Fix up Board Selection"
|
||||||
|
sed -i -e "/$lead/,/$tail/{ /$lead/{p; r $chunk
|
||||||
|
}; /$tail/p; d }" $defconf
|
||||||
|
|
||||||
|
|
||||||
|
if grep --quiet CONFIG_START_YEAR $lastconf ; then
|
||||||
|
lead='^CONFIG_START_YEAR='
|
||||||
|
tail='^CONFIG_START_DAY='
|
||||||
|
cat $lastconf | sed -n "/$lead/,/$tail/p" > $chunk
|
||||||
|
lead='^# Clocks and Timers$'
|
||||||
|
echo "Fix up Clocks and Timers"
|
||||||
|
sed -i -e "/$lead/{N;{r $chunk
|
||||||
|
}}" $defconf
|
||||||
|
else
|
||||||
|
echo not found
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm $lastconf
|
||||||
|
rm $chunk
|
||||||
@@ -304,14 +304,23 @@ function(px4_nuttx_add_export)
|
|||||||
WORKING_DIRECTORY ${PX4_BINARY_DIR}
|
WORKING_DIRECTORY ${PX4_BINARY_DIR}
|
||||||
COMMENT "Configuring NuttX for ${CONFIG} with ${config_nuttx_config}")
|
COMMENT "Configuring NuttX for ${CONFIG} with ${config_nuttx_config}")
|
||||||
|
|
||||||
# manual reconfigure helper
|
# manual reconfigure helpers
|
||||||
add_custom_target(reconfigure_nuttx_${CONFIG}
|
add_custom_target(oldconfig_${CONFIG}
|
||||||
COMMAND cd ${nuttx_src}/nuttx
|
COMMAND cd ${nuttx_src}/nuttx
|
||||||
COMMAND ${MAKE} -C ${nuttx_src}/nuttx CONFIG_ARCH_BOARD=${CONFIG} oldconfig
|
COMMAND ${MAKE} -C ${nuttx_src}/nuttx CONFIG_ARCH_BOARD=${CONFIG} oldconfig
|
||||||
|
COMMAND ${CP} ${nuttx_src}/nuttx/.config ${PX4_SOURCE_DIR}/nuttx-configs/${CONFIG}/${config_nuttx_config}/defconfig
|
||||||
|
COMMAND ${PX4_SOURCE_DIR}/Tools/nuttx_defconf_tool.sh ${PX4_SOURCE_DIR}/nuttx-configs/${CONFIG}/${config_nuttx_config}/defconfig
|
||||||
|
DEPENDS ${nuttx_src}/nuttx/.config
|
||||||
|
COMMENT "Running NuttX make oldconfig for ${CONFIG} with ${config_nuttx_config}"
|
||||||
|
USES_TERMINAL)
|
||||||
|
|
||||||
|
add_custom_target(menuconfig_${CONFIG}
|
||||||
|
COMMAND cd ${nuttx_src}/nuttx
|
||||||
COMMAND ${MAKE} -C ${nuttx_src}/nuttx CONFIG_ARCH_BOARD=${CONFIG} menuconfig
|
COMMAND ${MAKE} -C ${nuttx_src}/nuttx CONFIG_ARCH_BOARD=${CONFIG} menuconfig
|
||||||
COMMAND ${CP} ${nuttx_src}/nuttx/.config ${PX4_SOURCE_DIR}/nuttx-configs/${CONFIG}/${config_nuttx_config}/defconfig
|
COMMAND ${CP} ${nuttx_src}/nuttx/.config ${PX4_SOURCE_DIR}/nuttx-configs/${CONFIG}/${config_nuttx_config}/defconfig
|
||||||
|
COMMAND ${PX4_SOURCE_DIR}/Tools/nuttx_defconf_tool.sh ${PX4_SOURCE_DIR}/nuttx-configs/${CONFIG}/${config_nuttx_config}/defconfig
|
||||||
DEPENDS ${nuttx_src}/nuttx/.config
|
DEPENDS ${nuttx_src}/nuttx/.config
|
||||||
COMMENT "Reconfiguring NuttX for ${CONFIG} with ${config_nuttx_config}"
|
COMMENT "Running NuttX make menuconfig for ${CONFIG} with ${config_nuttx_config}"
|
||||||
USES_TERMINAL)
|
USES_TERMINAL)
|
||||||
|
|
||||||
# build and export
|
# build and export
|
||||||
|
|||||||
Reference in New Issue
Block a user