#!/bin/sh -e
# usage: sysmap2dts sysmap.h dts.in depfile dts
# POSIXLY_CORRECT is required with older GNU awk to enable regex interval expressions
export POSIXLY_CORRECT=1
awk -v dts=$2 '/#define/ { s=match($3, /0x([0-9a-z]{8})UL/); if (s!=0) addr[$2]=substr($3,s+2,8); } END {
	while (getline <dts) {
		for (a in addr)
			gsub(a, addr[a]);
		print;
	}
	}' $1 >$4
echo "$4: $2 $1" >$3
