
BINDIR= /usr/bin
AS=	as
CFLAGS=	-O -DHZ=60.0
FPTERP = ../utilities/fpnofetchi/fp.o
STARTUP= ../utilities/assubs/pcrt0.o

ASMS=	00int.s 02rel.s 02relset.s 03bool.s 04as.s 05lv.s  \
	06add.s 07sub.s 10mul.s 12div.s 13mod.s 14neg.s  \
	16dvd.s 17ind.s 17rv.s 20con.s 21rang.s 24case.s 24pxp.s 25set.s  \
	26for.s 27conv.s 30atof.s 30getname.s 30io.s 30iosubs.s 30read.s  \
	30write.s 34fun.s E.s opcode.s wait.s
OBJS=	exit.o int.o palloc.o pcttot.o pdattim.o perror.o pwrite.o \
	getc.o putc.o

all: px.${PDP}

install:
	install -s -o bin -g bin -m 711 px ${DESTDIR}${BINDIR}/px

px.70:	as.o ${OBJS}
	ld ${LFLAG} -o px ${CRT} as.o ${OBJS} -lm -lc

px.34: as.o ${OBJS}
	ld ${LFLAG} -o px ${CRT} as.o ${OBJS} -lm -lc

# This used to be loaded -n; to gain almost 8K of data space, omit -n.
px.40: nofp_as.o ${OBJS} ${FPTERP}
	ld -o px ${CRT} nofp_as.o ${OBJS} ${FPTERP} -lm -lc

getc.o: getc.s
	as -o getc.o /usr/include/sys.s getc.s

putc.o: putc.s
	as -o putc.o /usr/include/sys.s putc.s

as.o:	${ASMS}
	rm -f 00head.s
	echo 'FP = 1' > 00head.s
	rm -f as.o
	${AS} -o as.o /usr/include/sys.s 00head.s ${ASMS}

nofp_as.o: ${ASMS}
	rm -f 00head.s
	echo 'FP = 0' > 00head.s
	rm -f as.o
	${AS} -o as.o /usr/include/sys.s 00head.s ${ASMS}

int.c palloc.c pcttot.c perror.c: E.h

E.s E.h: Edata
	ed - Edata < Emake

../utilities/assubs/pcrt0.o: ../utilities/assubs/pcrt0.s
	cd ../utilities/assubs; make pcrt0.o

../utilities/fpterp/fp.o: ../utilities/fpterp/fp*.s
	cd ../utilities/fpterp; make fp.o

../utilities/fpnofetchi/fp.o: ../utilities/fpnofetchi/fp*.s
	cd ../utilities/fpnofetchi; make fp.o

clean:
	rm -f a.out core E.h E.s 00head.s *.o

print:
	@pr makefile README
	@ls -ls | pr
	@pr ../opcodes/picture
	@pr 0x.h int.c exit.c
	@pr [0-9][0-9]*.s
	@pr p*.c
