a289726792
An initial (and quite naive) implementation was done for conf.d/ files but features do need it as well -- which became obvious during a casual inspection of distro/alt-workstation's target graph (which occured broken). The code is a messy hackery unfortunately, regexes used are fragile regarding e.g. [A-Z_] in target names. Read with care. NB: lib/ might need this too but it's rather stable and contains some special cases that would obstruct the regexes even more...
15 lines
510 B
Bash
Executable File
15 lines
510 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# missing "; @:" for recipeless rules makes SHELL payload useless
|
|
# (see also ../lib/report.mk); this results in broken target graphs
|
|
# (so REPORT=1 gets crippled)
|
|
|
|
sed 's/^[a-z]\+\/.*:.*$/\n&/' "$@" \
|
|
| grep -vE '^(#|export|if|else|endif|define|endef)' \
|
|
| sed ':loop /^[^#].*[^\\]\\$/N; s/\\\n//; t loop' \
|
|
| grep -vE ':=| = | ?= | += |^\$' \
|
|
| sed ':loop /^[a-z]\+\/.*:.*$/N; s/\n\t\+@*/\; /; t loop' \
|
|
| grep -vE ';|^$' && exit 1 ||:
|
|
|
|
# see also http://unix.stackexchange.com/questions/228547
|