Whamcloud - gitweb
landing b_cmobd_merge on HEAD
[fs/lustre-release.git] / lustre / autoMakefile.am
1 # Copyright (C) 2001  Cluster File Systems, Inc.
2 #
3 # This code is issued under the GNU General Public License.
4 # See the file COPYING in this distribution
5
6 AUTOMAKE_OPTIONS = foreign
7
8 SUBDIRS = . include portals ldiskfs lvfs obdclass lov ldlm ptlrpc      \
9         obdecho osc mdc mds obdfilter ost llite cobd ptlbd snapfs smfs cmobd \
10         liblustre doc utils tests conf scripts
11
12 EXTRA_DIST = BUGS FDL Rules.in kernel_patches kernel-tests/Makefile    \
13         README.kernel-source
14
15 # these empty rules are needed so that automake doesn't add its own
16 # recursive rules
17 etags-recursive:
18
19 ctags-recursive:
20
21 tags-recursive:
22
23 TAGS:
24
25 tags:
26         rm -f $(top_srcdir)/TAGS
27         ETAGSF=`etags --version | grep -iq exuberant && \
28                 echo "-I __initdata,__exitdata,EXPORT_SYMBOL"`; \
29         find $(top_srcdir) -name '*.[hc]' | xargs etags $$ETAGSF -a
30
31         rm -f $(top_srcdir)/tags
32         CTAGSF=`ctags --version | grep -iq exuberant && \
33                 echo "-I __initdata,__exitdata,EXPORT_SYMBOL"`; \
34         find $(top_srcdir) -name '*.[hc]' | xargs ctags $$CTAGSF -a
35
36 if MODULES
37 all-am: modules
38
39 if !LINUX25
40 DEP = dep
41 dep: .depend
42
43 .depend:
44         $(MAKE) $(ARCH_UM) -C $(LINUX) -f $(PWD)/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$(LINUX_CONFIG) -o scripts -o include/config/MARKER _sfdep_$(PWD) _FASTDEP_ALL_SUB_DIRS="$(PWD)"
45 endif
46
47 if LDISKFS
48 LDISKFS = ldiskfs-sources
49 ldiskfs-sources:
50         $(MAKE) sources -C ldiskfs
51 endif
52
53 lvfs-sources:
54         $(MAKE) sources -C lvfs
55
56 modules: lustre_build_version $(DEP) $(LDISKFS) lvfs-sources
57         $(MAKE) $(ARCH_UM) -C $(LINUX) -f $(PWD)/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$(LINUX_CONFIG) SUBDIRS=$(PWD) -o tmp_include_depends -o scripts -o include/config/MARKER $@
58
59 lustre_build_version:
60         perl $(top_builddir)/scripts/version_tag.pl $(top_srcdir) $(top_builddir) > tmpver
61         echo "#define LUSTRE_RELEASE @RELEASE@" >> tmpver
62         cmp -s $(top_builddir)/include/linux/lustre_build_version.h tmpver \
63                 2> /dev/null &&                                            \
64                 $(RM) tmpver ||                                            \
65                 mv tmpver $(top_builddir)/include/linux/lustre_build_version.h
66
67 endif # MODULES
68
69 dist-hook:
70         find $(distdir) -name .deps | xargs rm -rf
71         find $(distdir) -name CVS | xargs rm -rf
72
73 rpms: dist Makefile
74         rpmbuild -ta $(distdir).tar.gz
75
76 CSTK=/tmp/checkstack
77 CSTKO=/tmp/checkstack.orig
78
79 checkstack:
80         [ -f ${CSTK} -a ! -s ${CSTKO} ] && mv ${CSTK} ${CSTKO} || true
81         for i in ${SUBDIRS} portals/knals/*; do                              \
82                 MOD=$$i/`basename $$i`.o;                                    \
83                 [ -f $$MOD ] && objdump -d $$MOD | perl tests/checkstack.pl; \
84         done | sort -nr > ${CSTK}
85         [ -f ${CSTKO} ] && ! diff -u ${CSTKO} ${CSTK} || head -30 ${CSTK}
86
87 checkstack-update:
88         [ -f ${CSTK} ] && mv ${CSTK} ${CSTKO}
89
90 checkstack-clean:
91         rm -f ${CSTK} ${CSTKO}