#!/bin/sh # # $Id: mkdir,v 1.42 2005/06/20 20:13:55 wenzelm Exp $ # Author: Markus Wenzel, TU Muenchen # # DESCRIPTION: prepare logic session directory ## diagnostics PRG="$(basename "$0")" usage() { echo echo "Usage: $PRG [OPTIONS] [LOGIC] NAME" echo echo " Options are:" echo " -I FILE alternative IsaMakefile output" echo " -P include parent logic target" echo " -b setup build mode (session outputs heap image)" echo " -q quiet mode" echo echo " Prepare session directory, including IsaMakefile and document source" echo " with parent LOGIC (default ISABELLE_LOGIC=$ISABELLE_LOGIC)" echo exit 1 } fail() { echo "$1" >&2 exit 2 } ## process command line # options ISAMAKEFILE="IsaMakefile" PARENT="" BUILD="" QUIET="" while getopts "I:Pbq" OPT do case "$OPT" in I) ISAMAKEFILE="$OPTARG" ;; P) PARENT=true ;; b) BUILD=true ;; q) QUIET=true ;; \?) usage ;; esac done shift $(($OPTIND - 1)) # args if [ "$#" -eq 1 ]; then LOGIC="$ISABELLE_LOGIC" DIR_NAME="$1"; shift elif [ "$#" -eq 2 ]; then LOGIC="$1"; shift DIR_NAME="$1"; shift else usage fi DIR=$(dirname "$DIR_NAME") NAME=$(basename "$DIR_NAME") ## main [ -z "$QUIET" ] && echo "Preparing session \"$NAME\" ..." # IsaMakefile mkdir -p "$DIR" || fail "Bad directory: $DIR" cd "$DIR" DOCUMENT_ROOT="" VERBOSE="" [ -z "$QUIET" ] && VERBOSE="-v true " if [ -n "$BUILD" ]; then IMAGES="$NAME" TEST="" TARGET="\$(OUT)/$NAME" ROOT_ML="ROOT.ML" SOURCES="*.thy" DOCUMENT_ROOT="document/root.tex" USEDIR="\$(USEDIR) -b -P http://isabelle.in.tum.de/library" else IMAGES="" TEST="$NAME" TARGET="\$(LOG)/$LOGIC-$NAME.gz" ROOT_ML="$NAME/ROOT.ML" SOURCES="$NAME/*.thy" DOCUMENT_ROOT="$NAME/document/root.tex" USEDIR="\$(USEDIR)" fi if [ "$ISAMAKEFILE" != - -a -f "$ISAMAKEFILE" ]; then echo "keeping $DIR/$ISAMAKEFILE" >&2 else [ -z "$QUIET" -a -n "$ISAMAKEFILE" -a "$ISAMAKEFILE" != - ] && \ echo "creating $DIR/$ISAMAKEFILE" >&2 { echo echo "## targets" echo echo "default: $NAME" echo "images: $IMAGES" echo "test: $TEST" echo echo "all: images test" echo echo echo "## global settings" echo echo "SRC = \$(ISABELLE_HOME)/src" echo "OUT = \$(ISABELLE_OUTPUT)" echo "LOG = \$(OUT)/log" echo echo "USEDIR = \$(ISATOOL) usedir ${VERBOSE}-i true -d $ISABELLE_DOC_FORMAT ## -D generated" echo echo echo "## $NAME" echo "" if [ -n "$PARENT" ]; then echo "$NAME: $LOGIC $TARGET" echo echo "$LOGIC:" echo -e "\t@cd \$(SRC)/$LOGIC; \$(ISATOOL) make $LOGIC" echo echo "$TARGET: \$(OUT)/$LOGIC $ROOT_ML $DOCUMENT_ROOT ## $SOURCES" echo -e "\t@$USEDIR \$(OUT)/$LOGIC $NAME" else echo "$NAME: $TARGET" echo echo "$TARGET: ## $ROOT_ML $DOCUMENT_ROOT $SOURCES" echo -e "\t@$USEDIR $LOGIC $NAME" fi echo echo echo "## clean" echo echo "clean:" echo -e "\t@rm -f $TARGET" } | { if [ -z "$ISAMAKEFILE" -o "$ISAMAKEFILE" = - ]; then cat else cat > "$ISAMAKEFILE" fi } fi # base directory if [ -z "$BUILD" ]; then mkdir -p "$NAME" || fail "Bad directory: $DIR/$NAME" cd "$NAME" PREFIX="$DIR/$NAME" else PREFIX="$DIR" fi if [ -f ROOT.ML ]; then echo "keeping $PREFIX/ROOT.ML" >&2 else [ -z "$QUIET" ] && echo "creating $PREFIX/ROOT.ML" >&2 cat >ROOT.ML <&2 else [ -z "$QUIET" ] && echo "creating $PREFIX/document" >&2 mkdir document || fail "Bad directory: $PREFIX/document" [ -z "$QUIET" ] && echo "creating $PREFIX/document/root.tex" >&2 TITLE=$(echo "$NAME" | tr _ - | tr -d '\\') AUTHOR=$(echo "By $USER" | tr _ - | tr -d '\\') cat >document/root.tex <, \, \, \, \, \, %\, \, \, \, \, %\, \, \ %\usepackage[greek,english]{babel} %option greek for \ %option english (default language) for \, \ %\usepackage[latin1]{inputenc} %for \, \, \, \, %\, \, \ %\usepackage[only,bigsqcap]{stmaryrd} %for \ %\usepackage{eufrak} %for \ ... \, \ ... \ (also included in amssymb) %\usepackage{textcomp} %for \, \ % this should be the last package used \usepackage{pdfsetup} % urls in roman style, theory text in math-similar italics \urlstyle{rm} \isabellestyle{it} \begin{document} \title{$TITLE} \author{$AUTHOR} \maketitle \tableofcontents \parindent 0pt\parskip 0.5ex % generated text of all theories \input{session} % optional bibliography %\bibliographystyle{abbrv} %\bibliography{root} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: EOF fi # notes if [ -z "$QUIET" ]; then cat >&2 <