]>
Commit | Line | Data |
---|---|---|
1 | # @configure_input@ | |
2 | # | |
3 | # Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. | |
4 | # Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. | |
5 | # | |
6 | # This file is part of LVM2. | |
7 | # | |
8 | # This copyrighted material is made available to anyone wishing to use, | |
9 | # modify, copy, or redistribute it subject to the terms and conditions | |
10 | # of the GNU General Public License v.2. | |
11 | # | |
12 | # You should have received a copy of the GNU General Public License | |
13 | # along with this program; if not, write to the Free Software Foundation, | |
14 | # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
15 | ||
16 | SHELL = /bin/sh | |
17 | ||
18 | @SET_MAKE@ | |
19 | ||
20 | CC ?= @CC@ | |
21 | RANLIB = @RANLIB@ | |
22 | INSTALL = @INSTALL@ | |
23 | MKDIR_P = @MKDIR_P@ | |
24 | MSGFMT = @MSGFMT@ | |
25 | LCOV = @LCOV@ | |
26 | GENHTML = @GENHTML@ | |
27 | LN_S = @LN_S@ | |
28 | SED = @SED@ | |
29 | CFLOW_CMD = @CFLOW_CMD@ | |
30 | AWK = @AWK@ | |
31 | ||
32 | LIBS = @LIBS@ | |
33 | # Extra libraries always linked with static binaries | |
34 | STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) | |
35 | DEFS += @DEFS@ | |
36 | CFLAGS += @CFLAGS@ | |
37 | CLDFLAGS += @CLDFLAGS@ | |
38 | ELDFLAGS += @ELDFLAGS@ | |
39 | LDDEPS += @LDDEPS@ | |
40 | LDFLAGS += @LDFLAGS@ | |
41 | LIB_SUFFIX = @LIB_SUFFIX@ | |
42 | LVMINTERNAL_LIBS = -llvm-internal $(DAEMON_LIBS) $(UDEV_LIBS) $(DL_LIBS) | |
43 | DL_LIBS = @DL_LIBS@ | |
44 | PTHREAD_LIBS = @PTHREAD_LIBS@ | |
45 | READLINE_LIBS = @READLINE_LIBS@ | |
46 | SELINUX_LIBS = @SELINUX_LIBS@ | |
47 | UDEV_LIBS = @UDEV_LIBS@ | |
48 | TESTING = @TESTING@ | |
49 | ||
50 | # Setup directory variables | |
51 | prefix = @prefix@ | |
52 | exec_prefix = @exec_prefix@ | |
53 | udev_prefix = @udev_prefix@ | |
54 | sysconfdir = @sysconfdir@ | |
55 | bindir = $(DESTDIR)@bindir@ | |
56 | confdir = $(DESTDIR)@CONFDIR@/lvm | |
57 | includedir = $(DESTDIR)@includedir@ | |
58 | libdir = $(DESTDIR)@libdir@ | |
59 | usrlibdir = $(DESTDIR)@usrlibdir@ | |
60 | sbindir = $(DESTDIR)@sbindir@ | |
61 | usrsbindir = $(DESTDIR)@usrsbindir@ | |
62 | datarootdir = @datarootdir@ | |
63 | infodir = $(DESTDIR)@infodir@ | |
64 | mandir = $(DESTDIR)@mandir@ | |
65 | localedir = $(DESTDIR)@LOCALEDIR@ | |
66 | staticdir = $(DESTDIR)@STATICDIR@ | |
67 | udevdir = $(DESTDIR)@udevdir@ | |
68 | pkgconfigdir = $(usrlibdir)/pkgconfig | |
69 | initdir = $(DESTDIR)$(sysconfdir)/rc.d/init.d | |
70 | systemd_dir = $(DESTDIR)@systemdsystemunitdir@ | |
71 | tmpfiles_dir = $(DESTDIR)@tmpfilesdir@ | |
72 | ocf_scriptdir = $(DESTDIR)@OCFDIR@ | |
73 | ||
74 | USRLIB_RELPATH = $(shell echo $(abspath $(usrlibdir) $(libdir)) | \ | |
75 | $(AWK) -f $(top_srcdir)/scripts/relpath.awk) | |
76 | ||
77 | DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@ | |
78 | DEFAULT_ARCHIVE_DIR = $(DEFAULT_SYS_DIR)/@DEFAULT_ARCHIVE_SUBDIR@ | |
79 | DEFAULT_BACKUP_DIR = $(DEFAULT_SYS_DIR)/@DEFAULT_BACKUP_SUBDIR@ | |
80 | DEFAULT_CACHE_DIR = $(DEFAULT_SYS_DIR)/@DEFAULT_CACHE_SUBDIR@ | |
81 | DEFAULT_LOCK_DIR = @DEFAULT_LOCK_DIR@ | |
82 | DEFAULT_RUN_DIR = @DEFAULT_RUN_DIR@ | |
83 | ||
84 | # Setup vpath search paths for some suffixes | |
85 | vpath %.c $(srcdir) | |
86 | vpath %.in $(srcdir) | |
87 | vpath %.po $(srcdir) | |
88 | vpath %.exported_symbols $(srcdir) | |
89 | ||
90 | interface = @interface@ | |
91 | interfacebuilddir = $(top_builddir)/libdm/$(interface) | |
92 | ||
93 | # The number of jobs to run, if blank, defaults to the make standard | |
94 | ifndef MAKEFLAGS | |
95 | MAKEFLAGS = @JOBS@ | |
96 | endif | |
97 | ||
98 | # Handle installation of files | |
99 | ifeq ("@WRITE_INSTALL@", "yes") | |
100 | # leaving defaults | |
101 | M_INSTALL_SCRIPT = | |
102 | M_INSTALL_DATA = -m 644 | |
103 | else | |
104 | M_INSTALL_PROGRAM = -m 555 | |
105 | M_INSTALL_DATA = -m 444 | |
106 | endif | |
107 | INSTALL_PROGRAM = $(INSTALL) $(M_INSTALL_PROGRAM) $(STRIP) | |
108 | INSTALL_DATA = $(INSTALL) -p $(M_INSTALL_DATA) | |
109 | INSTALL_WDATA = $(INSTALL) -p -m 644 | |
110 | ||
111 | INSTALL_DIR = $(INSTALL) -m 755 -d | |
112 | INSTALL_ROOT_DIR = $(INSTALL) -m 700 -d | |
113 | INSTALL_ROOT_DATA = $(INSTALL) -m 600 | |
114 | INSTALL_SCRIPT = $(INSTALL) -p $(M_INSTALL_PROGRAM) | |
115 | ||
116 | .SUFFIXES: .c .d .o .so .a .po .pot .mo .dylib | |
117 | ||
118 | WFLAGS += -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings \ | |
119 | -Wmissing-prototypes -Wmissing-declarations -Wnested-externs \ | |
120 | -Winline -Wmissing-noreturn -Wformat-security -Wredundant-decls \ | |
121 | -Wpointer-arith | |
122 | ||
123 | #WFLAGS += -W -Wconversion -Wbad-function-cast -Wcast-qual | |
124 | #WFLAGS += -pedantic -std=gnu99 | |
125 | #DEFS += -DDEBUG_CRC32 | |
126 | ||
127 | CFLAGS += -fPIC @COPTIMISE_FLAG@ | |
128 | LDFLAGS += @COPTIMISE_FLAG@ | |
129 | ||
130 | ifeq ("@DEBUG@", "yes") | |
131 | CFLAGS += -g -fno-omit-frame-pointer | |
132 | DEFS += -DDEBUG | |
133 | # memory debugging is not thread-safe yet | |
134 | ifneq ("@DMEVENTD@", "yes") | |
135 | DEFS += -DDEBUG_MEM | |
136 | endif | |
137 | endif | |
138 | ||
139 | ifeq ("@INTL@", "yes") | |
140 | DEFS += -DINTL_PACKAGE=\"@INTL_PACKAGE@\" -DLOCALEDIR=\"@LOCALEDIR@\" | |
141 | endif | |
142 | ||
143 | LDFLAGS += -L$(top_builddir)/libdm -L$(top_builddir)/lib | |
144 | CLDFLAGS += -L$(top_builddir)/libdm -L$(top_builddir)/lib | |
145 | ||
146 | ifeq ("@BUILD_LVMETAD@", "yes") | |
147 | DAEMON_LIBS = -ldaemonclient | |
148 | LDFLAGS += -L$(top_builddir)/libdaemon/client | |
149 | CLDFLAGS += -L$(top_builddir)/libdaemon/client | |
150 | endif | |
151 | ||
152 | ifeq ("@DMEVENTD@", "yes") | |
153 | LDFLAGS += -L$(top_builddir)/daemons/dmeventd | |
154 | CLDFLAGS += -L$(top_builddir)/daemons/dmeventd | |
155 | endif | |
156 | ||
157 | ifeq ("@DM_COMPAT@", "yes") | |
158 | DEFS += -DDM_COMPAT | |
159 | endif | |
160 | ||
161 | ifeq ("@DM_IOCTLS@", "yes") | |
162 | DEFS += -DDM_IOCTLS | |
163 | endif | |
164 | ||
165 | # Combination of DEBUG_POOL and DEBUG_ENFORCE_POOL_LOCKING is not suppored. | |
166 | #DEFS += -DDEBUG_POOL | |
167 | # Default pool locking is using the crc checksum. With mprotect memory | |
168 | # enforcing compilation faulty memory write could be easily found. | |
169 | #DEFS += -DDEBUG_ENFORCE_POOL_LOCKING | |
170 | #DEFS += -DBOUNDS_CHECK | |
171 | ||
172 | #CFLAGS += -pg | |
173 | #LDFLAGS += -pg | |
174 | ||
175 | STRIP= | |
176 | #STRIP = -s | |
177 | ||
178 | LVM_VERSION := $(shell cat $(top_srcdir)/VERSION) | |
179 | ||
180 | LIB_VERSION_LVM := $(shell $(AWK) -F '.' '{printf "%s.%s",$$1,$$2}' $(top_srcdir)/VERSION) | |
181 | ||
182 | LIB_VERSION_DM := $(shell $(AWK) -F '.' '{printf "%s.%s",$$1,$$2}' $(top_srcdir)/VERSION_DM) | |
183 | ||
184 | LIB_VERSION_APP := $(shell $(AWK) -F '[(). ]' '{printf "%s.%s",$$1,$$4}' $(top_srcdir)/VERSION) | |
185 | ||
186 | INCLUDES += -I. -I$(top_builddir)/include | |
187 | ||
188 | INC_LNS = $(top_builddir)/include/.symlinks_created | |
189 | ||
190 | DEPS = $(top_builddir)/make.tmpl $(top_srcdir)/VERSION \ | |
191 | $(top_builddir)/Makefile $(INC_LNS) | |
192 | ||
193 | OBJECTS = $(SOURCES:%.c=%.o) | |
194 | POTFILES = $(SOURCES:%.c=%.pot) | |
195 | ||
196 | .PHONY: all pofile distclean clean cleandir cflow device-mapper | |
197 | .PHONY: verity install_verity $(SUBDIRS.install_verity) | |
198 | .PHONY: install install_cluster install_device-mapper install_lvm2 | |
199 | .PHONY: install_lib_shared install_dm_plugin install_lvm2_plugin | |
200 | .PHONY: install_ocf help | |
201 | .PHONY: $(SUBDIRS) $(SUBDIRS.install) $(SUBDIRS.clean) $(SUBDIRS.distclean) | |
202 | .PHONY: $(SUBDIRS.pofile) $(SUBDIRS.install_cluster) $(SUBDIRS.cflow) | |
203 | .PHONY: $(SUBDIRS.device-mapper) $(SUBDIRS.install-device-mapper) | |
204 | ||
205 | SUBDIRS.device-mapper := $(SUBDIRS:=.device-mapper) | |
206 | SUBDIRS.install := $(SUBDIRS:=.install) | |
207 | SUBDIRS.install_cluster := $(SUBDIRS:=.install_cluster) | |
208 | SUBDIRS.install_device-mapper := $(SUBDIRS:=.install_device-mapper) | |
209 | SUBDIRS.install_lvm2 := $(SUBDIRS:=.install_lvm2) | |
210 | SUBDIRS.install_ocf := $(SUBDIRS:=.install_ocf) | |
211 | SUBDIRS.install_verity := $(SUBDIRS:=.install_verity) | |
212 | SUBDIRS.pofile := $(SUBDIRS:=.pofile) | |
213 | SUBDIRS.cflow := $(SUBDIRS:=.cflow) | |
214 | SUBDIRS.clean := $(SUBDIRS:=.clean) | |
215 | SUBDIRS.distclean := $(SUBDIRS:=.distclean) | |
216 | ||
217 | TARGETS += $(LIB_SHARED) $(LIB_STATIC) | |
218 | ||
219 | all: $(SUBDIRS) $(TARGETS) | |
220 | ||
221 | install: all $(SUBDIRS.install) | |
222 | install_cluster: all $(SUBDIRS.install_cluster) | |
223 | install_device-mapper: $(SUBDIRS.install_device-mapper) | |
224 | install_lvm2: $(SUBDIRS.install_lvm2) | |
225 | install_ocf: $(SUBDIRS.install_ocf) | |
226 | cflow: $(SUBDIRS.cflow) | |
227 | ||
228 | $(SUBDIRS): $(SUBDIRS.device-mapper) | |
229 | $(MAKE) -C $@ | |
230 | ||
231 | $(SUBDIRS.device-mapper): | |
232 | $(MAKE) -C $(@:.device-mapper=) device-mapper | |
233 | ||
234 | $(SUBDIRS.install): $(SUBDIRS) | |
235 | $(MAKE) -C $(@:.install=) install | |
236 | ||
237 | $(SUBDIRS.install_cluster): $(SUBDIRS) | |
238 | $(MAKE) -C $(@:.install_cluster=) install_cluster | |
239 | ||
240 | $(SUBDIRS.install_device-mapper): device-mapper | |
241 | $(MAKE) -C $(@:.install_device-mapper=) install_device-mapper | |
242 | ||
243 | $(SUBDIRS.install_lvm2): $(SUBDIRS) | |
244 | $(MAKE) -C $(@:.install_lvm2=) install_lvm2 | |
245 | ||
246 | $(SUBDIRS.install_ocf): | |
247 | $(MAKE) -C $(@:.install_ocf=) install_ocf | |
248 | ||
249 | $(SUBDIRS.clean): | |
250 | -$(MAKE) -C $(@:.clean=) clean | |
251 | ||
252 | $(SUBDIRS.distclean): | |
253 | -$(MAKE) -C $(@:.distclean=) distclean | |
254 | ||
255 | $(SUBDIRS.cflow): | |
256 | $(MAKE) -C $(@:.cflow=) cflow | |
257 | ||
258 | ifeq ("@INTL@", "yes") | |
259 | pofile: $(SUBDIRS.pofile) $(POTFILES) | |
260 | ||
261 | $(SUBDIRS.pofile): | |
262 | $(MAKE) -C $(@:.pofile=) pofile | |
263 | endif | |
264 | ||
265 | ifneq ("$(CFLOW_LIST_TARGET)", "") | |
266 | CLEAN_CFLOW += $(CFLOW_LIST_TARGET) | |
267 | $(CFLOW_LIST_TARGET): $(CFLOW_LIST) | |
268 | echo "CFLOW_SOURCES += $(addprefix \ | |
269 | \$$(top_srcdir)$(subst $(top_srcdir),,$(srcdir))/, $(CFLOW_LIST))" > $@ | |
270 | cflow: $(CFLOW_LIST_TARGET) | |
271 | endif | |
272 | ||
273 | ifneq ("$(CFLOW_TARGET)", "") | |
274 | CLEAN_CFLOW += \ | |
275 | $(CFLOW_TARGET).cflow \ | |
276 | $(CFLOW_TARGET).xref \ | |
277 | $(CFLOW_TARGET).tree \ | |
278 | $(CFLOW_TARGET).rtree \ | |
279 | $(CFLOW_TARGET).rxref | |
280 | ||
281 | ifneq ("$(CFLOW_CMD)", "") | |
282 | CFLOW_FLAGS +=\ | |
283 | --cpp="$(CC) -E" \ | |
284 | --symbol _ISbit:wrapper \ | |
285 | --symbol __attribute__:wrapper \ | |
286 | --symbol __const__:wrapper \ | |
287 | --symbol __const:type \ | |
288 | --symbol __restrict:type \ | |
289 | --symbol __extension__:wrapper \ | |
290 | --symbol __nonnull:wrapper \ | |
291 | --symbol __nothrow__:wrapper \ | |
292 | --symbol __pure__:wrapper \ | |
293 | --symbol __REDIRECT:wrapper \ | |
294 | --symbol __REDIRECT_NTH:wrapper \ | |
295 | --symbol __wur:wrapper \ | |
296 | -I$(top_srcdir)/libdm \ | |
297 | -I$(top_srcdir)/libdm/ioctl \ | |
298 | -I$(top_srcdir)/daemons/dmeventd/plugins/lvm2/ \ | |
299 | $(INCLUDES) $(DEFS) | |
300 | ||
301 | $(CFLOW_TARGET).cflow: $(CFLOW_SOURCES) | |
302 | $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) $(CFLOW_SOURCES) | |
303 | $(CFLOW_TARGET).rxref: $(CFLOW_SOURCES) | |
304 | $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) -r --omit-arguments $(CFLOW_SOURCES) | |
305 | $(CFLOW_TARGET).tree: $(CFLOW_SOURCES) | |
306 | $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) --omit-arguments -T -b $(CFLOW_SOURCES) | |
307 | $(CFLOW_TARGET).xref: $(CFLOW_SOURCES) | |
308 | $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) --omit-arguments -x $(CFLOW_SOURCES) | |
309 | #$(CFLOW_TARGET).rtree: $(CFLOW_SOURCES) | |
310 | # $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) -r --omit-arguments -T -b $(CFLOW_SOURCES) | |
311 | cflow: $(CFLOW_TARGET).cflow $(CFLOW_TARGET).tree $(CFLOW_TARGET).rxref $(CFLOW_TARGET).xref | |
312 | #$(CFLOW_TARGET).rtree | |
313 | endif | |
314 | endif | |
315 | ||
316 | $(TARGETS): $(OBJECTS) | |
317 | ||
318 | %.o: %.c | |
319 | $(CC) -c $(INCLUDES) $(DEFS) $(WFLAGS) $(CFLAGS) $< -o $@ | |
320 | ||
321 | %.pot: %.c Makefile | |
322 | $(CC) -E $(INCLUDES) -include $(top_srcdir)/include/pogen.h \ | |
323 | $(DEFS) $(WFLAGS) $(CFLAGS) $< > $@ | |
324 | ||
325 | %.so: %.o | |
326 | $(CC) -c $(CFLAGS) $(CLDFLAGS) $< $(LIBS) -o $@ | |
327 | ||
328 | ifneq (,$(LIB_SHARED)) | |
329 | ||
330 | TARGETS += $(LIB_SHARED).$(LIB_VERSION) | |
331 | $(LIB_SHARED).$(LIB_VERSION): $(OBJECTS) $(LDDEPS) | |
332 | ifeq ("@LIB_SUFFIX@","so") | |
333 | $(CC) -shared -Wl,-soname,$(notdir $@) \ | |
334 | $(CFLAGS) $(CLDFLAGS) $(OBJECTS) $(LIBS) -o $@ | |
335 | endif | |
336 | ifeq ("@LIB_SUFFIX@","dylib") | |
337 | $(CC) -dynamiclib -dylib_current_version,$(LIB_VERSION) \ | |
338 | $(CFLAGS) $(CLDFLAGS) $(OBJECTS) $(LIBS) -o $@ | |
339 | endif | |
340 | ||
341 | $(LIB_SHARED): $(LIB_SHARED).$(LIB_VERSION) | |
342 | $(LN_S) -f $(<F) $@ | |
343 | ||
344 | install_lib_shared: $(LIB_SHARED) | |
345 | $(INSTALL_PROGRAM) -D $< $(libdir)/$(<F).$(LIB_VERSION) | |
346 | $(INSTALL_DIR) $(usrlibdir) | |
347 | $(LN_S) -f $(USRLIB_RELPATH)$(<F).$(LIB_VERSION) $(usrlibdir)/$(<F) | |
348 | ||
349 | # FIXME: plugins are installed to subdirs | |
350 | # and for compatibility links in libdir are created | |
351 | # when the code is fixed links could be removed. | |
352 | install_dm_plugin: $(LIB_SHARED) | |
353 | $(INSTALL_PROGRAM) -D $< $(libdir)/device-mapper/$(<F) | |
354 | $(LN_S) -f device-mapper/$(<F) $(libdir)/$(<F) | |
355 | ||
356 | install_lvm2_plugin: $(LIB_SHARED) | |
357 | $(INSTALL_PROGRAM) -D $< $(libdir)/lvm2/$(<F) | |
358 | $(LN_S) -f lvm2/$(<F) $(libdir)/$(<F) | |
359 | $(LN_S) -f $(<F) $(libdir)/$(<F).$(LIB_VERSION) | |
360 | endif | |
361 | ||
362 | $(LIB_STATIC): $(OBJECTS) | |
363 | $(RM) $@ | |
364 | $(AR) rs $@ $(OBJECTS) | |
365 | ||
366 | %.d: %.c | |
367 | $(MKDIR_P) $(dir $@); \ | |
368 | set -e; \ | |
369 | FILE=`echo $@ | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \ | |
370 | DEPS=`echo $(DEPS) | sed -e 's/\\//\\\\\\//g'`; \ | |
371 | $(CC) -MM $(INCLUDES) $(DEFS) -o $@ $<; \ | |
372 | sed -i "s/\(.*\)\.o[ :]*/$$FILE.o $$FILE.d $$FILE.pot: $$DEPS /g" $@; \ | |
373 | [ -s $@ ] || $(RM) $@ | |
374 | ||
375 | %.mo: %.po | |
376 | $(MSGFMT) -o $@ $< | |
377 | ||
378 | cleandir: | |
379 | $(RM) $(OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(CLEAN_CFLOW) $(LDDEPS) \ | |
380 | $(POTFILES) $(SOURCES:%.c=%.d) $(SOURCES:%.c=%.gcno) $(SOURCES:%.c=%.gcda) \ | |
381 | $(SOURCES2:%.c=%.o) $(SOURCES2:%.c=%.d) $(SOURCES2:%.c=%.gcno) $(SOURCES2:%.c=%.gcda) \ | |
382 | .exported_symbols_generated core | |
383 | ||
384 | clean: $(SUBDIRS.clean) cleandir | |
385 | ||
386 | distclean: cleandir $(SUBDIRS.distclean) | |
387 | test -z "$(DISTCLEAN_DIRS)" || $(RM) -r $(DISTCLEAN_DIRS) | |
388 | $(RM) $(DISTCLEAN_TARGETS) Makefile | |
389 | ||
390 | .exported_symbols_generated: $(EXPORTED_HEADER) .exported_symbols | |
391 | set -e; \ | |
392 | ( cat $(srcdir)/.exported_symbols; \ | |
393 | if test x$(EXPORTED_HEADER) != x; then \ | |
394 | $(CC) -E -P $(INCLUDES) $(DEFS) $(EXPORTED_HEADER) | \ | |
395 | $(SED) -ne "/^typedef|}/!s/.*[ \*]\(\$(EXPORTED_FN_PREFIX)_[a-z0-9_]*\)(.*/\1/p"; \ | |
396 | fi \ | |
397 | ) > $@ | |
398 | ||
399 | .export.sym: .exported_symbols_generated | |
400 | set -e; (echo "Base {"; echo " global:"; \ | |
401 | sed "s/^/ /;s/$$/;/" < $<; \ | |
402 | echo " local:"; echo " *;"; echo "};") > $@ | |
403 | ||
404 | ifeq (,$(findstring $(MAKECMDGOALS),cscope.out cflow clean distclean lcov \ | |
405 | help check check_local check_cluster check_lvmetad)) | |
406 | ifdef SOURCES | |
407 | -include $(SOURCES:.c=.d) | |
408 | endif | |
409 | ifdef SOURCES2 | |
410 | -include $(SOURCES2:.c=.d) | |
411 | endif | |
412 | endif |