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