4 ### Taken from sample, thirteenth iteration: strictlib
7 .SUFFIXES: .lcl .lcs .lh .h .c .o
13 LCLINTF = $(LCLINT) -f ./.lclintrc
14 LCL = $(LCLINTF) -specundef +lh +quiet -nof
15 LCLINTLH = $(LCLINTF) +lh
16 LCSFILES = dbase.lcs employee.lcs empset.lcs erc.lcs eref.lcs ereftab.lcs bool.lcs check.lcs
17 MODULES = employee eref empset ereftab erc dbase drive.c bool.lcl check.lcl
18 OBJS = dbase.o employee.o empset.o erc.o eref.o ereftab.o
24 ### Note there is a .lclint file used for checking!
27 $(LCLINTF) -showcol $(MODULES) +strict -modfilesystem +showsummary -exportconstant -exportlocal
28 $(LCLINTF) -showcol $(MODULES) +strict -modfilesystem +showsummary -exportconstant -exportlocal +strictlib -expect 77
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
48 ### Clean removes junk and all derived files.
49 ### Tidy removes junk and object and executable files.
53 -@rm -f *.c.html *.lcl.html *.h.html *.lh.html *.lcs *.lh >& /dev/null
56 -@rm -f ,* .,* *.CKP *.BAK .emacs_[0-9]* core a.out *.*~ *~ *.o drive >& /dev/null
58 ### The following dependencies ensure that imported LCL specs
59 ### are checked before the specs that import them.
61 dbase.lcs: employee.lcs empset.lcs
62 empset.lcs: employee.lcs
64 eref.lcl: employee.lcs
65 ereftab.lcs: employee.lcs eref.lcs
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.
70 dbase.o: dbase.c bool.h dbase.h employee.h empset.h
71 drive.o: drive.c bool.h dbase.h employee.h empset.h erc.h eref.h ereftab.h
72 employee.o: employee.c employee.h
73 empset.o: empset.c bool.h empset.h erc.h eref.h employee.h employee.h
74 erc.o: erc.c bool.h erc.h eref.h employee.h
75 eref.o: eref.c eref.h employee.h
76 ereftab.o: ereftab.c bool.h ereftab.h erc.h eref.h employee.h