]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/Makefile
MFV r285191: tcpdump 4.7.4.
[FreeBSD/FreeBSD.git] / sys / Makefile
1 # $FreeBSD$
2
3 # Directories to include in cscope name file and TAGS.
4 CSCOPEDIRS=     boot bsm cam cddl compat conf contrib crypto ddb dev fs gdb \
5                 geom gnu isa kern libkern modules net net80211 \
6                 netgraph netinet netinet6 netipsec netnatm netpfil \
7                 netsmb nfs nfsclient nfsserver nlm ofed opencrypto \
8                 rpc security sys ufs vm xdr xen ${CSCOPE_ARCHDIR}
9 .if !defined(CSCOPE_ARCHDIR)
10 .if defined(ALL_ARCH)
11 CSCOPE_ARCHDIR = amd64 arm arm64 i386 mips pc98 powerpc sparc64 x86
12 .else
13 CSCOPE_ARCHDIR = ${MACHINE}
14 .if ${MACHINE} != ${MACHINE_CPUARCH}
15 CSCOPE_ARCHDIR += ${MACHINE_CPUARCH}
16 .endif
17 .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
18 CSCOPE_ARCHDIR += x86
19 .endif
20 .endif
21 .endif
22
23 HTAGSFLAGS+= -at `awk -F= '/^RELEASE *=/{release=$2}; END {print "FreeBSD", release, "kernel"}' < conf/newvers.sh`
24
25 # You need the devel/cscope port for this.
26 cscope: cscope.out
27 cscope.out: ${.CURDIR}/cscope.files
28         cd ${.CURDIR}; cscope -k -buq -p4 -v
29
30 ${.CURDIR}/cscope.files: .PHONY
31         cd ${.CURDIR}; \
32                 find ${CSCOPEDIRS} -name "*.[chSsly]" -a -type f > ${.TARGET}
33
34 cscope-clean:
35         rm -f cscope.files cscope.out cscope.in.out cscope.po.out
36
37 #
38 # Installs SCM hooks to update the cscope database every time the source tree
39 # is updated.
40 # cscope understands incremental updates, so it's considerably faster when only
41 # a few files have changed.
42 #
43 HG_DIR=${.CURDIR}/../.hg
44 HG_HOOK=if [ \$$HG_ERROR -eq 0 ]; then cd sys && make -m ../share/mk cscope; fi
45 cscope-hook:
46         @if [ -d ${HG_DIR} ]; then                                      \
47                 if [ "`grep hooks ${HG_DIR}/hgrc`" = "" ]; then         \
48                         echo "[hooks]" >> ${HG_DIR}/hgrc;               \
49                         echo "update = ${HG_HOOK}" >> ${HG_DIR}/hgrc;   \
50                         echo "Hook installed in ${HG_DIR}/hgrc";        \
51                 else                                                    \
52                         echo "Mercurial update hook already exists.";   \
53                 fi;                                                     \
54         fi
55
56 # You need the devel/global and one of editor/emacs* ports for that.
57 TAGS ${.CURDIR}/TAGS: ${.CURDIR}/cscope.files
58         rm -f ${.CURDIR}/TAGS
59         cd ${.CURDIR}; xargs etags -a < ${.CURDIR}/cscope.files
60
61 # You need the textproc/glimpse ports for this.
62 glimpse:
63 .if !exists(${.CURDIR}/.glimpse_exclude)
64         echo .svn > ${.CURDIR}/.glimpse_exclude
65         echo /compile/ >> ${.CURDIR}/.glimpse_exclude
66 .endif
67         cd ${.CURDIR}; glimpseindex -H . -B -f -o .
68
69 glimpse-clean:
70         cd ${.CURDIR}; rm -f .glimpse_*
71
72 .if !(make(cscope) || make(cscope-clean) || make(cscope-hook) || make(TAGS) || \
73     make(glimpse) || make(glimpse-clean))
74 .include <src.opts.mk>
75
76 # The boot loader
77 .if ${MK_BOOT} != "no"
78 SUBDIR= boot
79 .endif
80
81 # Loadable kernel modules
82
83 .if defined(MODULES_WITH_WORLD)
84 SUBDIR+=modules
85 .endif
86
87 .include <bsd.subdir.mk>
88 .endif