# ==============================================================
# Makefile for UMOP files
# ==============================================================

CFLAGS = -O3 -W -Wtraditional -Wmissing-prototypes -Wall

LIBDIR = buddy16/lib

INCDIR = buddy16/include


# --- full object list
OBJ =     lex.yy.o y.tab.o domain.o set.o fsm.o dissets.o timer.o\
          plan.o bddprint.o main.o
 
CFILES =  lex.yy.c y.tab.c 

CCFILES = domain.cc set.cc fsm.cc dissets.cc timer.cc plan.cc\
          bddprint.cc main.cc


# --------------------------------------------------------------
# Code generation
# --------------------------------------------------------------

.SUFFIXES: .cc .c

.cc.o:
	g++ -I$(INCDIR) -c -g $<

.c.o:
	g++ -I$(INCDIR) -c -x c++ -g $<



# --------------------------------------------------------------
# The primary targets.
# --------------------------------------------------------------

umop:	$(OBJ)
	g++ $(CFLAGS) -o umop $(OBJ) -L$(LIBDIR) -lbdd -lfl -lm
	chmod u+x umop

lex.yy.c:    nadl.l 
	lex nadl.l

y.tab.c y.tab.h: nadl.y  
	yacc -d -v nadl.y


clean:
	rm -f *.o core *~
#       uncomment if you want lex and yacc to produce a new lexer and parser
#	rm -f y.tab.h
#	rm -f y.tab.c
#	rm -f lex.yy.c
	rm -f umop

depend:
	gcc -MM $(CFILES) -I$(INCDIR) > depend.inf
	g++ -MM $(CCFILES) -I$(INCDIR) >> depend.inf

###
include depend.inf

