LIBRARY_PATH = -L$(NEWLINKBASE)/src

CCC = g++
CFLAGS = -g
INCLUDES = -I$(NEWLINKBASE)/include
LIBS = -lalg -lgraph -lbasic -lm

BIN_DIR = ..

ALG_SOURCES = \
	ProgDFSTest.cc 

MF_SOURCES = \
	ProgFlowInfo.cc \
	ProgMaxflowExample.cc \
	ProgMaxflowTemplates.cc 

HDR_SOURCES = ProgFlowInfo.h

load:	$(ALG_SOURCES) $(MF_SOURCES) $(HDR_SOURCES)

clean:
	- rm -f *.tex

MF_OBJS = ${MF_SOURCES:.cc=.o}

ALG_TEXS = ${ALG_SOURCES:.cc=.tex}
MF_TEXS = ${MF_SOURCES:.cc=.tex}
HDR_TEXS = ProgFlowInfo.h.tex
OUTPUT_TEXS = ProgMaxflowOutput.tex

.SUFFIXES	:	.cc .tex .o .h

document:	${ALG_TEXS} 
#document:	${ALG_TEXS} ${HDR_TEXS} ${MF_TEXS} ${OUTPUT_TEXS}

.cc.o:
	${CCC} -c ${CFLAGS} ${INCLUDES} $? 

.h.tex:
	${BIN_DIR}/Proghdr2latex $?

.cc.tex:
	${CCC} ${CFLAGS} ${INCLUDES} $? -o ${?:.cc=} ${LIBRARY_PATH} ${LIBS}
	${BIN_DIR}/Progcode2latex $?
	rm ${?:.cc=}

#.cc.tex:				must have been for special treatment
#	${BIN_DIR}/Progsrc2latex $?	of the maxflow example code

ProgFlowInfo.h.tex	:	ProgFlowInfo.h
	${BIN_DIR}/Proghdr2latex  ProgFlowInfo.h

ProgMaxflowOutput.tex	:	ProgMaxflowExample
	${BIN_DIR}/Progoutput2latex  ProgMaxflowExample
	rm $?

ProgMaxflowExample	:	$(MF_OBJS)
	${CCC} ${CFLAGS} ${INCLUDES} $(MF_OBJS) -o $@ \
				${LIBRARY_PATH} -lgen ${LIBS}

${MF_TEXS}	:	$${@:.tex=.cc}

${CMDS} :       $$@.cc
	${CCC} ${CFLAGS} ${INCLUDES} $? -o $@ ${LIBRARY_PATH} ${LIBS}
