59 lines · 923 B · Text
RawDownload
#!/bin/rc rfork eif(~ $#CONF 0)	CONF=$1awk -v 'objtype='$objtype -v 'CONF='$CONF 'BEGIN { nfs = 0 }/^$/{	next;}/^#/{	next;}collect && /^[^ \t]/{	collect = 0;}collect && section ~ "bootdir" {	if(NF >= 2)		x = $2;	else{		x = $1;		sub(/.*\//, "", x);	}	fsname[nfs] = x;	x = $1;	gsub(/[^a-zA-Z0-9_]/, "_", x);	fs[nfs] = x;	file[nfs] = $1;	nfs++;}$0 ~ /^[^ \t]/{	if($0 ~ "bootdir"){		section = $0;		collect = 1;	}	next;} END{	printf "%s.root.s:D:", CONF;	for(i=0; i<nfs; i++)		printf " %s", file[i];	printf "\n";	printf "\t../port/mkrootall \\\n";	for(i=0; i<nfs; i++)		printf "\t\t%s %s %s\\\n", fsname[i], fs[i], file[i];	printf "\t>$target\n"; 	printf "%s.rootc.c:D:", CONF;	for(i=0; i<nfs; i++)		printf " %s", file[i];	printf "\n";	printf "\t../port/mkrootc \\\n";	for(i=0; i<nfs; i++)		printf "\t\t%s %s %s\\\n", fsname[i], fs[i], file[i];	printf "\t>$target\n";} ' $*