blob: 3d757500c1a22b4e55c486f89dd658aba893cdd5 [file] [log] [blame]
Denys Vlasenko7fb68f12010-05-09 04:22:48 +02001#!/bin/sh
2
Denys Vlasenko572b9a32010-05-09 16:20:52 +02003test $# -ge 2 || { echo "Syntax: $0 SRCTREE OBJTREE"; exit 1; }
Denys Vlasenko7fb68f12010-05-09 04:22:48 +02004
5# cd to objtree
Denys Vlasenko572b9a32010-05-09 16:20:52 +02006cd "$2" || { echo "Syntax: $0 SRCTREE OBJTREE"; exit 1; }
Denys Vlasenko7fb68f12010-05-09 04:22:48 +02007
8srctree="$1"
9
Denys Vlasenko572b9a32010-05-09 16:20:52 +020010find -type d | while read; do
Denys Vlasenko7fb68f12010-05-09 04:22:48 +020011 d="$REPLY"
12
13 src="$srctree/$d/Kbuild.src"
14 dst="$d/Kbuild"
15 if test -f "$src"; then
16 echo " CHK $dst"
17
Denys Vlasenko572b9a32010-05-09 16:20:52 +020018 s=`sed -n 's@^//kbuild:@@p' "$srctree/$d"/*.c`
19 echo "# DO NOT EDIT. This file is generated from Kbuild.src" >"$dst.$$.tmp"
Denys Vlasenko7fb68f12010-05-09 04:22:48 +020020 while read; do
21 test x"$REPLY" = x"INSERT" && REPLY="$s"
22 printf "%s\n" "$REPLY"
Denys Vlasenko572b9a32010-05-09 16:20:52 +020023 done <"$src" >>"$dst.$$.tmp"
Denys Vlasenko7fb68f12010-05-09 04:22:48 +020024
25 if test -f "$dst" && cmp -s "$dst.$$.tmp" "$dst"; then
26 rm "$dst.$$.tmp"
27 else
28 echo " GEN $dst"
29 mv "$dst.$$.tmp" "$dst"
30 fi
31 fi
32
33 src="$srctree/$d/Config.src"
34 dst="$d/Config.in"
35 if test -f "$src"; then
36 echo " CHK $dst"
37
Denys Vlasenko572b9a32010-05-09 16:20:52 +020038 s=`sed -n 's@^//config:@@p' "$srctree/$d"/*.c`
39 echo "# DO NOT EDIT. This file is generated from Config.src" >"$dst.$$.tmp"
Denys Vlasenko7fb68f12010-05-09 04:22:48 +020040 while read; do
41 test x"$REPLY" = x"INSERT" && REPLY="$s"
42 printf "%s\n" "$REPLY"
Denys Vlasenko572b9a32010-05-09 16:20:52 +020043 done <"$src" >>"$dst.$$.tmp"
Denys Vlasenko7fb68f12010-05-09 04:22:48 +020044
45 if test -f "$dst" && cmp -s "$dst.$$.tmp" "$dst"; then
46 rm "$dst.$$.tmp"
47 else
48 echo " GEN $dst"
49 mv "$dst.$$.tmp" "$dst"
50 fi
51 fi
52
53done
54
55# Last read failed. This is normal. Don't exit with its error code:
56exit 0