Kaynağa Gözat

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.

"Steven J. Hill" 18 yıl önce
ebeveyn
işleme
62b5ae4b66
4 değiştirilmiş dosya ile 35 ekleme ve 28 silme
  1. 24 21
      Makefile
  2. 1 0
      package/config/Makefile
  3. 2 0
      target/initramfs/initramfs.mk
  4. 8 7
      target/linux/Makefile.in

+ 24 - 21
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 

+ 1 - 0
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

+ 2 - 0
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

+ 8 - 7
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)