# Perl Makefile

HDRS =	H.Arg H.Array H.Cmd H.Config H.Extern H.Form H.Handy H.Hash H.Intern \
	H.Patchlevel H.Perl H.Regcomp H.Regexp H.Spat H.Stab H.Stat H.Str \
	H.Util

OBJ = 	O.ArcFns O.Archimedes O.Array O.Cmd O.Cons O.Consarg O.Doarg \
	O.Doio O.Dolist O.Dump O.Eval O.Form O.Hash O.Perl O.Perly O.Regcomp \
	O.Regexec O.Stab O.Str O.Toke O.Util

SRC = 	C.ArcFns C.Archimedes C.Array C.Cmd C.Cons C.Consarg \
	C.Doarg C.Doio C.Dolist C.Dump C.Eval C.Form C.Hash C.Perl C.Perly \
	C.Regcomp C.Regexec C.Stab C.Str C.Toke C.Usersub C.Util

# ----------------------------------------------------------------------

CFLAGS = -DDEBUGGING

# ----------------------------------------------------------------------

BIN = adfs::HardDisc4.$$.Library

LIB = adfs::HardDisc4.$$.Lib.Perl

LIBS =	Lib:Stubs Lib:Gdbm Lib:Utils

.PHONY: all install clean clobber

# ----------------------------------------------------------------------

all: Perl Glob

install: all
	Copy Perl $(BIN).Perl SFQ~C~V
	Copy Glob $(BIN).Glob SFQ~C~V
	Copy Lib.* $(LIB).* SFQ~C~V
	Access $(BIN).Perl RL
	Access $(BIN).Glob RL
	Access $(LIB).* RL

clean: O.Glob $(OBJ) C.Perl H.Perly C.ArcFns
	$(dolines i,$^,Remove $i)

clobber: clean
	Remove Perl
	Remove Glob

# ----------------------------------------------------------------------

Perl: $(OBJ)
	$(LINK) $(LINKFLAGS) -o Perl $(OBJ) $(LIBS)
	Squeeze Perl

C.Perl H.Perly: Y.Perl
	@echo Expect 27 shift/reduce and 61 reduce/reduce conflicts...
	bison -dy Y.Perl
	-remove C.Perl
	-remove H.Perly
	rename C.Y_Tab C.Perl
	rename H.Y_Tab H.Perly

$(OBJ): $(HDRS)

O.Cons O.Perly O.Str O.Toke: H.Perly

O.Eval: XC.Evalargs

C.ArcFns: Usub.Mus.ArcFns
	Usub.CMus <Usub.Mus.ArcFns >$@
