1#!/bin/rc 2 3rfork e 4if(~ $#CONF 0) 5 CONF=$1 6awk -v 'objtype='$objtype -v 'CONF='$CONF ' 7BEGIN { nfs = 0 } 8/^$/{ 9 next; 10} 11/^#/{ 12 next; 13} 14collect && /^[^ \t]/{ 15 collect = 0; 16} 17collect && section ~ "bootdir" { 18 if(NF >= 2) 19 x = $2; 20 else{ 21 x = $1; 22 sub(/.*\//, "", x); 23 } 24 fsname[nfs] = x; 25 x = $1; 26 gsub(/[^a-zA-Z0-9_]/, "_", x); 27 fs[nfs] = x; 28 file[nfs] = $1; 29 nfs++; 30} 31$0 ~ /^[^ \t]/{ 32 if($0 ~ "bootdir"){ 33 section = $0; 34 collect = 1; 35 } 36 next; 37} 38 39END{ 40 printf "%s.root.s:D:", CONF; 41 for(i=0; i<nfs; i++) 42 printf " %s", file[i]; 43 printf "\n"; 44 printf "\t../port/mkrootall \\\n"; 45 for(i=0; i<nfs; i++) 46 printf "\t\t%s %s %s\\\n", fsname[i], fs[i], file[i]; 47 printf "\t>$target\n"; 48 49 printf "%s.rootc.c:D:", CONF; 50 for(i=0; i<nfs; i++) 51 printf " %s", file[i]; 52 printf "\n"; 53 printf "\t../port/mkrootc \\\n"; 54 for(i=0; i<nfs; i++) 55 printf "\t\t%s %s %s\\\n", fsname[i], fs[i], file[i]; 56 printf "\t>$target\n"; 57} 58 59' $* 60