A change in GNU make behavior (https://savannah.gnu.org/bugs/index.php?63098) breaks opensp-1.5.2. build as:
opensp> make[2]: Entering directory '/build/OpenSP-1.5.2/lib'
opensp> [ ! -f ../msggen.pl ] || perl -w ../msggen.pl -l libModule PosixStorageMessages.msg
opensp> /nix/store/x0fhqd4vly7lqwh9fh2d9z9fx13kdz0f-bash-5.1-p16/bin/bash: line 1: perl: command not found
opensp> make[2]: *** [Makefile:778: PosixStorageMessages.h] Error 127 shuffle=1663959693
Build fails because now GNU make tries to execute the rule if any of the targets is out of date in
%.h %.cxx %.rc: %.msg
[ ! -f $(top_srcdir)/msggen.pl ] || $(PERL) -w $(top_srcdir)/msggen.pl $(MSGGENFLAGS) $<
This rule now fails for cases where .msg file does not intent to produce .cxx file (no !cxx) marking).
Possible fix where optional
.cxxdependency is moved out to a separate rule.