mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-18 04:34:52 +00:00
kbuild: consolidate version and timestamp headers generation
- Generate include/generated/{timestamp.h, version.h} more simply by using filechk rule. - Add $(UBOOTRELEASE) variable and re-write u-boot.imx rule more simply. - Rename U_BOOT_VERSION in Makefile to UBOOTVERSION Before this commit, the same variable name, "U_BOOT_VERSION" was used for two different strings. One of them was defined in Makefile. It takes the form like "2014.01-rc1" and used in makefiles and script files. The other is defined in include/generated/version.h It takes the form like "U-Boot 2014.01-rc1-00010-gbe6d426-dirty" and used in C and Aseembler. It is confusing when grepping the source tree. So, this commit renames the former to UBOOTVERSION. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
This commit is contained in:
parent
5b1f1f4aff
commit
7424145f30
3 changed files with 49 additions and 40 deletions
81
Makefile
81
Makefile
|
@ -180,9 +180,6 @@ unexport CDPATH
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
TIMESTAMP_FILE = include/generated/timestamp_autogenerated.h
|
|
||||||
VERSION_FILE = include/generated/version_autogenerated.h
|
|
||||||
|
|
||||||
HOSTARCH := $(shell uname -m | \
|
HOSTARCH := $(shell uname -m | \
|
||||||
sed -e s/i.86/x86/ \
|
sed -e s/i.86/x86/ \
|
||||||
-e s/sun4u/sparc64/ \
|
-e s/sun4u/sparc64/ \
|
||||||
|
@ -356,9 +353,11 @@ KBUILD_CFLAGS := -Wall -Wstrict-prototypes \
|
||||||
-fno-builtin -ffreestanding
|
-fno-builtin -ffreestanding
|
||||||
KBUILD_AFLAGS := -D__ASSEMBLY__
|
KBUILD_AFLAGS := -D__ASSEMBLY__
|
||||||
|
|
||||||
U_BOOT_VERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
|
# Read UBOOTRELEASE from include/config/uboot.release (if it exists)
|
||||||
|
UBOOTRELEASE = $(shell cat include/config/uboot.release 2> /dev/null)
|
||||||
|
UBOOTVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
|
||||||
|
|
||||||
export VERSION PATCHLEVEL SUBLEVEL U_BOOT_VERSION
|
export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION
|
||||||
export ARCH CPU BOARD VENDOR SOC
|
export ARCH CPU BOARD VENDOR SOC
|
||||||
export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC
|
export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC
|
||||||
export CPP AR NM LDR STRIP OBJCOPY OBJDUMP
|
export CPP AR NM LDR STRIP OBJCOPY OBJDUMP
|
||||||
|
@ -411,6 +410,9 @@ endif
|
||||||
# Detect when mixed targets is specified, and make a second invocation
|
# Detect when mixed targets is specified, and make a second invocation
|
||||||
# of make so .config is not included in this case either (for *config).
|
# of make so .config is not included in this case either (for *config).
|
||||||
|
|
||||||
|
version_h := include/generated/version_autogenerated.h
|
||||||
|
timestamp_h := include/generated/timestamp_autogenerated.h
|
||||||
|
|
||||||
no-dot-config-targets := clean clobber mrproper distclean \
|
no-dot-config-targets := clean clobber mrproper distclean \
|
||||||
help %docs check% coccicheck \
|
help %docs check% coccicheck \
|
||||||
backup
|
backup
|
||||||
|
@ -582,8 +584,6 @@ CHECKFLAGS += $(NOSTDINC_FLAGS)
|
||||||
cpp_flags := $(KBUILD_CPPFLAGS) $(CPPFLAGS) $(UBOOTINCLUDE) $(NOSTDINC_FLAGS)
|
cpp_flags := $(KBUILD_CPPFLAGS) $(CPPFLAGS) $(UBOOTINCLUDE) $(NOSTDINC_FLAGS)
|
||||||
c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
|
c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
|
||||||
|
|
||||||
.PHONY : $(VERSION_FILE) $(TIMESTAMP_FILE)
|
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# U-Boot objects....order is important (i.e. start must be first)
|
# U-Boot objects....order is important (i.e. start must be first)
|
||||||
|
|
||||||
|
@ -786,8 +786,7 @@ u-boot.img: u-boot.bin
|
||||||
tools/mkimage -A $(ARCH) -T firmware -C none \
|
tools/mkimage -A $(ARCH) -T firmware -C none \
|
||||||
-O u-boot -a $(CONFIG_SYS_TEXT_BASE) \
|
-O u-boot -a $(CONFIG_SYS_TEXT_BASE) \
|
||||||
-e $(CONFIG_SYS_UBOOT_START) \
|
-e $(CONFIG_SYS_UBOOT_START) \
|
||||||
-n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
|
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" \
|
||||||
sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \
|
|
||||||
-d $< $@
|
-d $< $@
|
||||||
|
|
||||||
u-boot.imx: u-boot.bin
|
u-boot.imx: u-boot.bin
|
||||||
|
@ -943,13 +942,22 @@ PHONY += $(u-boot-dirs)
|
||||||
$(u-boot-dirs): depend prepare scripts
|
$(u-boot-dirs): depend prepare scripts
|
||||||
$(Q)$(MAKE) $(build)=$@
|
$(Q)$(MAKE) $(build)=$@
|
||||||
|
|
||||||
tools: $(TIMESTAMP_FILE) $(VERSION_FILE)
|
tools: prepare
|
||||||
# The "tools" are needed early
|
# The "tools" are needed early
|
||||||
$(filter-out tools, $(u-boot-dirs)): tools
|
$(filter-out tools, $(u-boot-dirs)): tools
|
||||||
# The "examples" conditionally depend on U-Boot (say, when USE_PRIVATE_LIBGCC
|
# The "examples" conditionally depend on U-Boot (say, when USE_PRIVATE_LIBGCC
|
||||||
# is "yes"), so compile examples after U-Boot is compiled.
|
# is "yes"), so compile examples after U-Boot is compiled.
|
||||||
examples: $(filter-out examples, $(u-boot-dirs))
|
examples: $(filter-out examples, $(u-boot-dirs))
|
||||||
|
|
||||||
|
define filechk_uboot.release
|
||||||
|
echo "$(UBOOTVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Store (new) UBOOTRELEASE string in include/config/uboot.release
|
||||||
|
include/config/uboot.release: Makefile FORCE
|
||||||
|
$(call filechk,uboot.release)
|
||||||
|
|
||||||
|
|
||||||
# Things we need to do before we recursively start building the kernel
|
# Things we need to do before we recursively start building the kernel
|
||||||
# or the modules are listed in "prepare".
|
# or the modules are listed in "prepare".
|
||||||
# A multi level approach is used. prepareN is processed before prepareN-1.
|
# A multi level approach is used. prepareN is processed before prepareN-1.
|
||||||
|
@ -962,7 +970,7 @@ PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3
|
||||||
# prepare3 is used to check if we are building in a separate output directory,
|
# prepare3 is used to check if we are building in a separate output directory,
|
||||||
# and if so do:
|
# and if so do:
|
||||||
# 1) Check that make has not been executed in the kernel src $(srctree)
|
# 1) Check that make has not been executed in the kernel src $(srctree)
|
||||||
prepare3:
|
prepare3: include/config/uboot.release
|
||||||
ifneq ($(KBUILD_SRC),)
|
ifneq ($(KBUILD_SRC),)
|
||||||
@$(kecho) ' Using $(srctree) as source for u-boot'
|
@$(kecho) ' Using $(srctree) as source for u-boot'
|
||||||
$(Q)if [ -f $(srctree)/include/config.mk ]; then \
|
$(Q)if [ -f $(srctree)/include/config.mk ]; then \
|
||||||
|
@ -975,7 +983,7 @@ endif
|
||||||
# prepare2 creates a makefile if using a separate output directory
|
# prepare2 creates a makefile if using a separate output directory
|
||||||
prepare2: prepare3 outputmakefile
|
prepare2: prepare3 outputmakefile
|
||||||
|
|
||||||
prepare1: prepare2
|
prepare1: prepare2 $(version_h) $(timestamp_h)
|
||||||
@:
|
@:
|
||||||
|
|
||||||
archprepare: prepare1 scripts_basic
|
archprepare: prepare1 scripts_basic
|
||||||
|
@ -986,6 +994,27 @@ prepare0: archprepare FORCE
|
||||||
# All the preparing..
|
# All the preparing..
|
||||||
prepare: prepare0
|
prepare: prepare0
|
||||||
|
|
||||||
|
# Generate some files
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
define filechk_version.h
|
||||||
|
(echo \#define PLAIN_VERSION \"$(UBOOTRELEASE)\"; \
|
||||||
|
echo \#define U_BOOT_VERSION \"U-Boot \" PLAIN_VERSION; \
|
||||||
|
echo \#define CC_VERSION_STRING \"$$($(CC) --version | head -n 1)\"; \
|
||||||
|
echo \#define LD_VERSION_STRING \"$$($(LD) --version | head -n 1)\"; )
|
||||||
|
endef
|
||||||
|
|
||||||
|
define filechk_timestamp.h
|
||||||
|
(LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
|
||||||
|
LC_ALL=C date +'#define U_BOOT_TIME "%T"')
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(version_h): $(srctree)/Makefile FORCE
|
||||||
|
$(call filechk,version.h)
|
||||||
|
|
||||||
|
$(timestamp_h): $(srctree)/Makefile FORCE
|
||||||
|
$(call filechk,timestamp.h)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Auto-generate the autoconf.mk file (which is included by all makefiles)
|
# Auto-generate the autoconf.mk file (which is included by all makefiles)
|
||||||
#
|
#
|
||||||
|
@ -1009,10 +1038,10 @@ quiet_cmd_autoconf = GEN $@
|
||||||
include/autoconf.mk: include/config.h
|
include/autoconf.mk: include/config.h
|
||||||
$(call cmd,autoconf)
|
$(call cmd,autoconf)
|
||||||
|
|
||||||
u-boot.lds: $(LDSCRIPT) depend
|
u-boot.lds: $(LDSCRIPT) depend prepare
|
||||||
$(CPP) $(cpp_flags) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
|
$(CPP) $(cpp_flags) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
|
||||||
|
|
||||||
nand_spl: $(TIMESTAMP_FILE) $(VERSION_FILE) depend prepare
|
nand_spl: depend prepare
|
||||||
$(MAKE) $(build)=nand_spl/board/$(BOARDDIR) all
|
$(MAKE) $(build)=nand_spl/board/$(BOARDDIR) all
|
||||||
|
|
||||||
u-boot-nand.bin: nand_spl u-boot.bin
|
u-boot-nand.bin: nand_spl u-boot.bin
|
||||||
|
@ -1026,7 +1055,7 @@ tpl/u-boot-tpl.bin: tools depend prepare
|
||||||
|
|
||||||
# Explicitly make _depend in subdirs containing multiple targets to prevent
|
# Explicitly make _depend in subdirs containing multiple targets to prevent
|
||||||
# parallel sub-makes creating .depend files simultaneously.
|
# parallel sub-makes creating .depend files simultaneously.
|
||||||
depend dep: $(TIMESTAMP_FILE) $(VERSION_FILE) \
|
depend dep: \
|
||||||
include/generated/generic-asm-offsets.h \
|
include/generated/generic-asm-offsets.h \
|
||||||
include/generated/asm-offsets.h
|
include/generated/asm-offsets.h
|
||||||
|
|
||||||
|
@ -1127,27 +1156,7 @@ checkarmreloc: u-boot
|
||||||
false; \
|
false; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$(VERSION_FILE):
|
env: scripts_basic
|
||||||
@mkdir -p $(dir $(VERSION_FILE))
|
|
||||||
@( localvers='$(shell $(TOPDIR)/scripts/setlocalversion $(TOPDIR))' ; \
|
|
||||||
printf '#define PLAIN_VERSION "%s%s"\n' \
|
|
||||||
"$(U_BOOT_VERSION)" "$${localvers}" ; \
|
|
||||||
printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' \
|
|
||||||
"$(U_BOOT_VERSION)" "$${localvers}" ; \
|
|
||||||
) > $@.tmp
|
|
||||||
@( printf '#define CC_VERSION_STRING "%s"\n' \
|
|
||||||
'$(shell $(CC) --version | head -n 1)' )>> $@.tmp
|
|
||||||
@( printf '#define LD_VERSION_STRING "%s"\n' \
|
|
||||||
'$(shell $(LD) -v | head -n 1)' )>> $@.tmp
|
|
||||||
@cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
|
|
||||||
|
|
||||||
$(TIMESTAMP_FILE):
|
|
||||||
@mkdir -p $(dir $(TIMESTAMP_FILE))
|
|
||||||
@LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > $@.tmp
|
|
||||||
@LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> $@.tmp
|
|
||||||
@cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
|
|
||||||
|
|
||||||
env: depend scripts_basic
|
|
||||||
$(Q)$(MAKE) $(build)=tools/$@
|
$(Q)$(MAKE) $(build)=tools/$@
|
||||||
|
|
||||||
tools-all: HOST_TOOLS_ALL=y
|
tools-all: HOST_TOOLS_ALL=y
|
||||||
|
|
|
@ -131,7 +131,7 @@ index = index.html
|
||||||
main_idx = doc/DocBook/$(index)
|
main_idx = doc/DocBook/$(index)
|
||||||
build_main_index = rm -rf $(main_idx); \
|
build_main_index = rm -rf $(main_idx); \
|
||||||
echo '<h1>U-Boot Bootloader HTML Documentation</h1>' >> $(main_idx) && \
|
echo '<h1>U-Boot Bootloader HTML Documentation</h1>' >> $(main_idx) && \
|
||||||
echo '<h2>U-Boot Version: $(U_BOOT_VERSION)</h2>' >> $(main_idx) && \
|
echo '<h2>U-Boot Version: $(UBOOTVERSION)</h2>' >> $(main_idx) && \
|
||||||
cat $(HTML) >> $(main_idx)
|
cat $(HTML) >> $(main_idx)
|
||||||
|
|
||||||
quiet_cmd_db2html = HTML $@
|
quiet_cmd_db2html = HTML $@
|
||||||
|
|
|
@ -392,8 +392,8 @@ sub usage {
|
||||||
sub get_kernel_version() {
|
sub get_kernel_version() {
|
||||||
my $version = 'unknown kernel version';
|
my $version = 'unknown kernel version';
|
||||||
|
|
||||||
if (defined($ENV{'U_BOOT_VERSION'})) {
|
if (defined($ENV{'UBOOTVERSION'})) {
|
||||||
$version = $ENV{'U_BOOT_VERSION'};
|
$version = $ENV{'UBOOTVERSION'};
|
||||||
}
|
}
|
||||||
return $version;
|
return $version;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue