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

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

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

LEX_SRCS   = parser.l
BISON_SRCS = parser.y

INSTALLDIRS = $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man$(prog_manext)

all: $(PROGRAMS) $(MANPAGES)

@MAKE_RULES@

widl$(EXEEXT): $(OBJS) $(LIBWPP)
	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWPP) $(LIBPORT) $(LDFLAGS)

install install-dev:: $(PROGRAMS) $(MANPAGES) $(INSTALLDIRS)
	$(INSTALL_PROGRAM) widl$(EXEEXT) $(DESTDIR)$(bindir)/widl$(EXEEXT)
	$(INSTALL_DATA) widl.man $(DESTDIR)$(mandir)/man$(prog_manext)/widl.$(prog_manext)

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

parser.tab.c: parser.tab.h   # for parallel makes

@DEPENDENCIES@  # everything below this line is overwritten by make depend

parser.yy.o: parser.tab.h
