# sparse -- sparse matrix package
#---------------------------------------------------------------------------

CAD	= /net/eros/octtools/pmax
MIS	= /misII/pmax/src

LINTCREATEFLAG = -C
P	= sparse
PSRC	= rows.c cols.c matrix.c
POBJ	= rows.o cols.o matrix.o
PHDR	= sparse.h sparse_int.h
MISC	= sparse.doc Makefile
HOST	= beeblebrox
DIST	= /misII/pmax/src

TARGET	= a.out

LIBS	= 

LINTLIBS=

INCLUDE	= -I$(MIS)/include -I$(CAD)/include
CFLAGS	= -g $(INCLUDE)
LDFLAGS	=
LINTFLAGS =  $(INCLUDE) ${LINTEXTRAS}

#----------------------------------------------------------------------
foo: install

.c.o:
	$(CC) $(CFLAGS) -c -DFAST_AND_LOOSE $*.c

cols.o: cols.c
	$(CC) $(CFLAGS) -c -DFAST_AND_LOOSE -DCOLS cols.c

sparse.dvi: sparse.tex
	-latex sparse

#----------------------------------------------------------------------

install: lib$(P).a llib-l$(P).ln

lib$(P).a: $(POBJ)
	@rm -f lib$(P).a
	ar cr lib$(P).a $(POBJ)
	ranlib lib$(P).a

llib-l$(P).ln: $(PSRC) $(PHDR)
	lint $(LINTFLAGS) ${LINTCREATEFLAG}$(P) -n $(PSRC)

$(TARGET): $(PHDR) $(POBJ) $(LIBS)
	$(CC) $(LDFLAGS) -o $(TARGET) $(POBJ) $(LIBS) -lm

lint: $(PSRC) $(PHDR) $(HDR)
	lint $(LINTFLAGS) $(PSRC) $(LINTLIBS)

clean:
	rm -f $(TARGET) *.a *.ln *.o \
	    [Tt]ags [Mm]ake.out malloc.out gmon.out lint

tags: _force
	@for i in $(PSRC) $(PHDR); do			\
	    cwd=`pwd`; ctags -a $$cwd/$$i;		\
	done;

depend:
	sed '/^#--DO NOT CHANGE ANYTHING AFTER THIS LINE/,$$d' Makefile >mktemp
	echo '#--DO NOT CHANGE ANYTHING AFTER THIS LINE' >>mktemp
	$(CAD)/bin/cc-M $(INCLUDE) $(PSRC) | \
	    sed 's|$(CAD)|$$(CAD)|g' | \
	    grep -v '/usr/include' >>mktemp
	mv mktemp Makefile

strip_depend:
	sed '/^#--DO NOT CHANGE ANYTHING AFTER THIS LINE/,$$d' Makefile >mktemp
	mv mktemp Makefile

dist:
	rdist -Richw $(PSRC) $(PHDR) $(MISC) $(HOST):$(DIST)/$(P)

#-------------------------- IBM 3090 support -----------------
IBMHOST	= beeblebrox
IBMDIST	= /misII/pmax/src
ibmdist: $(PSRC) $(PHDR)
	rdist -Richw $(PSRC) $(PHDR) $(IBMHOST):$(IBMDIST)
#-------------------------------------------------------------
_force:

