Browse Source

Makefile: Support get linux version/lastest tag/sdk tag

Signed-off-by: Jianlong Huang <jianlong.huang@starfivetech.com>
Jianlong Huang 1 year ago
parent
commit
f4661850af
2 changed files with 52 additions and 2 deletions
  1. 13 2
      Makefile
  2. 39 0
      conf/version

+ 13 - 2
Makefile

@@ -83,6 +83,7 @@ uboot_defconfig := $(uboot_srcdir)/configs/$(uboot_config)
 rootfs := $(wrkdir)/rootfs.bin
 
 target_gcc := $(CROSS_COMPILE)gcc
+version := $(wrkdir)/version
 
 .PHONY: all check_arg
 
@@ -139,6 +140,11 @@ fpga: HWBOARD := fpga
 fpga: all
 fpga: HWBOARD_FLAG := HWBOARD_FPGA
 
+$(version):
+	cd $(linux_srcdir) && \
+	sh $(confdir)/version > $(version)
+	chmod 777 $(version)
+
 $(buildroot_initramfs_wrkdir)/.config: $(buildroot_srcdir)
 #	rm -rf $(dir $@)
 	mkdir -p $(dir $@)
@@ -163,10 +169,13 @@ $(buildroot_rootfs_wrkdir)/.config: $(buildroot_srcdir) $(buildroot_initramfs_ta
 	cp $(buildroot_rootfs_config) $@
 	$(MAKE) -C $< RISCV=$(RISCV) PATH=$(RVPATH) O=$(buildroot_rootfs_wrkdir) olddefconfig
 
-$(buildroot_rootfs_ext): $(buildroot_srcdir) $(buildroot_rootfs_wrkdir)/.config $(target_gcc) $(buildroot_rootfs_config)
+$(buildroot_rootfs_ext): $(buildroot_srcdir) $(buildroot_rootfs_wrkdir)/.config $(target_gcc) $(buildroot_rootfs_config) $(version)	
 	mkdir -p $(buildroot_rootfs_wrkdir)/target/lib/
 	cp -r $(module_install_path)/lib/modules $(buildroot_rootfs_wrkdir)/target/lib/
 	$(MAKE) -C $< RISCV=$(RISCV) PATH=$(RVPATH) O=$(buildroot_rootfs_wrkdir)
+	cp $(version) $(buildroot_rootfs_wrkdir)/target/usr/bin/version
+	rm -rf $(buildroot_rootfs_ext)
+	$(MAKE) -C $< RISCV=$(RISCV) PATH=$(RVPATH) O=$(buildroot_rootfs_wrkdir)
 
 .PHONY: buildroot_rootfs
 buildroot_rootfs: $(buildroot_rootfs_ext)
@@ -231,8 +240,9 @@ initrd: $(initramfs)
 $(initramfs).d: $(buildroot_initramfs_sysroot)
 	$(linux_srcdir)/usr/gen_initramfs_list.sh -l $(confdir)/initramfs.txt $(buildroot_initramfs_sysroot) > $@
 
-$(initramfs): $(buildroot_initramfs_sysroot) $(vmlinux) vpudriver-build
+$(initramfs): $(buildroot_initramfs_sysroot) $(vmlinux) vpudriver-build $(version)
 	cp -r $(module_install_path)/lib/modules $(buildroot_initramfs_sysroot)/lib/
+	cp $(version) $(buildroot_initramfs_sysroot)/usr/bin/version && \
 	cd $(linux_wrkdir) && \
 		$(linux_srcdir)/usr/gen_initramfs_list.sh \
 		-o $@ -u $(shell id -u) -g $(shell id -g) \
@@ -343,6 +353,7 @@ clean:
 	rm -f work/initramfs.cpio.gz
 	rm -f work/linux/vmlinux*
 	rm -f work/u-boot-spl.bin.normal.out
+	rm -f work/version
 
 .PHONY: distclean
 distclean:

+ 39 - 0
conf/version

@@ -0,0 +1,39 @@
+#! /bin/sh
+
+usage() {
+	echo "Usage: $0 [srctree]" >&2
+	exit 1
+}
+
+cd "${1:-.}" || usage
+echo "#! /bin/sh"
+echo ""
+echo "cat /proc/version"
+
+if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
+
+	atag="`git describe 2>/dev/null`"
+
+	# Show -g<commit> if we have no tag, or just the tag
+	# otherwise.
+	if [ -z "${atag}" ] ; then
+	    atag=$atag"-g"${head}
+	fi
+
+	# Check for uncommitted changes
+	if git diff-index --name-only HEAD | grep -v "^scripts/package" \
+	    | read dummy; then
+        atag=$atag"-dirty"
+	fi
+    echo "echo \"$atag\""
+
+fi
+
+jh7110_flag=JH7110
+
+for atag in $(git tag --merge HEAD --sort=-taggerdate | grep "${jh7110_flag}")
+do
+    echo "echo \"$atag\""
+    exit
+done
+