#	Makefile for *BSD Unix

TXDIR=/usr/local/t3x/r5			# where the T3X compiler lives
BINDIR=/usr/local/bin			# where to place local binaries
DOCDIR=/usr/local/share/doc/t3x		# where the T3X docs reside
EXMDIR=/usr/local/share/examples/t3x	# where the examples go

# remove -DGRAPHICS_EXT and -lX11 (below), if X11 is not installed.

CC=	cc
OPTIONS=	-DBASIC_EXT -DVIO_EXT -DGRAPHICS_EXT
XINCLUDE=	/usr/X11R6/include
XLIBS=		/usr/X11R6/lib

default:	txx system.vf libtx.a libtxv.a libtxg.a \
		libtxc.a libtxvc.a libtxgc.a

txx:	txx.o lib.o unixvio.o gfx.o x11.o
	$(CC) -g -o txx txx.o lib.o unixvio.o gfx.o x11.o \
	-L $(XLIBS) -ltermcap -lcompat -lX11

txx.o:	txx_ext.h

libtx.a:	libtx.c gfx.h vio.h
	$(CC) -g -c -I $(XINCLUDE) -o libtx.o libtx.c
	ar -r libtx.a libtx.o
	ranlib libtx.a

libtxv.a:	unixvio.o libtx.c
	$(CC) -g -c -DVIO_EXT -I $(XINCLUDE) -o libtx.o \
	libtx.c
	ar -r libtxv.a libtx.o unixvio.o
	ranlib libtxv.a

libtxg.a:	unixvio.o gfx.o x11.o libtx.c
	$(CC) -g -c -DVIO_EXT -DGRAPHICS_EXT \
	-I $(XINCLUDE) -o libtx.o libtx.c
	ar -r libtxg.a libtx.o unixvio.o gfx.o x11.o
	ranlib libtxg.a

libtxc.a:	libtx.c gfx.h vio.h
	$(CC) -g -c -DUSE_CRT0 -I $(XINCLUDE) -o libtxc.o libtx.c
	ar -r libtxc.a libtxc.o
	ranlib libtxc.a

libtxvc.a:	unixvio.o libtx.c
	$(CC) -g -c -DUSE_CRT0 -DVIO_EXT -I $(XINCLUDE) -o libtxc.o \
	libtx.c
	ar -r libtxvc.a libtx.o unixvio.o
	ranlib libtxvc.a

libtxgc.a:	unixvio.o gfx.o x11.o libtx.c
	$(CC) -g -c -DUSE_CRT0 -DVIO_EXT -DGRAPHICS_EXT \
	-I $(XINCLUDE) -o libtxc.o libtx.c
	ar -r libtxgc.a libtxc.o unixvio.o gfx.o x11.o
	ranlib libtxgc.a

libtx.c:	gfx.h vio.h
gfx.c:	gfx.h
lib.c:	gfx.h
x11.c:	gfx.h

system.vf:	sys6x12.vfd mkvfont
	./mkvfont 6 12 sys6x12.vfd system.vf

mkvfont:	mkvfont.c gfx.h
	$(CC) -o mkvfont mkvfont.c

.c.o:
	$(CC) -g -c $(OPTIONS) -I $(XINCLUDE) $<

install:
	install -o bin -g bin -C -m 0755 txx $(TXDIR)/bin/etxx
	install -o bin -g bin -C -m 0755 mkvfont $(TXDIR)/bin
	install -o bin -g bin -C -m 0644 libtx.a $(TXDIR)/lib
	install -o bin -g bin -C -m 0644 libtxv.a $(TXDIR)/lib
	install -o bin -g bin -C -m 0644 libtxg.a $(TXDIR)/lib
	install -o bin -g bin -C -m 0644 libtxc.a $(TXDIR)/lib
	install -o bin -g bin -C -m 0644 libtxvc.a $(TXDIR)/lib
	install -o bin -g bin -C -m 0644 libtxgc.a $(TXDIR)/lib
	install -o bin -g bin -C -m 0644 system.vf $(TXDIR)/lib
	install -o bin -g bin -C -m 0644 sys6x12.vfd $(TXDIR)/lib
	install -o bin -g bin -C -m 0644 ../inc/*.inc $(TXDIR)/inc
	install -o bin -g bin -C -m 0644 ../doc/t3x-ext.html $(DOCDIR)
	install -o bin -g bin -C -m 0644 ../examples/*.t $(EXMDIR)
	ln -fs $(TXDIR)/bin/etxx $(BINDIR)/txx

clean:
	rm -f *.o *.core core

clobber:	clean
	rm -f txx libtx.a libtxv.a libtxg.a mkvfont system.vf \
	libtxc.a libtxvc.a libtxgc.a
