##############################################################################
## Source-level Makefile for as1600  (Linux/Unix Native Build)
##############################################################################

##############################################################################
## Project directory structure
##############################################################################
B=../../bin

##############################################################################
## Project-wide build flags
##############################################################################
P          = 

#WARN    = -Wall -W -Wshadow -Wpointer-arith 
#WARN   += -Wbad-function-cast -Wcast-qual 
WARN =

#CC = $(P) egcs
 CC = $(P) gcc


#OPT_FLAGS = -O
#OPT_FLAGS = -O2 -ggdb $(WARN)
 OPT_FLAGS = -O6 -fomit-frame-pointer $(WARN)
#OPT_FLAGS = -O2 -pg -ggdb $(WARN)

CFLAGS = $(OPT_FLAGS) -I. -I.. $(DEF_FLAGS)
LFLAGS = -L../lib


TOCLEAN = $(ASMOBJ) as1600.c
PROG    = $(B)/as1600

##############################################################################
## Generic build-rules
##############################################################################

all: $(PROG)

clean:
	rm -f $(OBJS) 
	rm -f $(TOCLEAN)

%.o: %.c
	$(CC) -o $@ $(CFLAGS) -c $<

ASMSRC = as1600.c fraosub.c frapsub.c frasmain.c fryylex.c
ASMOBJ = as1600.o fraosub.o frapsub.o frasmain.o fryylex.o


$(B)/as1600: $(ASMOBJ)
	$(CC) -s -o $(B)/as1600 $(CFLAGS) $(ASMOBJ) -static

as1600.o:   fraebin.h fraeuni.h fragcon.h frasmdat.h
fraosub.o:  fraebin.h fraeuni.h fragcon.h frasmdat.h
frapsub.o:  fraebin.h fraeuni.h fragcon.h frasmdat.h
frasmain.o: fraebin.h fraeuni.h fragcon.h frasmdat.h
fryylex.o:  fraebin.h fraeuni.h fragcon.h frasmdat.h

as1600.o:   getopt.h as1600.y as1600.c as1600.h
fraosub.o:  getopt.h as1600.y as1600.c as1600.h
frapsub.o:  getopt.h as1600.y as1600.c as1600.h
frasmain.o: getopt.h as1600.y as1600.c as1600.h
fryylex.o:  getopt.h as1600.y as1600.c as1600.h

as1600.c: as1600.y
	bison -o as1600.c --defines as1600.y


all: $(PROG)
