Date: Mon, 11 Mar 2002 12:24:43 +0000 From: Mark Murray <mark@grondar.za> To: audit@freebsd.org Subject: "make lint" diffs (commit candidate) Message-ID: <200203111224.g2BCOhDN025023@grimreaper.grondar.org>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hi
As folks have no doubt noticed, I have been doing some lint work.
I have some local diffs that make this work possible, and I'd like
to share them with the world.
There are the main things to bear in mind when looking at these.
1) I want other lints to be able to work, with suitable additions
to /etc/make.conf. I use:
#
# Local lint stuff
#
LINT= /usr/local/bin/flexelint
LINTFLAGS= -b -zero /etc/lint/co-freebsd.lnt
LINTKERNFLAGS= -b -zero /etc/lint/co-freebsd-kern.lnt
LINTOBJFLAGS= -u -library -b -zero /etc/lint/co-freebsd.lnt -oo\(${.TARGET}\)
LINTLIBFLAGS= -u -library -b -zero /etc/lint/co-freebsd.lnt -ol\(${.TARGET}\)
For flexelint, and leave them out for "system" lint.
2) I want "make world" to populate /usr/libdata/lint/ with lint libraries.
This only works if you turn it on with
WANT_LINT= yes
in /etc/make.conf
3) I want "make lint" to work in src/<dir>/<someapplet>
This is quite stable for me, and has been working for a while. I have
recently tidied it up a bit.
YMMV.
Comments?
M
--
o Mark Murray
\_
O.\_ Warning: this .sig is umop ap!sdn
[-- Attachment #2 --]
Index: share/mk/bsd.lib.mk
===================================================================
RCS file: /home/ncvs/src/share/mk/bsd.lib.mk,v
retrieving revision 1.101
diff -u -d -r1.101 bsd.lib.mk
--- share/mk/bsd.lib.mk 21 Feb 2002 10:23:41 -0000 1.101
+++ share/mk/bsd.lib.mk 21 Feb 2002 22:40:24 -0000
@@ -54,7 +54,15 @@
# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
# .So used for PIC object files
.SUFFIXES:
-.SUFFIXES: .out .o .po .So .S .s .c .cc .cpp .cxx .m .C .f .y .l
+.SUFFIXES: .out .o .po .So .S .s .c .cc .cpp .cxx .m .C .f .y .l .ln
+
+.c.ln:
+ ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \
+ touch ${.TARGET}
+
+.cc.ln .C.ln .cpp.ln .cxx.ln:
+ ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \
+ touch ${.TARGET}
.c.o:
${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
@@ -157,6 +165,14 @@
.endif
.endif
+LINTOBJS+= ${SRCS:M*.c:C/\..+$/.ln/}
+
+.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && (${LINTOBJS} != "")
+LINTLIB=llib-l${LIB}.ln
+.else
+LINTLIB=
+.endif
+
.if defined(SHLIB_NAME)
_LIBS+=${SHLIB_NAME}
.endif
@@ -169,9 +185,9 @@
.endif
.if !defined(NOMAN)
-all: objwarn ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln
+all: objwarn ${_LIBS} all-man _SUBDIR ${LINTLIB}
.else
-all: objwarn ${_LIBS} _SUBDIR # llib-l${LIB}.ln
+all: objwarn ${_LIBS} _SUBDIR ${LINTLIB}
.endif
OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
@@ -219,17 +235,22 @@
${RANLIB} lib${LIB}_pic.a
.endif
-llib-l${LIB}.ln: ${SRCS}
- ${LINT} -C${LIB} ${CFLAGS:M-[DIU]*} ${.ALLSRC:M*.c}
+.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && (${LINTOBJS} != "")
+${LINTLIB}: ${LINTOBJS}
+ @${ECHO} building lint library ${SHLIB_NAME}
+ @rm -f ${LINTLIB}
+ ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
+.endif
.if !target(clean)
clean: _SUBDIR
rm -f a.out ${OBJS} ${STATICOBJS} ${OBJS:S/$/.tmp/} ${CLEANFILES}
- rm -f lib${LIB}.a # llib-l${LIB}.ln
+ rm -f lib${LIB}.a ${LINTLIB}
rm -f ${POBJS} ${POBJS:S/$/.tmp/} lib${LIB}_p.a
rm -f ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/} \
${SHLIB_NAME} ${SHLIB_LINK} \
lib${LIB}.so.* lib${LIB}.so lib${LIB}_pic.a
+ rm -f ${LINTOBJS} ${LINTLIB}
.if defined(CLEANDIRS) && !empty(CLEANDIRS)
rm -rf ${CLEANDIRS}
.endif
@@ -323,6 +344,10 @@
ln -fs $$l $$t; \
done; true
.endif
+.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && (${LINTOBJS} != "")
+ ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
+ ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR}
+.endif
install: afterinstall _SUBDIR
.if !defined(NOMAN)
@@ -345,8 +370,10 @@
.endif
.if !target(lint)
-lint:
+lint: ${SRCS:M*.c} _SUBDIR
+ ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} | more 2>&1
.endif
+
.if !defined(NOMAN)
.include <bsd.man.mk>
Index: share/mk/sys.mk
===================================================================
RCS file: /home/ncvs/src/share/mk/sys.mk,v
retrieving revision 1.56
diff -u -d -r1.56 sys.mk
--- share/mk/sys.mk 31 Aug 2001 12:20:43 -0000 1.56
+++ share/mk/sys.mk 15 Feb 2002 22:54:30 -0000
@@ -76,7 +76,10 @@
LDFLAGS ?=
LINT ?= lint
-LINTFLAGS ?= -chapbx
+LINTFLAGS ?= -cghapbx -L /usr/libdata/lint
+LINTKERNFLAGS ?= ${LINTFLAGS}
+LINTOBJFLAGS ?= -cghapbxu -i
+LINTLIBFLAGS ?= -cghapbxu -C ${LIB}
MAKE ?= make
Index: sys/conf/kern.post.mk
===================================================================
RCS file: /home/ncvs/src/sys/conf/kern.post.mk,v
retrieving revision 1.10
diff -u -d -r1.10 kern.post.mk
--- sys/conf/kern.post.mk 1 Mar 2002 01:21:29 -0000 1.10
+++ sys/conf/kern.post.mk 6 Mar 2002 11:26:05 -0000
@@ -57,6 +57,9 @@
kernel-clobber:
find . -type f ! -name version -delete
+lint: ${CFILES}
+ ${LINT} ${LINTKERNFLAGS} ${CFLAGS:M-[DILU]*} ${.ALLSRC} | more 2>&1
+
locore.o: $S/$M/$M/locore.s assym.s
${NORMAL_S}
Index: sys/conf/kmod.mk
===================================================================
RCS file: /home/ncvs/src/sys/conf/kmod.mk,v
retrieving revision 1.113
diff -u -d -r1.113 kmod.mk
--- sys/conf/kmod.mk 1 Mar 2002 01:21:29 -0000 1.113
+++ sys/conf/kmod.mk 6 Mar 2002 11:03:21 -0000
@@ -338,6 +338,9 @@
regress:
+lint: ${SRCS}
+ ${LINT} ${LINTKERNFLAGS} ${CFLAGS:M-[DILU]*} ${.ALLSRC:M*.c} | more 2>&1
+
.include <bsd.dep.mk>
.if !exists(${DEPENDFILE})
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203111224.g2BCOhDN025023>
