1#! /bin/sh 2# 3# $NetBSD: flex2netbsd,v 1.2 2011/10/08 19:28:39 christos Exp $ 4# 5# Copyright (c) 2000 The NetBSD Foundation, Inc. 6# All rights reserved. 7# 8# Redistribution and use in source and binary forms, with or without 9# modification, are permitted provided that the following conditions 10# are met: 11# 1. Redistributions of source code must retain the above copyright 12# notice, this list of conditions and the following disclaimer. 13# 2. Redistributions in binary form must reproduce the above copyright 14# notice, this list of conditions and the following disclaimer in the 15# documentation and/or other materials provided with the distribution. 16# 17# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27# POSSIBILITY OF SUCH DAMAGE. 28# 29# flex2netbsd: convert a flex tree into a 30# netbsd flex source tree, under src/external/bsd/flex/dist, 31# based on flex2netbsd by Bernd Ernesti and changes by Simon Burge 32# 33# Rough instructions for importing new flex release: 34# 35# $ cd /some/where/temporary 36# $ tar xpfz /new/flex/release/tar/file 37# $ sh /usr/src/external/bsd/flex/dist/flex2netbsd flex-2.5.x `pwd` 38# $ cd src/external/bsd/flex/dist 39# $ cvs import -m "Import flex 2.5.x" src/external/bsd/flex/dist FLEX flex-2-5-x 40# $ cd ../../../../../flex-9.x.y 41# $ run ./configure 42# $ run make 43# check the config file and copy it to /usr/src/external/bsd/flex/include 44# check the manual page against our copy if there are new options and 45# update 46 47if [ $# -ne 2 ]; then echo "flex2netbsd src dest"; exit 1; fi 48 49r=$1 50d=$2/src/external/bsd/flex/dist 51 52case "$d" in 53 /*) 54 ;; 55 *) 56 d=`/bin/pwd`/$d 57 ;; 58esac 59 60case "$r" in 61 /*) 62 ;; 63 *) 64 r=`/bin/pwd`/$r 65 ;; 66esac 67 68echo preparing directory $d 69rm -rf $d 70mkdir -p $d 71 72### Copy the files and directories 73echo copying $r to $d 74cd $r 75pax -rw * $d 76 77### Remove the $'s around RCS tags 78cleantags $d 79 80### Add our NetBSD RCS Id 81find $d -type f -name '*.[chly]' -print | while read c; do 82 sed 1q < $c | grep -q '\$NetBSD' || ( 83echo "/* \$NetBSD\$ */" >/tmp/flex3n$$ 84echo "" >>/tmp/flex3n$$ 85cat $c >> /tmp/flex3n$$ 86mv /tmp/flex3n$$ $c && echo added NetBSD RCS tag to $c 87 ) 88done 89 90find $d -type f -name '*.[0-9]' -print | while read m; do 91 sed 1q < $m | grep -q '\$NetBSD' || ( 92echo ".\\\" \$NetBSD\$" >/tmp/flex2m$$ 93echo ".\\\"" >>/tmp/flex2m$$ 94cat $m >> /tmp/flex2m$$ 95mv /tmp/flex2m$$ $m && echo added NetBSD RCS tag to $m 96 ) 97done 98 99find $d -type f -name '*.texi' -print | while read t; do 100 sed "2 s/^/@c \$NetBSD\$\\ 101/" < $t > /tmp/flex4t$$ 102 mv /tmp/flex4t$$ $t && echo added NetBSD RCS tag to $t 103done 104 105echo done 106 107### Clean up any CVS directories that might be around. 108echo "cleaning up CVS residue." 109( 110 cd $d 111 find . -type d -name "CVS" -print | xargs rm -r 112) 113echo done 114 115### Fixing file and directory permissions. 116echo "Fixing file/directory permissions." 117( 118 cd $d 119 find . -type f -print | xargs chmod u+rw,go+r 120 find . -type d -print | xargs chmod u+rwx,go+rx 121) 122echo done 123 124exit 0 125