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 11*132f6f18SThomas Huth 's:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:; \ 12*132f6f18SThomas Huth /^->/{s:->#\(.*\):/* \1 */:; \ 13d3aacb4fSAndrew Jones s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ 14d3aacb4fSAndrew Jones s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ 15*132f6f18SThomas Huth s:->::; p;}' 16d3aacb4fSAndrew Jonesendef 17d3aacb4fSAndrew Jones 18d3aacb4fSAndrew Jonesdefine make_asm_offsets 19d3aacb4fSAndrew Jones (set -e; \ 20d3aacb4fSAndrew Jones echo "#ifndef __ASM_OFFSETS_H__"; \ 21d3aacb4fSAndrew Jones echo "#define __ASM_OFFSETS_H__"; \ 22d3aacb4fSAndrew Jones echo "/*"; \ 23d3aacb4fSAndrew Jones echo " * Generated file. DO NOT MODIFY."; \ 24d3aacb4fSAndrew Jones echo " *"; \ 25d3aacb4fSAndrew Jones echo " */"; \ 26d3aacb4fSAndrew Jones echo ""; \ 27d3aacb4fSAndrew Jones sed -ne $(sed-y) $<; \ 28d3aacb4fSAndrew Jones echo ""; \ 29d3aacb4fSAndrew Jones echo "#endif" ) > $@ 30d3aacb4fSAndrew Jonesendef 31d3aacb4fSAndrew Jones 32d3aacb4fSAndrew Jones$(asm-offsets:.h=.s): $(asm-offsets:.h=.c) 33d3aacb4fSAndrew Jones $(CC) $(CFLAGS) -fverbose-asm -S -o $@ $< 34d3aacb4fSAndrew Jones 35d3aacb4fSAndrew Jones$(asm-offsets): $(asm-offsets:.h=.s) 36d3aacb4fSAndrew Jones $(call make_asm_offsets) 374a18bde1SAlex Bennée cp -f $(asm-offsets) lib/generated/ 384a18bde1SAlex Bennée 394a18bde1SAlex BennéeOBJDIRS += lib/generated 40d3aacb4fSAndrew Jones 41d3aacb4fSAndrew Jonesasm_offsets_clean: 42d3aacb4fSAndrew Jones $(RM) $(asm-offsets) $(asm-offsets:.h=.s) \ 43d3aacb4fSAndrew Jones $(addprefix lib/generated/,$(notdir $(asm-offsets))) 44d3aacb4fSAndrew Jones 45