# Makefile for texinfo/info.	
# $Id: Makefile.in,v 1.9 1996/10/01 21:44:44 karl Exp $
# 
# Copyright (C) 1993,96 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

#### Start of system configuration section. ####

srcdir = .
vpath %.c %.h $(srcdir);$(common)
EMACS = emacs

common = $(srcdir)/../libtxi
util   = $(srcdir)/../util

CC = gcc

INSTALL = ginstall
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644

LN	= ln
RM	= rm -f
MKDIR	= mkdir
MAKEINFO= ../makeinfo/makeinfo

DEFS = -imacros ../config.h

LDEFS = -DHANDLE_MAN_PAGES -DNAMED_FUNCTIONS=1 -DDEFAULT_INFOPATH='"$(DEFAULT_INFOPATH)"'

TERMLIBS = 
LIBS = $(TERMLIBS) -L../libtxi -ltxi 
LOADLIBES = $(LIBS)

SHELL = /bin/sh

CFLAGS = -O2 -g
LDFLAGS = 

prefix = $(DJDIR)
exec_prefix = $(DJDIR)
bindir = $(exec_prefix)/bin
# Prefix for each installed program, normally empty or `g'.
binprefix = 
# Prefix for each installed man page, normally empty or `g'.
manprefix = 
mandir = $(prefix)/man/man1
manext = 1
infodir = $(prefix)/info
DEFAULT_INFOPATH= $(infodir):.

#### End of system configuration section. ####

SRCS =	dir.c		display.c	echo_area.c	filesys.c \
	info-utils.c	info.c		infodoc.c	infomap.c \
	m-x.c		nodes.c		search.c	session.c \
	signals.c	terminal.c	tilde.c		window.c \
	xmalloc.c	indices.c	makedoc.c	nodemenu.c \
	footnotes.c	dribble.c	variables.c	gc.c man.c \
	clib.c	pc_term.c

HDRS =	display.h	doc.h		echo_area.h	filesys.h \
	general.h	getopt.h	info-utils.h	info.h \
	infomap.h	nodes.h		search.h 	session.h \
	signals.h	termdep.h	terminal.h	tilde.h \
	indices.h	window.h	footnotes.h	dribble.h \
	variables.h	gc.h		clib.h	pc_term.h

OBJS =	dir.o display.o doc.o echo_area.o filesys.o info-utils.o info.o \
	infodoc.o infomap.o m-x.o nodes.o search.o session.o signals.o \
	terminal.o tilde.o window.o indices.o xmalloc.o nodemenu.o \
	footnotes.o dribble.o variables.o gc.o man.o clib.o pc_term.o

# The names of files which declare info commands.
CMDFILES = $(srcdir)/session.c $(srcdir)/echo_area.c $(srcdir)/infodoc.c \
	   $(srcdir)/m-x.c $(srcdir)/indices.c $(srcdir)/nodemenu.c \
	   $(srcdir)/footnotes.c $(srcdir)/variables.c

# The name of the program which builds documentation structure from CMDFILES.
MAKEDOC_OBJECTS = makedoc.o clib.o xmalloc.o
MAKEDOC_SOURCE = makedoc.c clib.c xmalloc.c

infofiles = info.info info-stnd.info

.c.o:
	$(CC) -c $(CPPFLAGS) $(LDEFS) $(DEFS) -I. -I$(srcdir) -I$(common) $(CFLAGS) $<

all: info $(infofiles)
sub-all: all

install: all
	$(INSTALL_PROGRAM) info $(bindir)/$(binprefix)info
	-d=$(srcdir); test -f ./info.info && d=.; $(INSTALL_DATA) $$d/info.info $(infodir)/info.info
	-d=$(srcdir); test -f ./info-stnd.info && d=.; $(INSTALL_DATA) $$d/info-stnd.info $(infodir)/info-stnd.info
	-$(INSTALL_DATA) $(srcdir)/info.1 $(mandir)/$(manprefix)info.$(manext)
	$(POST_INSTALL)
	../util/install-info --info-dir=$(infodir) $(infodir)/info.info
	../util/install-info --info-dir=$(infodir) $(infodir)/info-stnd.info

uninstall:
	$(RM) $(bindir)/info.exe
	$(RM) $(infodir)/info.info
	$(RM) $(infodir)/info-stnd.info
	$(RM) $(mandir)/$(manprefix)info.$(manext)

info: $(OBJS) ../libtxi/libtxi.a
	$(CC) $(LDFLAGS) -o info $(OBJS) $(LOADLIBES)

all-info: info.info info-stnd.info

info.info: info.texi
	$(MAKEINFO) --no-split -I$(srcdir) info.texi

info-stnd.info: info-stnd.texi
	$(MAKEINFO) --no-split -I$(srcdir) info-stnd.texi

dvi all-dvi: info.dvi info-stnd.dvi
info.dvi: info.texi
	$(TEX) $<
	$(TEXINDEX) $<
	$(TEX) $<


info-stnd.dvi: info-stnd.texi
	$(TEX) $<
	$(TEXINDEX) $<
	$(TEX) $<


makedoc: $(MAKEDOC_OBJECTS) ../libtxi/libtxi.a
	$(CC) $(LDFLAGS) -o makedoc $(MAKEDOC_OBJECTS) $(LOADLIBES)

Makefile: $(srcdir)/Makefile.in ../config.status
	sed -f ../confsub.sed $< > $@


clean:
	$(RM) *.exe
	$(RM) info funs.h doc.c makedoc $(OBJS) $(MAKEDOC_OBJECTS)

distclean: clean texclean
	$(RM) Makefile config.status config.cache *~ core core.* *.core
	$(RM) *.BAK makedoc-TAGS TAGS \#* *.inf*

mostlyclean: clean

realclean: distclean
	$(RM) info.info info-stnd.info

TAGS: $(SRCS) makedoc-TAGS
	etags $(SRCS)
	sed -n -e p makedoc-TAGS >> TAGS
	$(RM) makedoc-TAGS

makedoc-TAGS: $(CMDFILES)
	./makedoc -tags $(CMDFILES) >makedoc-TAGS

texclean:
	$(RM) *.toc *.aux *.log *.cp *.fn *.tp *.vr *.pg *.ky *.cps
	$(RM) *.tps *.fns *.kys *.pgs *.vrs

check: info

# The files `doc.c' and `funs.h' are created by ./makedoc run over the source
# files which contain DECLARE_INFO_COMMAND.  `funs.h' is a header file
# listing the functions found.  `doc.c' is a structure containing pointers
# to those functions along with completable names and documentation strings.
funs.h: makedoc $(CMDFILES)
	command.com /c if exist old-funs.h del old-funs.h > nul
	command.com /c if exist funs.h ren funs.h old-funs.h > nul
	command.com /c if exist old-doc.c del old-doc.c > nul
	command.com /c if exist doc.c ren doc.c old-doc.c > nul
	./makedoc $(CMDFILES)
	update funs.h old-funs.h
	update doc.c old-doc.c
	command.com /c del funs.h > nul
	command.com /c del doc.c > nul
	command.com /c ren old-funs.h funs.h > nul
	command.com /c ren old-doc.c doc.c > nul

doc.c: 		funs.h
dribble.o:	dribble.c dribble.h
display.o:	display.c
echo_area.o:	echo_area.c
filesys.o:	filesys.c
info-utils.o:	info-utils.c
info.o:		info.c filesys.h
infodoc.o:	infodoc.c
infomap.o:	infomap.c
m-x.o:		m-x.c
nodes.o:	nodes.c
pc_pc_term.o:      pc_term.c pc_term.h
search.o:	search.c
session.o:	session.c pc_getc.c
signals.o:	signals.c
terminal.o:	terminal.c
tilde.o:	tilde.c
window.o:	window.c
xmalloc.o:	xmalloc.c
indices.o:	indices.c
makedoc.o:	makedoc.c

dir.o: 		dir.c
display.o: 	nodes.h info-utils.h search.h
display.o: 	terminal.h window.h display.h
echo_area.o: 	info.h
filesys.o: 	general.h tilde.h filesys.h
footnotes.o: 	footnotes.h
info-utils.o: 	info-utils.h nodes.h search.h
info.o: 	info.h $(common)/getopt.h
infodoc.o: 	info.h doc.h
infomap.o: 	infomap.h funs.h
gc.o:		info.h
m-x.o: 		info.h
nodes.o: 	search.h filesys.h
nodes.o: 	nodes.h info-utils.h
pc_pc_term.o:      pc_term.c pc_term.h
search.o: 	general.h search.h nodes.h
session.o: 	info.h
signals.o: 	info.h signals.h
terminal.o: 	terminal.h termdep.h
tilde.o: 	tilde.h
variables.c: 	variables.h
window.o: 	nodes.h window.h display.h
window.o: 	info-utils.h search.h infomap.h

# Prevent GNU make v3 from overflowing arg limit on SysV.
.NOEXPORT:

# eof
