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