Home | History | Annotate | Line # | Download | only in amdgpu
amdgpu2netbsd revision 1.2
      1  1.1  riastrad #!/bin/sh
      2  1.1  riastrad 
      3  1.1  riastrad #	$NetBSD: amdgpu2netbsd,v 1.2 2018/08/27 14:10:42 riastradh Exp $
      4  1.1  riastrad #
      5  1.1  riastrad # $ /path/to/amdgpu2netbsd > /path/to/files.amdgpu.new
      6  1.1  riastrad #
      7  1.2  riastrad # Run from the top-level dist/amd/amdgpu source directory, ideally
      8  1.2  riastrad # before import.
      9  1.1  riastrad 
     10  1.1  riastrad set -Ceu
     11  1.1  riastrad 
     12  1.2  riastrad : ${MV:=mv}
     13  1.2  riastrad 
     14  1.2  riastrad # Location of amdgpu sources relative to $NETBSDSOURCEDIR.
     15  1.1  riastrad amdgpu_top=external/bsd/drm2/dist/drm/amd/amdgpu
     16  1.1  riastrad 
     17  1.1  riastrad # config(5) flag for the amdgpu driver.
     18  1.1  riastrad amdgpu_flag=amdgpu
     19  1.1  riastrad 
     20  1.1  riastrad env CONFIG_ACPI=y \
     21  1.1  riastrad env src=. \
     22  1.1  riastrad make -f Makefile -V '$(amdgpu-y)' \
     23  1.1  riastrad | tr ' ' '\n' \
     24  1.1  riastrad | grep -v '^$' \
     25  1.1  riastrad | sed -e 's,\.o$,.c,' \
     26  1.1  riastrad | sort -u \
     27  1.2  riastrad | awk '
     28  1.2  riastrad 	BEGIN {
     29  1.2  riastrad 		duplicates = 0
     30  1.2  riastrad 	}
     31  1.2  riastrad 	{
     32  1.2  riastrad 		if (index($1, "/")) {
     33  1.2  riastrad 			dir = $1
     34  1.2  riastrad 			sub("/[^/]*$", "/", dir)
     35  1.2  riastrad 			base = $1
     36  1.2  riastrad 			sub("^.*/", "", base)
     37  1.2  riastrad 		} else {
     38  1.2  riastrad 			dir = ""
     39  1.2  riastrad 			base = $1
     40  1.2  riastrad 		}
     41  1.2  riastrad 		fqbase = (base ~ "^amdgpu_" ? "" : "amdgpu_") base
     42  1.2  riastrad 		if (seen[fqbase]) {
     43  1.2  riastrad 			printf("Duplicate basename: %s %s\n", fqbase,
     44  1.2  riastrad 			    seen[fqbase]) >"/dev/stderr"
     45  1.2  riastrad 			duplicates = 1
     46  1.2  riastrad 		}
     47  1.2  riastrad 		if (duplicates)
     48  1.2  riastrad 			next
     49  1.2  riastrad 		printf("%s %s\n", $1, dir fqbase)
     50  1.2  riastrad 	}
     51  1.2  riastrad 	END {
     52  1.2  riastrad 		if (duplicates) {
     53  1.2  riastrad 			printf("Time to rewite me!\n") > "/dev/stderr"
     54  1.2  riastrad 			exit 1
     55  1.2  riastrad 		}
     56  1.2  riastrad 	}
     57  1.2  riastrad ' \
     58  1.2  riastrad | while read from to; do
     59  1.2  riastrad 	if [ "x$from" != "x$to" ]; then
     60  1.2  riastrad 		${MV} -f -- "$from" "$to"
     61  1.2  riastrad 	fi
     62  1.2  riastrad 	printf 'file\t%s\t%s\n' "$amdgpu_top/$to" "$amdgpu_flag"
     63  1.2  riastrad done \
     64  1.2  riastrad | sort -u
     65