Changeset 3232 in MondoRescue for branches/3.2/mindi-busybox/scripts/gen_build_files.sh
- Timestamp:
- Jan 1, 2014, 12:47:38 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.2/mindi-busybox/scripts/gen_build_files.sh
r2725 r3232 1 1 #!/bin/sh 2 3 # Note: was using sed OPTS CMD -- FILES 4 # but users complain that many sed implementations 5 # are misinterpreting --. 2 6 3 7 test $# -ge 2 || { echo "Syntax: $0 SRCTREE OBJTREE"; exit 1; } … … 16 20 generate() 17 21 { 18 local src="$1" dst="$2" header="$3" insert="$4" 22 # NB: data to be inserted at INSERT line is coming on stdin 23 local src="$1" dst="$2" header="$3" 19 24 #chk "${dst}" 20 ( 25 { 26 # Need to use printf: different shells have inconsistent 27 # rules re handling of "\n" in echo params. 21 28 printf "%s\n" "${header}" 22 if grep -qs '^INSERT$' "${src}"; then 23 sed -n '1,/^INSERT$/p' "${src}" 24 printf "%s\n" "${insert}" 25 sed -n '/^INSERT$/,$p' "${src}" 26 else 27 if [ -n "${insert}" ]; then 28 printf "%s\n" "ERROR: INSERT line missing in: ${src}" 1>&2 29 fi 30 cat "${src}" 31 fi 32 ) | sed '/^INSERT$/d' > "${dst}.tmp" 29 # print everything up to INSERT line 30 sed -n '/^INSERT$/ q; p' "${src}" 31 # copy stdin to stdout 32 cat 33 # print everything after INSERT line 34 sed -n '/^INSERT$/ { :l; n; p; bl }' "${src}" 35 } >"${dst}.tmp" 33 36 if ! cmp -s "${dst}" "${dst}.tmp"; then 34 37 gen "${dst}" … … 40 43 41 44 # (Re)generate include/applets.h 42 s =`sed -n 's@^//applet:@@p' -- "$srctree"/*/*.c "$srctree"/*/*/*.c`43 generate \45 sed -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \ 46 | generate \ 44 47 "$srctree/include/applets.src.h" \ 45 48 "include/applets.h" \ 46 "/* DO NOT EDIT. This file is generated from applets.src.h */" \ 47 "${s}" 49 "/* DO NOT EDIT. This file is generated from applets.src.h */" 48 50 49 51 # (Re)generate include/usage.h … … 51 53 # and insert empty line before each line which doesn't start 52 54 # with space or tab 53 # (note: we need to use \\\\ because of ``) 54 s=`sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\\\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\\\@p' -- "$srctree"/*/*.c "$srctree"/*/*/*.c` 55 generate \55 sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\@p' \ 56 "$srctree"/*/*.c "$srctree"/*/*/*.c \ 57 | generate \ 56 58 "$srctree/include/usage.src.h" \ 57 59 "include/usage.h" \ 58 "/* DO NOT EDIT. This file is generated from usage.src.h */" \ 59 "${s}" 60 "/* DO NOT EDIT. This file is generated from usage.src.h */" 60 61 61 62 # (Re)generate */Kbuild and */Config.in 62 { cd -- "$srctree" && find . -type d; } | while read -r d; do 63 # We skip .dotdirs - makes git/svn/etc users happier 64 { cd -- "$srctree" && find . -type d -not '(' -name '.?*' -prune ')'; } \ 65 | while read -r d; do 63 66 d="${d#./}" 64 67 … … 68 71 mkdir -p -- "$d" 2>/dev/null 69 72 70 s =`sed -n 's@^//kbuild:@@p' -- "$srctree/$d"/*.c`71 generate \73 sed -n 's@^//kbuild:@@p' "$srctree/$d"/*.c \ 74 | generate \ 72 75 "${src}" "${dst}" \ 73 "# DO NOT EDIT. This file is generated from Kbuild.src" \ 74 "${s}" 76 "# DO NOT EDIT. This file is generated from Kbuild.src" 75 77 fi 76 78 … … 80 82 mkdir -p -- "$d" 2>/dev/null 81 83 82 s =`sed -n 's@^//config:@@p' -- "$srctree/$d"/*.c`83 generate \84 sed -n 's@^//config:@@p' "$srctree/$d"/*.c \ 85 | generate \ 84 86 "${src}" "${dst}" \ 85 "# DO NOT EDIT. This file is generated from Config.src" \ 86 "${s}" 87 "# DO NOT EDIT. This file is generated from Config.src" 87 88 fi 88 89 done
Note:
See TracChangeset
for help on using the changeset viewer.