# Makefile for texinfo/info.	-*- Indented-Text -*-
# Copyright (C) 1993 Free Software Foundation, Inc.

# This Makefile is for DJGPP v2.x

# 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 = .
common = ../libtxi
util   = ../util
DEFAULT_INFOPATH = .
DEFS = -imacros ../config.h

VPATH  = $(srcdir);$(common)

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


#### 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

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

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

info: $(OBJS) ../libtxi/libtxi.a
	$(CC) $(LDFLAGS) -o info $(OBJS) ../libtxi/libtxi.a $(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

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

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

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

Makefile: Makefile.djg
	copy $< $@

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

distclean: clean texclean
	$(RM) Makefile *~
	$(RM) *.BAK makedoc-TAGS TAGS

mostlyclean: clean

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

TAGS: $(SRCS) makedoc-TAGS
	etags $(SRCS)
	cat 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.exe $(CMDFILES)
	@echo @echo off > mkdoc.bat
	@echo if exist old-funs.h del old-funs.h >> mkdoc.bat
	@echo if exist funs.h ren funs.h old-funs.h >> mkdoc.bat
	@echo if exist old-doc.c del old-doc.c >> mkdoc.bat
	@echo if exist doc.c ren doc.c old-doc.c >> mkdoc.bat
	-@mkdoc
	makedoc $(CMDFILES)
	@echo @echo off > mkdoc.bat
	@echo cmp -s old-funs.h funs.h >> mkdoc.bat
	@echo if not errorlevel 1 del funs.h >> mkdoc.bat
	@echo if not errorlevel 1 ren old-funs.h funs.h >> mkdoc.bat
	@echo if errorlevel 1 del old-funs.h >> mkdoc.bat
	@echo cmp -s old-doc.c doc.c >> mkdoc.bat
	@echo if not errorlevel 1 del doc.c >> mkdoc.bat
	@echo if not errorlevel 1 ren old-doc.c doc.c >> mkdoc.bat
	@echo if errorlevel 1 del old-doc.c >> mkdoc.bat
	-@mkdoc
	del mkdoc.bat

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
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
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

pc_term.o:	pc_term.c pc_term.h

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

# eof
