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