author | Diogo Ferreira <defer@cyngn.com> | 2014-09-01 14:43:20 (GMT) |
---|---|---|
committer | Tanguy Pruvot <tanguy.pruvot@gmail.com> | 2014-09-02 04:52:32 (GMT) |
commit | 25b92aa06ee1d76d778dbd8341129bcfdacfe97c (patch) | |
tree | a3a2acdc4d72c4c43c3a591b7ab6a60a81f3c2cf | |
parent | e6d645505f5f82115700cd1235a515256affd32a (diff) | |
download | busybox-25b92aa06ee1d76d778dbd8341129bcfdacfe97c.zip busybox-25b92aa06ee1d76d778dbd8341129bcfdacfe97c.tar.gz busybox-25b92aa06ee1d76d778dbd8341129bcfdacfe97c.tar.bz2 |
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
-rwxr-xr-x | scripts/gen_build_files.sh | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/scripts/gen_build_files.sh b/scripts/gen_build_files.sh index 0989b2f..a77427f 100755 --- a/scripts/gen_build_files.sh +++ b/scripts/gen_build_files.sh @@ -17,6 +17,20 @@ status() { printf ' %-8s%s\n' "$1" "$2"; } gen() { status "GEN" "$@"; } chk() { status "CHK" "$@"; } +# On OSX the sed implementation is not compatible with some of the +# features in this script, so this uses gsed and warns the user if +# it does not exist. +UNAME=$(uname -sm) +if [[ $UNAME == *Darwin* ]] || [[ $UNAME == *Macintosh* ]]; then + SED_IMPL=$(which gsed) + if [ $? != 0 ]; then + echo "GNU sed is required for Darwin builds, please install and add 'gsed' to the path" + exit 1; + fi +else + SED_IMPL=sed +fi + generate() { # NB: data to be inserted at INSERT line is coming on stdin @@ -27,11 +41,11 @@ generate() # rules re handling of "\n" in echo params. printf "%s\n" "${header}" # print everything up to INSERT line - sed -n '/^INSERT$/ q; p' "${src}" + $SED_IMPL -n '/^INSERT$/ q; p' "${src}" # copy stdin to stdout cat # print everything after INSERT line - sed -n '/^INSERT$/ { :l; n; p; bl }' "${src}" + $SED_IMPL -n '/^INSERT$/ { :l; n; p; bl }' "${src}" } >"${dst}.tmp" if ! cmp -s "${dst}" "${dst}.tmp"; then gen "${dst}" @@ -42,7 +56,7 @@ generate() } # (Re)generate include/applets.h -sed -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \ +$SED_IMPL -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \ | generate \ "$srctree/include/applets.src.h" \ "include/applets.h" \ @@ -52,7 +66,7 @@ sed -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \ # We add line continuation backslash after each line, # and insert empty line before each line which doesn't start # with space or tab -sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\@p' \ +$SED_IMPL -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\@p' \ "$srctree"/*/*.c "$srctree"/*/*/*.c \ | generate \ "$srctree/include/usage.src.h" \ @@ -70,7 +84,7 @@ sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\ if test -f "$src"; then mkdir -p -- "$d" 2>/dev/null - sed -n 's@^//kbuild:@@p' "$srctree/$d"/*.c \ + $SED_IMPL -n 's@^//kbuild:@@p' "$srctree/$d"/*.c \ | generate \ "${src}" "${dst}" \ "# 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 \\ if test -f "$src"; then mkdir -p -- "$d" 2>/dev/null - sed -n 's@^//config:@@p' "$srctree/$d"/*.c \ + $SED_IMPL -n 's@^//config:@@p' "$srctree/$d"/*.c \ | generate \ "${src}" "${dst}" \ "# DO NOT EDIT. This file is generated from Config.src" |