# # asm-offsets adapted from the kernel, see # Kbuild # scripts/Kbuild.include # scripts/Makefile.build # # Authors: Andrew Jones # define sed-y 's:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:; \ /^->/{s:->#\(.*\):/* \1 */:; \ s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ s:->::; p;}' endef define asm_offset_name $(shell echo $(notdir $(1)) | tr [:lower:]- [:upper:]_) endef define make_asm_offsets (set -e; \ echo "#ifndef __$(strip $(asm_offset_name))_H__"; \ echo "#define __$(strip $(asm_offset_name))_H__"; \ echo "/*"; \ echo " * Generated file. DO NOT MODIFY."; \ echo " *"; \ echo " */"; \ echo ""; \ sed -ne $(sed-y) $<; \ echo ""; \ echo "#endif" ) > $@ endef define gen_asm_offsets_rules $(1).s: $(1).c $(CC) $(CFLAGS) -fverbose-asm -S -o $$@ $$< $(1).h: $(1).s $$(call make_asm_offsets,$(1)) cp -f $$@ lib/generated/ endef $(foreach o,$(asm-offsets),$(eval $(call gen_asm_offsets_rules, $(o:.h=)))) OBJDIRS += lib/generated asm_offsets_clean: $(RM) $(asm-offsets) $(asm-offsets:.h=.s) \ $(addprefix lib/generated/,$(notdir $(asm-offsets)))