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

HTMLFILES = \
	wine_toc.html \
	wine.html

DVIFILES = wine.dvi


all: $(INFOFILES) $(DVIFILES) $(HTMLFILES)

info: $(INFOFILES)

dvi: $(DVIFILES)

html: $(HTMLFILES)

@MAKE_RULES@

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

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

$(HTMLFILES): $(SOURCES)
	makeinfo -E wine.texi $(SRCDIR)/wine.texinfo
	texi2html wine.texi 

$(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)

uninstall::
	$(RM) $(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

uninstall_info:
	for i in $(INFOFILES); do $(RM) $(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 \
		wine.texi
	$(RM) -r man3w

### Dependencies:
