## Copyright (C) 1993,1994 by the author(s).
# 
# This software is published in the hope that it will be useful, but
# WITHOUT ANY WARRANTY for any part of this software to work correctly
# or as described in the manuals. See the ShapeTools Public License
# for details.
#
# Permission is granted to use, copy, modify, or distribute any part of
# this software but only under the conditions described in the ShapeTools 
# Public License. A copy of this license is supposed to have been given
# to you along with ShapeTools in a file named LICENSE. Among other
# things, this copyright notice and the Public License must be
# preserved on all copies.

#
# shapeTools default version bind rules
#
# Author: Andreas Lampen (Andreas.Lampen@cs.tu-berlin.de)
#
# $Header: BindRules[7.0] Fri Jun 25 16:39:20 1993 andy@cs.tu-berlin.de frozen $
#

#% RULE-SECTION

locked:
	attrmax (generation), attrmax (revision), attrex (locker).

author(author):
	attr (author, $_author$).

mostRecent:
	attr(state,busy);
	attrmax(version).

mostRecentV:
	attr(state,busy), msg(Using busy version of $+.);
	attrmax(version), msg(Using last saved version of $+.).

lastProposed(includePath,libPath):
	*, attr(state,proposed), attrmax(version);
	$_includePath$/*.h, attr(state, busy);
	$_libPath$/*.a, attr(state, busy).

lastProposedV(includePath,libPath):
	*, attr(state,proposed), attrmax(version),
	   msg(Using last proposed version of $+.);
	$_includePath$/*.h, attr(state, busy),
	   msg(Using Unix include file $+);
	$_libPath$/*.a, attr(state, busy),
	   msg(Using Unix archive file $+).

lastReleased(releaseName,includePath,libPath):
	*, attr(__SymbolicName__, $_releaseName$);
	$_includePath$/*.h, attr(state, busy);
	$_libPath$/*.a, attr(state, busy).

lastReleasedV(releaseName,includePath,libPath):
	*, attr(__SymbolicName__, $_releaseName$),
	   msg(Using $+ from release $_releaseName$);
	$_includePath$/*.h, attr(state, busy),
	   msg(Using Unix include file $+);
	$_libPath$/*.a, attr(state, busy),
	   msg(Using Unix archive file $+).

lastPrereleased(prereleaseName,includePath,libPath):
	*, attr(__SymbolicName__, $_prereleaseName$);
	$_includePath$/*.h, attr(state, busy);
	$_libPath$/*.a, attr(state, busy).

lastPrereleasedV(prereleaseName,includePath,libPath):
	*, attr(__SymbolicName__, $_prereleaseName$),
	   msg(Using $+ from release $_prereleaseName$);
	$_includePath$/*.h, attr(state, busy),
	   msg(Using Unix include file $+);
	$_libPath$/*.a, attr(state, busy),
	   msg(Using Unix archive file $+).

recentRelease(releaseName,includePath,libPath):
	*, attr(__SymbolicName__, $_releaseName$);
	$_includePath$/*.h, attr(state, busy);
	$_libPath$/*.a, attr(state, busy).

recentReleaseV(releaseName,includePath,libPath):
	*, attr(__SymbolicName__, $_releaseName$),
	   msg(Using $+ from release $_releaseName$);
	$_includePath$/*.h, attr(state, busy),
	   msg(Using Unix include file $+);
	$_libPath$/*.a, attr(state, busy),
	   msg(Using Unix archive file $+).

fromRelease(releaseName,includePath,libPath):
	*, attr(__SymbolicName__, $_releaseName$);
	$_includePath$/*.h, attr(state, busy);
	$_libPath$/*.a, attr(state, busy).

fromReleaseV(releaseName,includePath,libPath):
	*, attr(__SymbolicName__, $_releaseName$),
	   msg(Using $+ from release $_releaseName$);
	$_includePath$/*.h, attr(state, busy),
	   msg(Using Unix include file $+);
	$_libPath$/*.a, attr(state, busy),
	   msg(Using Unix archive file $+).

extern:
	*, attr(state, busy).

externV:
	*, attr(state, busy),
	   msg(Using regular file for $+).

#% END-RULE-SECTION
