Android-x86
Fork
Donation

  • R/O
  • HTTP
  • SSH
  • HTTPS

external-busybox: Commit

external/busybox


Commit MetaInfo

Revision25b92aa06ee1d76d778dbd8341129bcfdacfe97c (tree)
Time2014-09-02 13:52:32
AuthorDiogo Ferreira <defer@cyng...>
CommiterTanguy Pruvot

Log Message

busybox: Use 'gsed' in Mac builds

Mac builds were broken because its sed implementation is not compatible
with some of the features used in this script. We already require gsed
for the Android build on Mac so this changes the script to take that
into account.

Change-Id: I37c10f8c543bdaf2c84409dacfaeccd24eb152d7

Change Summary

Incremental Difference

--- a/scripts/gen_build_files.sh
+++ b/scripts/gen_build_files.sh
@@ -17,6 +17,20 @@ status() { printf ' %-8s%s\n' "$1" "$2"; }
1717 gen() { status "GEN" "$@"; }
1818 chk() { status "CHK" "$@"; }
1919
20+# On OSX the sed implementation is not compatible with some of the
21+# features in this script, so this uses gsed and warns the user if
22+# it does not exist.
23+UNAME=$(uname -sm)
24+if [[ $UNAME == *Darwin* ]] || [[ $UNAME == *Macintosh* ]]; then
25+ SED_IMPL=$(which gsed)
26+ if [ $? != 0 ]; then
27+ echo "GNU sed is required for Darwin builds, please install and add 'gsed' to the path"
28+ exit 1;
29+ fi
30+else
31+ SED_IMPL=sed
32+fi
33+
2034 generate()
2135 {
2236 # NB: data to be inserted at INSERT line is coming on stdin
@@ -27,11 +41,11 @@ generate()
2741 # rules re handling of "\n" in echo params.
2842 printf "%s\n" "${header}"
2943 # print everything up to INSERT line
30- sed -n '/^INSERT$/ q; p' "${src}"
44+ $SED_IMPL -n '/^INSERT$/ q; p' "${src}"
3145 # copy stdin to stdout
3246 cat
3347 # print everything after INSERT line
34- sed -n '/^INSERT$/ { :l; n; p; bl }' "${src}"
48+ $SED_IMPL -n '/^INSERT$/ { :l; n; p; bl }' "${src}"
3549 } >"${dst}.tmp"
3650 if ! cmp -s "${dst}" "${dst}.tmp"; then
3751 gen "${dst}"
@@ -42,7 +56,7 @@ generate()
4256 }
4357
4458 # (Re)generate include/applets.h
45-sed -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \
59+$SED_IMPL -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \
4660 | generate \
4761 "$srctree/include/applets.src.h" \
4862 "include/applets.h" \
@@ -52,7 +66,7 @@ sed -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \
5266 # We add line continuation backslash after each line,
5367 # and insert empty line before each line which doesn't start
5468 # with space or tab
55-sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\@p' \
69+$SED_IMPL -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\@p' \
5670 "$srctree"/*/*.c "$srctree"/*/*/*.c \
5771 | generate \
5872 "$srctree/include/usage.src.h" \
@@ -70,7 +84,7 @@ sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\
7084 if test -f "$src"; then
7185 mkdir -p -- "$d" 2>/dev/null
7286
73- sed -n 's@^//kbuild:@@p' "$srctree/$d"/*.c \
87+ $SED_IMPL -n 's@^//kbuild:@@p' "$srctree/$d"/*.c \
7488 | generate \
7589 "${src}" "${dst}" \
7690 "# DO NOT EDIT. This file is generated from Kbuild.src"
@@ -81,7 +95,7 @@ sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\
8195 if test -f "$src"; then
8296 mkdir -p -- "$d" 2>/dev/null
8397
84- sed -n 's@^//config:@@p' "$srctree/$d"/*.c \
98+ $SED_IMPL -n 's@^//config:@@p' "$srctree/$d"/*.c \
8599 | generate \
86100 "${src}" "${dst}" \
87101 "# DO NOT EDIT. This file is generated from Config.src"
Show on old repository browser