Browse Source

kernel-build.mk: add support for compiling only DTS

Add support for compiling DTS for the selected target. This can be
useful for testing if the DTS correctly compile and doesn't produce any
error.

This adds a new make target. To compile only DTS use:

make target/linux/dtb

Signed-off-by: Christian Marangi <[email protected]>
Christian Marangi 1 year ago
parent
commit
c47532b1ea
3 changed files with 13 additions and 4 deletions
  1. 6 4
      include/image.mk
  2. 4 0
      include/kernel-build.mk
  3. 3 0
      include/subdir.mk

+ 6 - 4
include/image.mk

@@ -582,7 +582,7 @@ define Device/Build/dtb
   $(KDIR)/image-$(1).dtb: FORCE
   $(KDIR)/image-$(1).dtb: FORCE
 	$(call Image/BuildDTB,$(strip $(2))/$(strip $(3)).dts,$$@)
 	$(call Image/BuildDTB,$(strip $(2))/$(strip $(3)).dts,$$@)
 
 
-  image_prepare: $(KDIR)/image-$(1).dtb
+  compile-dtb: $(KDIR)/image-$(1).dtb
   endif
   endif
 
 
 endef
 endef
@@ -593,7 +593,7 @@ define Device/Build/dtbo
   $(KDIR)/image-$(1).dtbo: FORCE
   $(KDIR)/image-$(1).dtbo: FORCE
 	$(call Image/BuildDTBO,$(strip $(2))/$(strip $(3)).dtso,$$@)
 	$(call Image/BuildDTBO,$(strip $(2))/$(strip $(3)).dtso,$$@)
 
 
-  image_prepare: $(KDIR)/image-$(1).dtbo
+  compile-dtb: $(KDIR)/image-$(1).dtbo
   endif
   endif
 
 
 endef
 endef
@@ -841,18 +841,20 @@ define BuildImage
   download:
   download:
   prepare:
   prepare:
   compile:
   compile:
+  compile-dtb:
   clean:
   clean:
   image_prepare:
   image_prepare:
 
 
   ifeq ($(IB),)
   ifeq ($(IB),)
-    .PHONY: download prepare compile clean image_prepare kernel_prepare install install-images
+    .PHONY: download prepare compile compile-dtb clean image_prepare kernel_prepare install install-images
     compile:
     compile:
 		$(call Build/Compile)
 		$(call Build/Compile)
 
 
     clean:
     clean:
 		$(call Build/Clean)
 		$(call Build/Clean)
 
 
-    image_prepare: compile
+    compile-dtb:
+    image_prepare: compile compile-dtb
 		mkdir -p $(BIN_DIR) $(KDIR)/tmp
 		mkdir -p $(BIN_DIR) $(KDIR)/tmp
 		rm -rf $(BUILD_DIR)/json_info_files
 		rm -rf $(BUILD_DIR)/json_info_files
 		$(call Image/Prepare)
 		$(call Image/Prepare)

+ 4 - 0
include/kernel-build.mk

@@ -156,6 +156,10 @@ define BuildKernel
   compile: $(LINUX_DIR)/.modules
   compile: $(LINUX_DIR)/.modules
 	$(MAKE) -C image compile TARGET_BUILD=
 	$(MAKE) -C image compile TARGET_BUILD=
 
 
+  dtb: $(STAMP_CONFIGURED)
+	$(_SINGLE)$(KERNEL_MAKE) scripts_dtc
+	$(MAKE) -C image compile-dtb TARGET_BUILD=
+
   oldconfig menuconfig nconfig xconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE
   oldconfig menuconfig nconfig xconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE
 	rm -f $(LINUX_DIR)/.config.prev
 	rm -f $(LINUX_DIR)/.config.prev
 	rm -f $(STAMP_CONFIGURED)
 	rm -f $(STAMP_CONFIGURED)

+ 3 - 0
include/subdir.mk

@@ -5,6 +5,9 @@
 ifeq ($(MAKECMDGOALS),prereq)
 ifeq ($(MAKECMDGOALS),prereq)
   SUBTARGETS:=prereq
   SUBTARGETS:=prereq
   PREREQ_ONLY:=1
   PREREQ_ONLY:=1
+# For target/linux related target add dtb to selectively compile dtbs
+else ifneq ($(filter target/linux/%,$(MAKECMDGOALS)),)
+  SUBTARGETS:=$(DEFAULT_SUBDIR_TARGETS) dtb
 else
 else
   SUBTARGETS:=$(DEFAULT_SUBDIR_TARGETS)
   SUBTARGETS:=$(DEFAULT_SUBDIR_TARGETS)
 endif
 endif