LIST=bin contrib etc games gnu include lib libexec sbin share sys user usrbin usrsbin

DATAFROM=/home/ncvs/CVSROOT-src/commitlogs
DATATO=data

#
# When the list of columns is changed, all dat files must be regenerated
#
# Interesting entries: committers, commits, name of any old committer
COLS=commits committers
TYPE=eps
#=sos phk julian
#jhb phk julian davidxu sos
#phk mbr
#dillon bde phk
#jake tmm bde obrien
#committers commits
#arr gordon wes
#COLS=committers
#luigi darrenr
#guido kris nectar
#tmm jake bms fenner
#committers
#imp rwatson
#commits
#committers
#rwatson phk jhb marcel obrien alc julian dillon bde

#
# Each branch requires its own data directory
#
BRANCH?=any RELENG_3 RELENG_4 RELENG_5 HEAD

#
# countavg does a three month windowing average instead of monthly
# peaks.
#
CSVCOMMAND=count

CATLIST=${DATATO}/bin.cat ${DATATO}/contrib.cat ${DATATO}/etc.cat \
	${DATATO}/games.cat ${DATATO}/gnu.cat ${DATATO}/include.cat \
	${DATATO}/lib.cat ${DATATO}/libexec.cat ${DATATO}/sbin.cat \
	${DATATO}/share.cat ${DATATO}/sys.cat ${DATATO}/user.cat \
	${DATATO}/usrbin.cat ${DATATO}/usrsbin.cat

# ${DATATO}/all.cat

CSVLIST=data-${BRANCH}/bin.csv data-${BRANCH}/contrib.csv		\
	data-${BRANCH}/etc.csv data-${BRANCH}/games.csv			\
	data-${BRANCH}/gnu.csv data-${BRANCH}/include.csv		\
	data-${BRANCH}/lib.csv data-${BRANCH}/libexedc.csv		\
	data-${BRANCH}/sbin.csv data-${BRANCH}/share.csv		\
	data-${BRANCH}/sys.csv data-${BRANCH}/user.csv			\
	data-${BRANCH}/usrbin.csv data-${BRANCH}/usrsbin.csv		\
	data-${BRANCH}/all.csv

.SUFFIXES:
.SUFFIXES: .cat .csv .dat .plot .${TYPE}

targets:								\
	data-${BRANCH}/bin.${TYPE} data-${BRANCH}/contrib.${TYPE}	\
	data-${BRANCH}/etc.${TYPE} data-${BRANCH}/games.${TYPE}		\
	data-${BRANCH}/gnu.${TYPE} data-${BRANCH}/include.${TYPE}	\
	data-${BRANCH}/lib.${TYPE} data-${BRANCH}/libexec.${TYPE}	\
	data-${BRANCH}/sbin.${TYPE} data-${BRANCH}/share.${TYPE}	\
	data-${BRANCH}/sys.${TYPE} data-${BRANCH}/user.${TYPE}		\
	data-${BRANCH}/usrbin.${TYPE} data-${BRANCH}/usrsbin.${TYPE}	\
	data-${BRANCH}/all.${TYPE}					\
									\
	branches-allcommits.${TYPE} branches-securitycommits.${TYPE}	\
	branches-commits.${TYPE} branches-securitycommitters.${TYPE}	\
	branches-committers.${TYPE} branches-stable.${TYPE}

${CATLIST}:
.for category in ${LIST}
	gzcat ${DATAFROM}/${category}.*.gz > ${DATATO}/${category}.cat
	cat ${DATAFROM}/${category} >> ${DATATO}/${category}.cat
.endfor
	cat ${CATLIST} > ${DATATO}/all.cat

${CSVLIST}: ${CATLIST}
.for category in ${LIST} all
	./cat2csv.pl ${CSVCOMMAND} ${DATATO}/${category}.cat \
	    data-${BRANCH}/${category}.csv -b ${BRANCH} -l /dev/stdout \
	    -s 2005/05
	    #-s 2003/09
.endfor

.csv.dat:
	./csv2dat.pl ${.IMPSRC} ${.TARGET} ${COLS}

.dat.plot:
	./makeplot.pl ${.TARGET} ${.IMPSRC} ${COLS}

.plot.${TYPE}:
	-gnuplot ${.IMPSRC}

clean:
	rm -f ${DATATO}/* data-${BRANCH}/*
cleanmost:
	rm -f ${CSVLIST} data-${BRANCH}/*.plot data-${BRANCH}/*.${TYPE} \
	data-${BRANCH}/*.dat
cleanplot:
	rm -f data-${BRANCH}/*.plot data-${BRANCH}/*.${TYPE}

SCRIPTS=scripts
SCRIPTFILES=Makefile cat2csv.pl csv2dat.pl make.csh make.pl makeplot.pl release-xtics sys-commits.plot sys-committers.plot branches-allcommits.plot branches-commits.plot branches-committers.plot branches-securitycommits.plot branches-securitycommitters.plot branches-stable.plot

${SCRIPTS}.tgz: ${SCRIPTFILES}
	mkdir -p ${SCRIPTS}
	cp ${SCRIPTFILES} ${SCRIPTS}
	tar -czf ${SCRIPTS}.tgz ${SCRIPTS}
