Files
linuxkit/projects/kubernetes/image-cache/Makefile.pkg
Ian Campbell ba60937754 Implement package build, push and show-tag in linuxkit tool
This implements the proposal in #2564 and converts a handful of representative
or especially interesting (from a build PoV) packages to use it.

For now those pkg/* affected get a stub-`Makefile`, once all packages are
converted then `pkg/Makefile` can be adjusted and those stubs can be removed.

For now only `pkg/package.mk`'s functionality is implemented. In particular:

- `push-manifest.sh` remains a separate script, to enable calling it on systems
  with just the LinuxKit tools installed arrange to install it under a less
  generic name.
- `kernel` and `tools/alpine` do not use `pkg/package.mk` and those cases are
  not yet fully considered/covered.

I have updated the documentation assuming that the existing uses of
`pkg/package.mk` will be removed quite soon in a follow up PR rather than
trying to document the situation which results after just this commit.

Due to `cmd/linuxkit` now gaining a library the build needs adjusting slightly to
allow both `make bin/linuxkit` and `go build` to work.

`go vet` has forced me to write some rather asinine comments for things that
are rather obvious from the name.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-06 12:59:25 +01:00

23 lines
687 B
Makefile

$(BUILDDIR)/build.yml: build.yml.in
@sed -e 's/@@CACHE@@/$(CACHE)/g' < $< > $@
$(BUILDDIR)/Dockerfile: Dockerfile
@cp $< $@
.PHONY: push forcepush tag forcetag show-tag
push: $(BUILDDIR)/build.yml $(BUILDDIR)/Dockerfile
linuxkit pkg push -hash-path . $(BUILDDIR)
forcepush: $(BUILDDIR)/build.yml $(BUILDDIR)/Dockerfile
linuxkit pkg push -force -hash-path . $(BUILDDIR)
tag: $(BUILDDIR)/build.yml $(BUILDDIR)/Dockerfile
linuxkit pkg build -hash-path . $(BUILDDIR)
forcetag: $(BUILDDIR)/build.yml $(BUILDDIR)/Dockerfile
linuxkit pkg build --force -hash-path . $(BUILDDIR)
show-tag: $(BUILDDIR)/build.yml $(BUILDDIR)/Dockerfile
@linuxkit pkg show-tag -hash-path . $(BUILDDIR)