@@ -2128,31 +2128,57 @@ AC_ARG_WITH(drivers,
2128
2128
MACOSX_DRIVERLIST MODBUS_DRIVERLIST LINUX_I2C_DRIVERLIST
2129
2129
POWERMAN_DRIVERLIST IPMI_DRIVERLIST GPIO_DRIVERLIST"
2130
2130
2131
- get_drvlist() (
2131
+ dnl Gets ONE Makefile assignment value
2132
+ get_drivers_makefile_value() (
2132
2133
dnl Note escaped brackets - "against" m4 parser
2133
2134
m4_version_prereq ( 2.62 ,
2134
2135
[ LB="@<:@ "; RB="@:>@ "] ,
2135
2136
[ LB="[ [ "; RB="] ] "]
2136
2137
)
2138
+ dnl ###DEBUG### echo "RECURSIVE SEARCH FOR: '$1 '" >&2
2137
2139
SPACE="`printf "$LB"' \t'"$RB"`"
2138
2140
SPACES="${SPACE}*"
2139
2141
sed -e "s/${SPACES}""$LB"'+'"$RB"'*='"${SPACES}/=/" \
2140
2142
-e "s/^${SPACES}//" < "$srcdir/drivers/Makefile.am" \
2141
- | {
2143
+ | (
2142
2144
C=false; V=false
2143
2145
while read LINE ; do
2144
2146
case "$LINE" in
2145
2147
*'\') C=true; if $V ; then echo "$LINE" ; fi ;;
2146
- *) C=false; V=false ;;
2148
+ *) if $C ; then exit 0; fi ; C=false; V=false ;;
2147
2149
esac
2148
2150
case "$LINE" in
2149
2151
"$1 "=*)
2150
- echo "$LINE" | sed -e 's,^'"$LB"'^='"$RB"'*=,,' -e 's,\$,,'
2152
+ echo "$LINE" | sed -e 's,^'"$LB"'^='"$RB"'*=,,'
2151
2153
V=$C
2152
2154
;;
2153
2155
esac
2154
2156
done
2155
- } | tr '\n' ' ' | sed -e "s,${SPACE}${SPACES}, ," -e "s,${SPACES}\$,,"
2157
+ echo ""
2158
+ ) | tr '\n' ' ' | sed -e 's,\$(EXEEXT),,g' \
2159
+ | tr ' ' '\n' | while read TOKEN ; do
2160
+ case x"${TOKEN}" in
2161
+ x) ;;
2162
+ 'x$('*')') get_drivers_makefile_value "`echo "${TOKEN}" | sed -e 's,^\$(,,' -e 's,)$,,'`" ;;
2163
+ 'x${'*'}') get_drivers_makefile_value "`echo "${TOKEN}" | sed -e 's,^\${,,' -e 's,}$,,'`" ;;
2164
+ *) echo "${TOKEN} " ;;
2165
+ esac
2166
+ done dnl ###DEBUG### | tee -a /dev/stderr
2167
+ )
2168
+
2169
+ get_drvlist() (
2170
+ m4_version_prereq ( 2.62 ,
2171
+ [ LB="@<:@ "; RB="@:>@ "] ,
2172
+ [ LB="[ [ "; RB="] ] "]
2173
+ )
2174
+ dnl ###DEBUG### echo "SEARCH FOR: '$1 '" >&2
2175
+ SPACE="`printf "$LB"' \t'"$RB"`"
2176
+ SPACES="${SPACE}*"
2177
+
2178
+ dnl Let it recurse, and only then we collect the
2179
+ dnl result into one string with reduced spaces:
2180
+ get_drivers_makefile_value "$1 " \
2181
+ | tr '\n' ' ' | sed -e "s,${SPACE}${SPACES}, ,g" -e "s,${SPACES}\$,,"
2156
2182
)
2157
2183
2158
2184
for DRVLIST_NAME in $DRVLIST_NAMES; do
0 commit comments