xref: /kvm-unit-tests/scripts/asm-offsets.mak (revision 132f6f18c3dadce78702704f402679cdcdce944d)
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