[U-Boot] [PATCHv2] qts-filter.sh: strip DOS line endings and handle continuation lines

Some Altera Quartus generated files have long lines that are split with a '' at the end of the line. It also wOn Windows, rites files in DOS format, which can confuse some of the processing scripts in this file. This patch solves both issues.
Signed-off-by: Bill Randle bill.randle@gmail.com Cc: Marek Vasut marex@denx.de --- v2: encapsulate new sed calls into a helper function
arch/arm/mach-socfpga/qts-filter.sh | 47 +++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/arch/arm/mach-socfpga/qts-filter.sh b/arch/arm/mach-socfpga/qts-filter.sh index 050d6ba..e492a11 100755 --- a/arch/arm/mach-socfpga/qts-filter.sh +++ b/arch/arm/mach-socfpga/qts-filter.sh @@ -1,6 +1,14 @@ #!/bin/sh
# +# helper function to convert from DOS to Unix, if necessary, and handle +# lines ending in ''. +# +fix_newlines_in_macros() { + sed -n ':next;s/\r$//;/[^\]\$/ {N;s/\\n//;b next};p' $1 +} + +# # Process iocsr_config_*.[ch] # $1: SoC type # $2: Input handoff directory @@ -27,14 +35,16 @@ process_iocsr_config() { EOF
# Retrieve the scan chain lengths - grep 'CONFIG_HPS_IOCSR_SCANCHAIN[0-9]+_LENGTH' \ - ${in_bsp_dir}/generated/iocsr_config_${soc}.h | tr -d "()" + fix_newlines_in_macros \ + ${in_bsp_dir}/generated/iocsr_config_${soc}.h | + grep 'CONFIG_HPS_IOCSR_SCANCHAIN[0-9]+_LENGTH' | tr -d "()"
echo ""
# Retrieve the scan chain config and zap the ad-hoc length encoding - sed -n '/^const/ !b; :next {/^const/ s/(.*)//;p;n;b next}' \ - ${in_bsp_dir}/generated/iocsr_config_${soc}.c + fix_newlines_in_macros \ + ${in_bsp_dir}/generated/iocsr_config_${soc}.c | + sed -n '/^const/ !b; :next {/^const/ s/(.*)//;p;n;b next}'
cat << EOF
@@ -69,8 +79,9 @@ process_pinmux_config() { EOF
# Retrieve the pinmux config and zap the ad-hoc length encoding - sed -n '/^unsigned/ !b; :next {/^unsigned/ {s/[.*]/[]/;s/unsigned long/const u8/};p;n;b next}' \ - ${in_bsp_dir}/generated/pinmux_config_${soc}.c + fix_newlines_in_macros \ + ${in_bsp_dir}/generated/pinmux_config_${soc}.c | + sed -n '/^unsigned/ !b; :next {/^unsigned/ {s/[.*]/[]/;s/unsigned long/const u8/};p;n;b next}'
cat << EOF
@@ -105,8 +116,9 @@ process_pll_config() { EOF
# Retrieve the pll config and zap parenthesis - sed -n '/CONFIG_HPS/ !b; :next {/CONFIG_HPS/ s/[()]//g;/endif/ b;p;n;b next}' \ - ${in_bsp_dir}/generated/pll_config.h + fix_newlines_in_macros \ + ${in_bsp_dir}/generated/pll_config.h | + sed -n '/CONFIG_HPS/ !b; :next {/CONFIG_HPS/ s/[()]//g;/endif/ b;p;n;b next}'
cat << EOF
@@ -149,32 +161,37 @@ EOF
echo "/* SDRAM configuration */" # Retrieve the sdram config, zap broken lines and zap parenthesis - sed -n "/\\$/ {N;s/ \\\n/\t/};p" \ + fix_newlines_in_macros \ ${in_bsp_dir}/generated/sdram/sdram_config.h | + sed -n "/\\$/ {N;s/ \\\n/\t/};p" | sed -n '/CONFIG_HPS/ !b; :next {/CONFIG_HPS/ s/[()]//g;/endif/ b;p;n;b next}' | sort -u | grep_sdram_config
echo "" echo "/* Sequencer auto configuration */" - sed -n "/__RW_MGR/ {s/__//;s/ +([^ ]+)$/\t\1/p}" \ + fix_newlines_in_macros \ ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto.h | + sed -n "/__RW_MGR/ {s/__//;s/ +([^ ]+)$/\t\1/p}" | sort -u | grep_sdram_config
echo "" echo "/* Sequencer defines configuration */" - sed -n "/^#define [^_]/ {s/__//;s/ +([^ ]+)$/\t\1/p}" \ + fix_newlines_in_macros \ ${in_qts_dir}/hps_isw_handoff/*/sequencer_defines.h | + sed -n "/^#define [^_]/ {s/__//;s/ +([^ ]+)$/\t\1/p}" | sort -u | grep_sdram_config
echo "" echo "/* Sequencer ac_rom_init configuration */" - sed -n '/^const.*[/ !b; :next {/^const.*[/ {N;s/\n//;s/alt_u32/u32/;s/[.*]/[]/};/endif/ b;p;n;b next}'\ - ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto_ac_init.c + fix_newlines_in_macros \ + ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto_ac_init.c | + sed -n '/^const.*[/ !b; :next {/^const.*[/ {N;s/\n//;s/alt_u32/u32/;s/[.*]/[]/};/endif/ b;p;n;b next}'
echo "" echo "/* Sequencer inst_rom_init configuration */" - sed -n '/^const.*[/ !b; :next {/^const.*[/ {N;s/\n//;s/alt_u32/u32/;s/[.*]/[]/};/endif/ b;p;n;b next}'\ - ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto_inst_init.c + fix_newlines_in_macros \ + ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto_inst_init.c | + sed -n '/^const.*[/ !b; :next {/^const.*[/ {N;s/\n//;s/alt_u32/u32/;s/[.*]/[]/};/endif/ b;p;n;b next}'
cat << EOF

On 11/19/2016 05:23 AM, Bill Randle wrote:
Some Altera Quartus generated files have long lines that are split with a '' at the end of the line. It also wOn Windows, rites files in DOS format, which can confuse some of the processing scripts in this file. This patch solves both issues.
Signed-off-by: Bill Randle bill.randle@gmail.com Cc: Marek Vasut marex@denx.de
v2: encapsulate new sed calls into a helper function
Applied, thanks
participants (2)
-
Bill Randle
-
Marek Vasut