summaryrefslogtreecommitdiff
authorDiogo 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)
commit25b92aa06ee1d76d778dbd8341129bcfdacfe97c (patch)
treea3a2acdc4d72c4c43c3a591b7ab6a60a81f3c2cf
parente6d645505f5f82115700cd1235a515256affd32a (diff)
downloadbusybox-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
Diffstat
-rwxr-xr-xscripts/gen_build_files.sh26
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"