#include "../Wine.tmpl"

#define IHaveSubdirs
#define	PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CC=$(CC)' 'MAKE=$(MAKE)'\
			'LD=$(LD)'

MODULE = debugger

SUBDIRS = readline

DEFINES = -DUSE_READLINE

SRCS = \
	break.c \
	db_disasm.c \
	dbg.tab.c \
	hash.c \
	info.c \
	lex.yy.c

SUBDIRS_OBJS = readline/readline.o

OBJS = $(SRCS:.c=.o) $(SUBDIRS_OBJS)

/*
 * All the SUBDIR stuff
 */
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))

/*
 * The main act
 */
WineRelocatableTarget($(MODULE),,$(OBJS))

depend:: dbg.tab.c dbg.tab.h lex.yy.c

DependTarget()

includes::

install::

clean::
	$(RM) lex.yy.c dbg.tab* y.tab.c

dbg.tab.c dbg.tab.h: dbg.y
	$(YACC) -b dbg -d dbg.y

lex.yy.c: debug.l
	$(LEX) -I debug.l
