uclibc: add kconfig option and make stuff for installing the uClibc test suite

This patch adds the possibility to install the uClibc test suite to the target
file system. This is useful if you need to debug or test your uClibc.

The option is defaulted to no, and is not needed for a normal running Linux
system. The test suite is installed to /root/uClibc

Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
This commit is contained in:
Hans-Christian Egtvedt 2008-10-07 07:20:32 +00:00
parent 599d3243f1
commit 8e71cdd87f
2 changed files with 47 additions and 4 deletions

View File

@ -83,3 +83,21 @@ config BR2_UCLIBC_PROGRAM_INVOCATION
program_invocation_short_name strings. Some GNU packages
(like tar and coreutils) utilize these for extra useful
output, but in general are not required.
config BR2_UCLIBC_INSTALL_TEST_SUITE
bool "Compile and install uClibc tests"
default n
select BR2_PACKAGE_MAKE
help
Enabling this option will compile and install the uClibc test suite.
This is useful if you want to check if the uClibc library is working
for your architecture and/or help developing uClibc.
The test suite will be installed into /root/uClibc directory. To run
the test suite enter the /root/uClibc/test directory and type
"make UCLIBC_ONLY=1 CC=/bin/true check".
See the /root/uClibc/test/README for additional information.
This is not needed at all for normal builds, so you can safely say no
if you do not plan to dig into your C library.

View File

@ -549,6 +549,9 @@ endif
touch -c $@
UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0
ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
UCLIBC_TARGETS+=uclibc-test
endif
endif
uclibc: $(cross_compiler) $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
@ -568,11 +571,11 @@ uclibc-configured: kernel-headers $(UCLIBC_DIR)/.configured
uclibc-configured-source: uclibc-source
uclibc-clean:
uclibc-clean: uclibc-test-clean
-$(MAKE1) -C $(UCLIBC_DIR) clean
rm -f $(UCLIBC_DIR)/.config
uclibc-dirclean:
uclibc-dirclean: uclibc-test-dirclean
rm -rf $(UCLIBC_DIR)
uclibc-target-utils:
@ -580,6 +583,28 @@ uclibc-target-utils:
uclibc-target-utils-source: $(DL_DIR)/$(UCLIBC_SOURCE)
$(UCLIBC_DIR)/test/unistd/errno:
$(MAKE) -C $(UCLIBC_DIR)/test \
ARCH_CFLAGS=-I$(STAGING_DIR)/include \
UCLIBC_ONLY=1 TEST_INSTALLED_UCLIBC=1 compile
$(TARGET_DIR)/root/uClibc/test/unistd/errno: $(UCLIBC_DIR)/test/unistd/errno
mkdir -p $(TARGET_DIR)/root/uClibc
cp -rdpf $(UCLIBC_DIR)/test $(TARGET_DIR)/root/uClibc
$(INSTALL) $(UCLIBC_DIR)/Rules.mak $(TARGET_DIR)/root/uClibc
$(INSTALL) $(UCLIBC_DIR)/.config $(TARGET_DIR)/root/uClibc
uclibc-test: uclibc $(TARGET_DIR)/root/uClibc/test/unistd/errno
uclibc-test-source: uclibc-source
uclibc-test-clean:
-$(MAKE) -C $(UCLIBC_DIR)/test clean
rm -rf $(TARGET_DIR)/root/uClibc
uclibc-test-dirclean:
rm -rf $(TARGET_DIR)/root/uClibc
#############################################################
#
# uClibc for the target just needs its header files
@ -615,11 +640,11 @@ endif
uclibc_target: cross_compiler uclibc $(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
uclibc_target-clean:
uclibc_target-clean: uclibc-test-clean
rm -rf $(TARGET_DIR)/usr/include \
$(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
uclibc_target-dirclean:
uclibc_target-dirclean: uclibc-test-dirclean
rm -rf $(TARGET_DIR)/usr/include
endif