
CC      = gcc
CFLAGS  = -Wall -g -std=gnu11 -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast
LDFLAGS =
LIBS    = -lm -lmpu -lmpuio

all: calc

calc: main.o init.o symtab.o mathf.o code.o
	$(CC) $(LDFLAGS) -o calc main.o init.o symtab.o mathf.o code.o $(LIBS)

main.o: main.c init.h symtab.h mathf.h code.h
	$(CC) -c $(CFLAGS) -o main.o main.c

init.o: init.c init.h symtab.h mathf.h code.h
	$(CC) -c $(CFLAGS) -o init.o init.c

symtab.o: symtab.c init.h symtab.h mathf.h code.h
	$(CC) -c $(CFLAGS) -o symtab.o symtab.c

mathf.o: mathf.c init.h symtab.h mathf.h code.h
	$(CC) -c $(CFLAGS) -o mathf.o mathf.c

code.o: code.c init.h symtab.h mathf.h code.h
	$(CC) -c $(CFLAGS) -o code.o code.c

main.c: main.y init.h symtab.h mathf.h code.h
	../zubr -vd -o main.c main.y

clean:
	rm -f *.o main.c z_tab.h z.output calc
