blob: e86c4346a541f869a4de036059ef784f6fb1dbbe [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 --manifest-path tools/apps/Cargo.toml
# 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 tools/qns/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 run packet_recv_client -- -runs=1
cargo +nightly fuzz run packet_recv_server -- -runs=1
cargo +nightly fuzz run qpack_decode -- -runs=1
# 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