Skip to content

Commit

Permalink
Make Makefile a little easier to use
Browse files Browse the repository at this point in the history
By default we should build bin/skopeo locally
and build docs locally.

Show output when doing make docs.

Add description in `make help` to explain default
behaviour.

Signed-off-by: Daniel J Walsh <[email protected]>
  • Loading branch information
rhatdan committed Oct 8, 2020
1 parent 4cc72b9 commit 21aa04e
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,13 @@ endif
# Note: Uses the -N -l go compiler options to disable compiler optimizations
# and inlining. Using these build options allows you to subsequently
# use source debugging tools like delve.
all: binary docs-in-container
all: bin/skopeo docs

help:
@echo "Usage: make <target>"
@echo
@echo "Defaults to building bin/skopeo and docs"
@echo
@echo " * 'install' - Install binaries and documents to system locations"
@echo " * 'binary' - Build skopeo with a container"
@echo " * 'static' - Build statically linked binary"
Expand Down Expand Up @@ -134,7 +136,7 @@ build-container:
${CONTAINER_RUNTIME} build ${BUILD_ARGS} -t "$(IMAGE)" .

$(MANPAGES): %: %.md
@sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' $< | $(GOMD2MAN) -in /dev/stdin -out $@
sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' $< | $(GOMD2MAN) -in /dev/stdin -out $@

docs: $(MANPAGES)

Expand Down
26 changes: 14 additions & 12 deletions install.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,18 +157,7 @@ $ git clone https://github.com/containers/skopeo $GOPATH/src/github.com/containe
$ cd $GOPATH/src/github.com/containers/skopeo && make bin/skopeo
```

### Building in a container

Building in a container is simpler, but more restrictive:

- It requires the `podman` command and the ability to run Linux containers
- The created executable is a Linux executable, and depends on dynamic libraries
which may only be available only in a container of a similar Linux
distribution.

```bash
$ make binary # Or (make all) to also build documentation, see below.
```
By default the `make` comman (make all) will build bin/skopeo and the documation locally.

### Building documentation

Expand All @@ -190,6 +179,19 @@ Then
$ make docs
```

### Building in a container

Building in a container is simpler, but more restrictive:

- It requires the `podman` command and the ability to run Linux containers
- The created executable is a Linux executable, and depends on dynamic libraries
which may only be available only in a container of a similar Linux
distribution.

```bash
$ make binary
```

### Installation

Finally, after the binary and documentation is built:
Expand Down

0 comments on commit 21aa04e

Please sign in to comment.