diff options
-rw-r--r-- | toolchain/uClibc/Config.in | 18 | ||||
-rw-r--r-- | toolchain/uClibc/uclibc.mk | 33 |
2 files changed, 47 insertions, 4 deletions
diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in index a3d48e8c0..4af60ea4f 100644 --- a/toolchain/uClibc/Config.in +++ b/toolchain/uClibc/Config.in @@ -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. diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk index e39e157c6..1043b0e52 100644 --- a/toolchain/uClibc/uclibc.mk +++ b/toolchain/uClibc/uclibc.mk @@ -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 |