]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1743] fix circular dependency in src/lib/log
authorAndrei Pavel <andrei@isc.org>
Mon, 8 Apr 2024 14:59:38 +0000 (17:59 +0300)
committerAndrei Pavel <andrei@isc.org>
Wed, 17 Apr 2024 11:53:39 +0000 (14:53 +0300)
Fixes the problem where to generate log_messages.(cc|h), you need
kea-msg-compiler, but to compile kea-msg-compiler you need
log_messages.(cc|h). This halted compilation even when building
from scratch.

Simply only regenerate log_messages.(cc|h) only if kea-msg-compiler
exists. It will not regenerate the files on first pass, but one can
explicitly call `make messages -C src/lib/log` afterwards to regenerate
the files.

src/lib/log/Makefile.am

index 78a7ffa7431384150f54de284274e95d4bcd37f3..54e3589815e9513a7328b94d673957adf05e1b52 100644 (file)
@@ -104,11 +104,19 @@ if GENERATE_MESSAGES
 messages: log_messages.cc log_messages.h logimpl_messages.cc logimpl_messages.h
        @echo Message files regenerated
 
+# If bootstrapping, do not generate log messages because there is nothing to generate them with.
+# A second make command or an explicit "make messages" command should do the job.
 log_messages.cc log_messages.h: log_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/log/log_messages.mes
+       @if test -f $(top_builddir)/src/lib/log/compiler/kea-msg-compiler; then \
+               $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/log/log_messages.mes; \
+       fi
 
+# If bootstrapping, do not generate log messages because there is nothing to generate them with.
+# A second make command or an explicit "make messages" command should do the job.
 logimpl_messages.cc logimpl_messages.h: logimpl_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/log/logimpl_messages.mes
+       @if test -f $(top_builddir)/src/lib/log/compiler/kea-msg-compiler; then \
+               $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/log/logimpl_messages.mes; \
+       fi
 
 else