#!/bin/sh # # addsourcedir # Morgan Deters for the CVC4 project # Copyright (c) 2010, 2011 The CVC4 Project # # usage: addsourcedir paths... # progname=`basename "$0"` cd `dirname "$0"`/.. if [ $# -lt 1 ]; then echo >&2 echo "usage: $progname paths..." >&2 echo >&2 echo "Each path should be relative to the top-level source directory, e.g.:" >&2 echo >&2 echo " $progname src/expr" >&2 echo >&2 exit 1 fi while [ $# -gt 0 ]; do srcdir="$1"; shift # remove trailing slashes, if any srcdir=`expr "$srcdir" : '\(.*[^/]\)/*$'` # remove redundant slashes, if any srcdir=`echo "$srcdir" | sed 's,//*,/,g'` if expr "$srcdir" : src/ >/dev/null; then :; else echo "$progname: error: Directories must be under src/" >&2 echo "$progname: error: and \`$srcdir' isn't!" >&2 echo "$progname: error: Make sure you provide source paths" >&2 echo "$progname: error: relative to the top level, e.g. \`src/expr'." >&2 exit 1 fi if [ -d "$srcdir" ]; then :; else echo "creating directory \`$srcdir'..." mkdir -p "$srcdir" fi # enough dotdots to get us back to the top-level directory # (e.g. "src/foo" yields "../.." here), used for $(topdir) in Makefile topdir=`echo "$srcdir" | sed 's,[^/][^/]*,..,g'` # one less, used for the include path in Makefile.am topsrcdir=`echo "$topdir" | sed 's,\.\./,,'` if [ -e "$srcdir/Makefile" ]; then echo "$progname: warning: not replacing extant \`$srcdir/Makefile'." >&2 else echo "generating \`$srcdir/Makefile'..." cat >"$srcdir/Makefile" <&2 else echo "generating \`$srcdir/Makefile.am'..." clibbase=`expr "$srcdir" : '.*/\([^/][^/]*\)$'` if expr "$srcdir" : src/parser >/dev/null; then definitions=" -D__BUILDING_CVC4PARSERLIB \\ " visibility=' $(FLAG_VISIBILITY_HIDDEN)' elif expr "$srcdir" : src/main >/dev/null; then definitions= visibility= else definitions=" -D__BUILDING_CVC4LIB \\ " visibility=' $(FLAG_VISIBILITY_HIDDEN)' fi clibname="lib${clibbase}.la" clibtarget="lib${clibbase}_la" cat >"$srcdir/Makefile.am" <