11fc1e710Schristos#!/bin/sh -eux 21fc1e710Schristos 3ba9bdd8bSchristos# Copyright (c) 2019 Yubico AB. All rights reserved. 4ba9bdd8bSchristos# Use of this source code is governed by a BSD-style 5ba9bdd8bSchristos# license that can be found in the LICENSE file. 6*2d40c451Schristos# SPDX-License-Identifier: BSD-2-Clause 7ba9bdd8bSchristos 81fc1e710SchristosLIBCBOR="$1" 91fc1e710SchristosLIBFIDO2="$2" 10ba9bdd8bSchristos 111fc1e710SchristosCC="${CC:-clang}" 121fc1e710SchristosCXX="${CXX:-clang++}" 131fc1e710SchristosPKG_CONFIG_PATH="${PKG_CONFIG_PATH:-${LIBCBOR}/install/lib/pkgconfig}" 14ba9bdd8bSchristosexport CC PKG_CONFIG_PATH 15ba9bdd8bSchristos 16ba9bdd8bSchristos# Clean up. 171fc1e710Schristosrm -rf "${LIBCBOR}/build" "${LIBCBOR}/install" "${LIBFIDO2}/build" 18ba9bdd8bSchristos 19ba9bdd8bSchristos# Patch, build, and install libcbor. 201fc1e710Schristos(cd "${LIBCBOR}" && patch -N -l -s -p0 < "${LIBFIDO2}/fuzz/README") || true 211fc1e710Schristosmkdir "${LIBCBOR}/build" "${LIBCBOR}/install" 2295dbdf32Schristos(cd "${LIBCBOR}/build" && cmake -DBUILD_SHARED_LIBS=ON \ 2395dbdf32Schristos -DCMAKE_INSTALL_PREFIX="${LIBCBOR}/install" ..) 2495dbdf32Schristosmake -C "${LIBCBOR}/build" VERBOSE=1 all install 25ba9bdd8bSchristos 26ba9bdd8bSchristos# Build libfido2. 271fc1e710Schristosmkdir -p "${LIBFIDO2}/build" 281fc1e710Schristosexport CFLAGS="-fprofile-instr-generate -fcoverage-mapping" 29*2d40c451Schristosexport CFLAGS="${CFLAGS} -fsanitize=fuzzer-no-link" 301fc1e710Schristosexport LDFLAGS="${CFLAGS}" 31*2d40c451Schristosexport FUZZ_LDFLAGS="${LDFLAGS} -fsanitize=fuzzer" 32*2d40c451Schristos(cd "${LIBFIDO2}/build" && cmake -DFUZZ=ON -DFUZZ_LDFLAGS="${FUZZ_LDFLAGS}" \ 33ba9bdd8bSchristos -DCMAKE_BUILD_TYPE=Debug ..) 341fc1e710Schristosmake -C "${LIBFIDO2}/build" 35