TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
MODULE    = none

INCLUDES = \
	AUTHORS \
	LICENSE \
	WARRANTY

SOURCES = \
	wine.texinfo \
	$(INCLUDES)

INFOFILES = \
	wine.info \
	wine.info-1 \
	wine.info-2

DVIFILES = wine.dvi

all: $(INFOFILES) $(DVIFILES)

info: $(INFOFILES)

dvi: $(DVIFILES)

@MAKE_RULES@

$(INFOFILES): $(SOURCES)
	makeinfo $(SRCDIR)/wine.texinfo

$(DVIFILES): $(SOURCES)
	texi2dvi $(SRCDIR)/wine.texinfo

$(INCLUDES):
	$(RM) $(INCLUDES)
	for i in $(INCLUDES); do $(LN_S) $(TOPSRCDIR)/$$i $$i || exit 1; done

install:: 
	$(INSTALL_DATA) $(SRCDIR)/wine.man $(mandir)/wine$(manext)

# Not done by default because of makeinfo bugs
install_info: $(INFOFILES)
	for i in $(INFOFILES); do $(INSTALL_DATA) $$i $(infodir)/$$i; done

clean::
	$(RM) $(INFOFILES) $(DVIFILES) $(INCLUDES)
	$(RM) wine.aux wine.cp wine.cps wine.fn wine.fns wine.ky wine.log \
		wine.pg wine.toc wine.tp wine.tps wine.vr wine.vrs
	$(RM) -r man3w

### Dependencies:
