blob: 781fbc0fcf862f53752703f78a33d7ae2ffde21e [file] [log] [blame]
DOCKER = docker
BASE_REPO = cloudflare/quiche
BASE_TAG = latest
QNS_REPO = cloudflare/quiche-qns
QNS_TAG = latest
FUZZ_REPO = mayhem.cloudflare-security.com:5000/protocols/quiche-libfuzzer
FUZZ_TAG = latest
docker-build: docker-base docker-qns
# build quiche-apps only
.PHONY: build-apps
build-apps:
cargo build --package=quiche_apps
# build base image
.PHONY: docker-base
docker-base: Dockerfile
$(DOCKER) build --target quiche-base -t $(BASE_REPO):$(BASE_TAG) .
# build qns image
.PHONY: docker-qns
docker-qns: Dockerfile apps/run_endpoint.sh
$(DOCKER) build --target quiche-qns -t $(QNS_REPO):$(QNS_TAG) .
.PHONY: docker-publish
docker-publish:
$(DOCKER) push $(BASE_REPO):$(BASE_TAG)
$(DOCKER) push $(QNS_REPO):$(QNS_TAG)
# build fuzzers
.PHONY: build-fuzz
build-fuzz:
cargo +nightly fuzz build --release packet_recv_client
cargo +nightly fuzz build --release packet_recv_server
cargo +nightly fuzz build --release qpack_decode
# build fuzzing image
.PHONY: docker-fuzz
docker-fuzz: build-fuzz
$(DOCKER) build --tag $(FUZZ_REPO):$(FUZZ_TAG) fuzz
.PHONY: docker-fuzz-publish
docker-fuzz-publish:
$(DOCKER) push $(FUZZ_REPO):$(FUZZ_TAG)
.PHONY: clean
clean:
@for id in `$(DOCKER) images -q $(BASE_REPO)` `$(DOCKER) images -q $(QNS_REPO)` `$(DOCKER) images -q $(FUZZ_REPO)`; do \
echo ">> Removing $$id"; \
$(DOCKER) rmi -f $$id; \
done