sdk: add spidev-test to the bundle of userspace sources
authorChristian Lamparter <chunkeey@gmail.com>
Fri, 15 Jul 2022 23:34:44 +0000 (01:34 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Tue, 19 Jul 2022 18:27:06 +0000 (20:27 +0200)
moves and extends the current facilities, which have been
added some time ago for the the usbip utility, to support
more utilites that are shipped with the Linux kernel tree
to the SDK.

this allows to drop all the hand-waving and code for
failed previous attempts to mitigate the SDK build failures.

Fixes: bdaaf66e28bd ("utils/spidev_test: build package directly from Linux")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit b479db9062b721776be44b976961a1031c1344ea)
(cherry picked from commit eb8d0da88a0dcf7f10f05ad10c48e3a691f5a8d1)

package/utils/spidev_test/Makefile
target/sdk/Makefile

index 0f288ad01060fe8b5ccb498cd84dbea2bc1ec6f2..fef5c8f6467a2f3b81f7b6d8f667f1d39e666426 100644 (file)
@@ -10,7 +10,6 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=spidev-test
 PKG_RELEASE:=$(LINUX_VERSION)
-PKG_FLAGS:=nonshared
 PKG_BUILD_DIR:=$(LINUX_DIR)/tools/spi-$(TARGET_DIR_NAME)
 PKG_BUILD_PARALLEL:=1
 
@@ -19,7 +18,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/spidev-test
   SECTION:=utils
   CATEGORY:=Utilities
-  DEPENDS:=+kmod-spi-dev @!IN_SDK
+  DEPENDS:=+kmod-spi-dev
   TITLE:=SPI testing utility
   VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE)
   URL:=http://www.kernel.org
@@ -30,6 +29,8 @@ define Package/spidev-test/description
 endef
 
 define Build/Prepare
+       # For SDK: Sources are copied by target/sdk/Makefile's
+       # USERSPACE_UTILS(_FILES)
        $(CP) $(LINUX_DIR)/tools/spi/* $(PKG_BUILD_DIR)/
 endef
 
index 0606621192c7508fc7a470eff0173dc62ff70ded..be7e1ebf5198bde3b0dcf844884747aef59bc91f 100644 (file)
@@ -82,6 +82,18 @@ KERNEL_FILES_BASE := \
 
 KERNEL_FILES := $(patsubst $(TOPDIR)/%,%,$(wildcard $(addprefix $(LINUX_DIR)/,$(KERNEL_FILES_BASE))))
 
+# The kernel source hosts various userspace utilities sources.
+# These are packaged separately from the kernel and kernel modules.
+# The source has to be included here to be buildable by the SDK.
+#
+USERSPACE_UTILS_FILES := \
+       tools/build \
+       tools/scripts \
+       tools/usb/usbip \
+       tools/spi
+
+USERSPACE_FILES := $(patsubst $(TOPDIR)/%,%,$(wildcard $(addprefix $(LINUX_DIR)/,$(USERSPACE_UTILS_FILES))))
+
 all: compile
 
 $(BIN_DIR)/$(SDK_NAME).tar.xz: clean
@@ -100,8 +112,7 @@ $(BIN_DIR)/$(SDK_NAME).tar.xz: clean
                $(SDK_DIRS) $(KERNEL_FILES) | \
                $(TAR) -xf - -C $(SDK_BUILD_DIR)
 
-       # Copy usbip sources, this is required for the usbip userspace packages to be buildable by the SDK.
-       $(TAR) -cf - -C $(TOPDIR) $(KDIR_BASE)/tools/usb/usbip/ | \
+       $(TAR) -cf - -C $(TOPDIR) $(USERSPACE_FILES) | \
                $(TAR) -xf - -C $(SDK_BUILD_DIR)
 
        (cd $(SDK_BUILD_DIR); find $(STAGING_SUBDIR_HOST)/bin $(STAGING_SUBDIR_HOST)/usr/bin \