#  Makefile: awk-unix

INC = ../libregex
LIBREG = ../libregex/libregex.a
MATHLIB = -lm
CC = gcc
CFLAGS = -Wall
YACC = yacc
YFLGS = -d

OBJECTS = awk.g.o awk.lx.o b.o lib.o main.o parse.o proctab.o run.o tran.o
SOURCES = awk.g.y awk.h awk.lx.l b.c lib.c main.c parse.c proctab.c run.c tran.c

all: awk

awk: $(OBJECTS)
	$(CC) $(CFLAGS) $(OBJECTS) -o awk-unix $(MATHLIB) $(LIBREG) 

awk.g.o: awk.g.c
	$(YACC) $(YFLGS) awk.g.y
	mv -f y.tab.c awk.g.c
	cp -f prevy.tab.h y.tab.h
	$(CC) $(CFLAGS) -I. -I$(INC) -c $<

awk.lx.o: lex.yy.c
	$(CC) $(CFLAGS) -I$(INC) -c $<
	mv -f lex.yy.o awk.lx.o

b.o: b.c
	$(CC) $(CFLAGS) -I. -I$(INC) -c $<

lib.o: lib.c
	$(CC) $(CFLAGS) -I. -I$(INC) -c $<

main.o: main.c 
	$(CC) $(CFLAGS) -I. -I$(INC) -c $<

maketab: maketab.o
	$(CC) $(CFLAGS) $< -o maketab $(LIBREG)
	./maketab > proctab.c

maketab.o: maketab.c
	$(CC) $(CFLAGS) -c $<

parse.o: parse.c
	$(CC) $(CFLAGS) -I. -I$(INC) -c $<

proctab.o: proctab.c
	$(CC) $(CFLAGS) -I. -I$(INC) -c $<

proctab.c: maketab

run.o: run.c
	$(CC) $(CFLAGS) -I. -I$(INC) -c $<

tran.o: tran.c
	$(CC) $(CFLAGS) -I. -I$(INC) -c $<

clean:
	rm -rf core* *.o maketab y.tab.c awk.g.c awk-unix
