LONGARGS = gcc:ar

srcdir = .
common = ../libtxi

LDEFS = -DNAMED_FUNCTIONS=1 -DHAVE_BCOPY

LIBS = -L$(common) -ltxi -lpc
LOADLIBES = $(LIBS)

CFLAGS = -O2
LDFLAGS =

MAKEINFO = ../makeinfo/makeinfo

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 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 xmalloc.o
MAKEDOC_SOURCE = makedoc.c xmalloc.c

%.o : %.c
	gcc -c $(LDEFS) -I. -I$(common) $(CFLAGS) $<

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

info.exe : info
	aout2exe info

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

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

makedoc.exe : makedoc
	aout2exe makedoc

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

clean :
	-del *.o
	-del makedoc
	-del 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)
	makedoc $(CMDFILES)

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