Largely redundant code is used in different places to generate C headers from offset information extracted from assembly language output. Consolidate the code in Makefile.lib and use this instead.
Showing the changes to scripts (2 of 4 files). Show all
Unified · Split
| @@ -408,3 +408,31 @@ quiet_cmd_xzmisc = XZMISC $@ · 407 unmodified lines | ||
| 408 | 408 | cmd_xzmisc = (cat $(filter-out FORCE,$^) | \ |
| 409 | 409 | xz --check=crc32 --lzma2=dict=1MiB) > $@ || \ |
| 410 | 410 | (rm -f $@ ; false) |
| 411 | + | |
| 412 | +# ASM offsets | |
| 413 | +# --------------------------------------------------------------------------- | |
| 414 | + | |
| 415 | +# Default sed regexp - multiline due to syntax constraints | |
| 416 | +define sed-offsets | |
| 417 | + "/^->/{s:->#\(.*\):/* \1 */:; \ | |
| 418 | + s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ | |
| 419 | + s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ | |
| 420 | + s:->::; p;}" | |
| 421 | +endef | |
| 422 | + | |
| 423 | +# Use filechk to avoid rebuilds when a header changes, but the resulting file | |
| 424 | +# does not | |
| 425 | +define filechk_offsets | |
| 426 | + (set -e; \ | |
| 427 | + echo "#ifndef $2"; \ | |
| 428 | + echo "#define $2"; \ | |
| 429 | + echo "/*"; \ | |
| 430 | + echo " * DO NOT MODIFY."; \ | |
| 431 | + echo " *"; \ | |
| 432 | + echo " * This file was generated by Kbuild"; \ | |
| 433 | + echo " */"; \ | |
| 434 | + echo ""; \ | |
| 435 | + sed -ne $(sed-offsets); \ | |
| 436 | + echo ""; \ | |
| 437 | + echo "#endif" ) | |
| 438 | +endef | |
| @@ -7,32 +7,8 @@ modpost-objs := modpost.o file2alias.o sumversion.o · 6 unmodified lines | ||
| 7 | 7 | |
| 8 | 8 | devicetable-offsets-file := devicetable-offsets.h |
| 9 | 9 | |
| 10 | −define sed-y | |
| 11 | − "/^->/{s:->#\(.*\):/* \1 */:; \ | |
| 12 | − s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ | |
| 13 | − s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ | |
| 14 | − s:->::; p;}" | |
| 15 | −endef | |
| 16 | − | |
| 17 | −quiet_cmd_offsets = GEN $@ | |
| 18 | −define cmd_offsets | |
| 19 | − (set -e; \ | |
| 20 | − echo "#ifndef __DEVICETABLE_OFFSETS_H__"; \ | |
| 21 | − echo "#define __DEVICETABLE_OFFSETS_H__"; \ | |
| 22 | − echo "/*"; \ | |
| 23 | − echo " * DO NOT MODIFY."; \ | |
| 24 | − echo " *"; \ | |
| 25 | − echo " * This file was generated by Kbuild"; \ | |
| 26 | − echo " *"; \ | |
| 27 | − echo " */"; \ | |
| 28 | − echo ""; \ | |
| 29 | − sed -ne $(sed-y) $<; \ | |
| 30 | − echo ""; \ | |
| 31 | − echo "#endif" ) > $@ | |
| 32 | −endef | |
| 33 | − | |
| 34 | −$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s | |
| 35 | − $(call if_changed,offsets) | |
| 10 | +$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE | |
| 11 | + $(call filechk,offsets,__DEVICETABLE_OFFSETS_H__) | |
| 36 | 12 | |
| 37 | 13 | targets += $(devicetable-offsets-file) devicetable-offsets.s |
| 38 | 14 | |