summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-10-02 14:31:48 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-10-02 17:07:59 +0200
commit1ecabcafa838ea0ec2d5d7db24cbdfba2f123af2 (patch)
tree2a88f9c5bec4f11f9b09c4ea803fe2eb99a8d54e
parentf933c40ae7f7124abf29f279058ef1fc7ad3f14c (diff)
uclibc-ng: rework package, fix spurious unneeded rebuilds
-rw-r--r--package/uclibc-ng/Config.in.manual2
-rw-r--r--package/uclibc-ng/Makefile42
-rw-r--r--target/config/Config.in.libc1
-rw-r--r--toolchain/uclibc-ng/Makefile40
4 files changed, 37 insertions, 48 deletions
diff --git a/package/uclibc-ng/Config.in.manual b/package/uclibc-ng/Config.in.manual
index 073b0d935..69f6c89bb 100644
--- a/package/uclibc-ng/Config.in.manual
+++ b/package/uclibc-ng/Config.in.manual
@@ -1,5 +1,5 @@
config ADK_PACKAGE_UCLIBC_NG
- bool "uClibc-ng............... embedded C library"
+ bool
depends on ADK_TARGET_LIB_UCLIBC_NG
default y if ADK_TARGET_LIB_UCLIBC_NG && !ADK_APPLIANCE_TOOLCHAIN
default n
diff --git a/package/uclibc-ng/Makefile b/package/uclibc-ng/Makefile
index 35590af0c..dd70038bb 100644
--- a/package/uclibc-ng/Makefile
+++ b/package/uclibc-ng/Makefile
@@ -29,41 +29,12 @@ CONFIG_STYLE:= manual
BUILD_STYLE:= manual
INSTALL_STYLE:= manual
-do-build:
-ifeq ($(ADK_PACKAGE_UCLIBC_NG_TEST),y)
- PATH='$(HOST_PATH)' $(MAKE) -j1 -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/${PKG_NAME}-${PKG_VERSION} \
- HOSTCC='$(HOST_CC)' \
- CC='$(TARGET_CC)' \
- PREFIX=$(STAGING_TARGET_DIR) \
- DEVEL_PREFIX=/usr/ \
- DEVEL_PREFIX_LIB=/ \
- RUNTIME_PREFIX=/ \
- UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
- UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
- TEST_INSTALLED_UCLIBC=1 \
- UCLIBC_ONLY=1 \
- VERBOSE=1 \
- test_gen test_compile
-endif
-
-do-install:
- ${INSTALL_DIR} $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH) $(IDIR_UCLIBC_NG)/etc
+uclibc-ng-install:
+ $(INSTALL_DIR) $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH) $(IDIR_UCLIBC_NG)/etc
+ -$(CP) $(STAGING_TARGET_DIR)/uclibc-ng/lib*/* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
test -z $(ADK_RUNTIME_TIMEZONE) || \
grep $(ADK_RUNTIME_TIMEZONE) ./files/tz.lst | \
cut -f 2 > $(IDIR_UCLIBC_NG)/etc/TZ
-ifneq ($(ADK_TARGET_USE_STATIC_LIBS)$(ADK_TARGET_BINFMT_FLAT),y)
- $(CP) $(STAGING_TARGET_DIR)/lib/libc.so.* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
- $(CP) $(STAGING_TARGET_DIR)/lib/libuClibc-*.so \
- $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
- $(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc-*.so \
- $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
- $(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc*.so.* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
- -for file in libcrypt libdl libm libnsl libresolv libutil libuargp; do \
- $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH); \
- $(CP) $(STAGING_TARGET_DIR)/lib/$$file-*.so \
- $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH); \
- done
-endif
ifeq ($(ADK_RUNTIME_ENABLE_LOCALE),y)
${INSTALL_DIR} $(IDIR_UCLIBC_NG)/usr/bin
$(INSTALL_BIN) $(STAGING_TARGET_DIR)/usr/bin/locale $(IDIR_UCLIBC_NG)/usr/bin
@@ -73,14 +44,7 @@ uclibc-ng-dev-install:
${INSTALL_DIR} ${IDIR_UCLIBC_NG_DEV}/usr/lib ${IDIR_UCLIBC_NG_DEV}/$(ADK_TARGET_LIBC_PATH)
${CP} ${STAGING_TARGET_DIR}/usr/lib/libc.so ${IDIR_UCLIBC_NG_DEV}/usr/lib
${CP} ${STAGING_TARGET_DIR}/usr/lib/uclibc_nonshared.a ${IDIR_UCLIBC_NG_DEV}/usr/lib
-ifeq ($(ADK_TARGET_LIB_WITH_THREADS),y)
- -${CP} ${STAGING_TARGET_DIR}/usr/lib/libpthread.so ${IDIR_UCLIBC_NG_DEV}/usr/lib
- -${CP} ${STAGING_TARGET_DIR}/usr/lib/libpthread_nonshared.a ${IDIR_UCLIBC_NG_DEV}/usr/lib
-endif
${CP} ${STAGING_TARGET_DIR}/usr/lib/crt*.o ${IDIR_UCLIBC_NG_DEV}/usr/lib
- for file in libcrypt libdl libm libresolv libutil libuargp; do \
- cd $(IDIR_UCLIBC_NG_DEV)/$(ADK_TARGET_LIBC_PATH); ln -sf $$file-$(PKG_VERSION).so $$file.so; \
- done
${KERNEL_MAKE_ENV} \
$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_VERSION)/linux-$(KERNEL_FILE_VER) \
$(KERNEL_MAKE_OPTS) \
diff --git a/target/config/Config.in.libc b/target/config/Config.in.libc
index a4061d9a1..f3ad60405 100644
--- a/target/config/Config.in.libc
+++ b/target/config/Config.in.libc
@@ -7,6 +7,7 @@ default ADK_TARGET_LIB_UCLIBC_NG if ADK_TARGET_OS_LINUX
config ADK_TARGET_LIB_UCLIBC_NG
bool "uClibc-ng embedded C library"
+ select ADK_PACKAGE_LIBGCC
depends on (\
ADK_TARGET_ARCH_ALPHA || \
ADK_TARGET_ARCH_ARC || \
diff --git a/toolchain/uclibc-ng/Makefile b/toolchain/uclibc-ng/Makefile
index 192b34daa..0561243ac 100644
--- a/toolchain/uclibc-ng/Makefile
+++ b/toolchain/uclibc-ng/Makefile
@@ -41,9 +41,9 @@ UCLIBC_MAKEOPTS+= -j${ADK_MAKE_JOBS}
endif
$(WRKBUILD)/.configured: $(WRKBUILD)/.prepared
- $(SED) 's,^CROSS_COMPILE=.*,CROSS_COMPILE=$(TARGET_CROSS),g' $(WRKBUILD)/Rules.mak
PATH='$(HOST_PATH)' sed -e 's^KERNEL_HEADERS.*$$KERNEL_HEADERS=\"${STAGING_TARGET_DIR}/usr/include\"' \
$(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/uclibc-ng.config >${WRKBUILD}/.config
+ $(SED) 's^.*\(CROSS_COMPILER_PREFIX\).*^\1=\"$(TARGET_CROSS)\"^' ${WRKBUILD}/.config
ifeq ($(ADK_TARGET_ENDIAN),little)
$(SED) 's/.*\(ARCH_LITTLE_ENDIAN\).*/\1=y/' ${WRKBUILD}/.config
$(SED) 's/.*\(ARCH_WANTS_LITTLE_ENDIAN\).*/\1=y/' ${WRKBUILD}/.config
@@ -284,7 +284,7 @@ ifeq ($(ADK_TARGET_ABI_O32),y)
$(SED) 's/.*\(CONFIG_MIPS_N64_ABI\).*/# \1 is not set/' ${WRKBUILD}/.config
endif
endif
- echo N|PATH='$(HOST_PATH)' $(MAKE) $(UCLIBC_MAKEOPTS) -C $(WRKBUILD) \
+ echo N|PATH='$(HOST_PATH)' $(MAKE) -C $(WRKBUILD) \
HOSTCC="$(HOST_CC)" \
CC='$(TARGET_CC)' \
PREFIX=$(STAGING_TARGET_DIR) \
@@ -300,30 +300,54 @@ endif
$(WRKBUILD)/.compiled: $(WRKBUILD)/.configured
PATH='$(HOST_PATH)' $(MAKE) $(UCLIBC_MAKEOPTS) -C $(WRKBUILD) \
+ ARCH="$(ADK_TARGET_ARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
HOSTCC="$(HOST_CC)" \
- CC='$(TARGET_CC)' \
PREFIX=$(STAGING_TARGET_DIR) \
DEVEL_PREFIX=/usr/ \
- DEVEL_PREFIX_LIB=/ \
RUNTIME_PREFIX=/ \
UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
VERBOSE=1 \
- all utils
+ all
touch $@
$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
PATH='$(HOST_PATH)' $(MAKE) -C $(WRKBUILD) \
+ ARCH="$(ADK_TARGET_ARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
HOSTCC="$(HOST_CC)" \
- CC='$(TARGET_CC)' \
PREFIX=$(STAGING_TARGET_DIR) \
DEVEL_PREFIX=/usr/ \
- DEVEL_PREFIX_LIB=/ \
RUNTIME_PREFIX=/ \
UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
VERBOSE=1 \
- install_runtime install_dev install_utils
+ install_runtime install_dev
+ PATH='$(HOST_PATH)' $(MAKE) -C $(WRKBUILD) \
+ ARCH="$(ADK_TARGET_ARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ HOSTCC="$(HOST_CC)" \
+ PREFIX=$(STAGING_TARGET_DIR)/uclibc-ng \
+ DEVEL_PREFIX=/usr/ \
+ RUNTIME_PREFIX=/ \
+ UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+ UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
+ VERBOSE=1 \
+ install_runtime
+ PATH='$(HOST_PATH)' $(MAKE) -C $(WRKBUILD) \
+ ARCH="$(ADK_TARGET_ARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ HOSTCC="$(HOST_CC)" \
+ PREFIX=$(STAGING_TARGET_DIR)/uclibc-ng \
+ DEVEL_PREFIX=/usr/ \
+ RUNTIME_PREFIX=/ \
+ UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+ UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
+ TEST_INSTALLED_UCLIBC=1 \
+ UCLIBC_ONLY=1 \
+ VERBOSE=1 \
+ test_compile test_gen
touch $@
include ${ADK_TOPDIR}/mk/toolchain.mk