# -----------------------------------------------------------------------------
.SUFFIXES:
# {stamp: updated by mmo Wed Jul 20 13:23:19 MET DST 1994}
# {options: -a -A -L -P}
# -----------------------------------------------------------------------------
InstallBin :=	/usr/local/bin
# -----------------------------------------------------------------------------
# {macros}
src :=		Archivist.od Archivist.om Assembler.od Assembler.om \
		Compiler.od Compiler.om Linkage.od Linkage.om Program.od \
		Program.om ScanArgs.od ScanArgs.om TempFiles.od TempFiles.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_test_oc :=	ScanArgs
T_test_oc :=	test_oc
T :=		$(T_test_oc)
.PHONY:		all
all:		$T $(defsyms)
# {rules}
%.o:		%.r
OC :=		oc
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_test_oc :=	Program.sy Program.o Archivist.sy Archivist.o Assembler.sy \
		Assembler.o Compiler.sy Compiler.o Linkage.sy Linkage.o \
		TempFiles.sy TempFiles.o ScanArgs.sy ScanArgs.o
OBJS_test_oc :=	Program.o Archivist.o Assembler.o Compiler.o Linkage.o \
		TempFiles.o ScanArgs.o
$(T_test_oc):	$(CL_test_oc)
		$(OC) $(OCFLAGS) $(liboptions) $(OCLINKFLAGS) -o $@ \
		$(OBJS_test_oc)
# -----------------------------------------------------------------------------
# {dependencies}
Archivist.sy:	Program.sy
Archivist.o:	Program.sy Archivist.sy
Assembler.sy:	Program.sy
Assembler.o:	Program.sy Assembler.sy
Compiler.sy:	Program.sy
Compiler.o:	Program.sy Compiler.sy
Linkage.sy:	Program.sy
Linkage.o:	Program.sy Linkage.sy
Program.sy:
Program.o:	Program.sy
ScanArgs.sy:
ScanArgs.o:	ScanArgs.sy TempFiles.sy Program.sy Archivist.sy Assembler.sy \
		Compiler.sy Linkage.sy
TempFiles.sy:
TempFiles.o:	TempFiles.sy
# {reversed-dependencies}
D_Archivist :=	ScanArgs.o
D_Assembler :=	ScanArgs.o
D_Compiler :=	ScanArgs.o
D_Linkage :=	ScanArgs.o
D_Program :=	Archivist.sy Archivist.o Assembler.sy Assembler.o Compiler.sy \
		Compiler.o Linkage.sy Linkage.o ScanArgs.o
D_ScanArgs :=
D_TempFiles :=	ScanArgs.o
# -----------------------------------------------------------------------------
.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) $^
# -----------------------------------------------------------------------------
T_oc :=		oc
.PHONY:		install
install:	$(T_test_oc)
		-cp $(InstallBin)/$(T_oc) $(T_oc).old
		cp $^ $(InstallBin)/$(T_oc)
# -----------------------------------------------------------------------------
