# -----------------------------------------------------------------------------
# Ulm's Oberon Library
# Copyright (C) 1989-1994 by University of Ulm, SAI, D-89069 Ulm, Germany
# -----------------------------------------------------------------------------
# This makefile is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This makefile is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# -----------------------------------------------------------------------------
# {stamp: updated by mmo Wed Jul 20 13:19:02 MET DST 1994}
# {options: +a +A +L -P}
# -----------------------------------------------------------------------------
# default settings which are overrided by the parent makefile
# the Oberon library is self-containing, so OBPATH should be "."
OBPATH :=	.
# directory of the compiler and the associated files
OBLIB :=	/usr/local/lib/oberon
# compilation flags (usually -OC -OT to suppress range and conversion checks)
ocflags :=	-OC -OT
# where to install the libraries (usually equivalent to OBLIB)
LIBDIR :=	$(OBLIB)
# -----------------------------------------------------------------------------
.SUFFIXES:
# {macros}
src :=		ASCII.od ASCII.om Assertions.od Assertions.om Clocks.od \
		Clocks.om Conditions.od Conditions.om ConstString.od \
		ConstString.om Dates.od Dates.om Disciplines.od \
		Disciplines.om Errors.od Errors.om EventCondit.od \
		EventCondit.om Events.od Events.om ForeignEven.od \
		ForeignEven.om IndirectDis.od IndirectDis.om Lists.od \
		Lists.om Loader.od Loader.om Maps.od Maps.om Memory.od \
		Memory.om Messages.od Messages.om NetIO.od NetIO.om \
		Objects.od Objects.om Operations.od Operations.om \
		PersistentD.od PersistentD.om PersistentO.od PersistentO.om \
		Priorities.od Priorities.om Process.od Process.om \
		RelatedEven.od RelatedEven.om Scales.od Scales.om Sets.od \
		Sets.om StreamCondi.od StreamCondi.om StreamDisci.od \
		StreamDisci.om Streams.od Streams.om Strings.od Strings.om \
		Texts.od Texts.om TimeConditi.od TimeConditi.om Timers.od \
		Timers.om Times.od Times.om Timezones.od Timezones.om \
		Types.od Types.om UntaggedSto.od UntaggedSto.om
libs :=
liboptions :=	$(patsubst %,-l%,$(libs))
defs :=		$(filter %.od,$(src))
mods :=		$(filter %.om,$(src))
syms :=
refs :=		$(patsubst %.om,%.r,$(mods))
objects :=
lib :=		libo.a
libobjects =	$(patsubst %.om,$(lib)(%.o),$(mods))
defsyms :=
modobjs :=
cyclesyms :=
# {targets}
libdeps :=	SYM(ASCII.sy) $(lib)(ASCII.o) SYM(Objects.sy) \
		$(lib)(Objects.o) SYM(Disciplines.sy) $(lib)(Disciplines.o) \
		SYM(IndirectDis.sy) $(lib)(IndirectDis.o) SYM(Lists.sy) \
		$(lib)(Lists.o) SYM(Priorities.sy) $(lib)(Priorities.o) \
		SYM(Events.sy) $(lib)(Events.o) SYM(Process.sy) \
		$(lib)(Process.o) SYM(RelatedEven.sy) $(lib)(RelatedEven.o) \
		SYM(Assertions.sy) $(lib)(Assertions.o) SYM(Sets.sy) \
		$(lib)(Sets.o) SYM(Types.sy) $(lib)(Types.o) SYM(Memory.sy) \
		$(lib)(Memory.o) SYM(Streams.sy) $(lib)(Streams.o) \
		SYM(Maps.sy) $(lib)(Maps.o) SYM(StreamDisci.sy) \
		$(lib)(StreamDisci.o) SYM(Strings.sy) $(lib)(Strings.o) \
		SYM(Errors.sy) $(lib)(Errors.o) SYM(Loader.sy) \
		$(lib)(Loader.o) SYM(NetIO.sy) $(lib)(NetIO.o) \
		SYM(ForeignEven.sy) $(lib)(ForeignEven.o) SYM(Texts.sy) \
		$(lib)(Texts.o) SYM(ConstString.sy) $(lib)(ConstString.o) \
		SYM(PersistentO.sy) $(lib)(PersistentO.o) SYM(PersistentD.sy) \
		$(lib)(PersistentD.o) SYM(Messages.sy) $(lib)(Messages.o) \
		SYM(Operations.sy) $(lib)(Operations.o) SYM(Scales.sy) \
		$(lib)(Scales.o) SYM(Times.sy) $(lib)(Times.o) SYM(Clocks.sy) \
		$(lib)(Clocks.o) SYM(Timers.sy) $(lib)(Timers.o) \
		SYM(Conditions.sy) $(lib)(Conditions.o) SYM(EventCondit.sy) \
		$(lib)(EventCondit.o) SYM(StreamCondi.sy) \
		$(lib)(StreamCondi.o) SYM(TimeConditi.sy) \
		$(lib)(TimeConditi.o) SYM(Timezones.sy) $(lib)(Timezones.o) \
		SYM(Dates.sy) $(lib)(Dates.o) SYM(UntaggedSto.sy) \
		$(lib)(UntaggedSto.o)
$(lib):		$(libdeps)
T :=
.PHONY:		all
all:		$T $(defsyms) $(lib)
#
OC_CMD :=	OBPATH=$(OBPATH) OBLIB=$(OBLIB) oc
# {rules}
%.o:		%.r
OC :=		$(OC_CMD)
OCFLAGS :=	$(ocflags)
NEWER :=	newer
RM :=		rm -f
TOUCH :=	touch
$(lib)(%.o):	%.om SYM(%.sy)
		@$(TOUCH) $*.ts
		$(OC) $(OCFLAGS) $(liboptions) -c -u -o $(lib) $<
		@[ -z "$(D_$*)" ] || $(NEWER) $*.ts SYM || $(MAKE) $(D_$*)
		@$(RM) $*.ts
SYM(%.sy) $(lib)(%.o): %.od
		$(OC) $(OCFLAGS) $(liboptions) -c -u -o $(lib) $< $*.om
# -----------------------------------------------------------------------------
# {dependencies}
SYM(ASCII.sy):
$(lib)(ASCII.o): SYM(ASCII.sy)
SYM(Assertions.sy): SYM(Disciplines.sy) SYM(Events.sy) SYM(RelatedEven.sy)
$(lib)(Assertions.o): SYM(Disciplines.sy) SYM(Events.sy) SYM(Priorities.sy) \
		SYM(RelatedEven.sy) SYM(Assertions.sy)
SYM(Clocks.sy):	SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Priorities.sy) SYM(Times.sy)
$(lib)(Clocks.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Priorities.sy) SYM(RelatedEven.sy) SYM(Operations.sy) \
		SYM(Times.sy) SYM(Clocks.sy)
SYM(Conditions.sy): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(RelatedEven.sy) SYM(Times.sy)
$(lib)(Conditions.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Priorities.sy) SYM(Process.sy) SYM(RelatedEven.sy) \
		SYM(Operations.sy) SYM(Scales.sy) SYM(Times.sy) \
		SYM(Clocks.sy) SYM(Conditions.sy) SYM(Timers.sy)
SYM(ConstString.sy): SYM(Streams.sy)
$(lib)(ConstString.o): SYM(Types.sy) SYM(Streams.sy) SYM(ConstString.sy) \
		SYM(Texts.sy)
SYM(Dates.sy):	SYM(Objects.sy) SYM(Events.sy) SYM(Scales.sy) SYM(Times.sy) \
		SYM(Timezones.sy)
$(lib)(Dates.o): SYM(Objects.sy) SYM(Events.sy) SYM(Priorities.sy) \
		SYM(Streams.sy) SYM(NetIO.sy) SYM(PersistentO.sy) \
		SYM(Operations.sy) SYM(Scales.sy) SYM(Times.sy) \
		SYM(Timezones.sy) SYM(Dates.sy)
SYM(Disciplines.sy): SYM(Objects.sy)
$(lib)(Disciplines.o): SYM(Objects.sy) SYM(Disciplines.sy)
SYM(Errors.sy):	SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(RelatedEven.sy) SYM(Streams.sy)
$(lib)(Errors.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(RelatedEven.sy) SYM(Streams.sy) SYM(Errors.sy) \
		SYM(Strings.sy)
SYM(EventCondit.sy): SYM(Events.sy) SYM(Conditions.sy)
$(lib)(EventCondit.o): SYM(Disciplines.sy) SYM(Events.sy) SYM(RelatedEven.sy) \
		SYM(Conditions.sy) SYM(EventCondit.sy)
SYM(Events.sy):	SYM(Objects.sy) SYM(Disciplines.sy)
$(lib)(Events.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Priorities.sy)
SYM(ForeignEven.sy): SYM(Events.sy) SYM(Process.sy) SYM(RelatedEven.sy) \
		SYM(Streams.sy)
$(lib)(ForeignEven.o): SYM(Events.sy) SYM(Priorities.sy) SYM(Process.sy) \
		SYM(RelatedEven.sy) SYM(Streams.sy) SYM(Errors.sy) \
		SYM(ForeignEven.sy) SYM(NetIO.sy) SYM(Strings.sy)
SYM(IndirectDis.sy): SYM(Disciplines.sy)
$(lib)(IndirectDis.o): SYM(Disciplines.sy) SYM(IndirectDis.sy)
SYM(Lists.sy):	SYM(Objects.sy)
$(lib)(Lists.o): SYM(Objects.sy) SYM(Lists.sy)
SYM(Loader.sy):	SYM(Events.sy) SYM(RelatedEven.sy)
$(lib)(Loader.o): SYM(Events.sy) SYM(Priorities.sy) SYM(RelatedEven.sy) \
		SYM(Loader.sy) SYM(Streams.sy) SYM(Errors.sy) SYM(Strings.sy)
SYM(Maps.sy):	SYM(Streams.sy)
$(lib)(Maps.o):	SYM(Objects.sy) SYM(Types.sy) SYM(Streams.sy) SYM(Maps.sy)
SYM(Memory.sy):	SYM(Disciplines.sy) SYM(Events.sy) SYM(RelatedEven.sy) \
		SYM(Types.sy)
$(lib)(Memory.o): SYM(Disciplines.sy) SYM(Events.sy) SYM(Priorities.sy) \
		SYM(RelatedEven.sy) SYM(Assertions.sy) SYM(Types.sy) \
		SYM(Memory.sy)
SYM(Messages.sy): SYM(Events.sy) SYM(RelatedEven.sy) SYM(PersistentD.sy)
$(lib)(Messages.o): SYM(Disciplines.sy) SYM(Events.sy) SYM(Priorities.sy) \
		SYM(RelatedEven.sy) SYM(Streams.sy) SYM(ForeignEven.sy) \
		SYM(NetIO.sy) SYM(PersistentO.sy) SYM(PersistentD.sy) \
		SYM(Messages.sy)
SYM(NetIO.sy):	SYM(Types.sy) SYM(Streams.sy)
$(lib)(NetIO.o): SYM(Disciplines.sy) SYM(Types.sy) SYM(Streams.sy) \
		SYM(NetIO.sy) SYM(Strings.sy)
SYM(Objects.sy):
$(lib)(Objects.o): SYM(Objects.sy)
SYM(Operations.sy): SYM(Objects.sy) SYM(Events.sy) SYM(PersistentD.sy)
$(lib)(Operations.o): SYM(Objects.sy) SYM(Events.sy) SYM(Assertions.sy) \
		SYM(PersistentO.sy) SYM(PersistentD.sy) SYM(Operations.sy)
SYM(PersistentD.sy): SYM(Objects.sy) SYM(Streams.sy) SYM(PersistentO.sy)
$(lib)(PersistentD.o): SYM(Objects.sy) SYM(Streams.sy) SYM(NetIO.sy) \
		SYM(PersistentO.sy) SYM(PersistentD.sy)
SYM(PersistentO.sy): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Assertions.sy) SYM(Streams.sy)
$(lib)(PersistentO.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Priorities.sy) SYM(RelatedEven.sy) SYM(Assertions.sy) \
		SYM(Loader.sy) SYM(Streams.sy) SYM(ConstString.sy) \
		SYM(NetIO.sy) SYM(PersistentO.sy) SYM(Texts.sy)
SYM(Priorities.sy):
$(lib)(Priorities.o): SYM(Priorities.sy)
SYM(Process.sy): SYM(Events.sy)
$(lib)(Process.o): SYM(Events.sy) SYM(Priorities.sy) SYM(Process.sy)
SYM(RelatedEven.sy): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy)
$(lib)(RelatedEven.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Priorities.sy) SYM(RelatedEven.sy)
SYM(Scales.sy):	SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Operations.sy)
$(lib)(Scales.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(RelatedEven.sy) SYM(Assertions.sy) SYM(PersistentO.sy) \
		SYM(Operations.sy) SYM(Scales.sy)
SYM(Sets.sy):	SYM(Events.sy)
$(lib)(Sets.o):	SYM(Events.sy) SYM(Priorities.sy) SYM(Assertions.sy) \
		SYM(Sets.sy)
SYM(StreamCondi.sy): SYM(Events.sy) SYM(RelatedEven.sy) SYM(Streams.sy) \
		SYM(Conditions.sy)
$(lib)(StreamCondi.o): SYM(Events.sy) SYM(Priorities.sy) SYM(RelatedEven.sy) \
		SYM(Streams.sy) SYM(Conditions.sy) SYM(StreamCondi.sy)
SYM(StreamDisci.sy): SYM(Events.sy) SYM(Sets.sy) SYM(Streams.sy)
$(lib)(StreamDisci.o): SYM(ASCII.sy) SYM(Events.sy) SYM(IndirectDis.sy) \
		SYM(Sets.sy) SYM(Streams.sy) SYM(StreamDisci.sy)
SYM(Streams.sy): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Types.sy)
$(lib)(Streams.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Priorities.sy) SYM(Process.sy) SYM(RelatedEven.sy) \
		SYM(Assertions.sy) SYM(Types.sy) SYM(Streams.sy)
SYM(Strings.sy): SYM(Events.sy) SYM(Streams.sy)
$(lib)(Strings.o): SYM(Events.sy) SYM(Priorities.sy) SYM(RelatedEven.sy) \
		SYM(Types.sy) SYM(Streams.sy) SYM(Strings.sy)
SYM(Texts.sy):	SYM(Streams.sy)
$(lib)(Texts.o): SYM(Streams.sy) SYM(Texts.sy)
SYM(TimeConditi.sy): SYM(Times.sy) SYM(Clocks.sy) SYM(Conditions.sy)
$(lib)(TimeConditi.o): SYM(Disciplines.sy) SYM(Events.sy) SYM(Priorities.sy) \
		SYM(Process.sy) SYM(RelatedEven.sy) SYM(Operations.sy) \
		SYM(Scales.sy) SYM(Times.sy) SYM(Clocks.sy) \
		SYM(Conditions.sy) SYM(TimeConditi.sy) SYM(Timers.sy)
SYM(Timers.sy):	SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Times.sy) SYM(Clocks.sy)
$(lib)(Timers.o): SYM(Objects.sy) SYM(Disciplines.sy) SYM(Events.sy) \
		SYM(Priorities.sy) SYM(RelatedEven.sy) SYM(Operations.sy) \
		SYM(Scales.sy) SYM(Times.sy) SYM(Clocks.sy) SYM(Timers.sy)
SYM(Times.sy):	SYM(Objects.sy) SYM(Scales.sy)
$(lib)(Times.o): SYM(Objects.sy) SYM(Streams.sy) SYM(NetIO.sy) \
		SYM(PersistentO.sy) SYM(Operations.sy) SYM(Scales.sy) \
		SYM(Times.sy)
SYM(Timezones.sy): SYM(Objects.sy) SYM(Events.sy) SYM(PersistentO.sy) \
		SYM(Scales.sy) SYM(Times.sy)
$(lib)(Timezones.o): SYM(Objects.sy) SYM(Events.sy) SYM(Assertions.sy) \
		SYM(Streams.sy) SYM(NetIO.sy) SYM(PersistentO.sy) \
		SYM(Scales.sy) SYM(Times.sy) SYM(Timezones.sy)
SYM(Types.sy):
$(lib)(Types.o): SYM(Types.sy)
SYM(UntaggedSto.sy): SYM(Objects.sy) SYM(Types.sy)
$(lib)(UntaggedSto.o): SYM(Objects.sy) SYM(Process.sy) SYM(Types.sy) \
		SYM(UntaggedSto.sy)
# {reversed-dependencies}
D_ASCII :=	'$(lib)(StreamDisci.o)'
D_Assertions :=	'$(lib)(Memory.o)' '$(lib)(Operations.o)' \
		'SYM(PersistentO.sy)' '$(lib)(PersistentO.o)' \
		'$(lib)(Scales.o)' '$(lib)(Sets.o)' '$(lib)(Streams.o)' \
		'$(lib)(Timezones.o)'
D_Clocks :=	'$(lib)(Conditions.o)' 'SYM(TimeConditi.sy)' \
		'$(lib)(TimeConditi.o)' 'SYM(Timers.sy)' '$(lib)(Timers.o)'
D_Conditions :=	'SYM(EventCondit.sy)' '$(lib)(EventCondit.o)' \
		'SYM(StreamCondi.sy)' '$(lib)(StreamCondi.o)' \
		'SYM(TimeConditi.sy)' '$(lib)(TimeConditi.o)'
D_ConstString := '$(lib)(PersistentO.o)'
D_Dates :=
D_Disciplines := 'SYM(Assertions.sy)' '$(lib)(Assertions.o)' 'SYM(Clocks.sy)' \
		'$(lib)(Clocks.o)' 'SYM(Conditions.sy)' \
		'$(lib)(Conditions.o)' 'SYM(Errors.sy)' '$(lib)(Errors.o)' \
		'$(lib)(EventCondit.o)' 'SYM(Events.sy)' '$(lib)(Events.o)' \
		'SYM(IndirectDis.sy)' '$(lib)(IndirectDis.o)' \
		'SYM(Memory.sy)' '$(lib)(Memory.o)' '$(lib)(Messages.o)' \
		'$(lib)(NetIO.o)' 'SYM(PersistentO.sy)' \
		'$(lib)(PersistentO.o)' 'SYM(RelatedEven.sy)' \
		'$(lib)(RelatedEven.o)' 'SYM(Scales.sy)' '$(lib)(Scales.o)' \
		'SYM(Streams.sy)' '$(lib)(Streams.o)' '$(lib)(TimeConditi.o)' \
		'SYM(Timers.sy)' '$(lib)(Timers.o)'
D_Errors :=	'$(lib)(ForeignEven.o)' '$(lib)(Loader.o)'
D_EventCondit :=
D_Events :=	'SYM(Assertions.sy)' '$(lib)(Assertions.o)' 'SYM(Clocks.sy)' \
		'$(lib)(Clocks.o)' 'SYM(Conditions.sy)' \
		'$(lib)(Conditions.o)' 'SYM(Dates.sy)' '$(lib)(Dates.o)' \
		'SYM(Errors.sy)' '$(lib)(Errors.o)' 'SYM(EventCondit.sy)' \
		'$(lib)(EventCondit.o)' 'SYM(ForeignEven.sy)' \
		'$(lib)(ForeignEven.o)' 'SYM(Loader.sy)' '$(lib)(Loader.o)' \
		'SYM(Memory.sy)' '$(lib)(Memory.o)' 'SYM(Messages.sy)' \
		'$(lib)(Messages.o)' 'SYM(Operations.sy)' \
		'$(lib)(Operations.o)' 'SYM(PersistentO.sy)' \
		'$(lib)(PersistentO.o)' 'SYM(Process.sy)' '$(lib)(Process.o)' \
		'SYM(RelatedEven.sy)' '$(lib)(RelatedEven.o)' \
		'SYM(Scales.sy)' '$(lib)(Scales.o)' 'SYM(Sets.sy)' \
		'$(lib)(Sets.o)' 'SYM(StreamCondi.sy)' \
		'$(lib)(StreamCondi.o)' 'SYM(StreamDisci.sy)' \
		'$(lib)(StreamDisci.o)' 'SYM(Streams.sy)' '$(lib)(Streams.o)' \
		'SYM(Strings.sy)' '$(lib)(Strings.o)' '$(lib)(TimeConditi.o)' \
		'SYM(Timers.sy)' '$(lib)(Timers.o)' 'SYM(Timezones.sy)' \
		'$(lib)(Timezones.o)'
D_ForeignEven := '$(lib)(Messages.o)'
D_IndirectDis := '$(lib)(StreamDisci.o)'
D_Lists :=
D_Loader :=	'$(lib)(PersistentO.o)'
D_Maps :=
D_Memory :=
D_Messages :=
D_NetIO :=	'$(lib)(Dates.o)' '$(lib)(ForeignEven.o)' \
		'$(lib)(Messages.o)' '$(lib)(PersistentD.o)' \
		'$(lib)(PersistentO.o)' '$(lib)(Times.o)' \
		'$(lib)(Timezones.o)'
D_Objects :=	'SYM(Clocks.sy)' '$(lib)(Clocks.o)' 'SYM(Conditions.sy)' \
		'$(lib)(Conditions.o)' 'SYM(Dates.sy)' '$(lib)(Dates.o)' \
		'SYM(Disciplines.sy)' '$(lib)(Disciplines.o)' \
		'SYM(Errors.sy)' '$(lib)(Errors.o)' 'SYM(Events.sy)' \
		'$(lib)(Events.o)' 'SYM(Lists.sy)' '$(lib)(Lists.o)' \
		'$(lib)(Maps.o)' 'SYM(Operations.sy)' '$(lib)(Operations.o)' \
		'SYM(PersistentD.sy)' '$(lib)(PersistentD.o)' \
		'SYM(PersistentO.sy)' '$(lib)(PersistentO.o)' \
		'SYM(RelatedEven.sy)' '$(lib)(RelatedEven.o)' \
		'SYM(Scales.sy)' '$(lib)(Scales.o)' 'SYM(Streams.sy)' \
		'$(lib)(Streams.o)' 'SYM(Timers.sy)' '$(lib)(Timers.o)' \
		'SYM(Times.sy)' '$(lib)(Times.o)' 'SYM(Timezones.sy)' \
		'$(lib)(Timezones.o)' 'SYM(UntaggedSto.sy)' \
		'$(lib)(UntaggedSto.o)'
D_Operations :=	'$(lib)(Clocks.o)' '$(lib)(Conditions.o)' '$(lib)(Dates.o)' \
		'SYM(Scales.sy)' '$(lib)(Scales.o)' '$(lib)(TimeConditi.o)' \
		'$(lib)(Timers.o)' '$(lib)(Times.o)'
D_PersistentD := 'SYM(Messages.sy)' '$(lib)(Messages.o)' 'SYM(Operations.sy)' \
		'$(lib)(Operations.o)'
D_PersistentO := '$(lib)(Dates.o)' '$(lib)(Messages.o)' \
		'$(lib)(Operations.o)' 'SYM(PersistentD.sy)' \
		'$(lib)(PersistentD.o)' '$(lib)(Scales.o)' '$(lib)(Times.o)' \
		'SYM(Timezones.sy)' '$(lib)(Timezones.o)'
D_Priorities :=	'$(lib)(Assertions.o)' 'SYM(Clocks.sy)' '$(lib)(Clocks.o)' \
		'$(lib)(Conditions.o)' '$(lib)(Dates.o)' '$(lib)(Events.o)' \
		'$(lib)(ForeignEven.o)' '$(lib)(Loader.o)' '$(lib)(Memory.o)' \
		'$(lib)(Messages.o)' '$(lib)(PersistentO.o)' \
		'$(lib)(Process.o)' '$(lib)(RelatedEven.o)' '$(lib)(Sets.o)' \
		'$(lib)(StreamCondi.o)' '$(lib)(Streams.o)' \
		'$(lib)(Strings.o)' '$(lib)(TimeConditi.o)' \
		'$(lib)(Timers.o)'
D_Process :=	'$(lib)(Conditions.o)' 'SYM(ForeignEven.sy)' \
		'$(lib)(ForeignEven.o)' '$(lib)(Streams.o)' \
		'$(lib)(TimeConditi.o)' '$(lib)(UntaggedSto.o)'
D_RelatedEven := 'SYM(Assertions.sy)' '$(lib)(Assertions.o)' \
		'$(lib)(Clocks.o)' 'SYM(Conditions.sy)' \
		'$(lib)(Conditions.o)' 'SYM(Errors.sy)' '$(lib)(Errors.o)' \
		'$(lib)(EventCondit.o)' 'SYM(ForeignEven.sy)' \
		'$(lib)(ForeignEven.o)' 'SYM(Loader.sy)' '$(lib)(Loader.o)' \
		'SYM(Memory.sy)' '$(lib)(Memory.o)' 'SYM(Messages.sy)' \
		'$(lib)(Messages.o)' '$(lib)(PersistentO.o)' \
		'$(lib)(Scales.o)' 'SYM(StreamCondi.sy)' \
		'$(lib)(StreamCondi.o)' '$(lib)(Streams.o)' \
		'$(lib)(Strings.o)' '$(lib)(TimeConditi.o)' \
		'$(lib)(Timers.o)'
D_Scales :=	'$(lib)(Conditions.o)' 'SYM(Dates.sy)' '$(lib)(Dates.o)' \
		'$(lib)(TimeConditi.o)' '$(lib)(Timers.o)' 'SYM(Times.sy)' \
		'$(lib)(Times.o)' 'SYM(Timezones.sy)' '$(lib)(Timezones.o)'
D_Sets :=	'SYM(StreamDisci.sy)' '$(lib)(StreamDisci.o)'
D_StreamCondi :=
D_StreamDisci :=
D_Streams :=	'SYM(ConstString.sy)' '$(lib)(ConstString.o)' \
		'$(lib)(Dates.o)' 'SYM(Errors.sy)' '$(lib)(Errors.o)' \
		'SYM(ForeignEven.sy)' '$(lib)(ForeignEven.o)' \
		'$(lib)(Loader.o)' 'SYM(Maps.sy)' '$(lib)(Maps.o)' \
		'$(lib)(Messages.o)' 'SYM(NetIO.sy)' '$(lib)(NetIO.o)' \
		'SYM(PersistentD.sy)' '$(lib)(PersistentD.o)' \
		'SYM(PersistentO.sy)' '$(lib)(PersistentO.o)' \
		'SYM(StreamCondi.sy)' '$(lib)(StreamCondi.o)' \
		'SYM(StreamDisci.sy)' '$(lib)(StreamDisci.o)' \
		'SYM(Strings.sy)' '$(lib)(Strings.o)' 'SYM(Texts.sy)' \
		'$(lib)(Texts.o)' '$(lib)(Times.o)' '$(lib)(Timezones.o)'
D_Strings :=	'$(lib)(Errors.o)' '$(lib)(ForeignEven.o)' '$(lib)(Loader.o)' \
		'$(lib)(NetIO.o)'
D_Texts :=	'$(lib)(ConstString.o)' '$(lib)(PersistentO.o)'
D_TimeConditi :=
D_Timers :=	'$(lib)(Conditions.o)' '$(lib)(TimeConditi.o)'
D_Times :=	'SYM(Clocks.sy)' '$(lib)(Clocks.o)' 'SYM(Conditions.sy)' \
		'$(lib)(Conditions.o)' 'SYM(Dates.sy)' '$(lib)(Dates.o)' \
		'SYM(TimeConditi.sy)' '$(lib)(TimeConditi.o)' \
		'SYM(Timers.sy)' '$(lib)(Timers.o)' 'SYM(Timezones.sy)' \
		'$(lib)(Timezones.o)'
D_Timezones :=	'SYM(Dates.sy)' '$(lib)(Dates.o)'
D_Types :=	'$(lib)(ConstString.o)' '$(lib)(Maps.o)' 'SYM(Memory.sy)' \
		'$(lib)(Memory.o)' 'SYM(NetIO.sy)' '$(lib)(NetIO.o)' \
		'SYM(Streams.sy)' '$(lib)(Streams.o)' '$(lib)(Strings.o)' \
		'SYM(UntaggedSto.sy)' '$(lib)(UntaggedSto.o)'
D_UntaggedSto :=
# -----------------------------------------------------------------------------
ASCII.od:	make_ascii /usr/pub/ascii
		make_ascii
# -----------------------------------------------------------------------------
.PHONY:		install
install:	$(LIBDIR)/$(lib) $(LIBDIR)/REF $(LIBDIR)/SYM

$(LIBDIR)/$(lib): $(lib)
		cp $^ $@
		ranlib -t $@
$(LIBDIR)/REF:	REF
		cp $^ $@
$(LIBDIR)/SYM:	SYM
		cp $^ $@
# -----------------------------------------------------------------------------
.PHONY:		clean
clean:
		$(RM) core PROT PROT.line *.ts
# -----------------------------------------------------------------------------
PR :=		mp -l
SPOOL :=	lpr
.PHONY:		prdefs prmods pr
pr:		prdefs prmods
prdefs:		prdefs.stamp
prmods:		prmods.stamp
prdefs.stamp:	$(defs)
		$(PR) $? | $(SPOOL)
		@-touch $@
prmods.stamp:	$(mods)
		$(PR) $? | $(SPOOL)
		@-touch $@
# -----------------------------------------------------------------------------
OBTAGS :=	obtags
tags:		$(mods)
		$(OBTAGS) $^
# -----------------------------------------------------------------------------
