22 localtest localunittest localintegration \
33 test unittest integration
44
5+ GO := go
6+
57SOURCES := $(shell find . 2>&1 | grep -E '.* \.(c|h|go) $$')
68PREFIX := $(DESTDIR ) /usr/local
79BINDIR := $(PREFIX ) /sbin
@@ -27,50 +29,28 @@ SHELL := $(shell command -v bash 2>/dev/null)
2729.DEFAULT : runc
2830
2931runc : $(SOURCES )
30- go build -i $(EXTRA_FLAGS ) -ldflags " -X main.gitCommit=${COMMIT} -X main.version=${VERSION} $( EXTRA_LDFLAGS) " -tags " $( BUILDTAGS) " -o runc .
32+ $( GO ) build -buildmode=pie $(EXTRA_FLAGS ) -ldflags " -X main.gitCommit=${COMMIT} -X main.version=${VERSION} $( EXTRA_LDFLAGS) " -tags " $( BUILDTAGS) " -o runc .
3133
3234all : runc recvtty
3335
3436recvtty : contrib/cmd/recvtty/recvtty
3537
3638contrib/cmd/recvtty/recvtty : $(SOURCES )
37- go build -i $(EXTRA_FLAGS ) -ldflags " -X main.gitCommit=${COMMIT} -X main.version=${VERSION} $( EXTRA_LDFLAGS) " -tags " $( BUILDTAGS) " -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty
39+ $( GO ) build -buildmode=pie $(EXTRA_FLAGS ) -ldflags " -X main.gitCommit=${COMMIT} -X main.version=${VERSION} $( EXTRA_LDFLAGS) " -tags " $( BUILDTAGS) " -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty
3840
3941static : $(SOURCES )
40- CGO_ENABLED=1 go build -i $(EXTRA_FLAGS ) -tags " $( BUILDTAGS) cgo static_build" -ldflags " -w -extldflags -static -X main.gitCommit=${COMMIT} -X main.version=${VERSION} $( EXTRA_LDFLAGS) " -o runc .
41- CGO_ENABLED=1 go build -i $(EXTRA_FLAGS ) -tags " $( BUILDTAGS) cgo static_build" -ldflags " -w -extldflags -static -X main.gitCommit=${COMMIT} -X main.version=${VERSION} $( EXTRA_LDFLAGS) " -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty
42+ CGO_ENABLED=1 $( GO ) build $(EXTRA_FLAGS ) -tags " $( BUILDTAGS) netgo cgo static_build" -installsuffix netgo -ldflags " -w -extldflags -static -X main.gitCommit=${COMMIT} -X main.version=${VERSION} $( EXTRA_LDFLAGS) " -o runc .
43+ CGO_ENABLED=1 $( GO ) build $(EXTRA_FLAGS ) -tags " $( BUILDTAGS) netgo cgo static_build" -installsuffix netgo -ldflags " -w -extldflags -static -X main.gitCommit=${COMMIT} -X main.version=${VERSION} $( EXTRA_LDFLAGS) " -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty
4244
4345release :
44- @flag_list=(seccomp selinux apparmor static); \
45- unset expression; \
46- for flag in " $$ {flag_list[@]}" ; do \
47- expression+=" ' '{'',$$ {flag}}" ; \
48- done ; \
49- eval profile_list=(" $$ expression" ); \
50- for profile in " $$ {profile_list[@]}" ; do \
51- output=${RELEASE_DIR} /runc; \
52- for flag in $$ profile; do \
53- output+=." $$ flag" ; \
54- done ; \
55- tags=" $$ profile" ; \
56- ldflags=" -X main.gitCommit=${COMMIT} -X main.version=${VERSION} " ; \
57- CGO_ENABLED=; \
58- [[ " $$ profile" =~ static ]] && { \
59- tags=" $$ {tags/static/static_build}" ; \
60- tags+=" cgo" ; \
61- ldflags+=" -w -extldflags -static" ; \
62- CGO_ENABLED=1; \
63- }; \
64- echo " Building target: $$ output" ; \
65- go build -i $(EXTRA_FLAGS ) -ldflags " $$ ldflags $( EXTRA_LDFLAGS) " -tags " $$ tags" -o " $$ output" . ; \
66- done
46+ script/release.sh -r release/$(VERSION ) -v $(VERSION )
6747
6848dbuild : runcimage
6949 docker run --rm -v $(CURDIR ) :/go/src/$(PROJECT ) --privileged $(RUNC_IMAGE ) make clean all
7050
7151lint :
72- go vet $(allpackages )
73- go fmt $(allpackages )
52+ $( GO ) vet $(allpackages )
53+ $( GO ) fmt $(allpackages )
7454
7555man :
7656 man/md2man-all.sh
@@ -88,7 +68,7 @@ unittest: runcimage
8868 docker run -e TESTFLAGS -t --privileged --rm -v $(CURDIR ) :/go/src/$(PROJECT ) $(RUNC_IMAGE ) make localunittest
8969
9070localunittest : all
91- go test -timeout 3m -tags " $( BUILDTAGS) " ${TESTFLAGS} -v $(allpackages )
71+ $( GO ) test -timeout 3m -tags " $( BUILDTAGS) " ${TESTFLAGS} -v $(allpackages )
9272
9373integration : runcimage
9474 docker run -e TESTFLAGS -t --privileged --rm -v $(CURDIR ) :/go/src/$(PROJECT ) $(RUNC_IMAGE ) make localintegration
@@ -97,11 +77,10 @@ localintegration: all
9777 bats -t tests/integration${TESTFLAGS}
9878
9979rootlessintegration : runcimage
100- docker run -e TESTFLAGS -t --privileged --rm -v $(CURDIR ) :/go/src/$(PROJECT ) --cap-drop=ALL -u rootless $(RUNC_IMAGE ) make localintegration
80+ docker run -e TESTFLAGS -t --privileged --rm -v $(CURDIR ) :/go/src/$(PROJECT ) $(RUNC_IMAGE ) make localrootlessintegration
10181
102- # FIXME: This should not be separate from rootlessintegration's method of running.
10382localrootlessintegration : all
104- sudo -u rootless -H PATH= " ${PATH} " bats -t tests/integration ${TESTFLAGS}
83+ tests/rootless.sh
10584
10685shell : all
10786 docker run -e TESTFLAGS -ti --privileged --rm -v $(CURDIR ) :/go/src/$(PROJECT ) $(RUNC_IMAGE ) bash
@@ -133,10 +112,10 @@ clean:
133112
134113validate :
135114 script/validate-gofmt
136- go vet $(allpackages )
115+ $( GO ) vet $(allpackages )
137116
138- ci : validate localtest
117+ ci : validate test release
139118
140119# memoize allpackages, so that it's executed only once and only if used
141- _allpackages = $(shell go list ./... | grep -v vendor)
120+ _allpackages = $(shell $( GO ) list ./... | grep -v vendor)
142121allpackages = $(if $(__allpackages ) ,,$(eval __allpackages := $$(_allpackages ) ) )$(__allpackages )
0 commit comments