all: $(ALL) .PHONY: man man: singularity mkdir -p $(DESTDIR)$(MANDIR)/man1 $(V)$(GO) run $(GO_MODFLAGS) -tags "$(GO_TAGS)" $(GO_GCFLAGS) $(GO_ASMFLAGS) \ $(SOURCEDIR)/cmd/docs/docs.go man --dir $(DESTDIR)$(MANDIR)/man1 .PHONY: collect collect: @printf " DEPENDS\n" $(V)mkdir -p $(BUILDDIR) $(V):>$(BUILDDIR)/mergeddeps $(V)for i in `find $(BUILDDIR) -name '*.o.d'`; do \ (awk -v path="$${i%/*.*}" '/^.+:/ { \ print path "/" $$0; next }{ print }' < $$i \ >> $(BUILDDIR)/mergeddeps) \ done .PHONY: check check: $(go_OBJ) @echo " CHECK golangci-lint" $(V)cd $(SOURCEDIR) && \ (PATH=$(SOURCEDIR)/bin:$$PATH; \ (command -v golangci-lint >/dev/null || \ curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.17.1) && \ golangci-lint run --build-tags "$(GO_TAGS)" ./...) @echo " PASS" .PHONY: dist dist: $(V)(cd $(SOURCEDIR) && $(SOURCEDIR)/scripts/make-dist.sh) .PHONY: unit-test unit-test: @echo " TEST sudo go test [unit]" $(V)cd $(SOURCEDIR) && sudo -E scripts/go-test \ `$(GO) list ./... | grep -v "cmd/singularity\|pkg/network\|e2e"` @echo " PASS" .PHONY: e2e-test e2e-test: @echo " TEST sudo go test [e2e]" $(V)cd $(SOURCEDIR) && scripts/e2e-test @echo " PASS" .PHONY: integration-test integration-test: @echo " TEST sudo go test [integration]" $(V)cd $(SOURCEDIR) && sudo -E scripts/go-test ./cmd/singularity ./pkg/network @echo " PASS" .PHONY: test test: @echo " TEST sudo go test [all]" $(V)M=0; eval 'while [ $$M -le 20 ]; do sleep 60; M=`expr $$M + 1`; echo "Still testing ($$M) ..."; done &' ; \ trap "kill $$! || true" 0; \ cd $(SOURCEDIR) && sudo -E scripts/go-test ./... @echo " PASS" .PHONY: testall testall: check test .PHONY: rpm rpm: dist @echo " BUILD RPM" $(V)(set -x; cd $(SOURCEDIR) && \ if [ -n "$(RPMPREFIX)" ]; then \ rpmbuild $(RPMCLEAN) -ta \ --define '_prefix $(RPMPREFIX)' \ --define '_sysconfdir $(RPMPREFIX)/etc' \ --define '_localstatedir $(RPMPREFIX)/var' \ --define '_mandir $(RPMPREFIX)/share/man' \ $(SOURCEDIR)/singularity-$(SHORT_VERSION).tar.gz; \ else \ rpmbuild $(RPMCLEAN) -ta \ $(SOURCEDIR)/singularity-$(SHORT_VERSION).tar.gz; \ fi) .PHONY: cscope cscope: @printf " CSCOPE\n" $(V)(cscope -k -R -q -u -b -v `find $(SOURCEDIR) -name '*.[chS]'` \ >/dev/null 2>&1 || true) .PHONY: clean clean: @printf " CLEAN\n" $(V)rm -rf $(BUILDDIR)/mergeddeps cscope.* bin/golangci-lint $(CLEANFILES) .PHONY: install install: $(INSTALLFILES) @echo " DONE" # generate the vendor folder with dep .PHONY: vendor vendor: @echo " VENDOR" $(V)$(GO) mod vendor >/dev/null -include $(BUILDDIR)/mergeddeps