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