If uClibc is built outside of the source tree, then there is an error:
make[1]: *** No rule to make target `/home/akolesov/build-uclibc/extra/locale',
needed by `/home/akolesov/build-uclibc/extra/locale/gen_wc8bit'. Stop.
The rule to create $(top_builddir)/extra/locale is defined in top-level
Makefile.in. Same Makefile.in also invokes extra/locale/Makefile.in to build
various tools. Those tools have $(top_builddir)/extra/locale as a
dependency, but this makefile doesn't include top-level Makefile.in,
therefore rule to create dependant directory is absent in this submake
invocation.
To avoid this problem this patch defines $(top_builddir)/extra/locale as a
dependency for "headers" target, which invokes extra/locale/Makefile.in,
thus making sure that prerequisite directory is created in advance.
This problem doesn't occur when building in the source tree, since
$(top_builddir) == $(top_srcdir), so this directory already exists.
Signed-off-by: Anton Kolesov <Anton.Kolesov(a)synopsys.com>
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 76008a2..98c6d6d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -183,7 +183,7 @@ menuconfig-clean-y: HEADERCLEAN_config
# libc/sysdeps/linux/Makefile.commonarch to headers-y
headers-y += $(target-headers-sysdep)
-headers: $(top_builddir)include/bits/uClibc_config.h | subdirs
+headers: $(top_builddir)include/bits/uClibc_config.h | subdirs
$(top_builddir)extra/locale
$(Q)$(if $(UCLIBC_HAS_LOCALE),$(MAKE) -C extra/locale locale_headers)
subdirs: $(addprefix $(top_builddir),$(subdirs))
--
2.8.1