After some effort, I have taught depmod to handle endianness,
authorEric Andersen <andersen@codepoet.org>
Fri, 30 Sep 2005 20:17:07 +0000 (20:17 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 30 Sep 2005 20:17:07 +0000 (20:17 -0000)
allowing us to build a cross-depmod that runs on the host and
generates the target modules.dep and modules.*map files
 -Erik

package/modutils/modutils.mk

index 01a55530db6590393deaa9c0dd80842fb2c6a4dd..dd0219ccf1a2099047314ab2d08a6d2d85cc653c 100644 (file)
@@ -5,8 +5,9 @@
 #############################################################
 MODUTILS_SOURCE=modutils-2.4.27.tar.bz2
 MODUTILS_SITE=ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.4/
-MODUTILS_DIR=$(BUILD_DIR)/modutils-2.4.27
-MODUTILS_BINARY=insmod
+MODUTILS_DIR1=$(BUILD_DIR)/modutils-2.4.27
+MODUTILS_DIR2=$(TOOL_BUILD_DIR)/modutils-2.4.27
+MODUTILS_BINARY=depmod/depmod
 MODUTILS_TARGET_BINARY=$(TARGET_DIR)/sbin/$(MODUTILS_BINARY)
 
 STRIPPROG=$(STRIP)
@@ -14,16 +15,21 @@ STRIPPROG=$(STRIP)
 $(DL_DIR)/$(MODUTILS_SOURCE):
        $(WGET) -P $(DL_DIR) $(MODUTILS_SITE)/$(MODUTILS_SOURCE)
 
-$(MODUTILS_DIR)/.source: $(DL_DIR)/$(MODUTILS_SOURCE)
+#############################################################
+#
+# build modutils for use on the target system
+#
+#############################################################
+$(MODUTILS_DIR1)/.source: $(DL_DIR)/$(MODUTILS_SOURCE)
        bzcat $(DL_DIR)/$(MODUTILS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
-       toolchain/patch-kernel.sh $(MODUTILS_DIR) \
+       toolchain/patch-kernel.sh $(MODUTILS_DIR1) \
                package/modutils \*.patch
-       touch $(MODUTILS_DIR)/.source
+       touch $(MODUTILS_DIR1)/.source
 
-$(MODUTILS_DIR)/.configured: $(MODUTILS_DIR)/.source
-       (cd $(MODUTILS_DIR); \
+$(MODUTILS_DIR1)/.configured: $(MODUTILS_DIR1)/.source
+       (cd $(MODUTILS_DIR1); \
                $(TARGET_CONFIGURE_OPTS) \
-               INSTALL=$(MODUTILS_DIR)/install-sh \
+               INSTALL=$(MODUTILS_DIR1)/install-sh \
                ./configure \
                --target=$(GNU_TARGET_NAME) \
                --host=$(GNU_TARGET_NAME) \
@@ -31,14 +37,14 @@ $(MODUTILS_DIR)/.configured: $(MODUTILS_DIR)/.source
                --prefix=/ \
                --sysconfdir=/etc \
        );
-       touch $(MODUTILS_DIR)/.configured;
+       touch $(MODUTILS_DIR1)/.configured;
 
-$(MODUTILS_DIR)/$(MODUTILS_BINARY): $(MODUTILS_DIR)/.configured
-       $(MAKE) CC=$(TARGET_CC) -C $(MODUTILS_DIR)
+$(MODUTILS_DIR1)/$(MODUTILS_BINARY): $(MODUTILS_DIR1)/.configured
+       $(MAKE) CC=$(TARGET_CC) -C $(MODUTILS_DIR1)
 
-$(TARGET_DIR)/$(MODUTILS_TARGET_BINARY): $(MODUTILS_DIR)/$(MODUTILS_BINARY)
+$(TARGET_DIR)/$(MODUTILS_TARGET_BINARY): $(MODUTILS_DIR1)/$(MODUTILS_BINARY)
        STRIPPROG='$(STRIPPROG)' \
-       $(MAKE) prefix=$(TARGET_DIR) -C $(MODUTILS_DIR) install-bin
+       $(MAKE) prefix=$(TARGET_DIR) -C $(MODUTILS_DIR1) install-bin
        rm -Rf $(TARGET_DIR)/usr/man
 
 modutils: uclibc $(TARGET_DIR)/$(MODUTILS_TARGET_BINARY)
@@ -46,11 +52,60 @@ modutils: uclibc $(TARGET_DIR)/$(MODUTILS_TARGET_BINARY)
 modutils-source: $(DL_DIR)/$(MODUTILS_SOURCE)
 
 modutils-clean:
-       $(MAKE) prefix=$(TARGET_DIR)/usr -C $(MODUTILS_DIR) uninstall
-       -$(MAKE) -C $(MODUTILS_DIR) clean
+       $(MAKE) prefix=$(TARGET_DIR)/usr -C $(MODUTILS_DIR1) uninstall
+       -$(MAKE) -C $(MODUTILS_DIR1) clean
 
 modutils-dirclean:
-       rm -rf $(MODUTILS_DIR)
+       rm -rf $(MODUTILS_DIR1)
+
+
+#############################################################
+#
+# build modutils for use on the host system
+#
+#############################################################
+ifeq ($(strip $(BR2_mips)),y)
+DEPMOD_EXTRA_STUFF=CFLAGS=-D__MIPSEB__
+endif
+ifeq ($(strip $(BR2_mipsel)),y)
+DEPMOD_EXTRA_STUFF=CFLAGS=-D__MIPSEL__
+endif
+
+$(MODUTILS_DIR2)/.source: $(DL_DIR)/$(MODUTILS_SOURCE)
+       bzcat $(DL_DIR)/$(MODUTILS_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
+       toolchain/patch-kernel.sh $(MODUTILS_DIR2) \
+               package/modutils \*.patch
+       touch $(MODUTILS_DIR2)/.source
+
+$(MODUTILS_DIR2)/.configured: $(MODUTILS_DIR2)/.source
+       (cd $(MODUTILS_DIR2); \
+               ./configure $(DEPMOD_EXTRA_STUFF) \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_HOST_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --prefix=/ \
+               --sysconfdir=/etc \
+       );
+       touch $(MODUTILS_DIR2)/.configured;
+
+$(MODUTILS_DIR2)/$(MODUTILS_BINARY): $(MODUTILS_DIR2)/.configured
+       $(MAKE) -C $(MODUTILS_DIR2)
+
+$(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-depmod: $(MODUTILS_DIR2)/$(MODUTILS_BINARY)
+       cp $(MODUTILS_DIR2)/$(MODUTILS_BINARY) $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-depmod
+
+cross-depmod: uclibc $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-depmod
+
+cross-depmod-source: $(DL_DIR)/$(MODUTILS_SOURCE)
+
+cross-depmod-clean:
+       $(MAKE) prefix=$(TARGET_DIR)/usr -C $(MODUTILS_DIR2) uninstall
+       -$(MAKE) -C $(MODUTILS_DIR2) clean
+
+cross-depmod-dirclean:
+       rm -rf $(MODUTILS_DIR2)
+
+
 
 #############################################################
 #