From 62b5ae4b66f214fb2f105590bdac14133f0cdc20 Mon Sep 17 00:00:00 2001 From: "\"Steven J. Hill\"" Date: Wed, 18 Jul 2007 18:07:19 +0000 Subject: [PATCH] Fix INITRAMFS target that was broken. Get rid of config stuff out of the top-level directory. Finally fix Linux kernel module building such that modules are built and installed first followed by rest of packages. This allows for packages to build external Linux kernel modules. --- Makefile | 45 +++++++++++++++++++---------------- package/config/Makefile | 1 + target/initramfs/initramfs.mk | 2 ++ target/linux/Makefile.in | 15 ++++++------ 4 files changed, 35 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index 65752ea95f..a4d09eb89f 100644 --- a/Makefile +++ b/Makefile @@ -187,6 +187,9 @@ include .config.cmd # each selected package to TARGETS if that package was selected # in the .config file. include toolchain/*/*.mk +ifeq ($(BR2_PACKAGE_LINUX),y) +TARGETS+=linux26-modules +endif include package/*/*.mk # target stuff is last so it can override anything else @@ -309,47 +312,47 @@ $(CONFIG)/mconf: fi menuconfig: $(CONFIG)/mconf - @-mkdir -p include/config - @KCONFIG_AUTOCONFIG=include/config/auto.conf \ - KCONFIG_AUTOHEADER=include/autoconf.h \ + @-mkdir -p $(CONFIG)/buildroot-config + @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \ $(CONFIG)/mconf $(CONFIG_CONFIG_IN) config: $(CONFIG)/conf - @-mkdir -p include/config - @KCONFIG_AUTOCONFIG=include/config/auto.conf \ - KCONFIG_AUTOHEADER=include/autoconf.h \ + @-mkdir -p $(CONFIG)/buildroot-config + @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \ $(CONFIG)/conf $(CONFIG_CONFIG_IN) oldconfig: $(CONFIG)/conf - @-mkdir -p include/config - @KCONFIG_AUTOCONFIG=include/config/auto.conf \ - KCONFIG_AUTOHEADER=include/autoconf.h \ + @-mkdir -p $(CONFIG)/buildroot-config + @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \ $(CONFIG)/conf -o $(CONFIG_CONFIG_IN) randconfig: $(CONFIG)/conf - @-mkdir -p include/config - @KCONFIG_AUTOCONFIG=include/config/auto.conf \ - KCONFIG_AUTOHEADER=include/autoconf.h \ + @-mkdir -p $(CONFIG)/buildroot-config + @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \ $(CONFIG)/conf -r $(CONFIG_CONFIG_IN) allyesconfig: $(CONFIG)/conf cat $(CONFIG_DEFCONFIG) > .config - @-mkdir -p include/config - @KCONFIG_AUTOCONFIG=include/config/auto.conf \ - KCONFIG_AUTOHEADER=include/autoconf.h \ + @-mkdir -p $(CONFIG)/buildroot-config + @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \ $(CONFIG)/conf -y $(CONFIG_CONFIG_IN) #sed -i -e "s/^CONFIG_DEBUG.*/# CONFIG_DEBUG is not set/" .config allnoconfig: $(CONFIG)/conf - @-mkdir -p include/config - @KCONFIG_AUTOCONFIG=include/config/auto.conf \ - KCONFIG_AUTOHEADER=include/autoconf.h \ + @-mkdir -p $(CONFIG)/buildroot-config + @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \ $(CONFIG)/conf -n $(CONFIG_CONFIG_IN) defconfig: $(CONFIG)/conf - @-mkdir -p include/config - @KCONFIG_AUTOCONFIG=include/config/auto.conf \ - KCONFIG_AUTOHEADER=include/autoconf.h \ + @-mkdir -p $(CONFIG)/buildroot-config + @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \ $(CONFIG)/conf -d $(CONFIG_CONFIG_IN) # check if download URLs are outdated diff --git a/package/config/Makefile b/package/config/Makefile index 982569f746..3b43849206 100644 --- a/package/config/Makefile +++ b/package/config/Makefile @@ -34,6 +34,7 @@ distclean: clean $(Q)rm -f $(lxdialog) $(conf-objs) $(mconf-objs) $(kxgettext-objs) \ $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \ mconf .depend + $(Q)rm -rf buildroot-config FORCE: .PHONY: FORCE clean distclean diff --git a/target/initramfs/initramfs.mk b/target/initramfs/initramfs.mk index e4ae1480ac..d44f47bf42 100644 --- a/target/initramfs/initramfs.mk +++ b/target/initramfs/initramfs.mk @@ -13,6 +13,8 @@ INITRAMFS_TARGET:= #nothing endif $(INITRAMFS_TARGET) initramfs: host-fakeroot makedevs + rm -f $(TARGET_DIR)/init + ln -s sbin/init $(TARGET_DIR)/init -find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true; rm -rf $(TARGET_DIR)/usr/man rm -rf $(TARGET_DIR)/usr/info diff --git a/target/linux/Makefile.in b/target/linux/Makefile.in index bbb3726d6a..db7be0e691 100644 --- a/target/linux/Makefile.in +++ b/target/linux/Makefile.in @@ -131,12 +131,7 @@ $(LINUX26_KERNEL): $(LINUX26_DIR)/.depend_done cp -dpf $(LINUX26_DIR)/$(LINUX26_BINLOC) $(LINUX26_KERNEL) touch -c $@ -$(TARGET_DIR)/boot/$(LINUX26_FORMAT): $(LINUX26_KERNEL) - [ -d $(TARGET_DIR)/boot/ ] || mkdir $(TARGET_DIR)/boot - cp -dpf $(LINUX26_DIR)/$(LINUX26_BINLOC) $(LINUX26_DIR)/System.map $(TARGET_DIR)/boot/ - touch -c $@ - -linux26-modules $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep: $(LINUX26_DIR)/.depend_done +$(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep: $(LINUX26_DIR)/.configured rm -rf $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION) rm -f $(TARGET_DIR)/sbin/cardmgr $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) modules @@ -145,6 +140,7 @@ linux26-modules $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep: $(LINU INSTALL_MOD_PATH=$(TARGET_DIR) modules_install rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/build rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/source + $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 -b $(TARGET_DIR) $(LINUX_HEADERS_VERSION) touch -c $@ linux26-menuconfig: $(LINUX26_DIR)/.patched host-sed @@ -152,7 +148,12 @@ linux26-menuconfig: $(LINUX26_DIR)/.patched host-sed $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig -[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured -linux26: cross-depmod26 $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep $(INITRAMFS_TARGET) $(TARGET_DIR)/boot/$(LINUX26_FORMAT) +linux26: $(INITRAMFS_TARGET) $(LINUX26_KERNEL) + +$(LINUX26_DIR)/.modules_installed: $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep + touch $@ + +linux26-modules: cross-depmod26 $(LINUX26_DIR)/.modules_installed linux26-source: $(DL_DIR)/$(LINUX26_SOURCE) -- 2.30.2