1 1.1 riastrad #!/bin/sh 2 1.1 riastrad 3 1.5 riastrad # $NetBSD: amdgpu2netbsd,v 1.5 2024/07/02 20:08:51 riastradh Exp $ 4 1.1 riastrad # 5 1.1 riastrad # $ /path/to/amdgpu2netbsd > /path/to/files.amdgpu.new 6 1.1 riastrad # 7 1.5 riastrad # Run from the top-level dist/drm/amd/amdgpu source directory, ideally 8 1.2 riastrad # before import. 9 1.1 riastrad 10 1.1 riastrad set -Ceu 11 1.1 riastrad 12 1.4 riastrad : ${GMAKE:=gmake} 13 1.2 riastrad : ${MV:=mv} 14 1.2 riastrad 15 1.2 riastrad # Location of amdgpu sources relative to $NETBSDSOURCEDIR. 16 1.1 riastrad amdgpu_top=external/bsd/drm2/dist/drm/amd/amdgpu 17 1.1 riastrad 18 1.1 riastrad # config(5) flag for the amdgpu driver. 19 1.1 riastrad amdgpu_flag=amdgpu 20 1.1 riastrad 21 1.4 riastrad { 22 1.4 riastrad printf 'show-amdgpu-y:\n' 23 1.4 riastrad printf '\t@echo $(amdgpu-y)\n' 24 1.4 riastrad printf 'include Makefile\n' 25 1.4 riastrad } | env \ 26 1.4 riastrad env CONFIG_ACPI=y \ 27 1.5 riastrad env CONFIG_COMPAT=y \ 28 1.4 riastrad env CONFIG_DRM_AMDGPU=y \ 29 1.4 riastrad env CONFIG_DRM_AMDGPU_CIK=y \ 30 1.4 riastrad env CONFIG_DRM_AMDGPU_SI=y \ 31 1.4 riastrad env CONFIG_DRM_AMD_ACP=y \ 32 1.4 riastrad env CONFIG_DRM_AMD_DC=y \ 33 1.5 riastrad env CONFIG_DRM_AMD_DC_FP=y \ 34 1.4 riastrad env CONFIG_DRM_AMD_DC_HDCP=y \ 35 1.5 riastrad env CONFIG_DRM_AMD_DC_SI=y \ 36 1.5 riastrad env CONFIG_HMM_MIRROR=y \ 37 1.5 riastrad env CONFIG_HSA_AMD=y \ 38 1.5 riastrad env CONFIG_HSA_AMD_SVM=y \ 39 1.5 riastrad env CONFIG_PERF_EVENTS=y \ 40 1.5 riastrad env CONFIG_VGA_SWITCHEROO=y \ 41 1.4 riastrad env srctree="`pwd`" \ 42 1.4 riastrad env src=. \ 43 1.4 riastrad ${GMAKE} -f - -s show-amdgpu-y \ 44 1.1 riastrad | tr ' ' '\n' \ 45 1.1 riastrad | grep -v '^$' \ 46 1.1 riastrad | sed -e 's,\.o$,.c,' \ 47 1.1 riastrad | sort -u \ 48 1.2 riastrad | awk ' 49 1.2 riastrad BEGIN { 50 1.2 riastrad duplicates = 0 51 1.2 riastrad } 52 1.2 riastrad { 53 1.2 riastrad if (index($1, "/")) { 54 1.2 riastrad dir = $1 55 1.2 riastrad sub("/[^/]*$", "/", dir) 56 1.2 riastrad base = $1 57 1.2 riastrad sub("^.*/", "", base) 58 1.2 riastrad } else { 59 1.2 riastrad dir = "" 60 1.2 riastrad base = $1 61 1.2 riastrad } 62 1.2 riastrad fqbase = (base ~ "^amdgpu_" ? "" : "amdgpu_") base 63 1.2 riastrad if (seen[fqbase]) { 64 1.2 riastrad printf("Duplicate basename: %s %s\n", fqbase, 65 1.2 riastrad seen[fqbase]) >"/dev/stderr" 66 1.2 riastrad duplicates = 1 67 1.2 riastrad } 68 1.2 riastrad if (duplicates) 69 1.2 riastrad next 70 1.2 riastrad printf("%s %s\n", $1, dir fqbase) 71 1.2 riastrad } 72 1.2 riastrad END { 73 1.2 riastrad if (duplicates) { 74 1.2 riastrad printf("Time to rewite me!\n") > "/dev/stderr" 75 1.2 riastrad exit 1 76 1.2 riastrad } 77 1.2 riastrad } 78 1.2 riastrad ' \ 79 1.2 riastrad | while read from to; do 80 1.3 riastrad # If the move already happened, that's fine: the makefile 81 1.3 riastrad # detects duplicates. 82 1.3 riastrad if [ "x$from" != "x$to" -a \! -f "$to" ]; then 83 1.2 riastrad ${MV} -f -- "$from" "$to" 84 1.2 riastrad fi 85 1.2 riastrad printf 'file\t%s\t%s\n' "$amdgpu_top/$to" "$amdgpu_flag" 86 1.2 riastrad done \ 87 1.2 riastrad | sort -u 88