CFLAGS	= -g -O
CC = gcc
LD = gcc
RM = rm
MV = mv
RM_OPT_DO_NOT_ASK = -f
RM_OPT_DO_ASK = -i

.y.c: 
.lex.c:

# make all: create both konverter and make clean
all: mit2mot

# make mit2mot: create konverter MIT->Motorola
mit2mot: mit2mot.main.o mit2mot.tab.o mit2mot.lex.yy.o
	$(LD) $(CFLAGS) mit2mot.main.o mit2mot.tab.o mit2mot.lex.yy.o -lm -o mit2mot
#	$(LD) $(CFLAGS) mit2mot.main.o mit2mot.tab.o mit2mot.lex.yy.o -ll -lm -o mit2mot
mit2mot.main.o: mit2mot.main.c mit2mot.tab.h mit2mot.config.h
	$(CC) -c $(CFLAGS) mit2mot.main.c
mit2mot.tab.o: mit2mot.tab.c
	$(CC) -c $(CFLAGS) mit2mot.tab.c
mit2mot.lex.yy.o: mit2mot.lex.yy.c
	$(CC) -c $(CFLAGS) mit2mot.lex.yy.c
mit2mot.tab.c mit2mot.tab.h: mit2mot.y mit2mot.config.h
	bison -dv mit2mot.y
mit2mot.lex.yy.c: mit2mot.lex mit2mot.tab.h floats.c mit2mot.config.h
	flex mit2mot.lex
	$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot.lex.yy.c
	$(MV) lex.yy.c mit2mot.lex.yy.c

# make clean: remove all but the sources
clean:
# remove mit2mot objects and sources generated by flex & bison
	-$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot.main.o
	-$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot.tab.o
	-$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot.lex.yy.o
	-$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot.tab.c
	-$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot.tab.h
	-$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot.lex.yy.c
	-$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot.output
	-$(RM) $(RM_OPT_DO_NOT_ASK) mit2mot
	-$(RM) $(RM_OPT_DO_NOT_ASK) *~

rm:
	make -r clean
