1#!/bin/sh -eux 2 3# Copyright (c) 2019 Yubico AB. All rights reserved. 4# Use of this source code is governed by a BSD-style 5# license that can be found in the LICENSE file. 6 7LIBCBOR="$1" 8LIBFIDO2="$2" 9 10CC="${CC:-clang}" 11CXX="${CXX:-clang++}" 12PKG_CONFIG_PATH="${PKG_CONFIG_PATH:-${LIBCBOR}/install/lib/pkgconfig}" 13export CC PKG_CONFIG_PATH 14 15# Clean up. 16rm -rf "${LIBCBOR}/build" "${LIBCBOR}/install" "${LIBFIDO2}/build" 17 18# Patch, build, and install libcbor. 19(cd "${LIBCBOR}" && patch -N -l -s -p0 < "${LIBFIDO2}/fuzz/README") || true 20mkdir "${LIBCBOR}/build" "${LIBCBOR}/install" 21(cd "${LIBCBOR}/build" && cmake -DCMAKE_INSTALL_PREFIX="${LIBCBOR}/install" ..) 22make -C "${LIBCBOR}/build" all install 23 24# Build libfido2. 25mkdir -p "${LIBFIDO2}/build" 26export CFLAGS="-fprofile-instr-generate -fcoverage-mapping" 27export LDFLAGS="${CFLAGS}" 28(cd "${LIBFIDO2}/build" && cmake -DFUZZ=1 -DLIBFUZZER=1 \ 29 -DCMAKE_BUILD_TYPE=Debug ..) 30make -C "${LIBFIDO2}/build" 31