Hi,
Building 2.4.2 fails due to a strange Makefile dependency regarding libpcre-32:
[zlatko@airframe:~/usrlocal/src/dovecot-2.4.2/src/lib-regex]$ make make: *** No rule to make target '-L/usr/local/lib64', needed by 'test-regex'. Stop. make: *** Waiting for unfinished jobs.... CCLD libdregex.la
This is because for some reason, $(test_regex_DEPENDENCIES) is part of the targets that need to be made before making test-regex$(EXEEXT):
test-regex$(EXEEXT): $(test_regex_OBJECTS) $(test_regex_DEPENDENCIES) $(EXTRA_test_regex_DEPENDENCIES). @rm -f test-regex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_regex_OBJECTS) $(test_regex_LDADD) $(LIBS)
And $(test_regex_DEPENDENCIES) contains, among other things, $(LIBPCRE_LIBS), which
in turn is the output of pkg-config --libs "libpcre2-32":
[zlatko@airframe:~/usrlocal/src/dovecot-2.4.2/src/lib-regex]$ pkg-config --libs "libpcre2-32" -L/usr/local/lib64 -lpcre2-32
So, make thinks it needs to create two files "-L/usr/local/lib64" and "-lpcre2-32"
before it can make test-regex, but of course it doesn't know *how* to make them,
and stops.
The fix is trivial, of course, just remove the incorrect requirements/targets part "$(test_regex_DEPENDENCIES) $(EXTRA_test_regex_DEPENDENCIES)" from the recipe for test-regex$(EXEEXT) so that it reads ...
test-regex$(EXEEXT): $(test_regex_OBJECTS) @rm -f test-regex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_regex_OBJECTS) $(test_regex_LDADD) $(LIBS)
..., but of course the Makefile should already be generated properly in the first place.
HAND Thomas
participants (1)
-
Thomas Zajic