SHELL	= /bin/sh
OTFHOME	= /usr/local/otf
INCDIR	= ${OTFHOME}/include/mg
LIBDIR	= ${OTFHOME}/lib
MANDIR	= ${OTFHOME}/man/man3

.SUFFIXES:	.cc
CXX	= g++

.cc.o:
	${CXX} -c -o $*.o ${CFLAGS} $*.cc

LIBNAME	= mg

HDRS	= M*.h common.h
SRCS	= MGraph.cc MVertex.cc MEdge.cc MRing.cc alloc.cc misc.cc
OBJS	= ${SRCS:.cc=.o}
LIB	= lib${LIBNAME}.a
OPT	= -O2 -felide-constructors
#OPT	= -g -Wall
CFLAGS	= ${OPT} -I${OTFHOME}/include -Wwrite-strings

${LIB}: ${OBJS}
	ar cr ${LIB} ${OBJS}

sysv.install: ${LIB}
	-mkdir ${INCDIR}
	/etc/install -m 444 -f ${INCDIR} ${HDRS}
	/etc/install -m 644 -f ${LIBDIR} ${LIB}
	/etc/install -m 444 -f ${MANDIR} *.3

bsd43.install: ${LIB}
	-mkdir ${INCDIR}
	install -c -m 444 ${HDRS} ${INCDIR}
	install -c -m 644 ${LIB} ${LIBDIR}/${LIB}
	ranlib ${LIBDIR}/${LIB}
	install -c -m 444 *.3 ${MANDIR}

osf1.install: ${LIB}
	-mkdir ${INCDIR}
	for i in ${HDRS} ; do \
		installbsd -c -m 444 $$i ${INCDIR} ; \
	done
	installbsd -c -m 644 ${LIB} ${LIBDIR}/${LIB}
	ranlib ${LIBDIR}/${LIB}
	for i in *.3 ; do \
		installbsd -c -m 444 $$i ${MANDIR} ; \
	done

clean:
	rm -f ${OBJS} ${LIB} Makefile.save errs a.out ptrepository

spotless: clean

test: ${LIB}
	g++ $(CFLAGS) -L${LIBDIR} -I${OTFHOME}/include -I${INCDIR} test.cc libmg.a -lpdb++

depend:
	mv Makefile Makefile.save
	sed -n '1,/DE\PEND/p' < Makefile.save > Makefile
	g++ -MM ${CFLAGS} ${SRCS} >> Makefile

### DEPEND
MGraph.o : MGraph.cc MGraph.h common.h MVertex.h MEdge.h MRing.h alloc.h misc.h 
MVertex.o : MVertex.cc MVertex.h common.h MEdge.h MGraph.h alloc.h 
MEdge.o : MEdge.cc MEdge.h common.h MVertex.h MGraph.h alloc.h misc.h 
MRing.o : MRing.cc MRing.h common.h MEdge.h MGraph.h alloc.h 
alloc.o : alloc.cc 
misc.o : misc.cc 
