summaryrefslogtreecommitdiffstats
path: root/sys/conf
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2003-06-14 17:28:13 +0000
committermarkm <markm@FreeBSD.org>2003-06-14 17:28:13 +0000
commit90e71b610d70d0b3905781a6bec3d4b097f35698 (patch)
treeda7831325c96de4d82a43796daf3a752c5f15ef4 /sys/conf
parent5155733cbd5f018fd512ea8a09bc9154ab8f3bbd (diff)
downloadFreeBSD-src-90e71b610d70d0b3905781a6bec3d4b097f35698.zip
FreeBSD-src-90e71b610d70d0b3905781a6bec3d4b097f35698.tar.gz
Some glue to allow lint(1) to work on the kernel. This is not
complete without some config(8) work. Config(8) needs to provide some ${NORMAL_LINT} rules to make foo.ln files.
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/kern.post.mk25
-rw-r--r--sys/conf/kern.pre.mk6
2 files changed, 29 insertions, 2 deletions
diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk
index e6172b7..ecf4196 100644
--- a/sys/conf/kern.post.mk
+++ b/sys/conf/kern.post.mk
@@ -74,6 +74,8 @@ ${FULLKERNEL}: ${SYSTEM_DEP} vers.o
${SYSTEM_OBJS}: assym.s miidevs.h vnode_if.h ${BEFORE_DEPEND:M*.h} ${MFILES:T:S/.m$/.h/}
.endif
+LNFILES= ${CFILES:T:S/.c$/.ln/}
+
.for mfile in ${MFILES}
# XXX the low quality .m.o rules gnerated by config are normally used
# instead of the .m.c rules here.
@@ -90,8 +92,9 @@ kernel-clean:
${MFILES:T:S/.m$/.c/} ${MFILES:T:S/.m$/.h/} \
${CLEAN}
-lint: ${CFILES}
- ${LINT} ${LINTKERNFLAGS} ${CFLAGS:M-[DILU]*} ${.ALLSRC}
+lint: ${LNFILES}
+ ${LINT} ${LINTKERNFLAGS} ${CFLAGS:M-[DILU]*} ${.ALLSRC} \
+ 2>&1 | tee -a linterrs
# This is a hack. BFD "optimizes" away dynamic mode if there are no
# dynamic references. We could probably do a '-Bforcedynamic' mode like
@@ -206,12 +209,21 @@ kernel-reinstall:
config.o:
${NORMAL_C}
+config.ln:
+ ${NORMAL_LINT}
+
env.o: env.c
${NORMAL_C}
+env.ln: env.c
+ ${NORMAL_LINT}
+
hints.o: hints.c
${NORMAL_C}
+hints.ln: hints.c
+ ${NORMAL_LINT}
+
vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP}
sh $S/conf/newvers.sh ${KERN_IDENT}
@@ -220,6 +232,9 @@ vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP}
vers.o:
${NORMAL_C}
+vers.ln:
+ ${NORMAL_LINT}
+
vnode_if.c: $S/tools/vnode_if.awk $S/kern/vnode_if.src
${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -c
@@ -229,10 +244,16 @@ vnode_if.h: $S/tools/vnode_if.awk $S/kern/vnode_if.src
vnode_if.o:
${NORMAL_C}
+vnode_if.ln:
+ ${NORMAL_LINT}
+
majors.c: $S/conf/majors $S/conf/majors.awk
${AWK} -f $S/conf/majors.awk $S/conf/majors > majors.c
majors.o:
${NORMAL_C}
+majors.ln:
+ ${NORMAL_LINT}
+
.include "kern.mk"
diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk
index cde1afb..355fbef 100644
--- a/sys/conf/kern.pre.mk
+++ b/sys/conf/kern.pre.mk
@@ -14,6 +14,7 @@ KODIR?= /boot/${KERNEL}
M= ${MACHINE_ARCH}
AWK?= awk
+LINT?= lint
NM?= nm
OBJCOPY?= objcopy
SIZE?= size
@@ -54,6 +55,9 @@ WERROR?= -Werror
# can override the others.
CFLAGS+= ${CONF_CFLAGS}
+# Optional linting. This can be overridden in /etc/make.conf.
+LINTFLAGS= ${LINTOBJKERNFLAGS}
+
NORMAL_C= ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.IMPSRC}
NORMAL_S= ${CC} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}
PROFILE_C= ${CC} -c ${CFLAGS} ${WERROR} ${.IMPSRC}
@@ -62,6 +66,8 @@ NORMAL_C_NOWERROR= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC}
NORMAL_M= ${AWK} -f $S/tools/makeobjops.awk ${.IMPSRC} -c ; \
${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.PREFIX}.c
+NORMAL_LINT= ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC}
+
GEN_CFILES= $S/$M/$M/genassym.c
SYSTEM_CFILES= config.c env.c hints.c majors.c vnode_if.c
SYSTEM_DEP= Makefile ${SYSTEM_OBJS}
OpenPOWER on IntegriCloud