File: buildrules

package info (click to toggle)
xfsprogs 6.18.0-1
  • links: PTS
  • area: main
  • in suites: sid
  • size: 11,304 kB
  • sloc: ansic: 167,330; sh: 4,604; makefile: 1,337; python: 835; cpp: 5
file content (151 lines) | stat: -rw-r--r-- 3,364 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 1999, 2001-2003 Silicon Graphics, Inc.  All Rights Reserved.
#
ifndef _BUILDRULES_INCLUDED_
_BUILDRULES_INCLUDED_ = 1

include $(TOPDIR)/include/builddefs

clean clobber : $(addsuffix -clean,$(SUBDIRS))
	@rm -f $(DIRT) .ltdep .dep .extradep
	@rm -fr $(DIRDIRT)
%-clean:
	@echo "Cleaning $*"
	$(Q)$(MAKE) $(MAKEOPTS) -C $* clean

ifdef HDR_SUBDIRS
.PHONY: .xfs

headers: $(addsuffix -headers, $(HDR_SUBDIRS))

%-headers: .xfs
	@echo "   [HEADERS] $*"
	$(Q)$(MAKE) $(MAKEOPTS) -C $* NODEP=1 install-headers

.xfs:
	@mkdir -p include/xfs
endif

# Never blow away subdirs
ifdef SUBDIRS
.PRECIOUS: $(SUBDIRS)
.PHONY: $(SUBDIRS)

$(SUBDIRS):
	@echo "Building $@"
	$(Q)$(MAKE) $(MAKEOPTS) -q -C $@ || $(MAKE) $(MAKEOPTS) -C $@
endif

ifndef CHECK_CMD
CHECK_CMD = @true
endif

#
# Standard targets
#

ifeq ($(CHECKSRC),2)

# Check every .c file with sparse CHECK_CMD, do not call compiler
$(LTCOMMAND) $(LTLIBRARY) : $(SUBDIRS) $(OBJECTS)
.PHONY: $(LTCOMMAND) $(LTLIBRARY)

%.lo %.o : %.c FORCE
	@echo "    [CHECK]  $<"
	$(Q)$(CHECK_CMD) $(CFLAGS) $<

FORCE:

else
# Regular build, possibly calling sparse CHECK_CMD as well

ifdef LTCOMMAND
$(LTCOMMAND) : $(SUBDIRS) $(OBJECTS) $(LTDEPENDENCIES)
	@echo "    [LD]     $@"
	$(Q)$(LTLINK) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS)
endif

ifdef LTLIBRARY
$(LTLIBRARY) : $(SUBDIRS) $(LTOBJECTS)
	@echo "    [LD]     $@"
	$(Q)$(LTLINK) $(LTLDFLAGS) -o $(LTLIBRARY) $(LTOBJECTS) $(LTLIBS)

%.lo: %.c
	@echo "    [CC]     $@"
	$(Q)$(LTCOMPILE) -c $<
	$(Q)$(CHECK_CMD) $(CFLAGS) $<
else

%.o: %.c
	@echo "    [CC]     $@"
	$(Q)$(CC) $(CFLAGS) -c $<
	$(Q)$(CHECK_CMD) $(CFLAGS) $<

endif
endif

ifdef POTHEAD
XGETTEXT_FLAGS=\
	--keyword=_ \
	--keyword=N_ \
	--package-name=$(PKG_NAME) \
	--package-version=$(PKG_VERSION) \
	--msgid-bugs-address=$(PKG_BUGREPORT)

$(POTHEAD): $(XGETTEXTFILES)
	@echo "    [GETTXT] $@"
	$(Q)$(XGETTEXT) $(XGETTEXT_FLAGS) -o $@ $(XGETTEXTFILES)

# Update translations
update-po: $(POTHEAD) $(wildcard $(TOPDIR)/po/*.po)
	catalogs="$(wildcard $(TOPDIR)/po/*.po)"; \
	for cat in $$catalogs; do \
	  lang=`basename $$cat .po`; \
	  mv $$lang.po $$lang.old.po; \
	  echo "$$lang:"; \
	  if $(MSGMERGE) $$lang.old.po $(POTHEAD) -o $$lang.po; then \
	    rm -f $$lang.old.po; \
	  else \
	    echo "msgmerge for $$lang failed!"; \
	    rm -f $$lang.po; \
	    mv $$lang.old.po $$lang.po; \
	  fi; \
	done

%.mo: %.po
	@echo "    [MSGFMT] $@"
	$(Q)$(MSGFMT) -c --statistics -o $@ $<
endif

endif # _BUILDRULES_INCLUDED_

$(_FORCE):

# dependency build is automatic, relies on gcc -MM to generate.
#
# This is a bit messy. It regenerates the dependencies on each build so
# that we catch files being added and removed. There are other ways of doing
# this (e.g. per-file dependency files) but that requires more in-depth changes
# to the build system. Compile time is not an issue for us, so the
# rebuild on every make invocation isn't a problem we need to care about. Just
# do it silently so it doesn't make the build unnecessarily noisy.

.PHONY : depend ltdepend

MAKEDEP := $(MAKEDEPEND) $(CFLAGS)

ltdepend: rmltdep .ltdep

rmltdep:
	$(Q)rm -f .ltdep

.ltdep: $(CFILES) $(HFILES)
	$(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .ltdep

depend: rmdep .dep

rmdep:
	$(Q)rm -f .dep

.dep: $(CFILES) $(HFILES)
	$(Q)$(MAKEDEP) $(CFILES) > .dep