xref: /netbsd-src/external/gpl2/dtc/dtc2netbsd (revision c9b5b227bd56360e2fe5ed2e43da7c91985bd8ef)
13569839bSskrll#! /bin/sh
23569839bSskrll#
3*c9b5b227Sjmcneill#	$NetBSD: dtc2netbsd,v 1.2 2017/06/16 22:47:22 jmcneill Exp $
43569839bSskrll#
53569839bSskrll#
63569839bSskrll# Copyright (c) 2017 The NetBSD Foundation, Inc.
73569839bSskrll# All rights reserved.
83569839bSskrll#
93569839bSskrll# This code is derived from software contributed to The NetBSD Foundation
103569839bSskrll# by Nick Hudson
113569839bSskrll#
123569839bSskrll# Redistribution and use in source and binary forms, with or without
133569839bSskrll# modification, are permitted provided that the following conditions
143569839bSskrll# are met:
153569839bSskrll# 1. Redistributions of source code must retain the above copyright
163569839bSskrll#    notice, this list of conditions and the following disclaimer.
173569839bSskrll# 2. Redistributions in binary form must reproduce the above copyright
183569839bSskrll#    notice, this list of conditions and the following disclaimer in the
193569839bSskrll#    documentation and/or other materials provided with the distribution.
203569839bSskrll#
213569839bSskrll# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
223569839bSskrll# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
233569839bSskrll# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
243569839bSskrll# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
253569839bSskrll# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
263569839bSskrll# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
273569839bSskrll# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
283569839bSskrll# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
293569839bSskrll# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
303569839bSskrll# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
313569839bSskrll# POSSIBILITY OF SUCH DAMAGE.
323569839bSskrll#
333569839bSskrll# dtc2netbsd:  convert a dtc source tree into netbsd dtc/libfdt source trees
343569839bSskrll#
353569839bSskrll# Rough instructions for importing new dtc release:
363569839bSskrll#
373569839bSskrll#	$ cd /some/where/temporary
383569839bSskrll#	$ tar xpfz /dtc/release/tar/file
393569839bSskrll#	$ DTCSRCS=$(pwd)
403569839bSskrll#	$ WRKDIR=/an/other/temporary
413569839bSskrll#	$ sh /usr/src/external/gpl2/dtc/dtc2netbsd $DTCSRCS $WRKDIR
423569839bSskrll#
433569839bSskrll# Import libfdt using
443569839bSskrll#	$ cd $WRKDIR/libfdt
453569839bSskrll#	$ cvs import -m "Import libfdt <version>" src/sys/external/bsd/libfdt/dist DTC dtc-<version>
463569839bSskrll#
473569839bSskrll# merge libfdt sources using, e.g.
483569839bSskrll#	$ cvs -d cvs.netbsd.org:/cvsroot checkout -jdtc-1-4-1 -jdtc-1-4-4 src/sys/external/bsd/libfdt/dist
493569839bSskrll#
503569839bSskrll# Import dtc using
513569839bSskrll#	$ cd $WRKDIR/dtc
523569839bSskrll#	$ cvs import -m "Import dtc YYYY-MM-DD" src/external/gpl2/dtc/dist DTC dtc-<version>
533569839bSskrll# merge dtc sources using, e.g.
543569839bSskrll# 	$ cvs -d cvs.netbsd.org:/cvsroot checkout -jdtc-1-4-1 -jdtc-1-4-4 src/external/gpl2/dtc/dist
55*c9b5b227Sjmcneill#
56*c9b5b227Sjmcneill# Update the version string in the version_gen.h header to match the imported version:
57*c9b5b227Sjmcneill#	$ echo '#define DTC_VERSION "DTC 1.4.4"' > src/external/gpl2/dtc/usr.bin/dtc/version_gen.h
583569839bSskrll
593569839bSskrllif [ $# -ne 2 ]; then echo "dtc2netbsd dtcsrc tmpdir"; exit 1; fi
603569839bSskrll
613569839bSskrllr=$1
623569839bSskrlld=$2
633569839bSskrll
643569839bSskrllcase "$d" in
653569839bSskrll	/*)
663569839bSskrll		;;
673569839bSskrll	*)
683569839bSskrll		d=`/bin/pwd`/$d
693569839bSskrll		;;
703569839bSskrllesac
713569839bSskrll
723569839bSskrllcase "$r" in
733569839bSskrll	/*)
743569839bSskrll		;;
753569839bSskrll	*)
763569839bSskrll		r=`/bin/pwd`/$r
773569839bSskrll		;;
783569839bSskrllesac
793569839bSskrll
803569839bSskrllecho preparing directory $d
813569839bSskrllrm -rf $d
823569839bSskrllmkdir -p $d/dtc
833569839bSskrll
843569839bSskrll### Copy the files and directories
853569839bSskrllecho copying $r to $d
863569839bSskrllcd $r
873569839bSskrllpax -rw * $d/dtc
883569839bSskrllmv $d/dtc/libfdt $d/libfdt
893569839bSskrll
903569839bSskrll# cd to import directory
913569839bSskrllcd $d
923569839bSskrll
933569839bSskrll#
943569839bSskrll
953569839bSskrll### Remove the $'s around RCS tags
963569839bSskrllcleantags $d
973569839bSskrll
983569839bSskrll### Add our NetBSD RCS Id
993569839bSskrllfind $d -type f -name '*.[chly]' -print | while read c; do
1003569839bSskrll	sed 1q < $c | grep -q '\$NetBSD' || (
1013569839bSskrllecho "/*	\$NetBSD\$	*/" >/tmp/dtc$$
1023569839bSskrllecho "" >>/tmp/dtc$$
1033569839bSskrllcat $c  >> /tmp/dtc$$
1043569839bSskrllmv /tmp/dtc$$ $c && echo added NetBSD RCS tag to $c
1053569839bSskrll	)
1063569839bSskrlldone
1073569839bSskrll
1083569839bSskrllecho done
1093569839bSskrll
1103569839bSskrll### Clean up any CVS directories that might be around.
1113569839bSskrllecho "cleaning up CVS residue."
1123569839bSskrll(
1133569839bSskrll	cd $d
1143569839bSskrll	find . -type d -name "CVS" -print | xargs rm -r
1153569839bSskrll)
1163569839bSskrllecho done
1173569839bSskrll
1183569839bSskrll### Fixing file and directory permissions.
1193569839bSskrllecho "Fixing file/directory permissions."
1203569839bSskrll(
1213569839bSskrll	cd $d
1223569839bSskrll	find . -type f -print | xargs chmod u+rw,go+r
1233569839bSskrll	find . -type d -print | xargs chmod u+rwx,go+rx
1243569839bSskrll)
1253569839bSskrllecho done
1263569839bSskrll
1273569839bSskrllexit 0
128