#!/bin/bash set -e # Helper script to build and/or install just one package out of this repository. # Assumes that all the other packages it depends on have been installed already! PROJECT="$1" shift COQFILE="_CoqProject.$PROJECT" MAKEFILE="Makefile.package.$PROJECT" if ! grep -E -q "^$PROJECT/" _CoqProject; then echo "No files in $PROJECT/ found in _CoqProject; this does not seem to be a valid project name." exit 1 fi # Generate _CoqProject file and Makefile rm -f "$COQFILE" # Get the right "-Q" line. grep -E "^-Q $PROJECT[ /]" _CoqProject >> "$COQFILE" # Get everything until the first empty line except for the "-Q" lines. sed -n '/./!q;p' _CoqProject | grep -E -v "^-Q " >> "$COQFILE" # Get the files. grep -E "^$PROJECT/" _CoqProject >> "$COQFILE" # Now we can run coq_makefile. "${COQBIN}coq_makefile" -f "$COQFILE" -o "$MAKEFILE" # Run build make -f "$MAKEFILE" "$@" # Cleanup rm -f ".$MAKEFILE.d" "$MAKEFILE"*