INCL	= ../include
DB	= -g
CFLAGS	= -O -I$(INCL) $(DB) $(SYS)
SHELL = /bin/sh

LINTFLAGS = -bchux -I$(INCL)
GRLIB	= ../lib/grlib.a
PGRLIB	= ../lib/grlib_p.a
DGRLIB	= ../lib/grlib_d.a
SRCS	= lffbufio.c lffutil.c read_pix.c read_lff.c write_lff.c pixerrmess.c
OBJS	= lffbufio.o lffutil.o read_pix.o read_lff.o write_lff.o pixerrmess.o
POBJS	= lffbufio.po lffutil.po read_pix.po read_lff.po write_lff.po pixerrmess.po
DOBJS	= lffbufio.do lffutil.do read_pix.do read_lff.do write_lff.do pixerrmess.do
PROF	= -pg
DEBUG	= -g
HDRS	= pixlib.h lff.h pix.h pixerrno.h
RANLIB	= ranlib

.SUFFIXES: .out .do .po .o .c .F .f .e .r .y .yr .ye .l .s .cl .p
.c.po:
	if test -f $*.o ; then mv $*.o $*.b ; fi
	$(CC) -c $(CFLAGS) $(PROF) $*.c
	mv $*.o $*.po
	if test -f $*.b ; then mv $*.b $*.o ; fi

.c.do:
	if test -f $*.o ; then mv $*.o $*.b ; fi
	$(CC) -c $(CFLAGS) $(DEBUG) $*.c
	mv $*.o $*.do
	if test -f $*.b ; then mv $*.b $*.o ; fi


all: $(OBJS)
	ar ruv $(GRLIB) $?
	$(RANLIB) $(GRLIB)

prof: $(POBJS)
	ar ruv $(PGRLIB) $?
	$(RANLIB) $(PGRLIB)

debug: $(DOBJS)
	ar ruv $(DGRLIB) $?
	$(RANLIB) $(DGRLIB)

archive:
	echo 'Warning: assuming all object files are made'
	ar ruv $(GRLIB) $(OBJS)
	ar ruv $(PGRLIB) $(POBJS)
	ar ruv $(DGRLIB) $(DOBJS)

$(OBJS) $(PBOJS) $(DOBJS): $(INCL)/pixlib.h $(INCL)/pixerrno.h

lffbufio.o read_lff.o \
lffbufio.po read_lff.po \
lffbufio.do read_lff.do: $(INCL)/lffbufio.h

read_pix.o pixerrmess.o \
read_pix.po pixerrmess.po \
read_pix.do pixerrmess.do: $(INCL)/pix.h

read_lff.o write_lff.o lffutil.o pixerrmess.o \
read_lff.po write_lff.po lffutil.po pixerrmess.po \
read_lff.do write_lff.do lffutil.do pixerrmess.do: $(INCL)/lff.h

clean:
	rm -f $(OBJS) $(POBJS) $(DOBJS)

tags:
	ctags -x $(SRCS) $(HDRS) > CTAGS

lint: llib-lpixlib.ln

llib-lpixlib.ln: $(SRCS)
# BSD
	lint -Cpixlib $(LINTFLAGS) $(SRCS) > LINTLIBERRS 2>&1
	cp llib-lpixlib.ln ../lib
# USG
#	 lint -o pixlib $(LINTFLAGS) $(SRCS) > LINTLIBERRS 2>&1
#	 cp llib-lpixlib.ln ../lib

xref:
	cxref -C $(SRCS) > XREF
