########################################################################
# File: Makefile
# 	(Extracted from
#	   "$Id: Makefile,v 1.4 2009/05/30 17:01:29 maoyam Exp maoyam $")
#
# Abstracts:
#  This makefile for `buffer_checker.c' and test programs.
#
# Copyright (C) 2004 Maoyam Tokyo, Japan (mailto:maoyam@mail.goo.ne.jp)
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
######################################################################/

## CC=g++ -ansi
CC=gcc -ansi

## DBGFLAGS=-DDEBUG=1
DBGFLAGS=-DDEBUG=0
CFLAGS=-Wall -pedantic -Wshadow -Wredundant-decls -Werror -I. $(DBGFLAGS)

PROG=test
BINS=$(PROG) TM_sum UTM
LIBSRCS=buffer_checker.c
LIBHDRS=buffer_checker.h

all: $(BINS)
	@echo "updated: "$(BINS);

test: test.c $(LIBSRCS) $(LIBHDRS)
	$(CC) -g $(CFLAGS) -o $(PROG) test.c $(LIBSRCS)

TM_sum: TM_sum.c $(LIBSRCS) $(LIBHDRS)
	$(CC) $(CFLAGS) -o $@ TM_sum.c $(LIBSRCS)

UTM: UTM.c $(LIBSRCS) $(LIBHDRS)
	$(CC) $(CFLAGS) -o $@ UTM.c $(LIBSRCS)

splint:
	splint -I. +posix_lib -nullassign -compdestroy	\
		+voidabstract -nullstate -compmempass		\
		-branchstate -nullpass -usereleased			\
		-exportlocal								\
		$(LIBSRCS)

utest: test
	./$(PROG) > $(PROG).out`date +'%Y%m%d'`.txt 2>&1

valgrind:
	make clean;
	make;
	(date; uname -a; $(CC) --version; echo; valgrind -v --read-var-info=yes --track-origins=yes --leak-check=full --show-reachable=yes ./$(PROG) ) > valgrind.out`date +'%Y%m%d'`.txt 2>&1

gprof:
	make clean;
	$(CC) -pg $(CFLAGS) -o $(PROG) test.c $(LIBSRCS)
	./$(PROG) -P > /dev/null 2>&1;
	(date; uname -a; $(CC) --version; echo; gprof --version; gprof $(PROG) gmon.out) > gprof.out`date +'%Y%m%d'`.txt 2>&1;
	rm gmon.out;
	make clean;

clean:
	rm -f $(BINS) test.exe TM_sum.exe UTM.exe

rcs:
	ci							\
		GPL.txt					\
		Makefile				\
		TM_sum.c				\
		TM_sum.ksh				\
		UTM.c					\
		UTM.usage.txt			\
		UTM_infinite_loop.ksh	\
		buffer_checker.c		\
		buffer_checker.h		\
		index.html				\
		test.c
	co -l						\
		GPL.txt					\
		Makefile				\
		TM_sum.c				\
		TM_sum.ksh				\
		UTM.c					\
		UTM.usage.txt			\
		UTM_infinite_loop.ksh	\
		buffer_checker.c		\
		buffer_checker.h		\
		index.html				\
		test.c
	rlog						\
		GPL.txt					\
		Makefile				\
		TM_sum.c				\
		TM_sum.ksh				\
		UTM.c					\
		UTM.usage.txt			\
		UTM_infinite_loop.ksh	\
		buffer_checker.c		\
		buffer_checker.h		\
		index.html				\
		test.c					> CHANGE_LOGS.txt

