#include "../Wine.tmpl"

#define IHavSubDirs
#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CC=$(CC)' 'MAKE=$(MAKE)'

MODULE = debugger

SUBDIRS = readline

DEFINES = -DUSE_READLINE

/* Quick and dirt hack, since i386 is defined as 1. sigh */
#define temp i386
#undef i386

SRCS = \
	dbg.tab.c \
	break.c \
	hash.c \
	lex.yy.c \
	info.c \
	i386-pinsn.c

OBJS = \
	dbg.tab.o \
	break.o \
	hash.o \
	lex.yy.o \
	info.o \
	i386-pinsn.o

#define i386 temp
#undef temp

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

/*
 * The main act
 */
WineRelocatableTarget($(TOP)/$(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
