From fc35ca29227dfb5e47ab925f6dd4d5a5fdacb8a8 Mon Sep 17 00:00:00 2001 From: Morgan Deters Date: Fri, 5 Feb 2010 22:30:22 +0000 Subject: [PATCH] automatic generator script for sourcedir Makefiles and Makefile.ams --- contrib/addsourcedir | 84 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 contrib/addsourcedir diff --git a/contrib/addsourcedir b/contrib/addsourcedir new file mode 100644 index 000000000..9a50b0025 --- /dev/null +++ b/contrib/addsourcedir @@ -0,0 +1,84 @@ +#!/bin/sh +# +# addsourcedir +# Morgan Deters for 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 + + if [ -e "$srcdir/Makefile" ]; then + echo "$progname: warning: not replacing extant \`$srcdir/Makefile'." >&2 + else + echo "generating \`$srcdir/Makefile'..." + topdir=`echo "$srcdir" | sed 's,[^/]\+,..,g'` + 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 \\" + elif expr "$srcdir" : src/main &>/dev/null; then + definitions= + else + definitions=" -D__BUILDING_CVC4LIB \\" + fi + clibname="lib${clibbase}.la" + clibtarget="lib${clibbase}_la" + cat >"$srcdir/Makefile.am" <