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 7 LIBCBOR="$1" 8 LIBFIDO2="$2" 9 10 CC="${CC:-clang}" 11 CXX="${CXX:-clang++}" 12 PKG_CONFIG_PATH="${PKG_CONFIG_PATH:-${LIBCBOR}/install/lib/pkgconfig}" 13 export CC PKG_CONFIG_PATH 14 15 # Clean up. 16 rm -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 20 mkdir "${LIBCBOR}/build" "${LIBCBOR}/install" 21 (cd "${LIBCBOR}/build" && cmake -DBUILD_SHARED_LIBS=ON \ 22 -DCMAKE_INSTALL_PREFIX="${LIBCBOR}/install" ..) 23 make -C "${LIBCBOR}/build" VERBOSE=1 all install 24 25 # Build libfido2. 26 mkdir -p "${LIBFIDO2}/build" 27 export CFLAGS="-fprofile-instr-generate -fcoverage-mapping" 28 export LDFLAGS="${CFLAGS}" 29 (cd "${LIBFIDO2}/build" && cmake -DFUZZ=ON -DLIBFUZZER=ON \ 30 -DCMAKE_BUILD_TYPE=Debug ..) 31 make -C "${LIBFIDO2}/build" 32