]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blame - include/buildrules
xfsprogs: Automatic build dependency calculations
[thirdparty/xfsprogs-dev.git] / include / buildrules
CommitLineData
2bd0ea18 1#
6e3140c7 2# Copyright (c) 1999, 2001-2003 Silicon Graphics, Inc. All Rights Reserved.
2bd0ea18
NS
3#
4ifndef _BUILDRULES_INCLUDED_
5_BUILDRULES_INCLUDED_ = 1
6
7include $(TOPDIR)/include/builddefs
8
2a519b73 9clean clobber : $(addsuffix -clean,$(SUBDIRS))
35714853
DC
10 @rm -f $(DIRT)
11 @rm -fr $(DIRDIRT)
2a519b73 12%-clean:
35714853
DC
13 @echo "Cleaning $*"
14 $(Q)$(MAKE) $(MAKEOPTS) -C $* clean
2bd0ea18
NS
15
16# Never blow away subdirs
17ifdef SUBDIRS
18.PRECIOUS: $(SUBDIRS)
2a519b73
BN
19.PHONY: $(SUBDIRS)
20
2bd0ea18 21$(SUBDIRS):
35714853
DC
22 @echo "Building $@"
23 $(Q)$(MAKE) $(MAKEOPTS) -q -C $@ || $(MAKE) $(MAKEOPTS) -C $@
2bd0ea18
NS
24endif
25
42e5b5df
NS
26source-link:
27 @test -z "$$DIR" && DIR="."; \
10a41599 28 for f in `echo $(SRCFILES) $(SUBDIRS) $(POTHEAD)`; do \
42e5b5df 29 if test -d $$f ; then \
10a41599 30 mkdir $(TOPDIR)/$(PKG_NAME)-$(PKG_VERSION)/$$DIR/$$f || exit $$?; \
42e5b5df
NS
31 $(MAKEF) DIR=$$DIR/$$f -C $$f $@ || exit $$?; \
32 else \
10a41599 33 ln $$f $(TOPDIR)/$(PKG_NAME)-$(PKG_VERSION)/$$DIR/$$f || exit $$?; \
42e5b5df
NS
34 fi; \
35 done
36
f937adac
NS
37#
38# Standard targets
39#
40
41ifdef LTCOMMAND
42$(LTCOMMAND) : $(SUBDIRS) $(OBJECTS) $(LTDEPENDENCIES)
35714853
DC
43 @echo " [LD] $@"
44 $(Q)$(LTLINK) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS)
f937adac
NS
45endif
46
47ifdef LTLIBRARY
48$(LTLIBRARY) : $(SUBDIRS) $(LTOBJECTS)
35714853
DC
49 @echo " [LD] $@"
50 $(Q)$(LTLINK) $(LTLDFLAGS) -o $(LTLIBRARY) $(LTOBJECTS) $(LTLIBS)
f937adac
NS
51
52%.lo: %.c
35714853
DC
53 @echo " [CC] $@"
54 $(Q)$(LTCOMPILE) -c $<
55else
56%.o: %.c
57 @echo " [CC] $@"
58 $(Q)$(CC) $(CFLAGS) -c $<
59
f937adac
NS
60endif
61
1b758ea9 62ifdef POTHEAD
a1f9bd42 63$(POTHEAD): $(XGETTEXTFILES)
35714853
DC
64 @echo " [GETTXT] $@"
65 $(Q)$(XGETTEXT) --language=C --keyword=_ --keyword=N_ -o $@ $(XGETTEXTFILES)
9440d84d 66
8c053393
AM
67# Update translations
68update-po: $(POTHEAD) $(wildcard $(TOPDIR)/po/*.po)
69 catalogs=$(wildcard $(TOPDIR)/po/*.po); \
70 for cat in $$catalogs; do \
71 lang=`basename $$cat .po`; \
72 mv $$lang.po $$lang.old.po; \
73 echo "$$lang:"; \
74 if $(MSGMERGE) $$lang.old.po $(POTHEAD) -o $$lang.po; then \
75 rm -f $$lang.old.po; \
76 else \
77 echo "msgmerge for $$lang failed!"; \
78 rm -f $$lang.po; \
79 mv $$lang.old.po $$lang.po; \
80 fi; \
81 done
9440d84d 82
638473d8 83%.mo: %.po
35714853
DC
84 @echo " [MSGFMT] $@"
85 $(Q)$(MSGFMT) -c --statistics -o $@ $<
9440d84d
NS
86endif
87
f937adac 88endif # _BUILDRULES_INCLUDED_
2bd0ea18
NS
89
90$(_FORCE):
91
d9320881
DC
92# dependency build is automatic, relies on gcc -MM to generate.
93.PHONY : depend ltdepend install-qa
2bd0ea18 94
d9320881 95MAKEDEP := $(MAKEDEPEND) $(CFLAGS)
82f8efc6 96
d9320881
DC
97ltdepend: $(CFILES) $(HFILES)
98 @echo " [DEP]"
99 $(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .dep
82f8efc6 100
d9320881
DC
101depend: $(CFILES) $(HFILES)
102 @echo " [DEP]"
103 $(Q)$(MAKEDEP) $(CFILES) > .dep
2bd0ea18 104
2a519b73 105
d9320881
DC
106# $(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1,' > .dep
107