#sccs	"@(#)mas/m68k:Makefile	1.6"

#
#	MC68000 AS MAKEFILE
#
include $(MAKEINC)/Makepre.h

SGS=

COMAS=	../common

ARCH=	AR32W
FLEX=	#-DFLEXNAMES

LINT=	lint
YACC=	yacc
LFLAGS=	-p
LDLIBS=
DEFLIST=	-DINT32BIT
ODEFLIST=	-DONEPROC $(FLEX) -D$(ARCH)
LDFLAGS=
YFLAGS=		-d
ID = id.o

CC_CMD=	$(CC) -c $(CFLAGS) $(DEFLIST) $(ODEFLIST)
YACC_CMD=	$(YACC) $(YFLAGS)


OFILES=	pass0.o parse.o gencode.o pass1.o symbols.o \
	code.o expand1.o expand2.o errors.o addr2.o pass2.o  \
	addr1.o codeout.o getstab.o obj.o symlist.o

CFILES=	$(COMAS)/pass0.c parse.c gencode.c \
	$(COMAS)/pass1.c $(COMAS)/symbols.c $(COMAS)/code.c  \
	$(COMAS)/expand1.c expand2.c $(COMAS)/errors.c	     \
	addr2.c $(COMAS)/pass2.c $(COMAS)/addr1.c	     \
	$(COMAS)/codeout.c $(COMAS)/getstab.c $(COMAS)/obj.c \
	$(COMAS/symlist.c

DEPENDLIST =  $(CFILES)

all: Makeincludes as

Makeincludes: parse.h $(DEPENDLIST)
	$(INCCMD) $(DEPENDLIST) | $(SORT) | $(FILTER) > Makeincludes
	$(MAKE)

includes: parse.h $(DEPENDLIST)
	$(INCCMD) $(DEPENDLIST) | $(SORT) | $(FILTER) > Makeincludes

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

as:	$(OFILES) $(SHAREDLIB) $(LIBC) $(ID)
	$(CC) $(CFLAGS) $(LDFLAGS) -o as.mini $(OFILES) $(LDLIBS)
	$(LD) -s $(SHAREDLIB) -o as $(OFILES) $(ID)

pass0.o:	$(COMAS)/pass0.c
		$(CC_CMD) $(COMAS)/pass0.c

# The baroque code here tries to keep file times in sync to
# avoid unnecessary re-compilations.

parse.o:	parse.c
		$(CC_CMD) parse.c

parse.c:	y.tab.c
		if cmp -s y.tab.c parse.c;then :;else cp y.tab.c parse.c;fi
parse.h:	y.tab.h
		if cmp -s y.tab.h parse.h;then :;else cp y.tab.h parse.h;fi

y.tab.c y.tab.h:	parse.y
		$(YACC_CMD) parse.y

# end baroque code

code.o:		$(COMAS)/code.c
		$(CC_CMD) $(COMAS)/code.c

errors.o:	$(COMAS)/errors.c
		$(CC_CMD) $(COMAS)/errors.c

pass1.o:	$(COMAS)/pass1.c
		$(CC_CMD) $(COMAS)/pass1.c

gencode.o:	gencode.c
		$(CC_CMD) gencode.c

expand1.o:	$(COMAS)/expand1.c
		$(CC_CMD) $(COMAS)/expand1.c

expand2.o:	expand2.c 
		$(CC_CMD) expand2.c

addr1.o:	$(COMAS)/addr1.c
		$(CC_CMD) $(COMAS)/addr1.c

addr2.o:	addr2.c
		$(CC_CMD) addr2.c

codeout.o:	$(COMAS)/codeout.c
		$(CC_CMD) $(COMAS)/codeout.c

getstab.o:	$(COMAS)/getstab.c
		$(CC_CMD) $(COMAS)/getstab.c

pass2.o:	$(COMAS)/pass2.c
		$(CC_CMD) $(COMAS)/pass2.c

obj.o:		$(COMAS)/obj.c
		$(CC_CMD) $(COMAS)/obj.c

symlist.o:	$(COMAS)/symlist.c
		$(CC_CMD) $(COMAS)/symlist.c

symbols.o:	$(COMAS)/symbols.c
		$(CC_CMD) $(COMAS)/symbols.c

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

install:
	$(INSTALL) -i$(EXITFLAG) as $(INSDIR) $(PROTOFILE)

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

clean: 
	rm -f $(OFILES)

clobber: clean 
	rm -f as as.mini parse.[ch] y.tab.[ch] id.[co]

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

id.c: ../mas.sl
	mkslid > id.c

populate:
	getunit

include Makeincludes
include $(MAKEINC)/Makepost.h
