# Makefile for hcc and xvhelp
# possible target: hcc, xvhelp, lib, install, clean, realclean 

DESTDIR=/usr/local/bin/
CC=gcc
CFLAGS=-O2 -m486
DEFINE=-DHELP_PATH=\"/usr/local/lib/xvhelp/\"

# hcc target:
#

HCCOBJECTS=hcc.o filext.o sint.o lex.o 

hcc: ${HCCOBJECTS}
	$(CC) $(CFLAGS) -o hcc $(HCCOBJECTS) datastr.a                 
hcc.o: hcc.c filext.h tree.h vector.h page.h hotword.h topic.h
	$(CC) $(CFLAGS) -c hcc.c
filext.o: filext.c filext.h
	$(CC) $(CFLAGS) -c filext.c
sint.o: sint.c page.h target.h vector.h tree.h hotword.h topic.h lex.h code.h
	$(CC) $(CFLAGS) -c sint.c
lex.o: lex.c lex.h
	$(CC) $(CFLAGS) -c lex.c

# xvhelp target:
# 

XVHELPOBJECTS=xvhelp.o graph.o ourpanel.o scanner.o viewer.o visual.o 

IFLAGS=-I/usr/openwin/include
LFLAGS=-L/usr/openwin/lib -lxview -lolgx -lX11 

xvhelp: $(XVHELPOBJECTS) 
	$(CC) $(CFLAGS) -o xvhelp $(XVHELPOBJECTS) datastr.a $(LFLAGS)
xvhelp.o: xvhelp.c xvhelp.h ourpanel.h graph.h code.h visual.h 
	$(CC) $(CFLAGS) $(DEFINE) $(IFLAGS) -c xvhelp.c
visual.o: visual.c visual.h  
	$(CC) $(CFLAGS) $(IFLAGS) -c visual.c  
graph.o: graph.c graph.h xvhelp.h
	$(CC) $(CFLAGS) $(IFLAGS) -c graph.c
scanner.o: scanner.c scanner.h xvhelp.h code.h viewer.h
	$(CC) $(CFLAGS) $(IFLAGS) -c scanner.c
ourpanel.o: ourpanel.c ourpanel.h xvhelp.h
	$(CC) $(CFLAGS) $(IFLAGS) -c ourpanel.c
viewer.o: viewer.c viewer.h xvhelp.h code.h graph.h
	$(CC) $(CFLAGS) $(IFLAGS) -c viewer.c

# target lib; for building datastr.a
#

LIBOBJECTS=hotarea.o hotword.o page.o target.o topic.o tree.o\
		vector.o ourstring.o collapse.o

lib: $(LIBOBJECTS)
	ar -r datastr.a $(LIBOBJECTS)
	ranlib datastr.a 
 
hotarea.o: hotarea.c hotarea.h
	$(CC) $(CFLAGS) -c hotarea.c
hotword.o: hotword.c code.h collapse.h hotword.h ourstring.h
	$(CC) $(CFLAGS) -c hotword.c
page.o: page.c collapse.h code.h page.h
	$(CC) $(CFLAGS) -c page.c
target.o: target.c collapse.h ourstring.h target.h
	$(CC) $(CFLAGS) -c target.c
topic.o: topic.c code.h collapse.h topic.h
	$(CC) $(CFLAGS) -c topic.c
tree.o: tree.c tree.h
	$(CC) $(CFLAGS) -c tree.c
vector.o: vector.h
	$(CC) $(CFLAGS) -c vector.c
collapse.o: collapse.c collapse.h
	$(CC) $(CFLAGS) -c collapse.c
ourstring.o: ourstring.h ourstring.c
	$(CC) $(CFLAGS) -c ourstring.c

# target clean:
#

clean:
	rm -f $(LIBOBJECTS) $(HCCOBJECTS) $(XVHELPOBJECTS) core.* core

#installation
#
install:
	@echo "Copying hcc and xvhelp in the destination dir..."
	@cp xvhelp hcc $(DESTDIR)
	@echo "Done."

# target clean all
#

realclean: 
	rm -f $(LIBOBJECTS) $(HCCOBJECTS) $(XVHELPOBJECTS) core.* core \
		datastr.a xvhelp hcc
