# -----------------------------------------------------------------------------
.SUFFIXES:
# {stamp: updated by mmo Sun Apr  4 12:06:53 MET DST 1993}
# {options: -a -A +L -P}
# -----------------------------------------------------------------------------
# default settings which are overrided by the parent makefile
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 binaries
BINDIR :=	/usr/local/bin
# -----------------------------------------------------------------------------
# {macros}
src :=		Shell.od Shell.om
libs :=
liboptions :=	$(patsubst %,-l%,$(libs))
defs :=		$(filter %.od,$(src))
mods :=		$(filter %.om,$(src))
syms :=		$(patsubst %.od,%.sy,$(defs))
refs :=		$(patsubst %.om,%.r,$(mods))
objects :=	$(patsubst %.om,%.o,$(mods))
defsyms :=
modobjs :=
cyclesyms :=
# {targets}
C_newsh :=	Shell
T_newsh :=	newsh
T :=		$(T_newsh)
.PHONY:		all
all:		$T $(defsyms)
#
OC_CMD :=	OBPATH=$(OBPATH) OBLIB=$(OBLIB) oc
# {rules}
%.o:		%.r
OC :=		$(OC_CMD)
OCFLAGS :=	$(ocflags)
NEWER :=	newer
RM :=		rm -f
TOUCH :=	touch
%.o:		%.om %.sy
		@$(TOUCH) $*.ts
		$(OC) $(OCFLAGS) $(liboptions) -c -u $<
		@[ -z "$(D_$*)" ] || $(NEWER) $*.ts $*.sy || $(MAKE) $(D_$*)
		@$(RM) $*.ts
%.sy %.o:	%.od
		$(OC) $(OCFLAGS) $(liboptions) -c -u $< $*.om
# {linkage}
OCLINKFLAGS :=
CL_newsh :=	/usr/local/lib/oberon/SYM(ASCII.sy) \
		/usr/local/lib/oberon/libo.a(ASCII.o) \
		/usr/local/lib/oberon/SYM(Coroutines.sy) \
		/usr/local/lib/oberon/libo.a(Coroutines.o) \
		/usr/local/lib/oberon/SYM(IEEE.sy) \
		/usr/local/lib/oberon/libo.a(IEEE.o) \
		/usr/local/lib/oberon/SYM(MC68881.sy) \
		/usr/local/lib/oberon/libo.a(MC68881.o) \
		../lib/SYM(NeWSSysToke.sy) ../lib/libNeWS.a(NeWSSysToke.o) \
		/usr/local/lib/oberon/SYM(Objects.sy) \
		/usr/local/lib/oberon/libo.a(Objects.o) \
		/usr/local/lib/oberon/SYM(Disciplines.sy) \
		/usr/local/lib/oberon/libo.a(Disciplines.o) \
		/usr/local/lib/oberon/SYM(Priorities.sy) \
		/usr/local/lib/oberon/libo.a(Priorities.o) \
		/usr/local/lib/oberon/SYM(Events.sy) \
		/usr/local/lib/oberon/libo.a(Events.o) \
		/usr/local/lib/oberon/SYM(Process.sy) \
		/usr/local/lib/oberon/libo.a(Process.o) \
		/usr/local/lib/oberon/SYM(Reals.sy) \
		/usr/local/lib/oberon/libo.a(Reals.o) \
		/usr/local/lib/oberon/SYM(RelatedEven.sy) \
		/usr/local/lib/oberon/libo.a(RelatedEven.o) \
		/usr/local/lib/oberon/SYM(Assertions.sy) \
		/usr/local/lib/oberon/libo.a(Assertions.o) \
		/usr/local/lib/oberon/SYM(Operations.sy) \
		/usr/local/lib/oberon/libo.a(Operations.o) \
		/usr/local/lib/oberon/SYM(Scales.sy) \
		/usr/local/lib/oberon/libo.a(Scales.o) \
		/usr/local/lib/oberon/SYM(Sets.sy) \
		/usr/local/lib/oberon/libo.a(Sets.o) \
		/usr/local/lib/oberon/SYM(Streams.sy) \
		/usr/local/lib/oberon/libo.a(Streams.o) \
		/usr/local/lib/oberon/SYM(CrPipes.sy) \
		/usr/local/lib/oberon/libo.a(CrPipes.o) \
		/usr/local/lib/oberon/SYM(Comments.sy) \
		/usr/local/lib/oberon/libo.a(Comments.o) \
		/usr/local/lib/oberon/SYM(StreamDisci.sy) \
		/usr/local/lib/oberon/libo.a(StreamDisci.o) \
		/usr/local/lib/oberon/SYM(Print.sy) \
		/usr/local/lib/oberon/libo.a(Print.o) \
		/usr/local/lib/oberon/SYM(Scan.sy) \
		/usr/local/lib/oberon/libo.a(Scan.o) \
		/usr/local/lib/oberon/SYM(Read.sy) \
		/usr/local/lib/oberon/libo.a(Read.o) \
		/usr/local/lib/oberon/SYM(Strings.sy) \
		/usr/local/lib/oberon/libo.a(Strings.o) \
		/usr/local/lib/oberon/SYM(Errors.sy) \
		/usr/local/lib/oberon/libo.a(Errors.o) \
		/usr/local/lib/oberon/SYM(SysArgs.sy) \
		/usr/local/lib/oberon/libo.a(SysArgs.o) \
		/usr/local/lib/oberon/SYM(Sys.sy) \
		/usr/local/lib/oberon/libo.a(Sys.o) \
		/usr/local/lib/oberon/SYM(SysErrors.sy) \
		/usr/local/lib/oberon/libo.a(SysErrors.o) \
		/usr/local/lib/oberon/SYM(SysHost.sy) \
		/usr/local/lib/oberon/libo.a(SysHost.o) \
		/usr/local/lib/oberon/SYM(SysResource.sy) \
		/usr/local/lib/oberon/libo.a(SysResource.o) \
		/usr/local/lib/oberon/SYM(SysTypes.sy) \
		/usr/local/lib/oberon/libo.a(SysTypes.o) \
		/usr/local/lib/oberon/SYM(SysIO.sy) \
		/usr/local/lib/oberon/libo.a(SysIO.o) \
		/usr/local/lib/oberon/SYM(SysSockets.sy) \
		/usr/local/lib/oberon/libo.a(SysSockets.o) \
		/usr/local/lib/oberon/SYM(SysStat.sy) \
		/usr/local/lib/oberon/libo.a(SysStat.o) \
		/usr/local/lib/oberon/SYM(Texts.sy) \
		/usr/local/lib/oberon/libo.a(Texts.o) \
		/usr/local/lib/oberon/SYM(SysConversi.sy) \
		/usr/local/lib/oberon/libo.a(SysConversi.o) \
		/usr/local/lib/oberon/SYM(SysSignals.sy) \
		/usr/local/lib/oberon/libo.a(SysSignals.o) \
		/usr/local/lib/oberon/SYM(SysProcess.sy) \
		/usr/local/lib/oberon/libo.a(SysProcess.o) \
		/usr/local/lib/oberon/SYM(SysFile.sy) \
		/usr/local/lib/oberon/libo.a(SysFile.o) \
		/usr/local/lib/oberon/SYM(SysTime.sy) \
		/usr/local/lib/oberon/libo.a(SysTime.o) \
		/usr/local/lib/oberon/SYM(SysSelect.sy) \
		/usr/local/lib/oberon/libo.a(SysSelect.o) \
		/usr/local/lib/oberon/SYM(Times.sy) \
		/usr/local/lib/oberon/libo.a(Times.o) \
		/usr/local/lib/oberon/SYM(Clocks.sy) \
		/usr/local/lib/oberon/libo.a(Clocks.o) \
		/usr/local/lib/oberon/SYM(Timers.sy) \
		/usr/local/lib/oberon/libo.a(Timers.o) \
		/usr/local/lib/oberon/SYM(Conditions.sy) \
		/usr/local/lib/oberon/libo.a(Conditions.o) \
		/usr/local/lib/oberon/SYM(StreamCondi.sy) \
		/usr/local/lib/oberon/libo.a(StreamCondi.o) \
		/usr/local/lib/oberon/SYM(Tasks.sy) \
		/usr/local/lib/oberon/libo.a(Tasks.o) \
		/usr/local/lib/oberon/SYM(UnixArgList.sy) \
		/usr/local/lib/oberon/libo.a(UnixArgList.o) \
		/usr/local/lib/oberon/SYM(UnixEnviron.sy) \
		/usr/local/lib/oberon/libo.a(UnixEnviron.o) \
		/usr/local/lib/oberon/SYM(UnixFileCon.sy) \
		/usr/local/lib/oberon/libo.a(UnixFileCon.o) \
		/usr/local/lib/oberon/SYM(UnixFiles.sy) \
		/usr/local/lib/oberon/libo.a(UnixFiles.o) \
		/usr/local/lib/oberon/SYM(Internet.sy) \
		/usr/local/lib/oberon/libo.a(Internet.o) \
		/usr/local/lib/oberon/SYM(UnixDomainS.sy) \
		/usr/local/lib/oberon/libo.a(UnixDomainS.o) \
		/usr/local/lib/oberon/SYM(Write.sy) \
		/usr/local/lib/oberon/libo.a(Write.o) \
		/usr/local/lib/oberon/SYM(Conclusions.sy) \
		/usr/local/lib/oberon/libo.a(Conclusions.o) \
		/usr/local/lib/oberon/SYM(UnixArgumen.sy) \
		/usr/local/lib/oberon/libo.a(UnixArgumen.o) \
		/usr/local/lib/oberon/SYM(UnixPipes.sy) \
		/usr/local/lib/oberon/libo.a(UnixPipes.o) \
		/usr/local/lib/oberon/SYM(Resolver.sy) \
		/usr/local/lib/oberon/libo.a(Resolver.o) \
		../lib/SYM(XAuthority.sy) ../lib/libNeWS.a(XAuthority.o) \
		../lib/SYM(NeWS.sy) ../lib/libNeWS.a(NeWS.o) Shell.sy Shell.o
OBJS_newsh :=	Shell.o
$(T_newsh):	$(CL_newsh)
		$(OC) $(OCFLAGS) $(liboptions) $(OCLINKFLAGS) -o $@ \
		$(OBJS_newsh)
# -----------------------------------------------------------------------------
# {dependencies}
Shell.sy:
Shell.o:	/usr/local/lib/oberon/SYM(ASCII.sy) \
		/usr/local/lib/oberon/SYM(Events.sy) \
		/usr/local/lib/oberon/SYM(RelatedEven.sy) Shell.sy \
		/usr/local/lib/oberon/SYM(Streams.sy) \
		/usr/local/lib/oberon/SYM(Errors.sy) \
		/usr/local/lib/oberon/SYM(Conclusions.sy) \
		/usr/local/lib/oberon/SYM(Print.sy) \
		/usr/local/lib/oberon/SYM(Read.sy) \
		/usr/local/lib/oberon/SYM(SysIO.sy) \
		/usr/local/lib/oberon/SYM(Conditions.sy) ../lib/SYM(NeWS.sy) \
		/usr/local/lib/oberon/SYM(StreamCondi.sy) \
		/usr/local/lib/oberon/SYM(Tasks.sy) \
		/usr/local/lib/oberon/SYM(UnixArgumen.sy) \
		/usr/local/lib/oberon/SYM(UnixFiles.sy) \
		/usr/local/lib/oberon/SYM(Write.sy)
# {reversed-dependencies}
D_Shell :=
# -----------------------------------------------------------------------------
.PHONY:		clean realclean
clean:
		$(RM) $(syms) $(refs) $(objects) core
realclean:	clean
		$(RM) $(T)
# -----------------------------------------------------------------------------
PR :=		pr
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) $^
# -----------------------------------------------------------------------------
.PHONY:		install
install:	$T
		cp $? $(BINDIR)
