| @@ -1,16 +1,16 @@ | | | @@ -1,16 +1,16 @@ |
1 | #!/bin/sh | | 1 | #!/bin/sh |
2 | | | 2 | |
3 | # $NetBSD: nouveau2netbsd,v 1.5 2018/08/27 00:46:21 riastradh Exp $ | | 3 | # $NetBSD: nouveau2netbsd,v 1.6 2024/04/16 14:26:53 riastradh Exp $ |
4 | # | | 4 | # |
5 | # $ /path/to/nouveau2netbsd > /path/to/files.nouveau.new | | 5 | # $ /path/to/nouveau2netbsd > /path/to/files.nouveau.new |
6 | # | | 6 | # |
7 | # Run from the top-level Nouveau source directory. This stupid kludge | | 7 | # Run from the top-level Nouveau source directory. This stupid kludge |
8 | # reinterprets the GNU makefile as a BSD makefile to extract the source | | 8 | # reinterprets the GNU makefile as a BSD makefile to extract the source |
9 | # file names, renames the ones that have obscure and/or colliding | | 9 | # file names, renames the ones that have obscure and/or colliding |
10 | # basenames to be less obscure and unlikely (though not guaranteed) to | | 10 | # basenames to be less obscure and unlikely (though not guaranteed) to |
11 | # collide, and spits out config(5) directives for all of them. | | 11 | # collide, and spits out config(5) directives for all of them. |
12 | | | 12 | |
13 | set -Ceu | | 13 | set -Ceu |
14 | | | 14 | |
15 | : ${MV:=mv} | | 15 | : ${MV:=mv} |
16 | | | 16 | |
| @@ -22,29 +22,33 @@ nouveau_flag=nouveau | | | @@ -22,29 +22,33 @@ nouveau_flag=nouveau |
22 | | | 22 | |
23 | filemap= | | 23 | filemap= |
24 | | | 24 | |
25 | clean () | | 25 | clean () |
26 | { | | 26 | { |
27 | [ -z "$filemap" ] || rm -f -- "$filemap" || : | | 27 | [ -z "$filemap" ] || rm -f -- "$filemap" || : |
28 | } | | 28 | } |
29 | trap clean EXIT HUP INT TERM | | 29 | trap clean EXIT HUP INT TERM |
30 | | | 30 | |
31 | filemap="$(mktemp -t ${0##*/})" | | 31 | filemap="$(mktemp -t ${0##*/})" |
32 | | | 32 | |
33 | cat Kbuild \ | | 33 | cat Kbuild \ |
34 | | sed -e 's,^include \(.*\)$,.include "\1",' \ | | 34 | | sed -e 's,^include \(.*\)$,.include "\1",' \ |
35 | | sed -e 's,^ifdef \(.*\)$,.if !empty(\1:M[yY][eE][sS]),' \ | | 35 | | sed -e 's,^ifdef \(.*\)$,.if !empty(\1:M[yY]),' \ |
36 | | sed -e 's,^endif$,.endif,' \ | | 36 | | sed -e 's,^endif$,.endif,' \ |
37 | | make -f /dev/stdin -V '$(nouveau-y)' src=. \ | | 37 | | env \ |
| | | 38 | env CONFIG_ACPI=y \ |
| | | 39 | env CONFIG_X86=y \ |
| | | 40 | env src=. \ |
| | | 41 | make -f /dev/stdin -V '$(nouveau-y)' \ |
38 | | tr ' ' '\n' \ | | 42 | | tr ' ' '\n' \ |
39 | | sed -e 's,^$,,' \ | | 43 | | sed -e 's,^$,,' \ |
40 | | sort -u \ | | 44 | | sort -u \ |
41 | | sed -e 's,\.o$,.c,' \ | | 45 | | sed -e 's,\.o$,.c,' \ |
42 | | awk ' | | 46 | | awk ' |
43 | BEGIN { | | 47 | BEGIN { |
44 | duplicates = 0 | | 48 | duplicates = 0 |
45 | } | | 49 | } |
46 | $1 ~ "nouveau_[^/]*$" { | | 50 | $1 ~ "nouveau_[^/]*$" { |
47 | if (seen[$1]) | | 51 | if (seen[$1]) |
48 | printf("Duplicate basename: %s\n", $1) | | 52 | printf("Duplicate basename: %s\n", $1) |
49 | seen[$1] = $1 | | 53 | seen[$1] = $1 |
50 | printf("%s %s\n", $1, $1) | | 54 | printf("%s %s\n", $1, $1) |