blob: 8d343529d3074a0d40f513621b301c152061d805 [file] [log] [blame]
Rob Landley7e21d5f2006-04-27 23:34:46 +00001#!/bin/sh
2
Denis Vlasenko7d219aa2006-10-05 10:17:08 +00003target="$1"
4loc="$2"
Rob Landley7e21d5f2006-04-27 23:34:46 +00005
Denis Vlasenko7d219aa2006-10-05 10:17:08 +00006test "$target" || exit 1
Rob Landley7e21d5f2006-04-27 23:34:46 +00007test "$loc" || loc=.
Bernhard Reutner-Fischera1e130f2006-05-21 10:45:01 +00008test -x "$loc/usage" || exit 1
Denis Vlasenko7d219aa2006-10-05 10:17:08 +00009test "$SED" || SED=sed
Bernhard Reutner-Fischerb35e3a82009-10-27 17:05:31 +010010test "$DD" || DD=dd
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000011
12sz=`"$loc/usage" | wc -c` || exit 1
13
14exec >"$target"
Rob Landley7e21d5f2006-04-27 23:34:46 +000015
Denis Vlasenko937b10f2008-02-09 09:26:43 +000016echo 'static const char packed_usage[] ALIGN1 = {'
17
Denis Vlasenko63e49fa2008-08-09 20:31:57 +000018## Breaks on big-endian systems!
19## # Extra effort to avoid using "od -t x1": -t is not available
20## # in non-CONFIG_DESKTOPed busybox od
Denis Vlasenkoea7c9b32008-09-25 10:39:10 +000021##
Denis Vlasenko63e49fa2008-08-09 20:31:57 +000022## "$loc/usage" | bzip2 -1 | od -v -x \
23## | $SED -e 's/^[^ ]*//' \
Denys Vlasenko3581c622010-01-25 13:39:24 +010024## -e 's/ //g' \
25## -e '/^$/d' \
26## -e 's/\(..\)\(..\)/0x\2,0x\1,/g'
Denis Vlasenko937b10f2008-02-09 09:26:43 +000027
Bernhard Reutner-Fischerb35e3a82009-10-27 17:05:31 +010028"$loc/usage" | bzip2 -1 | $DD bs=2 skip=1 2>/dev/null | od -v -t x1 \
Denis Vlasenko937b10f2008-02-09 09:26:43 +000029| $SED -e 's/^[^ ]*//' \
Bernhard Reutner-Fischerb35e3a82009-10-27 17:05:31 +010030 -e 's/ //g' \
31 -e '/^$/d' \
32 -e 's/\(..\)/0x\1,/g'
Denis Vlasenko937b10f2008-02-09 09:26:43 +000033
34echo '};'
Bernhard Reutner-Fischer7fca7e32006-05-26 13:28:39 +000035echo '#define SIZEOF_usage_messages' `expr 0 + $sz`