
###
### Makefile for a2asm
### (C) Copyright 1995 Archie L. Cobbs
###

TOPDIR		:= ..
include		$(TOPDIR)/Make.defs

PROG		:= a2asm

LEXAN		:= scan
PARSE		:= parse

LFLAGS		:= -lfl
FLEXOUT		:= $(LEXAN).yy.c
BISONOUT	:= $(PARSE).tab.c $(PARSE).tab.h

SRCS		:= main.c emit.c ops.c sym.c fpencode.c list.c \
		  pseudo.c reloc.c import.c export.c out.c

OBJS		:= $(SRCS:.c=.o) $(PARSE).tab.o $(LEXAN).yy.o $(UTIL)

###
### Abstract rules
###

default:	$(PROG)

install:	installbin installman

installbin:	$(PROG)
	$(INSTALL) -m 0755 $< $(INSTBIN)

installman:	$(PROG).1
	$(INSTALL) -m 0644 $< $(INSTMAN)/man1

clean:
	$(RM) core *.o

distclean:	clean
	$(RM) $(PROG) .depend    # $(FLEXOUT) $(BISONOUT)

###
### Building rules
###

$(PROG):	$(OBJS)
	$(CC) -o $(PROG) $(CFLAGS) $(OBJS) $(LFLAGS)

$(FLEXOUT):	$(LEXAN).y
	$(FLEX) -s -t $< > $@

$(BISONOUT):	$(PARSE).y
	$(BISON) --defines $<

# Avoid an "unused function" error from gcc -Wall

$(LEXAN).yy.o:	$(LEXAN).yy.c
	$(CC) -c $(CFLAGS) -Wno-unused $<

###
### Additional dependencies
###

.depend:	$(SRCS) $(FLEXOUT) $(BISONOUT)
	$(CC) -M $(CINCL) *.c > $@
include		.depend

