# /* makefile */
# 			Makefile for ECCOM
#	 	(c) Copyright 1990 J B Systems
# 			All Rights Reserved
#
DESTDIR		= /u
INSTDIR		= $(DESTDIR)/bin
BASEDIR		= $(DESTDIR)/ecc/ccom
CC		= /bin/rcc -DNULL=0
INSTALL		= cp
PRINT		= /u/bin/seq2 -st
YACC		= /usr/bin/yacc
LINT		= lint

PROGRAM	= nbccom

OPT		= -O
MACHINE = -DMPX
#MACHFLAGS = -DUAS -DNOBUG
MACHFLAGS = -DUAS -UNOBUG

#CFLAGS	= $(MACHINE) $(OPT) -I$(DESTDIR)/usr/include $(MACHFLAGS)
CFLAGS	= $(MACHINE) $(OPT) $(MACHFLAGS)
DFLAGS	= $(MACHINE) $(MACHFLAGS)

HDRS	= common.h caloff.h error.h mac2defs.h macdefs.h manifest.h mfile1.h \
	mfile2.h opdesc.h print.h treemgr.h treewalk.h 

CSRCS	= xdefs.c scan.c pftn.c trees.c optim.c code.c local.c \
	reader.c local2.c order.c match.c allo.c comm1.c table.c \
	stab.c switch.c fixcall.c comm2.c

SRCS	= cgram.y mkvers $(CSRCS)

OBJS	= cgram.o xdefs.o scan.o pftn.o trees.o optim.o local.o code.o \
	reader.o local2.o order.o match.o allo.o comm1.o table.o stab.o \
	fixcall.o switch.o 

all: $(PROGRAM)

$(PROGRAM): $(OBJS) $(HDRS) mkvers
	rm -f version.c
	sh mkvers "Encore/J B Systems Non-Base C Compiler" > version.c
	$(CC) $(LDFLAGS) $(CFLAGS) version.c -o $@ $(OBJS)
	rm -f version.o

# pass 1 programs

cgram.c: cgram.y mfile1.h macdefs.h manifest.h
	$(YACC) cgram.y
	mv y.tab.c cgram.c

cgram.o: cgram.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c cgram.c

#atof.o: atof.c 
#	$(CC) $(CFLAGS) -c atof.c

code.o: code.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c code.c

comm1.o: comm1.c mfile1.h macdefs.h manifest.h common.h \
	error.h treewalk.h opdesc.h caloff.h treemgr.h
	$(CC) $(CFLAGS) -c comm1.c

fixcall.o: fixcall.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c fixcall.c

local.o: local.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c local.c

optim.o: optim.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c optim.c

pftn.o: pftn.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c pftn.c

scan.o: scan.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c scan.c

stab.o: stab.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c stab.c

trees.o: trees.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c trees.c

xdefs.o: xdefs.c mfile1.h macdefs.h manifest.h
	$(CC) $(CFLAGS) -c xdefs.c

# pass 2 programs

allo.o: allo.c mfile2.h macdefs.h mac2defs.h manifest.h
	$(CC) $(CFLAGS) -c allo.c

comm2.o: comm2.c mfile2.h macdefs.h mac2defs.h manifest.h
	common.h error.h treewalk.h opdesc.h caloff.h treemgr.h
	$(CC) $(CFLAGS) -c comm2.c

local2.o: local2.c mfile2.h macdefs.h mac2defs.h manifest.h
	$(CC) $(CFLAGS) -c local2.c

match.o: match.c mfile2.h macdefs.h mac2defs.h manifest.h
	$(CC) $(CFLAGS) -c match.c

order.o: order.c mfile2.h macdefs.h mac2defs.h manifest.h
	$(CC) $(CFLAGS) -c order.c

reader.o: reader.c mfile2.h macdefs.h mac2defs.h manifest.h print.h
	$(CC) $(CFLAGS) -c reader.c

switch.o: switch.c mfile2.h macdefs.h mac2defs.h manifest.h
	$(CC) $(CFLAGS) -c switch.c

table.o: table.c mfile2.h macdefs.h mac2defs.h manifest.h
	$(CC) $(CFLAGS) -c table.c

install:  all
	$(INSTALL) $(PROGRAM) $(INSTDIR)

clean:	exclean
	-rm -f cgram.c version.* core *.o

exclean:; -rm -f $(PROGRAM)

print:;	@$(PRINT) $(HDRS) $(SRCS) Makefile mkvers | lpr

lint:
	$(LINT) $(CFLAGS) $(CSRCS) >Errfile

force:
