1d3aacb4fSAndrew Jones# 2d3aacb4fSAndrew Jones# asm-offsets adapted from the kernel, see 3d3aacb4fSAndrew Jones# Kbuild 4d3aacb4fSAndrew Jones# scripts/Kbuild.include 5d3aacb4fSAndrew Jones# scripts/Makefile.build 6d3aacb4fSAndrew Jones# 7d3aacb4fSAndrew Jones# Authors: Andrew Jones <drjones@redhat.com> 8d3aacb4fSAndrew Jones# 9d3aacb4fSAndrew Jones 10d3aacb4fSAndrew Jonesdefine sed-y 11d3aacb4fSAndrew Jones "/^->/{s:->#\(.*\):/* \1 */:; \ 12d3aacb4fSAndrew Jones s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ 13d3aacb4fSAndrew Jones s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ 14d3aacb4fSAndrew Jones s:->::; p;}" 15d3aacb4fSAndrew Jonesendef 16d3aacb4fSAndrew Jones 17d3aacb4fSAndrew Jonesdefine make_asm_offsets 18d3aacb4fSAndrew Jones (set -e; \ 19d3aacb4fSAndrew Jones echo "#ifndef __ASM_OFFSETS_H__"; \ 20d3aacb4fSAndrew Jones echo "#define __ASM_OFFSETS_H__"; \ 21d3aacb4fSAndrew Jones echo "/*"; \ 22d3aacb4fSAndrew Jones echo " * Generated file. DO NOT MODIFY."; \ 23d3aacb4fSAndrew Jones echo " *"; \ 24d3aacb4fSAndrew Jones echo " */"; \ 25d3aacb4fSAndrew Jones echo ""; \ 26d3aacb4fSAndrew Jones sed -ne $(sed-y) $<; \ 27d3aacb4fSAndrew Jones echo ""; \ 28d3aacb4fSAndrew Jones echo "#endif" ) > $@ 29d3aacb4fSAndrew Jonesendef 30d3aacb4fSAndrew Jones 31d3aacb4fSAndrew Jones$(asm-offsets:.h=.s): $(asm-offsets:.h=.c) 32d3aacb4fSAndrew Jones $(CC) $(CFLAGS) -fverbose-asm -S -o $@ $< 33d3aacb4fSAndrew Jones 34d3aacb4fSAndrew Jones$(asm-offsets): $(asm-offsets:.h=.s) 35d3aacb4fSAndrew Jones $(call make_asm_offsets) 36*4a18bde1SAlex Bennée cp -f $(asm-offsets) lib/generated/ 37*4a18bde1SAlex Bennée 38*4a18bde1SAlex BennéeOBJDIRS += lib/generated 39d3aacb4fSAndrew Jones 40d3aacb4fSAndrew Jonesasm_offsets_clean: 41d3aacb4fSAndrew Jones $(RM) $(asm-offsets) $(asm-offsets:.h=.s) \ 42d3aacb4fSAndrew Jones $(addprefix lib/generated/,$(notdir $(asm-offsets))) 43d3aacb4fSAndrew Jones 44