diff options
author | markm <markm@FreeBSD.org> | 2003-06-14 17:28:13 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 2003-06-14 17:28:13 +0000 |
commit | 90e71b610d70d0b3905781a6bec3d4b097f35698 (patch) | |
tree | da7831325c96de4d82a43796daf3a752c5f15ef4 /sys/conf | |
parent | 5155733cbd5f018fd512ea8a09bc9154ab8f3bbd (diff) | |
download | FreeBSD-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.mk | 25 | ||||
-rw-r--r-- | sys/conf/kern.pre.mk | 6 |
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} |