1 #!/bin/ksh 2 # 3 # CDDL HEADER START 4 # 5 # The contents of this file are subject to the terms of the 6 # Common Development and Distribution License, Version 1.0 only 7 # (the "License"). You may not use this file except in compliance 8 # with the License. 9 # 10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11 # or http://www.opensolaris.org/os/licensing. 12 # See the License for the specific language governing permissions 13 # and limitations under the License. 14 # 15 # When distributing Covered Code, include this CDDL HEADER in each 16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 17 # If applicable, add the following below this CDDL HEADER, with the 18 # fields enclosed by brackets "[]" replaced with your own identifying 19 # information: Portions Copyright [yyyy] [name of copyright owner] 20 # 21 # CDDL HEADER END 22 # 23 # 24 #ident "%Z%%M% %I% %E% SMI" 25 # 26 # Copyright 2005 Sun Microsystems, Inc. All rights reserved. 27 # Use is subject to license terms. 28 # 29 # Executed from appropriate arch build directory, e.g. {intel,sparc}/sockfs, 30 # to generate the nl7ctokgen.h file from nl7ctok*.txt file(s). 31 # 32 33 EXIT=0 34 IFS="," 35 while [ "$1" != "" ] 36 do 37 NAME=$1 38 shift 39 <$NAME sort -f +1 |{ 40 41 while read IDN STR FLG BAD 42 do 43 if [ "$IDN" != "${IDN#\#}" ] 44 then 45 continue 46 fi 47 if [ -n "$BAD" ] 48 then 49 echo "$IDN: ${BAD## }: too many arguments" 50 EXIT=1 51 fi 52 echo "static char S$IDN[] = ${STR## };" 53 ELE="$ELE 54 INIT($IDN, ${FLG## })," 55 ENU="$ENU 56 $IDN," 57 done 58 NAME=${NAME##*nl7c} 59 NAME=${NAME%.txt} 60 TOKEN="$TOKEN 61 token_t $NAME[] = { 62 $ELE 63 {NULL} 64 }; 65 66 #define ${NAME}_cnt (sizeof ($NAME) / sizeof (*$NAME)) 67 " 68 ELE="" 69 70 } 71 done 72 73 echo " 74 enum tokid_e { 75 _Hdr_First_, 76 $ENU 77 _Hdr_Last_ 78 }; 79 $TOKEN 80 " 81 82 exit $EXIT 83