|
|
#!/bin/sh |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if test "x$1" = "x"; then |
|
|
echo "Usage: $0 path/to/src/local.mk" >&2 |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
set -e |
|
|
|
|
|
LOCAL_MK=$1 |
|
|
GEN_LISTS_OF_PROGRAMS="`dirname "$0"`/gen-lists-of-programs.sh" |
|
|
|
|
|
ALL_PROGRAMS=$($GEN_LISTS_OF_PROGRAMS --list-progs \ |
|
|
| grep -v -F -e coreutils -e libstdbuf.so \ |
|
|
| tr '[' '_') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for cmd in $ALL_PROGRAMS; do |
|
|
eval "src_${cmd}_SOURCES=src/${cmd}.c" |
|
|
done |
|
|
|
|
|
|
|
|
|
|
|
while read l; do |
|
|
if echo "$l" | grep -E '^src_[_[:alnum:]]+ +\+?=' > /dev/null; then |
|
|
var=$(echo $l | cut -f 1 -d ' ') |
|
|
value=$(echo $l | cut -f 2- -d =) |
|
|
if [ "$value" != " \$(LDADD)" ]; then |
|
|
oldvalue="" |
|
|
if echo $l | grep -F '+=' >/dev/null; then |
|
|
eval "oldvalue=\${$var}" |
|
|
fi |
|
|
value=$(echo "$value" | sed "s/'/'\"'\"'/g") |
|
|
eval "$var='$oldvalue "$value"'" |
|
|
fi |
|
|
fi |
|
|
done < $LOCAL_MK |
|
|
|
|
|
me=`echo "$0" | sed 's,.*/,,'` |
|
|
echo "## Automatically generated by $me. DO NOT EDIT BY HAND!" |
|
|
|
|
|
|
|
|
override_single() { |
|
|
from="$1"; to="$2"; |
|
|
|
|
|
eval "src_${from}_SOURCES='src/coreutils-${from}.c'" |
|
|
eval "src_from_LDADD=\$src_${from}_LDADD" |
|
|
eval "src_${from}_LDADD='$src_from_LDADD src/libsinglebin_${to}.a'" |
|
|
eval "src_libsinglebin_${from}_a_DEPENDENCIES='src/libsinglebin_${to}.a'" |
|
|
echo "src_libsinglebin_${from}_a_DEPENDENCIES = src/libsinglebin_${to}.a" |
|
|
} |
|
|
override_single dir ls |
|
|
override_single vdir ls |
|
|
override_single arch uname |
|
|
override_single chgrp chown |
|
|
|
|
|
for cmd in $ALL_PROGRAMS; do |
|
|
echo "# Command $cmd" |
|
|
echo noinst_LIBRARIES += src/libsinglebin_${cmd}.a |
|
|
base="src_libsinglebin_${cmd}_a" |
|
|
|
|
|
var=src_${cmd}_SOURCES |
|
|
eval "value=\$$var" |
|
|
echo "${base}_SOURCES = $value" |
|
|
|
|
|
|
|
|
var=src_${cmd}_LDADD |
|
|
eval "value=\$$var" |
|
|
if [ "x$value" != "x" ]; then |
|
|
echo "${base}_ldadd = $value" |
|
|
fi |
|
|
|
|
|
|
|
|
var=src_libsinglebin_${cmd}_a_DEPENDENCIES |
|
|
eval "value=\$$var" |
|
|
if [ "x$value" = "x" ]; then |
|
|
echo "$var = \$(src_${cmd}_DEPENDENCIES)" |
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "${base}_CFLAGS = \"-Dmain=single_binary_main_${cmd} (int, char **);" \ |
|
|
" int single_binary_main_${cmd}\" " \ |
|
|
"-Dusage=_usage_${cmd} \$(src_coreutils_CFLAGS)" |
|
|
var=src_${cmd}_CFLAGS |
|
|
eval "value=\$$var" |
|
|
if [ "x$value" != "x" ]; then |
|
|
echo "${base}_CFLAGS += $value" |
|
|
fi |
|
|
|
|
|
|
|
|
var=src_${cmd}_CPPFLAGS |
|
|
eval "value=\$$var" |
|
|
if [ "x$value" != "x" ]; then |
|
|
echo "${base}_CPPFLAGS = $value" |
|
|
fi |
|
|
done |
|
|
|
|
|
exit 0 |
|
|
|