Re: [PATCH branch-1.6] feature: 'makedep' for m4

Eric Blake via M4-patches <[email protected]> Mon, 21 Apr 2025 10:41:40 -0500
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <mmgtl5kys57hocxeqkx5jikcqaonwc2ce3ai6x65egdmr4xrj2@moualeuxswjh>
T24gTW9uLCBBcHIgMjEsIDIwMjUgYXQgMTA6MjU6NDdBTSAtMDUwMCwgRXJpYyBCbGFrZSB2aWEg
TTQtcGF0Y2hlcyB3cm90ZToKPiBGcm9tOiBEYXZpZCBXYXJtZSA8YTEzNmRtd0B3YXJtZS5uZXQ+
Cj4gCj4gQWRkIGFiaWxpdHkgdG8gZ2VuZXJhdGUgbWFrZSBkZXBlbmRlbmN5IHJ1bGVzLgo+ICog
ZG9jL200LnRleGluZm86IERvY3VtZW50IG5ldyBvcHRpb25zLgo+ICogc3JjL2J1aWx0aW4uYzog
UmVjb3JkIGRlcGVuZGVuY2llcyBmb3IgaW5jbHVkZSgpIC8gc2luY2x1ZGUoKS4KPiAqIHNyYy9t
NC5jOiBBZGQgbmV3IG9wdGlvbnMuICBSZWNvcmQgZGVwZW5kZW5jaWVzIGZvciBmaWxlcwo+IHNw
ZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLiAgR2VuZXJhdGUgZGVwZW5kZW5jaWVzIGF0IGVu
ZC4KPiAqIHNyYy9tNC5oOiBBZGQgZGVmaW5lcyBmb3IgdHJhY2tpbmcgaG93IGZpbGVzIGFyZSBy
ZWZlcmVuY2VzLCBhbmQKPiBuZXcgZnVuY3Rpb25zIGZvciByZWNvcmRpbmcgLyBnZW5lcmF0aW9u
IG9mIGRlcGVuZGVuY2llcy4KPiAqIHNyYy9wYXRoLmM6IEFkZGVkIHJlY29yZGluZyAvIGdlbmVy
YXRpb24gb2YgZGVwZW5kZW5jaWVzLgo+ICogTkVXUzogQWRkZWQgYSBibHVyYiBmb3IgdGhpcyBu
ZXcgZmVhdHVyZS4KPiAqIFRIQU5LUyBBZGRlZCB1cyB0byB0aGUgbGlzdC4KPiBDby1hdXRob3Jl
ZC1ieTogTG9yZW56byBEaSBHcmVnb3JpbyA8bG9yZW56by5kaWdyZWdvcmlvQGdtYWlsLmNvbT4K
PiAtLS0KPiAKPiBUaGlzIGlzIE5PVCB5ZXQgcmVhZHkgZm9yIGluY2x1c2lvbiAtIEkgaW5zaXN0
IHRoYXQgd2UgTkVFRCB0byBoYXZlCj4gc29tZXRoaW5nIHRoYXQgdGVzdHMgdGhlIGZ1bmN0aW9u
YWxpdHkgZHVyaW5nICdtYWtlIGNoZWNrJyB0byBlbnN1cmUKPiBpdCBkb2Vzbid0IHJlZ3Jlc3Mu
ICBBbmQgdGhlcmUgYXJlIHByb2JhYmx5IG90aGVyIG5pdHBpY2tzIHRoYXQgSSB3aWxsCj4gY2xl
YW4gdXAgKHN1Y2ggYXMgQ2hhbmdlTG9nIHN0eWxlLCBlcnJvciBtZXNzYWdlIHR3ZWFrcywgZmln
dXJpbmcgb3V0Cj4gdGhlIHByZWZlcnJlZCB3YXkgdG8gZG8gdGhlIGZsZXhpYmxlIGFsbG9jYXRp
b24gb2YgdGhlIGZpbGUgbmFtZSBpbgo+IHN0b3JhZ2UgYWxvbmdzaWRlICdzdHJ1Y3QgZGVwZW5k
ZW5jeScsIGFuZCBzbyBmb3J0aCkuICBIb3dldmVyLCBJJ20KPiByZXBvc3RpbmcgRGF2aWQncyBv
cmlnaW5hbCBwYXRjaCBhcyB0ZW50YXRpdmVseSByZWJhc2VkIHRvIGJyYW5jaC0xLjYsCj4gdG8g
bWFrZSBpdCBlYXNpZXIgdG8gY29udGludWUgdG8gZ2V0IHRoaXMgcmVhZHkgZm9yIGluY2x1c2lv
biBiZWZvcmUgSQo+IGN1dCB0aGUgbmV4dCBiZXRhIHJlbGVhc2UgaW4gcHJlcGFyYXRpb24gZm9y
IGFuIGV2ZW50dWFsIDEuNi4KCkFtb25nIG90aGVyIHRoaW5ncywgJ21ha2Ugc3ludGF4LWNoZWNr
JyBmYWlsczoKCj4gKysrIGIvZG9jL200LnRleGkKPiBAQCAtMTQ1LDYgKzE0NSw3IEBAIFRvcAo+
IAo+ICAqIE9wZXJhdGlvbiBtb2Rlczo6ICAgICAgICAgICAgIENvbW1hbmQgbGluZSBvcHRpb25z
IGZvciBvcGVyYXRpb24gbW9kZXMKPiAgKiBQcmVwcm9jZXNzb3IgZmVhdHVyZXM6OiAgICAgICBD
b21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJlcHJvY2Vzc29yIGZlYXR1cmVzCj4gKyogTWFrZSBk
ZXBlbmRlbmN5IGdlbmVyYXRpb246OiAgR2VuZXJhdGluZyBtYWtlIGRlcGVuY2VuY3kgcnVsZXMK
ClR5cG86IHMvZGVwZW5jZW5jeS9kZXBlbmRlbmN5LwoKPiArKysgYi9zcmMvYnVpbHRpbi5jCj4g
QEAgLTE0NzIsMTMgKzE0NzIsMTQgQEAgbTRfY2hhbmdlY29tIChzdHJ1Y3Qgb2JzdGFjayAqb2Jz
IE1BWUJFX1VOVVNFRCwgaW50IGFyZ2MsCj4gICAgIGFyZ3VtZW50LCBpZiBpdCBleGlzdHMuICBD
b21wbGFpbiBhYm91dCBpbmFjY2Vzc2libGUgZmlsZXMgaWZmCj4gICAgIFNJTEVOVCBpcyBmYWxz
ZS4gICovCj4gIHN0YXRpYyB2b2lkCj4gLWluY2x1ZGUgKGludCBhcmdjLCBtYWNyb19hcmd1bWVu
dHMgKmFyZ3YsIGJvb2wgc2lsZW50KQo+ICtpbmNsdWRlIChpbnQgYXJnYywgbWFjcm9fYXJndW1l
bnRzICphcmd2LCBib29sIHNpbGVudCwgaW50IHJlZl9mcm9tKQoKU2hvdWxkIHJlZl9mcm9tIGJl
IGFuIGVudW0gaW5zdGVhZCBvZiBpbnQgYXJndW1lbnQsIHNpbmNlIHRoZXJlIGFyZQpvbmx5IGEg
ZmluaXRlIG51bWJlciBvZiBjYWxsZXJzPwoKPiArKysgYi9zcmMvbTQuYwoKPiBAQCAtMzY1LDYg
KzQyMSwyMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9IHsK
PiAgICB7Indhcm4tbWFjcm8tc2VxdWVuY2UiLCBvcHRpb25hbF9hcmd1bWVudCwgTlVMTCwKPiAg
ICAgV0FSTl9NQUNST19TRVFVRU5DRV9PUFRJT059LAo+IAo+ICsgIHsibWFrZWRlcCIsIHJlcXVp
cmVkX2FyZ3VtZW50LCBOVUxMLCBNQUtFREVQX09QVElPTn0sCj4gKyAgeyJtYWtlZGVwLXRhcmdl
dCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBNQUtFREVQX1RBUkdFVF9PUFRJT059LAo+ICsg
IHsibWFrZWRlcC1nZW4tbWlzc2luZy1hcmdmaWxlcyIsIG5vX2FyZ3VtZW50LCBOVUxMLAo+ICsg
ICAgIE1BS0VERVBfR0VOX01JU1NJTkdfQVJHRklMRVNfT1BUSU9OfSwKPiArICB7Im1ha2VkZXAt
Z2VuLW1pc3NpbmctaW5jbHVkZSIsIG5vX2FyZ3VtZW50LCBOVUxMLAo+ICsgICAgIE1BS0VERVBf
R0VOX01JU1NJTkdfSU5DTFVERV9PUFRJT059LAo+ICsgIHsibWFrZWRlcC1nZW4tbWlzc2luZy1z
aW5jbHVkZSIsIG5vX2FyZ3VtZW50LCBOVUxMLAo+ICsgICAgIE1BS0VERVBfR0VOX01JU1NJTkdf
U0lOQ0xVREVfT1BUSU9OfSwKPiArICB7Im1ha2VkZXAtZ2VuLW1pc3NpbmctYWxsIiwgbm9fYXJn
dW1lbnQsIE5VTEwsCj4gKyAgICAgTUFLRURFUF9HRU5fTUlTU0lOR19BTExfT1BUSU9OfSwKPiAr
ICB7Im1ha2VkZXAtcGhvbnktYXJnZmlsZXMiLCBub19hcmd1bWVudCwgTlVMTCwgTUFLRURFUF9Q
SE9OWV9BUkdGSUxFU19PUFRJT059LAo+ICsgIHsibWFrZWRlcC1waG9ueS1pbmNsdWRlIiwgbm9f
YXJndW1lbnQsIE5VTEwsIE1BS0VERVBfUEhPTllfSU5DTFVERV9PUFRJT059LAo+ICsgIHsibWFr
ZWRlcC1waG9ueS1zaW5jbHVkZSIsIG5vX2FyZ3VtZW50LCBOVUxMLCBNQUtFREVQX1BIT05ZX1NJ
TkNMVURFX09QVElPTn0sCgpMb25nIGxpbmVzIG5lZWQgd3JhcHBpbmcuICAnbWFrZSBzeW50YXgt
Y2hlY2snIHJ1bnMgR05VIGluZGVudCB3aGljaAp3YW50cyB0byBmaXQgdGhpbmdzIGluIDgwIGNv
bHVtbnM7IEknbSBpbmNsaW5lZCB0byBhY2NlcHQgaXRzCnN1Z2dlc3Rpb25zLCBleGNlcHQgdGhh
dDoKCj4gKyAgZWxzZSBpZiAoIW1ha2VkZXBfcGF0aCAhPSAhbWFrZWRlcF90YXJnZXQpCj4gKyAg
ICBtNF9lcnJvciAoRVhJVF9GQUlMVVJFLCAwLCBOVUxMLAo+ICsgICAgICAgICAgICAgIF8oIi0t
bWFrZWRlcCBhbmQgLS1tYWtlZGVwLXRhcmdldCBjYW5ub3QgYmUgdXNlZCBpbmRlcGVuZGVudGx5
IikpOwoKaGVyZSBpdCBzdWdnZXN0ZWQ6CgogICAgIG00X2Vycm9yIChFWElUX0ZBSUxVUkUsIDAs
IE5VTEwsCi0gICAgICAgICAgICAgIF8oIi0tbWFrZWRlcCBhbmQgLS1tYWtlZGVwLXRhcmdldCBj
YW5ub3QgYmUgdXNlZCBpbmRlcGVuZGVudGx5IikpOworICAgICAgICAgICAgICBfCisgICAgICAg
ICAgICAgICgiLS1tYWtlZGVwIGFuZCAtLW1ha2VkZXAtdGFyZ2V0IGNhbm5vdCBiZSB1c2VkIGlu
ZGVwZW5kZW50bHkiKSk7Cgp3aGljaCBpcyB3cm9uZy4gIFRoZSB3b3JrYXJvdW5kIHRoZXJlIG1h
eSBiZSBhIHNob3J0ZXIgbWVzc2FnZToKCl8oIi0tbWFrZWRlcCBtdXN0IGJlIHVzZWQgd2l0aCAt
LW1ha2VkZXAtdGFyZ2V0IikKCj4gKysrIGIvc3JjL3BhdGguYwo+IEBAIC0zNiw2ICszNiwxOCBA
QCB0eXBlZGVmIHN0cnVjdCBpbmNsdWRlcyBpbmNsdWRlczsKPiAgc3RhdGljIGluY2x1ZGVzICpk
aXJfbGlzdDsgICAgICAvKiB0aGUgbGlzdCBvZiBwYXRoIGRpcmVjdG9yaWVzICovCj4gIHN0YXRp
YyBpbmNsdWRlcyAqZGlyX2xpc3RfZW5kOyAgLyogdGhlIGVuZCBvZiBzYW1lICovCj4gIHN0YXRp
YyBpbnQgZGlyX21heF9sZW5ndGg7ICAgICAgLyogbGVuZ3RoIG9mIGxvbmdlc3QgZGlyZWN0b3J5
IG5hbWUgKi8KPiArCj4gK3N0cnVjdCBkZXBlbmRlbmN5Cj4gK3sKPiArICBzdHJ1Y3QgZGVwZW5k
ZW5jeSAqbmV4dDsgICAgICAvKiBuZXh0IGluIGxpc3Qgb2YgZGVwZW5kZW5jaWVzICovCj4gKyAg
aW50IHJlZl9mcm9tOyAgICAgICAgICAgICAgICAgLyogYml0IG1hc2s6IHBsYWNlcyBmaWxlIHJl
ZmVyZW5jZWQgZnJvbSAqLwo+ICsgIGNoYXIgcGF0aCBbMV07ICAgICAgICAgICAgICAgIC8qIHBh
dGhuYW1lIG9mIHRoaXMgZGVwZW5kZW5jeSAqLwoKSSBzdGlsbCBuZWVkIHRvIHJlc2VhcmNoIHRo
ZSBiZXN0IHdheSB0byBkbyB0aGlzOyBidXQgaWYgd2Uga2VlcCBpdAp3aXRoIFsxXSwgR05VIGlu
ZGVudCBkb2VzIG5vdCBsaWtlIHRoZSBzcGFjZSBiZWZvcmUgWy4KCj4gK307Cj4gKwo+ICt0eXBl
ZGVmIHN0cnVjdCBkZXBlbmRlbmN5IGRlcGVuZGVuY3k7Cj4gKwo+ICtzdGF0aWMgZGVwZW5kZW5j
eSAqZGVwZW5kZW5jeV9saXN0OyAgICAgLyogdGhlIGxpc3Qgb2YgZGVwZW5kZW5jaWVzICovCj4g
K3N0YXRpYyBkZXBlbmRlbmN5ICpkZXBlbmRlbmN5X2xpc3RfZW5kOyAvKiB0aGUgZW5kIG9mIHNh
bWUgKi8KPiAgDAo+IAo+ICB2b2lkCj4gQEAgLTE5NCw2ICsyMDYsNzQgQEAgbTRfcGF0aF9zZWFy
Y2ggKGNvbnN0IGNoYXIgKmZpbGUsIGJvb2wgYmluYXJ5LCBjaGFyICoqcmVzdWx0KQo+ICAgIHJl
dHVybiBmcDsKPiAgfQo+IAo+ICt2b2lkCj4gK3JlY29yZF9kZXBlbmRlbmN5IChjb25zdCBjaGFy
ICogcGF0aCwgaW50IHJlZl9mcm9tKQoKY29uc3QgY2hhciAqcGF0aAoKPiArewo+ICsgIGRlcGVu
ZGVuY3kgKmRwOwo+ICsgIHNpemVfdCBsZW4sIG5ieXRlczsKPiArICBmb3IgKGRwID0gZGVwZW5k
ZW5jeV9saXN0OyBkcCAhPSBOVUxMOyBkcCA9IGRwLT5uZXh0KQo+ICsgICAgaWYgKHN0cmNtcCAo
cGF0aCwgZHAtPnBhdGgpID09IDApCj4gKyAgICAgIHsKPiArICAgICAgICAvKiBSZW1lbWJlciBh
bGwgdGhlIHBsYWNlcyB0aGlzIGZpbGUgaGFzIGJlZW4gcmVmZXJlbmNlZCBmcm9tLiAqLwo+ICsg
ICAgICAgIGRwLT5yZWZfZnJvbSB8PSByZWZfZnJvbTsKPiArICAgICAgICByZXR1cm47Cj4gKyAg
ICAgIH0KPiArCj4gKyAgbGVuID0gc3RybGVuIChwYXRoKTsKPiArICBuYnl0ZXMgPSBvZmZzZXRv
ZihkZXBlbmRlbmN5LCBwYXRoWzBdKSArIGxlbiArIDE7CgpvZmZzZXRvZiAoZGVwZW5kZW5jeQoK
PiArICBkcCA9IHhtYWxsb2MgKG5ieXRlcyk7Cj4gKyAgZHAtPm5leHQgPSBOVUxMOwo+ICsgIGRw
LT5yZWZfZnJvbSA9IHJlZl9mcm9tOwo+ICsgIHN0cmNweSAoZHAtPnBhdGgsIHBhdGgpOwo+ICsK
PiArICBpZiAoZGVwZW5kZW5jeV9saXN0X2VuZCA9PSBOVUxMKQo+ICsgICAgZGVwZW5kZW5jeV9s
aXN0ID0gZHA7Cj4gKyAgZWxzZQo+ICsgICAgZGVwZW5kZW5jeV9saXN0X2VuZC0+bmV4dCA9IGRw
Owo+ICsgIGRlcGVuZGVuY3lfbGlzdF9lbmQgPSBkcDsKPiArfQo+ICsKPiArdm9pZAo+ICtnZW5l
cmF0ZV9tYWtlX2RlcGVuZGVuY2llcyAoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdGFy
Z2V0LCBpbnQgcGhvbnkpCj4gK3sKPiArICBGSUxFICpmcDsKPiArICBpbnQgY29sLCBsZW4sIG1h
eGNvbDsKCkFueXRoaW5nIHBvcHVsYXRlZCB3aXRoIHN0cmxlbigpIHNob3VsZCBwcm9iYWJseSBi
ZSBzaXplX3QsIG5vdCBpbnQuCgo+ICsgIGRlcGVuZGVuY3kgKmRwOwo+ICsKPiArICBmcCA9IGZv
cGVuIChwYXRoLCAidyIpOwo+ICsgIGlmICghZnApCj4gKyAgICB7Cj4gKyAgICAgIG00X2Vycm9y
ICgwLCBlcnJubywgTlVMTCwgInVuYWJsZSB0byBvcGVuICVzIiwKPiArICAgICAgICAgICAgICAg
IHF1b3RlYXJnX3N0eWxlX21lbSAobG9jYWxlX3F1b3Rpbmdfc3R5bGUsIHBhdGgsIHN0cmxlbiAo
cGF0aCkpKTsKCkxvbmcgbGluZS4KCj4gKyAgICAgIHJldHVybjsKPiArICAgIH0KPiArCj4gKyAg
LyogR2VuZXJhdGUgdGhlIG1haW4gZGVwZW5kZW5jeSBydWxlLiAqLwo+ICsgIG1heGNvbCA9IDc4
Owo+ICsgIGZwcmludGYgKGZwLCAiJXM6IiwgdGFyZ2V0KTsKPiArICBjb2wgPSBzdHJsZW4gKHRh
cmdldCkgKyAxOwo+ICsgIGZvciAoZHAgPSBkZXBlbmRlbmN5X2xpc3Q7IGRwICE9IE5VTEw7IGRw
ID0gZHAtPm5leHQpCj4gKyAgICB7Cj4gKyAgICAgIGxlbiA9IDEgKyBzdHJsZW4gKGRwLT5wYXRo
KTsKClNob3VsZCB3ZSBzdG9yZSBsZW4gaW4gJ3N0cnVjdCBkZXBlbmRlbmN5JyBzbyB3ZSBhcmVu
J3QgcmVjb21wdXRpbmcKc3RybGVuKCkgZWFjaCB0aW1lIGEgbmV3IGxvb2t1cCBpcyBkb25lPwoK
PiArICAgICAgaWYgKGNvbCArIGxlbiArIDIgPiBtYXhjb2wpIC8qICsyIGlzIGZvciB0cmFpbGlu
ZyBzcGFjZS9iYWNrc2xhc2ggKi8KPiArICAgICAgICB7Cj4gKyAgICAgICAgICBmcHJpbnRmIChm
cCwiIFxcXG4gIik7CgpmcCwgIiBcXFxuICIKClVzaW5nIGZwcmludGYgdG8gcHJpbnQgc29tZXRo
aW5nIHdpdGhvdXQgJSBpcyBvdmVya2lsbDsgZnB1dHMgaXMKYmV0dGVyLiAgV2h5IGlzIHRoZSBu
ZXh0IGxpbmUgc3RhcnRpbmcgd2l0aCBhIHNwYWNlIGhlcmU/Cgo+ICsgICAgICAgICAgY29sID0g
MTsKPiArICAgICAgICB9Cj4gKyAgICAgIGZwcmludGYgKGZwLCAiICVzIiwgZHAtPnBhdGgpOwo+
ICsgICAgICBjb2wgKz0gbGVuOwo+ICsgICAgfQo+ICsgIGZwdXRzICgiXG4iLCBmcCk7Cj4gKwo+
ICsgIC8qIEdlbmVyYXRlIHBob255IHRhcmdldHMgZm9yIHVzZXItc3BlY2lmaWVkIHN1YnNldCBv
ZiBkZXBlbmRlbmNpZXMuICovCj4gKyAgaWYgKHBob255ICE9IDApCj4gKyAgICBmb3IgKGRwID0g
ZGVwZW5kZW5jeV9saXN0OyBkcCAhPSBOVUxMOyBkcCA9IGRwLT5uZXh0KQo+ICsgICAgICBpZiAo
KGRwLT5yZWZfZnJvbSAmIHBob255KSAhPSAwKQo+ICsgICAgICAgIGZwcmludGYgKGZwLCAiXG4l
czpcbiIsIGRwLT5wYXRoKTsKPiArCj4gKyAgZmNsb3NlIChmcCk7CgpJIHJlYWxseSBoYXZlIG5v
dCB5ZXQgaW5wc2VjdGVkIHRoZSBvdXRwdXQgZmlsZXMgdG8gbWFrZSBzdXJlIHRoZXkKbG9vayBz
YW5lOyBzaG91bGQgdGhleSBpbmNsdWRlIGFueSBoZWFkZXIgKHN1Y2ggYXMgImdlbmVyYXRlZCBi
eSAuLi4iKQp0byBtYWtlIGl0IG9idmlvdXMgdGhleSB3ZXJlIGNvbXB1dGVkIGJ5IGEgcnVuIG9m
IG00PyAgVGhpcyBpcyB3aHkgSQppbnNpc3QgdGhhdCB0aGVyZSBiZSB0ZXN0c3VpdGUgY292ZXJh
Z2UuCgotLSAKRXJpYyBCbGFrZSwgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyClJlZCBIYXQs
IEluYy4KVmlydHVhbGl6YXRpb246ICBxZW11Lm9yZyB8IGxpYmd1ZXN0ZnMub3JnCgoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTTQtcGF0Y2hlcyBtYWls
aW5nIGxpc3QKTTQtcGF0Y2hlc0BnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFu
L2xpc3RpbmZvL200LXBhdGNoZXMK