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