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

PROGRAMS = winedump$(EXEEXT)

MODULE   = none

C_SRCS = \
	debug.c \
	emf.c \
	le.c \
	main.c  \
	misc.c  \
	msmangle.c  \
	ne.c \
	output.c  \
	pe.c \
	search.c  \
	symbol.c

all: $(PROGRAMS)

@MAKE_RULES@

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

install:: $(PROGRAMS)
	$(MKINSTALLDIRS) $(bindir) $(mandir)/man$(prog_manext)
	$(INSTALL_PROGRAM) winedump$(EXEEXT) $(bindir)/winedump$(EXEEXT)
	$(INSTALL_DATA) $(SRCDIR)/winedump.man $(mandir)/man$(prog_manext)/winedump.$(prog_manext)
	$(INSTALL_SCRIPT) $(SRCDIR)/function_grep.pl $(bindir)/function_grep.pl

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

### Dependencies:
