diff options
author | Cyril Bur <cyril.bur@au1.ibm.com> | 2017-01-25 16:38:13 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-02-23 13:05:11 +1100 |
commit | 8ab0caf26de9d9cc12223c4b945052b50508bf78 (patch) | |
tree | 997d6a487433873bc2dacac7c748f8bf5a77610e | |
parent | 18cbb7a8d5ec19a4ad1a054c3fd861002c04eddc (diff) | |
download | talos-skiboot-8ab0caf26de9d9cc12223c4b945052b50508bf78.tar.gz talos-skiboot-8ab0caf26de9d9cc12223c4b945052b50508bf78.zip |
external/gard: Fix make dist target
Several problems:
Firstly, it could never have worked, it was using the wrong variable.
Secondly, if it was using GARD_VERSION it produced a broken tarball that
still looked into the skiboot source for files despite them having been
copied into the tarball.
Lastly (and not really a make dist issue) the current way of symlinking
make_version.sh was racey. Get around the issue by refering to it in its
actual location (if we know it will be there) or by looking at .version
if building from tarball.
Signed-off-by: Cyril Bur <cyril.bur@au1.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r-- | external/common/rules.mk | 2 | ||||
-rw-r--r-- | external/gard/.gitignore | 1 | ||||
-rw-r--r-- | external/gard/Makefile | 19 | ||||
-rw-r--r-- | external/gard/Makefile.dist | 6 | ||||
-rw-r--r-- | external/gard/rules.mk | 6 |
5 files changed, 21 insertions, 13 deletions
diff --git a/external/common/rules.mk b/external/common/rules.mk index bb12fd5b..8c5749b5 100644 --- a/external/common/rules.mk +++ b/external/common/rules.mk @@ -49,7 +49,7 @@ ARCH_OBJS := $(addprefix common-,$(ARCH_FILES:.c=.o)) # Arch links are like this so we can have dependencies work (so that we don't # run the rule when the links exist), pretty build output (knowing the target # name) and a list of the files so we can clean them up. -ARCH_LINKS := common/ast-sf-ctrl.c common/ast.h common/io.h +ARCH_LINKS ?= common/ast-sf-ctrl.c common/ast.h common/io.h arch_links: $(ARCH_LINKS) common/ast.h : ../../include/ast.h | common diff --git a/external/gard/.gitignore b/external/gard/.gitignore index 7c81877c..7e8f83f2 100644 --- a/external/gard/.gitignore +++ b/external/gard/.gitignore @@ -8,3 +8,4 @@ gard test/test.sh libflash make_version.sh +gard-*.tar diff --git a/external/gard/Makefile b/external/gard/Makefile index b54923d2..2ccd1440 100644 --- a/external/gard/Makefile +++ b/external/gard/Makefile @@ -8,11 +8,10 @@ all: links arch_links $(EXE) #Rebuild version.o so that the the version always matches #what the test suite will get from ./make_version.sh check: version.o all + @ln -sf ../../make_version.sh make_version.sh @ln -sf ../../test/test.sh test/test.sh @test/test-gard -links += make_version.sh - .PHONY: VERSION-always .version: VERSION-always @echo $(GARD_VERSION) > $@.tmp @@ -20,20 +19,20 @@ links += make_version.sh @rm -f $@.tmp .PHONY: dist -#File is named $(PFLASH_VERSION).tar because the expectation is that pflash- +#File is named $(GARD_VERSION).tar because the expectation is that gard- #is always at the start of the verion. This remains consistent with skiboot #version strings -dist: links .version - find -L ../pflash/ -iname '*.[ch]' -print0 | xargs -0 tar -rhf $(PFLASH_VERSION).tar - tar --transform 's/Makefile.dist/Makefile/' -rhf $(PFLASH_VERSION).tar \ - ../pflash/Makefile.dist ../pflash/rules.mk \ - ../pflash/.version ../pflash/make_version.sh \ - ../pflash/common/* +dist: arch_links links .version + @find -L ../gard/ -iname '*.[ch]' -print0 | xargs -0 tar -rhf $(GARD_VERSION).tar + @tar --transform 's/Makefile.dist/Makefile/' -rhf $(GARD_VERSION).tar \ + ../gard/Makefile.dist ../gard/rules.mk \ + ../gard/.version ../gard/common/* clean: arch_clean rm -f $(OBJS) $(EXE) *.o *.d .version .version.tmp distclean: clean rm -f *.c~ *.h~ *.sh~ Makefile~ config.mk~ libflash/*.c~ libflash/*.h~ - rm -f libflash ccan common io.h make_version.sh + rm -f libflash ccan common io.h version.c make_version.sh + rm -f gard-*.tar diff --git a/external/gard/Makefile.dist b/external/gard/Makefile.dist index 46edcb13..759b3eab 100644 --- a/external/gard/Makefile.dist +++ b/external/gard/Makefile.dist @@ -1,3 +1,9 @@ +#Prevent make from trying to remake arch links symlinks +#which are fixed files now +ARCH_LINKS := + +GARD_VERSION := $(shell cat .version) + include rules.mk GET_ARCH = common/get_arch.sh include common/rules.mk diff --git a/external/gard/rules.mk b/external/gard/rules.mk index acaf723e..c0b8a57f 100644 --- a/external/gard/rules.mk +++ b/external/gard/rules.mk @@ -14,9 +14,11 @@ sbindir = $(prefix)/sbin datadir = $(prefix)/share mandir = $(datadir)/man -GARD_VERSION ?= $(shell ./make_version.sh $(EXE)) +#This will only be unset if we're running out of git tree, +#../../make_version.sh is garanteed to exist that way +GARD_VERSION ?= $(shell ../../make_version.sh $(EXE)) -version.c: make_version.sh .version +version.c: .version @(if [ "a$(GARD_VERSION)" = "a" ]; then \ echo "#error You need to set GARD_VERSION environment variable" > $@ ;\ else \ |