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