#!/bin/sh set -eu . aux/lib.sh prune() { file="$1" lines="$(grep -n '^#include ' "$file" | cut -d: -f1)" ORIG="$(mkstemp)" cp "$file" "$ORIG" for line in $lines; do sed "${line}d" "$ORIG" > "$file" if make -e; then prune "$file" break else cp "$ORIG" "$file" fi done } for f in "$@"; do prune "$f" done