diff mbox

[uclibc-ng-devel] Fix extra/locale/gen_wc_8bit error with out-of-tree builds

Message ID 1479314004-17417-1-git-send-email-Anton.Kolesov@synopsys.com
State Accepted
Headers show

Commit Message

Anton Kolesov Nov. 16, 2016, 4:33 p.m. UTC
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@synopsys.com>
---
 Makefile.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Waldemar Brodkorb Nov. 19, 2016, 9:31 a.m. UTC | #1
Hi Anton,
Anton Kolesov wrote,

> 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@synopsys.com>

Thanks,
 applied and pushed,

 Waldemar
diff mbox

Patch

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))