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 33EXIT=0 34IFS="," 35while [ "$1" != "" ] 36do 37NAME=$1 38shift 39<$NAME sort -f +1 |{ 40 41while read IDN STR FLG BAD 42do 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," 57done 58NAME=${NAME##*nl7c} 59NAME=${NAME%.txt} 60TOKEN="$TOKEN 61token_t $NAME[] = { 62$ELE 63 {NULL} 64}; 65 66#define ${NAME}_cnt (sizeof ($NAME) / sizeof (*$NAME)) 67" 68ELE="" 69 70} 71done 72 73echo " 74enum tokid_e { 75 _Hdr_First_, 76$ENU 77 _Hdr_Last_ 78}; 79$TOKEN 80" 81 82exit $EXIT 83