Whamcloud - gitweb
04e635645b4ddaf531aae4abbda1c5e2ce3abdb8
[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 endif # MODULES
60
61 all-recursive: lustre_build_version
62
63 lustre_build_version:
64         perl $(top_builddir)/scripts/version_tag.pl $(top_srcdir) $(top_builddir) > tmpver
65         echo "#define LUSTRE_RELEASE @RELEASE@" >> tmpver
66         cmp -s $(top_builddir)/include/linux/lustre_build_version.h tmpver \
67                 2> /dev/null &&                                            \
68                 $(RM) tmpver ||                                            \
69                 mv tmpver $(top_builddir)/include/linux/lustre_build_version.h
70
71 dist-hook:
72         find $(distdir) -name .deps | xargs rm -rf
73         find $(distdir) -name CVS | xargs rm -rf
74
75 rpms: dist Makefile
76         rpmbuild -ta $(distdir).tar.gz
77
78 CSTK=/tmp/checkstack
79 CSTKO=/tmp/checkstack.orig
80
81 checkstack:
82         [ -f ${CSTK} -a ! -s ${CSTKO} ] && mv ${CSTK} ${CSTKO} || true
83         for i in ${SUBDIRS} portals/knals/*; do                              \
84                 MOD=$$i/`basename $$i`.o;                                    \
85                 [ -f $$MOD ] && objdump -d $$MOD | perl tests/checkstack.pl; \
86         done | sort -nr > ${CSTK}
87         [ -f ${CSTKO} ] && ! diff -u ${CSTKO} ${CSTK} || head -30 ${CSTK}
88
89 checkstack-update:
90         [ -f ${CSTK} ] && mv ${CSTK} ${CSTKO}
91
92 checkstack-clean:
93         rm -f ${CSTK} ${CSTKO}