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