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