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

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

C_SRCS = \
	debug.c \
	dos.c \
	dump.c \
	emf.c \
	font.c \
	le.c \
	lib.c \
	lnk.c \
	main.c \
	minidump.c \
	misc.c \
	msc.c \
	msmangle.c \
	ne.c \
	output.c \
	pdb.c \
	pe.c \
	search.c \
	symbol.c

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

all: $(PROGRAMS) $(MANPAGES)

@MAKE_RULES@

winedump$(EXEEXT): $(OBJS)
	$(CC) $(CFLAGS) -o winedump$(EXEEXT) $(OBJS) $(LIBPORT) $(LDFLAGS)

install install-dev:: $(PROGRAMS) $(MANPAGES) $(INSTALLDIRS)
	$(INSTALL_PROGRAM) winedump$(EXEEXT) $(DESTDIR)$(bindir)/winedump$(EXEEXT)
	$(INSTALL_DATA) winedump.man $(DESTDIR)$(mandir)/man$(prog_manext)/winedump.$(prog_manext)
	$(INSTALL_SCRIPT) $(SRCDIR)/function_grep.pl $(DESTDIR)$(bindir)/function_grep.pl

uninstall::
	$(RM) $(DESTDIR)$(bindir)/function_grep.pl $(DESTDIR)$(bindir)/winedump$(EXEEXT) $(DESTDIR)$(mandir)/man$(prog_manext)/winedump.$(prog_manext)

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