TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
EXEEXT    = @EXEEXT@

PROGRAMS = widl$(EXEEXT)
MANPAGES = widl.man
MODULE   = none

C_SRCS = \
	client.c \
	hash.c \
	header.c \
	proxy.c \
	server.c \
	typegen.c \
	typelib.c \
	utils.c \
	widl.c \
	write_msft.c

EXTRA_SRCS = parser.y parser.l
EXTRA_OBJS = parser.tab.o @LEX_OUTPUT_ROOT@.o

all: $(PROGRAMS) $(MANPAGES)

@MAKE_RULES@

widl$(EXEEXT): $(OBJS) $(LIBDIR)/wpp/libwpp.a
	$(CC) $(CFLAGS) -o $@ $(OBJS) -L$(LIBDIR) -lwpp -lwine_port $(LEXLIB) $(LDFLAGS)

parser.tab.c parser.tab.h: parser.y
	$(BISON) -d -t $(SRCDIR)/parser.y -o parser.tab.c

# hack to allow parallel make
parser.tab.h: parser.tab.c
parser.tab.o: parser.tab.h

@LEX_OUTPUT_ROOT@.c: parser.l
	$(LEX) $(SRCDIR)/parser.l

@LEX_OUTPUT_ROOT@.o: parser.tab.h

install:: $(PROGRAMS) $(MANPAGES)
	$(MKINSTALLDIRS) $(bindir) $(mandir)/man$(prog_manext)
	$(INSTALL_PROGRAM) widl$(EXEEXT) $(bindir)/widl$(EXEEXT)
	$(INSTALL_DATA) widl.man $(mandir)/man$(prog_manext)/widl.$(prog_manext)

uninstall::
	$(RM) $(bindir)/widl$(EXEEXT) $(mandir)/man$(prog_manext)/widl.$(prog_manext)

### Dependencies:
