]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
qts-filter.sh: strip DOS line endings and handle continuation lines
authorBill Randle <bill.randle@gmail.com>
Sat, 19 Nov 2016 04:23:33 +0000 (20:23 -0800)
committerMarek Vasut <marex@denx.de>
Tue, 6 Dec 2016 00:45:57 +0000 (01:45 +0100)
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>
arch/arm/mach-socfpga/qts-filter.sh

index 1148a713113748f32f8c2d93d216a4974b1769e1..785a0d5ea21769a4e0de1903ff3ffd0f54c70bb2 100755 (executable)
@@ -1,5 +1,13 @@
 #!/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
@@ -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