1###
2### Splint db2 test
3###
4### Taken from sample, fifth iteration: memchecks1
5###
6
7.SUFFIXES: .lcl .lcs .lh .h .c .o
8.PHONY: check clean
9
10### SHELL = /bin/csh -f
11
12SPLINT = splint -booltype "bool"  -booltrue TRUE -boolfalse FALSE
13LCL = $(SPLINT) -specundef +lh +quiet -nof
14SPLINTLH = $(SPLINT) +lh
15LCSFILES = dbase.lcs employee.lcs empset.lcs erc.lcs eref.lcs ereftab.lcs
16
17MODULES = employee eref empset ereftab erc dbase drive.c
18OBJS = dbase.o employee.o empset.o erc.o eref.o ereftab.o
19
20test:
21	$(MAKE) -e clean
22	$(MAKE) -e check
23
24check: $(LCSFILES)
25	-$(SPLINT) -exportlocal -showcol -allimponly -macrovarprefixexclude $(MODULES) -bufferoverflowhigh -expect 15
26	-$(SPLINT) -exportlocal -showcol +allimponly $(MODULES) -bufferoverflowhigh -expect 25
27	-$(SPLINT) -exportlocal -showcol -memchecks -macrovarprefixexclude -bufferoverflowhigh $(MODULES)
28
29# evans 2002-07-09: added bufferoverflowhigh flags to suppress sprintf warnings
30
31### The following rules generate .lh and .lcs files from .lcl files.  They also
32### ensure that .h files appear to be updated whenever the corresponding .lh
33### file is updated.
34
35.lcl.lh:
36	$(LCL) $*.lcl
37
38.lcl.lcs:
39	$(LCL) $*.lcl
40
41.lh.h:
42	touch $*.h
43
44.c.o:
45	$(GCC) -c $*.c
46
47###
48### Clean removes junk and all derived files.
49### Tidy removes junk and object and executable files.
50###
51
52clean: tidy
53	-@rm -f *.c.html *.lcl.html *.h.html *.lh.html *.lcs *.lh 1> /dev/null
54
55tidy:
56	-@rm -f ,* .,* *.CKP *.BAK .emacs_[0-9]* core a.out *.*~ *~ *.o drive 1> /dev/null
57
58### The following dependencies ensure that imported LCL specs
59### are checked before the specs that import them.
60
61dbase.lcs:   employee.lcs empset.lcs
62empset.lcs:  employee.lcs
63erc.lcs:     eref.lcs
64eref.lcl:    employee.lcs
65ereftab.lcs: employee.lcs eref.lcs
66
67### The following dependencies ensure that a .o file is recompiled when the
68### corresponding .c file, or one of the .h files it #includes, is changed.
69
70dbase.o:    dbase.c bool.h dbase.h employee.h empset.h
71drive.o:    drive.c bool.h dbase.h employee.h empset.h erc.h eref.h ereftab.h
72employee.o: employee.c employee.h
73empset.o:   empset.c bool.h empset.h erc.h eref.h employee.h employee.h
74erc.o:      erc.c bool.h erc.h eref.h employee.h
75eref.o:     eref.c eref.h employee.h
76ereftab.o:  ereftab.c bool.h ereftab.h erc.h eref.h employee.h
77