xfstests: Automatic build dependency calculations
[xfstests-dev.git] / include / buildrules
1 #
2 # Copyright (c) 1999, 2001-2003 Silicon Graphics, Inc.  All Rights Reserved.
3 #
4 ifndef _BUILDRULES_INCLUDED_
5 _BUILDRULES_INCLUDED_ = 1
6
7 include $(TOPDIR)/include/builddefs
8
9 clean clobber : $(addsuffix -clean,$(SUBDIRS))
10         $(Q)rm -f $(DIRT)
11         $(Q)rm -fr .libs .dep
12
13 %-clean:
14         @echo "Cleaning $*"
15         $(Q)$(MAKE) $(MAKEOPTS) -q -C $* clean || $(MAKE) $(MAKEOPTS) -C $* clean
16
17 # Never blow away subdirs
18 ifdef SUBDIRS
19 .PRECIOUS: $(SUBDIRS)
20 .PHONY: $(SUBDIRS)
21
22 $(SUBDIRS):
23         @echo "Building $@"
24         $(Q)$(MAKE) $(MAKEOPTS) -q -C $@ || $(MAKE) $(MAKEOPTS) -C $@
25 endif
26
27 #
28 # Standard targets
29 #
30
31 ifdef LTCOMMAND
32 $(LTCOMMAND) : $(SUBDIRS) $(OBJECTS) $(LTDEPENDENCIES)
33         @echo "    [LD] $*"
34         $(Q)$(LTLINK) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS)
35 endif
36
37 ifdef LTLIBRARY
38 $(LTLIBRARY) : $(SUBDIRS) $(LTOBJECTS)
39         @echo "    [LD] $*"
40         $(Q)$(LTLINK) $(LTLDFLAGS) -o $(LTLIBRARY) $(LTOBJECTS) $(LTLIBS)
41
42 %.lo: %.c
43         @echo "    [CC] $@"
44         $(Q)$(LTCOMPILE) -c $<
45 else
46 %.o: %.c
47         @echo "    [CC] $@"
48         $(Q)$(CC) $(CFLAGS) -c $<
49
50 endif
51
52 ifdef POTHEAD
53 %.pot: $(XGETTEXTFILES)
54         $(XGETTEXT) --language=C --keyword=_ -o $@ $(XGETTEXTFILES)
55
56 # Generate temp .po files, to check whether translations need updating.
57 # Not by default, due to gettext output differences between versions.
58 %.po: $(POTHEAD)
59 #       $(MSGMERGE) -o $@.tmpo $@ $(POTHEAD)
60 #       if ! diff $@.tmpo $@ >/dev/null; then echo "$@ dated, see $@.tmpo"; fi
61
62 %.mo: %.po
63         $(MSGFMT) -o $@ $<
64 endif
65
66 source :
67         $(SOURCE_MAKERULE)
68
69 endif # _BUILDRULES_INCLUDED_
70
71 $(_FORCE):
72
73 # dependency build is automatic, relies on gcc -MM to generate.
74 .PHONY : depend ltdepend
75
76 MAKEDEP := $(MAKEDEPEND) $(CFLAGS)
77
78 ltdepend: $(CFILES) $(HFILES)
79         @echo "    [DEP]"
80         $(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .dep
81
82 depend: $(CFILES) $(HFILES)
83         @echo "    [DEP]"
84         $(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1,' > .dep
85