mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
4.20 is just wide enough to cause figlet to split the banner onto two lines:
__ __
\ \/ /___ _ __
\ // _ \ '_ \
/ \ __/ | | |
/_/\_\___|_| |_|
_ _ ____ ___ _ _ _
| || | |___ \ / _ \ _ _ _ __ ___| |_ __ _| |__ | | ___
| || |_ __) | | | |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
|__ _| / __/| |_| |__| |_| | | | \__ \ || (_| | |_) | | __/
|_|(_)_____|\___/ \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
Instruct figlet to use 100 column width, rather than 80, resulting in:
__ __ _ _ ____ ___ _ _ _
\ \/ /___ _ __ | || | |___ \ / _ \ _ _ _ __ ___| |_ __ _| |__ | | ___
\ // _ \ '_ \ | || |_ __) | | | |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
/ \ __/ | | | |__ _| / __/| |_| |__| |_| | | | \__ \ || (_| | |_) | | __/
/_/\_\___|_| |_| |_|(_)_____|\___/ \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
While fixing this, also fix a rendering error in the non-figlet case; while a
leading space looks better for figlet, it looks very wrong for the simple
one-line case.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
91 lines
2.7 KiB
Makefile
91 lines
2.7 KiB
Makefile
quiet_cmd_banner = BANNER $@
|
|
define cmd_banner
|
|
if command -v figlet >/dev/null 2>&1 ; then \
|
|
echo " Xen $(XEN_FULLVERSION)" | figlet -w 100 -f $< > $@.tmp; \
|
|
else \
|
|
echo "Xen $(XEN_FULLVERSION)" > $@.tmp; \
|
|
fi; \
|
|
mv -f $@.tmp $@
|
|
endef
|
|
|
|
.banner: tools/xen.flf FORCE
|
|
$(call if_changed,banner)
|
|
|
|
targets += .banner
|
|
|
|
# Don't refresh this files during e.g., 'sudo make install'
|
|
quiet_cmd_compile.h = UPD $@
|
|
define cmd_compile.h
|
|
if [ ! -r $@ -o -O $@ ]; then \
|
|
cat .banner; \
|
|
sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
|
|
-e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
|
|
-e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
|
|
-e 's/@@domain@@/$(XEN_DOMAIN)/g' \
|
|
-e 's/@@hostname@@/$(XEN_BUILD_HOST)/g' \
|
|
-e 's!@@compiler@@!$(shell $(CC) --version 2>&1 | head -1)!g' \
|
|
-e 's/@@version@@/$(XEN_VERSION)/g' \
|
|
-e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
|
|
-e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
|
|
-e 's!@@changeset@@!$(shell $(srctree)/tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
|
|
< $< > $(dot-target).tmp; \
|
|
sed -rf $(srctree)/tools/process-banner.sed < .banner >> $(dot-target).tmp; \
|
|
mv -f $(dot-target).tmp $@; \
|
|
fi
|
|
endef
|
|
|
|
include/xen/compile.h: include/xen/compile.h.in .banner FORCE
|
|
$(if $(filter-out FORCE,$?),$(Q)rm -fv $@)
|
|
$(call if_changed,compile.h)
|
|
|
|
targets += include/xen/compile.h
|
|
|
|
-include $(wildcard .asm-offsets.s.d)
|
|
asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
|
|
$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
|
|
$(call move-if-changed,$@.new,$@)
|
|
|
|
arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
|
|
@(set -e; \
|
|
echo "/*"; \
|
|
echo " * DO NOT MODIFY."; \
|
|
echo " *"; \
|
|
echo " * This file was auto-generated from $<"; \
|
|
echo " *"; \
|
|
echo " */"; \
|
|
echo ""; \
|
|
echo "#ifndef __ASM_OFFSETS_H__"; \
|
|
echo "#define __ASM_OFFSETS_H__"; \
|
|
echo ""; \
|
|
sed -rne "/^[^#].*==>/{s:.*==>(.*)<==.*:\1:; s: [\$$#]: :; p;}"; \
|
|
echo ""; \
|
|
echo "#endif") <$< >$@
|
|
|
|
build-dirs := $(patsubst %/built_in.o,%,$(filter %/built_in.o,$(ALL_OBJS) $(ALL_LIBS)))
|
|
|
|
# The actual objects are generated when descending,
|
|
# make sure no implicit rule kicks in
|
|
$(sort $(ALL_OBJS) $(ALL_LIBS)): $(build-dirs) ;
|
|
|
|
PHONY += $(build-dirs)
|
|
$(build-dirs): FORCE
|
|
$(Q)$(MAKE) $(build)=$@ need-builtin=1
|
|
|
|
ifeq ($(CONFIG_LTO),y)
|
|
# Gather all LTO objects together
|
|
prelink_lto.o: $(ALL_OBJS) $(ALL_LIBS)
|
|
$(LD_LTO) -r -o $@ $(filter-out %.a,$^) --start-group $(filter %.a,$^) --end-group
|
|
|
|
# Link it with all the binary objects
|
|
prelink.o: $(patsubst %/built_in.o,%/built_in_bin.o,$(ALL_OBJS)) prelink_lto.o FORCE
|
|
$(call if_changed,ld)
|
|
else
|
|
prelink.o: $(ALL_OBJS) $(ALL_LIBS) FORCE
|
|
$(call if_changed,ld)
|
|
endif
|
|
|
|
targets += prelink.o
|
|
|
|
$(TARGET): prelink.o FORCE
|
|
$(Q)$(MAKE) $(build)=arch/$(SRCARCH) $@
|