]>
Commit | Line | Data |
---|---|---|
21a25172 AJ |
1 | # SPDX-License-Identifier: ISC |
2 | # SPDX-URL: https://spdx.org/licenses/ISC.html | |
505f945e | 3 | # |
21a25172 AJ |
4 | # Copyright (C) 2010-2012 William Pitcock <nenolod@dereferenced.org> |
5 | # Copyright (C) 2010-2013 Jilles Tjoelker <jilles@stack.nl> | |
6 | # Copyright (C) 2011 Yoshiki Yazawa <yaz@honeyplanet.jp> | |
7 | # Copyright (C) 2011 Stephen Bennett <spb@exherbo.org> | |
a67197d2 | 8 | # Copyright (C) 2018-2019 Aaron M. D. Jones <me@aaronmdjones.net> |
505f945e | 9 | # |
21a25172 | 10 | # Based on buildsys.mk: <https://git.nil.im/buildsys.git/> |
505f945e | 11 | # |
21a25172 AJ |
12 | # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 |
13 | # Jonathan Schleifer <js@heap.zone> | |
505f945e | 14 | # |
21a25172 AJ |
15 | # Permission to use, copy, modify, and/or distribute this software for any |
16 | # purpose with or without fee is hereby granted, provided that the above | |
17 | # copyright notice and this permission notice is present in all copies. | |
505f945e | 18 | # |
21a25172 AJ |
19 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
20 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
21 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
22 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | |
23 | # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
24 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
25 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
26 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
27 | # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
28 | # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
29 | # POSSIBILITY OF SUCH DAMAGE. | |
505f945e | 30 | |
d8159d55 | 31 | #V=1 |
df690163 | 32 | PACKAGE_NAME = @PACKAGE_NAME@ |
109cf8f3 | 33 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
df690163 | 34 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
c47ee7ea AJ |
35 | PACKAGE_STRING = @PACKAGE_STRING@ |
36 | PACKAGE_BUGREPORT ?= @PACKAGE_BUGREPORT@ | |
37 | PACKAGE_URL ?= @PACKAGE_URL@ | |
38 | VENDOR_STRING ?= @VENDOR_STRING@ | |
505f945e | 39 | AS = @AS@ |
e413c334 | 40 | CC = @CC@ |
505f945e | 41 | CXX = @CXX@ |
e413c334 | 42 | CPP = @CPP@ |
505f945e WP |
43 | DC = @DC@ |
44 | ERLC = @ERLC@ | |
45 | OBJC = @OBJC@ | |
46 | OBJCXX = @OBJCXX@ | |
47 | AR = @AR@ | |
c2d29773 | 48 | LD = @CC@ |
505f945e WP |
49 | RANLIB = @RANLIB@ |
50 | PYTHON = @PYTHON@ | |
51 | ASFLAGS = @ASFLAGS@ | |
e413c334 | 52 | CFLAGS = @CFLAGS@ |
505f945e | 53 | CXXFLAGS = @CXXFLAGS@ |
d19ec966 | 54 | CPPFLAGS = @CPPFLAGS@ |
505f945e WP |
55 | DFLAGS = @DFLAGS@ |
56 | ERLCFLAGS = @ERLCFLAGS@ | |
57 | OBJCFLAGS = @OBJCFLAGS@ | |
58 | OBJCXXFLAGS = @OBJCXXFLAGS@ | |
e413c334 WP |
59 | LDFLAGS = @LDFLAGS@ |
60 | LIBS = @LIBS@ | |
505f945e WP |
61 | PYTHON_FLAGS = @PYTHON_FLAGS@ |
62 | PROG_IMPLIB_NEEDED = @PROG_IMPLIB_NEEDED@ | |
63 | PROG_IMPLIB_LDFLAGS = @PROG_IMPLIB_LDFLAGS@ | |
e413c334 | 64 | PROG_SUFFIX = @EXEEXT@ |
e413c334 WP |
65 | LIB_CFLAGS = @LIB_CFLAGS@ |
66 | LIB_LDFLAGS = @LIB_LDFLAGS@ | |
67 | LIB_PREFIX = @LIB_PREFIX@ | |
68 | LIB_SUFFIX = @LIB_SUFFIX@ | |
e413c334 WP |
69 | PLUGIN_CFLAGS = @PLUGIN_CFLAGS@ |
70 | PLUGIN_LDFLAGS = @PLUGIN_LDFLAGS@ | |
71 | PLUGIN_SUFFIX = @PLUGIN_SUFFIX@ | |
e413c334 WP |
72 | INSTALL_LIB = @INSTALL_LIB@ |
73 | UNINSTALL_LIB = @UNINSTALL_LIB@ | |
74 | CLEAN_LIB = @CLEAN_LIB@ | |
75 | LN_S = @LN_S@ | |
7bd5e4be | 76 | MKDIR_P = mkdir -p |
e413c334 WP |
77 | INSTALL = @INSTALL@ |
78 | SHELL = @SHELL@ | |
505f945e | 79 | MSGFMT = @MSGFMT@ |
80774a27 WP |
80 | JAVAC = @JAVAC@ |
81 | JAVACFLAGS = @JAVACFLAGS@ | |
82 | JAR = @JAR@ | |
83 | WINDRES = @WINDRES@ | |
07899cf2 | 84 | prefix = @prefix@ |
e413c334 WP |
85 | exec_prefix = @exec_prefix@ |
86 | bindir = @bindir@ | |
87 | libdir = @libdir@ | |
109cf8f3 | 88 | plugindir ?= ${libdir}/${PACKAGE_TARNAME} |
e413c334 WP |
89 | datarootdir = @datarootdir@ |
90 | datadir = @datadir@ | |
91 | includedir = @includedir@ | |
109cf8f3 | 92 | includesubdir ?= ${PACKAGE_TARNAME} |
d1a10ef7 | 93 | localedir = @localedir@ |
109cf8f3 | 94 | localename ?= ${PACKAGE_TARNAME} |
e413c334 | 95 | mandir = @mandir@ |
505f945e WP |
96 | mansubdir ?= man1 |
97 | ||
80774a27 WP |
98 | OBJS1 = ${SRCS:.c=.o} |
99 | OBJS2 = ${OBJS1:.cc=.o} | |
100 | OBJS3 = ${OBJS2:.cxx=.o} | |
101 | OBJS4 = ${OBJS3:.d=.o} | |
102 | OBJS5 = ${OBJS4:.erl=.beam} | |
103 | OBJS6 = ${OBJS5:.java=.class} | |
104 | OBJS7 = ${OBJS6:.m=.o} | |
105 | OBJS8 = ${OBJS7:.mm=.o} | |
106 | OBJS9 = ${OBJS8:.py=.pyc} | |
107 | OBJS10 = ${OBJS9:.rc=.o} | |
108 | OBJS11 = ${OBJS10:.S=.o} | |
109 | OBJS += ${OBJS11:.xpm=.o} | |
110 | ||
111 | LIB_OBJS = ${OBJS:.o=.lib.o} | |
112 | PLUGIN_OBJS = ${OBJS:.o=.plugin.o} | |
442c6774 WP |
113 | |
114 | MO_FILES = ${LOCALES:.po=.mo} | |
0e92127b | 115 | DEPFLAGS = -MMD -MP |
505f945e WP |
116 | |
117 | .SILENT: | |
118 | .SUFFIXES: | |
0e92127b | 119 | .SUFFIXES: .beam .c .cc .class .cxx .d .erl .lib.o .java .mo .m .mm .mm.d .o .plugin.o .po .py .pyc .rc .S .xpm |
3c114948 | 120 | .PHONY: all subdirs ${SUBDIRS} pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales |
505f945e | 121 | |
3c114948 | 122 | all: subdirs depend ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales |
505f945e | 123 | |
22ebc80b WP |
124 | pre-recurse: |
125 | subdirs: pre-recurse ${SUBDIRS} | |
3c114948 WP |
126 | ${SUBDIRS}: |
127 | ${MAKE} -C $@ ${MFLAGS} | |
505f945e | 128 | |
0e92127b | 129 | depend: pre-depend |
fa3db6ee | 130 | pre-depend: |
505f945e | 131 | |
a76a2f89 WP |
132 | echo-cmd = $(if $($(QUIET)$(1)),$(info $(phase_$(1)): $($(QUIET)$(1)))) |
133 | ||
df690163 WP |
134 | ${PROG} ${PROG_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA} |
135 | LDOBJS="${OBJS} ${OBJS_EXTRA}"; \ | |
136 | ${LINK_STATUS}; \ | |
137 | if ${LD} -o $@ ${OBJS} ${OBJS_EXTRA} ${LDFLAGS} ${LIBS}; then \ | |
505f945e WP |
138 | ${LINK_OK}; \ |
139 | else \ | |
140 | ${LINK_FAILED}; \ | |
141 | fi | |
142 | ||
df690163 | 143 | ${JARFILE}: ${EXT_DEPS} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA} |
80774a27 WP |
144 | ${LINK_STATUS} |
145 | if test x"${JAR_MANIFEST}" != x""; then \ | |
df690163 | 146 | if ${JAR} cfm ${JARFILE} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA}; then \ |
80774a27 WP |
147 | ${LINK_OK}; \ |
148 | else \ | |
149 | ${LINK_FAILED}; \ | |
150 | fi \ | |
151 | else \ | |
df690163 | 152 | if ${JAR} cf ${JARFILE} ${OBJS} ${OBJS_EXTRA}; then \ |
80774a27 WP |
153 | ${LINK_OK}; \ |
154 | else \ | |
155 | ${LINK_FAILED}; \ | |
156 | fi \ | |
157 | fi | |
505f945e | 158 | |
df690163 WP |
159 | ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA} |
160 | LDOBJS="${LIB_OBJS} ${LIB_OBJS_EXTRA}"; \ | |
161 | ${LINK_STATUS}; \ | |
80774a27 WP |
162 | objs=""; \ |
163 | ars=""; \ | |
df690163 | 164 | for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \ |
80774a27 WP |
165 | case $$i in \ |
166 | *.a) \ | |
167 | ars="$$ars $$i" \ | |
168 | ;; \ | |
169 | *.o) \ | |
170 | objs="$$objs $$i" \ | |
171 | ;; \ | |
172 | esac \ | |
173 | done; \ | |
174 | for i in $$ars; do \ | |
175 | dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ | |
176 | rm -fr $$dir; \ | |
177 | mkdir -p $$dir; \ | |
178 | cd $$dir; \ | |
df690163 | 179 | ${AR} x ../$$i; \ |
80774a27 WP |
180 | for j in *.o; do \ |
181 | objs="$$objs $$dir/$$j"; \ | |
182 | done; \ | |
183 | cd ..; \ | |
184 | done; \ | |
110fddcc | 185 | if ${LD} -o $@ $$objs ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \ |
80774a27 WP |
186 | ${LINK_OK}; \ |
187 | else \ | |
188 | ${LINK_FAILED}; \ | |
80774a27 WP |
189 | fi; \ |
190 | for i in $$ars; do \ | |
191 | dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ | |
192 | rm -fr $$dir; \ | |
193 | done | |
194 | ||
195 | ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS} | |
df690163 WP |
196 | LDOBJS="${PLUGIN_OBJS}"; \ |
197 | ${LINK_STATUS}; \ | |
198 | objs=""; \ | |
199 | ars=""; \ | |
200 | for i in ${PLUGIN_OBJS}; do \ | |
201 | case $$i in \ | |
202 | *.a) \ | |
203 | ars="$$ars $$i" \ | |
204 | ;; \ | |
205 | *.o) \ | |
206 | objs="$$objs $$i" \ | |
207 | ;; \ | |
208 | esac \ | |
209 | done; \ | |
210 | for i in $$ars; do \ | |
211 | dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ | |
212 | rm -fr $$dir; \ | |
213 | mkdir -p $$dir; \ | |
214 | cd $$dir; \ | |
215 | ${AR} x ../$$i; \ | |
216 | for j in *.o; do \ | |
217 | objs="$$objs $$dir/$$j"; \ | |
218 | done; \ | |
219 | cd ..; \ | |
220 | done; \ | |
221 | if ${LD} -o $@ $$objs ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}; then \ | |
505f945e WP |
222 | ${LINK_OK}; \ |
223 | else \ | |
224 | ${LINK_FAILED}; \ | |
df690163 WP |
225 | fi; \ |
226 | for i in $$ars; do \ | |
227 | dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ | |
228 | rm -fr $$dir; \ | |
229 | done | |
505f945e | 230 | |
df690163 WP |
231 | ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA} |
232 | LDOBJS="${OBJS} ${OBJS_EXTRA}"; \ | |
233 | ${LINK_STATUS}; \ | |
234 | rm -f $@; \ | |
80774a27 WP |
235 | objs=""; \ |
236 | ars=""; \ | |
df690163 | 237 | for i in ${OBJS} ${OBJS_EXTRA}; do \ |
80774a27 WP |
238 | case $$i in \ |
239 | *.a) \ | |
240 | ars="$$ars $$i" \ | |
241 | ;; \ | |
242 | *.o) \ | |
243 | objs="$$objs $$i" \ | |
244 | ;; \ | |
245 | esac \ | |
246 | done; \ | |
247 | for i in $$ars; do \ | |
248 | dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ | |
249 | rm -fr $$dir; \ | |
250 | mkdir -p $$dir; \ | |
251 | cd $$dir; \ | |
df690163 | 252 | ${AR} x ../$$i; \ |
80774a27 WP |
253 | for j in *.o; do \ |
254 | objs="$$objs $$dir/$$j"; \ | |
255 | done; \ | |
256 | cd ..; \ | |
257 | done; \ | |
258 | if ${AR} cr $@ $$objs && ${RANLIB} $@; then \ | |
259 | ${LINK_OK}; \ | |
260 | else \ | |
261 | ${LINK_FAILED}; \ | |
262 | rm -f $@; \ | |
263 | fi; \ | |
264 | for i in $$ars; do \ | |
265 | dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ | |
266 | rm -fr $$dir; \ | |
267 | done | |
268 | ||
df690163 WP |
269 | ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA} |
270 | LDOBJS="${LIB_OBJS} ${LIB_OBJS_EXTRA}"; \ | |
271 | ${LINK_STATUS}; \ | |
80774a27 | 272 | rm -f $@ |
df690163 WP |
273 | objs=""; \ |
274 | ars=""; \ | |
275 | for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \ | |
276 | case $$i in \ | |
277 | *.a) \ | |
278 | ars="$$ars $$i" \ | |
279 | ;; \ | |
280 | *.o) \ | |
281 | objs="$$objs $$i" \ | |
282 | ;; \ | |
283 | esac \ | |
284 | done; \ | |
285 | for i in $$ars; do \ | |
286 | dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ | |
287 | rm -fr $$dir; \ | |
288 | mkdir -p $$dir; \ | |
289 | cd $$dir; \ | |
290 | ${AR} x ../$$i; \ | |
291 | for j in *.o; do \ | |
292 | objs="$$objs $$dir/$$j"; \ | |
293 | done; \ | |
294 | cd ..; \ | |
295 | done; \ | |
296 | if ${AR} cr $@ $$objs && ${RANLIB} $@; then \ | |
505f945e WP |
297 | ${LINK_OK}; \ |
298 | else \ | |
299 | ${LINK_FAILED}; \ | |
300 | rm -f $@; \ | |
df690163 WP |
301 | fi; \ |
302 | for i in $$ars; do \ | |
303 | dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ | |
304 | rm -fr $$dir; \ | |
305 | done | |
505f945e | 306 | |
442c6774 WP |
307 | locales: ${MO_FILES} |
308 | ||
a76a2f89 WP |
309 | phase_cmd_cc = CompileExe |
310 | quiet_cmd_cc = $@ | |
0e92127b | 311 | cmd_cc = ${CC} ${DEPFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $< |
a76a2f89 WP |
312 | |
313 | phase_cmd_cc_lib = CompileLib | |
314 | quiet_cmd_cc_lib = $@ | |
0e92127b | 315 | cmd_cc_lib = ${CC} ${DEPFLAGS} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $< |
a76a2f89 WP |
316 | |
317 | phase_cmd_cc_plugin = CompilePlugin | |
318 | quiet_cmd_cc_plugin = $@ | |
0e92127b | 319 | cmd_cc_plugin = ${CC} ${DEPFLAGS} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $< |
a76a2f89 | 320 | |
505f945e | 321 | .c.o: |
a76a2f89 WP |
322 | $(call echo-cmd,cmd_cc) |
323 | $(cmd_cc) | |
818e9695 | 324 | |
80774a27 | 325 | .c.lib.o: |
a76a2f89 WP |
326 | $(call echo-cmd,cmd_cc_lib) |
327 | $(cmd_cc_lib) | |
818e9695 | 328 | |
80774a27 | 329 | .c.plugin.o: |
a76a2f89 WP |
330 | $(call echo-cmd,cmd_cc_plugin) |
331 | $(cmd_cc_plugin) | |
332 | ||
333 | phase_cmd_cxx = CompileExe | |
334 | quiet_cmd_cxx = $@ | |
0e92127b | 335 | cmd_cxx = ${CXX} ${DEPFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $< |
a76a2f89 WP |
336 | |
337 | phase_cmd_cxx_lib = CompileLib | |
338 | quiet_cmd_cxx_lib = $@ | |
0e92127b | 339 | cmd_cxx_lib = ${CXX} ${DEPFLAGS} ${LIB_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $< |
a76a2f89 WP |
340 | |
341 | phase_cmd_cxx_plugin = CompilePlugin | |
342 | quiet_cmd_cxx_plugin = $@ | |
0e92127b | 343 | cmd_cxx_plugin = ${CXX} ${DEPFLAGS} ${PLUGIN_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $< |
505f945e WP |
344 | |
345 | .cc.o .cxx.o: | |
a76a2f89 WP |
346 | $(call echo-cmd,cmd_cxx) |
347 | $(cmd_cxx) | |
818e9695 | 348 | |
80774a27 | 349 | .cc.lib.o .cxx.lib.o: |
a76a2f89 WP |
350 | $(call echo-cmd,cmd_cxx_lib) |
351 | $(cmd_cxx_lib) | |
818e9695 | 352 | |
80774a27 | 353 | .cc.plugin.o .cxx.plugin.o: |
a76a2f89 WP |
354 | $(call echo-cmd,cmd_cxx_plugin) |
355 | $(cmd_cxx_plugin) | |
356 | ||
357 | phase_cmd_dc = CompileExe | |
358 | quiet_cmd_dc = $@ | |
359 | ||
360 | ifeq ($(basename ${DC}),dmd) | |
361 | cmd_dc = ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c -of$@ $< | |
362 | else | |
363 | cmd_dc = ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $< | |
364 | endif | |
505f945e WP |
365 | |
366 | .d.o: | |
a76a2f89 WP |
367 | $(call echo-cmd,cmd_dc) |
368 | $(cmd_dc) | |
369 | ||
370 | phase_cmd_erlc = CompileErlang | |
371 | quiet_cmd_erlc = $@ | |
372 | cmd_erlc = ${ERLC} ${ERLCFLAGS} -o $@ $< | |
505f945e WP |
373 | |
374 | .erl.beam: | |
a76a2f89 WP |
375 | $(call echo-cmd,cmd_erlc) |
376 | $(cmd_erlc) | |
377 | ||
378 | phase_cmd_javac = CompileJava | |
379 | quiet_cmd_javac = $@ | |
380 | cmd_javac = ${JAVAC} ${JAVACFLAGS} $< | |
505f945e | 381 | |
80774a27 | 382 | .java.class: |
a76a2f89 WP |
383 | $(call echo-cmd,cmd_javac) |
384 | $(cmd_javac) | |
385 | ||
386 | phase_cmd_objc = CompileExe | |
387 | quiet_cmd_objc = $@ | |
388 | cmd_objc = ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $< | |
389 | ||
390 | phase_cmd_objc_lib = CompileLib | |
391 | quiet_cmd_objc_lib = $@ | |
392 | cmd_objc_lib = ${OBJC} ${LIB_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $< | |
393 | ||
394 | phase_cmd_objc_plugin = CompilePlugin | |
395 | quiet_cmd_objc_plugin = $@ | |
396 | cmd_objc_plugin = ${OBJC} ${PLUGIN_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $< | |
80774a27 | 397 | |
505f945e | 398 | .m.o: |
a76a2f89 WP |
399 | $(call echo-cmd,cmd_objc) |
400 | $(cmd_objc) | |
818e9695 | 401 | |
80774a27 | 402 | .m.lib.o: |
a76a2f89 WP |
403 | $(call echo-cmd,cmd_objc_lib) |
404 | $(cmd_objc_lib) | |
818e9695 | 405 | |
80774a27 | 406 | .m.plugin.o: |
a76a2f89 WP |
407 | $(call echo-cmd,cmd_objc_plugin) |
408 | $(cmd_objc_plugin) | |
409 | ||
410 | phase_cmd_objcxx = CompileExe | |
411 | quiet_cmd_objcxx = $@ | |
412 | cmd_objcxx = ${OBJCXX} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $< | |
413 | ||
414 | phase_cmd_objcxx_lib = CompileLib | |
415 | quiet_cmd_objcxx_lib = $@ | |
416 | cmd_objcxx_lib = ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $< | |
417 | ||
418 | phase_cmd_objcxx_plugin = CompilePlugin | |
419 | quiet_cmd_objcxx_plugin = $@ | |
420 | cmd_objcxx_plugin = ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $< | |
505f945e WP |
421 | |
422 | .mm.o: | |
a76a2f89 WP |
423 | $(call echo-cmd,cmd_objcxx) |
424 | $(cmd_objcxx) | |
818e9695 | 425 | |
80774a27 | 426 | .mm.lib.o: |
a76a2f89 WP |
427 | $(call echo-cmd,cmd_objcxx_lib) |
428 | $(cmd_objcxx_lib) | |
818e9695 | 429 | |
80774a27 | 430 | .mm.plugin.o: |
a76a2f89 WP |
431 | $(call echo-cmd,cmd_objcxx_plugin) |
432 | $(cmd_objcxx_plugin) | |
433 | ||
434 | phase_cmd_msgfmt = CompileResource | |
435 | quiet_cmd_msgfmt = $@ | |
436 | cmd_msgfmt = ${MSGFMT} -c -o $@ $< | |
505f945e | 437 | |
442c6774 | 438 | .po.mo: |
a76a2f89 WP |
439 | $(call echo-cmd,cmd_msgfmt) |
440 | $(cmd_msgfmt) | |
441 | ||
442 | phase_cmd_pythonc = CompilePython | |
443 | quiet_cmd_pythonc = $@ | |
444 | cmd_pythonc = ${PYTHON} ${PYTHON_FLAGS} -c "import py_compile; py_compile.compile('$<')" | |
505f945e WP |
445 | |
446 | .py.pyc: | |
a76a2f89 WP |
447 | $(call echo-cmd,cmd_pythonc) |
448 | $(cmd_pythonc) | |
449 | ||
450 | phase_cmd_windres = CompileResource | |
451 | quiet_cmd_windres = $@ | |
452 | cmd_windres = ${WINDRES} ${CPPFLAGS} -J rc -O coff -o $@ $< | |
505f945e | 453 | |
80774a27 | 454 | .rc.o .rc.lib.o .rc.plugin.o: |
a76a2f89 WP |
455 | $(call echo-cmd,cmd_windres) |
456 | $(cmd_windres) | |
457 | ||
458 | phase_cmd_as = CompileExe | |
459 | quiet_cmd_as = $@ | |
460 | cmd_as = ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $< | |
461 | ||
462 | phase_cmd_as_lib = CompileLib | |
463 | quiet_cmd_as_lib = $@ | |
464 | cmd_as_lib = ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $< | |
465 | ||
466 | phase_cmd_as_plugin = CompilePlugin | |
467 | quiet_cmd_as_plugin = $@ | |
468 | cmd_as_plugin = ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $< | |
505f945e WP |
469 | |
470 | .S.o: | |
a76a2f89 WP |
471 | $(call echo-cmd,cmd_as) |
472 | $(cmd_as) | |
818e9695 | 473 | |
80774a27 | 474 | .S.lib.o: |
a76a2f89 WP |
475 | $(call echo-cmd,cmd_as_lib) |
476 | $(cmd_as_lib) | |
818e9695 | 477 | |
80774a27 | 478 | .S.plugin.o: |
a76a2f89 WP |
479 | $(call echo-cmd,cmd_as_plugin) |
480 | $(cmd_as_plugin) | |
481 | ||
482 | phase_cmd_xpm = CompileExe | |
483 | quiet_cmd_xpm = $@ | |
484 | cmd_xpm = ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $< | |
485 | ||
486 | phase_cmd_xpm_lib = CompileLib | |
487 | quiet_cmd_xpm_lib = $@ | |
488 | cmd_xpm_lib = ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $< | |
489 | ||
490 | phase_cmd_xpm_plugin = CompilePlugin | |
491 | quiet_cmd_xpm_plugin = $@ | |
492 | cmd_xpm_plugin = ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $< | |
80774a27 WP |
493 | |
494 | .xpm.o: | |
a76a2f89 WP |
495 | $(call echo-cmd,cmd_xpm) |
496 | $(cmd_xpm) | |
818e9695 | 497 | |
80774a27 | 498 | .xpm.lib.o: |
a76a2f89 WP |
499 | $(call echo-cmd,cmd_xpm_lib) |
500 | $(cmd_xpm_lib) | |
818e9695 | 501 | |
80774a27 | 502 | .xpm.plugin.o: |
a76a2f89 WP |
503 | $(call echo-cmd,cmd_xpm_plugin) |
504 | $(cmd_xpm_plugin) | |
505f945e | 505 | |
80774a27 | 506 | install: ${SHARED_LIB} ${STATIC_LIB} ${STATIC_PIC_LIB} ${PLUGIN} ${PROG} install-extra |
505f945e | 507 | for i in ${SUBDIRS}; do \ |
a76a2f89 | 508 | ${MAKE} -C $$i ${MFLAGS} install || exit $$?; \ |
505f945e WP |
509 | done |
510 | ||
80774a27 | 511 | for i in ${SHARED_LIB}; do \ |
505f945e | 512 | ${INSTALL_STATUS}; \ |
80774a27 | 513 | if ${MKDIR_P} ${DESTDIR}${libdir} ${INSTALL_LIB}; then \ |
505f945e WP |
514 | ${INSTALL_OK}; \ |
515 | else \ | |
516 | ${INSTALL_FAILED}; \ | |
517 | fi \ | |
518 | done | |
519 | ||
80774a27 | 520 | for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \ |
505f945e WP |
521 | ${INSTALL_STATUS}; \ |
522 | if ${MKDIR_P} ${DESTDIR}${libdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${libdir}/$$i; then \ | |
523 | ${INSTALL_OK}; \ | |
524 | else \ | |
525 | ${INSTALL_FAILED}; \ | |
526 | fi \ | |
527 | done | |
528 | ||
529 | for i in ${PLUGIN}; do \ | |
530 | ${INSTALL_STATUS}; \ | |
531 | if ${MKDIR_P} ${DESTDIR}${plugindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i; then \ | |
532 | ${INSTALL_OK}; \ | |
533 | else \ | |
534 | ${INSTALL_FAILED}; \ | |
535 | fi \ | |
536 | done | |
537 | ||
538 | for i in ${DATA}; do \ | |
539 | ${INSTALL_STATUS}; \ | |
109cf8f3 | 540 | if ${MKDIR_P} $$(dirname ${DESTDIR}${datadir}/${PACKAGE_TARNAME}/$$i) && ${INSTALL} -m 644 $$i ${DESTDIR}${datadir}/${PACKAGE_TARNAME}/$$i; then \ |
505f945e WP |
541 | ${INSTALL_OK}; \ |
542 | else \ | |
543 | ${INSTALL_FAILED}; \ | |
544 | fi \ | |
545 | done | |
546 | ||
547 | for i in ${PROG}; do \ | |
548 | ${INSTALL_STATUS}; \ | |
549 | if ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i; then \ | |
550 | ${INSTALL_OK}; \ | |
551 | else \ | |
552 | ${INSTALL_FAILED}; \ | |
553 | fi \ | |
554 | done | |
555 | ||
556 | for i in ${INCLUDES}; do \ | |
557 | ${INSTALL_STATUS}; \ | |
558 | if ${MKDIR_P} ${DESTDIR}${includedir}/${includesubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${includedir}/${includesubdir}/$$i; then \ | |
559 | ${INSTALL_OK}; \ | |
560 | else \ | |
561 | ${INSTALL_FAILED}; \ | |
562 | fi \ | |
563 | done | |
564 | ||
80774a27 WP |
565 | for i in ${MO_FILES}; do \ |
566 | ${INSTALL_STATUS}; \ | |
567 | if ${MKDIR_P} ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES && ${INSTALL} -m 644 $$i ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES/${localename}.mo; then \ | |
568 | ${INSTALL_OK}; \ | |
569 | else \ | |
570 | ${INSTALL_FAILED}; \ | |
571 | fi \ | |
572 | done | |
573 | ||
505f945e WP |
574 | for i in ${MAN}; do \ |
575 | ${INSTALL_STATUS}; \ | |
576 | if ${MKDIR_P} ${DESTDIR}${mandir}/${mansubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${mandir}/${mansubdir}/$$i; then \ | |
577 | ${INSTALL_OK}; \ | |
578 | else \ | |
579 | ${INSTALL_FAILED}; \ | |
580 | fi \ | |
581 | done | |
582 | ||
583 | install-extra: | |
584 | ||
585 | uninstall: uninstall-extra | |
586 | for i in ${SUBDIRS}; do \ | |
a76a2f89 | 587 | ${MAKE} -C $$i ${MFLAGS} uninstall || exit $$?; \ |
505f945e WP |
588 | done |
589 | ||
80774a27 | 590 | for i in ${SHARED_LIB}; do \ |
505f945e | 591 | if test -f ${DESTDIR}${libdir}/$$i; then \ |
80774a27 | 592 | if : ${UNINSTALL_LIB}; then \ |
505f945e WP |
593 | ${DELETE_OK}; \ |
594 | else \ | |
595 | ${DELETE_FAILED}; \ | |
596 | fi \ | |
597 | fi; \ | |
598 | done | |
599 | ||
80774a27 | 600 | for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \ |
505f945e WP |
601 | if test -f ${DESTDIR}${libdir}/$$i; then \ |
602 | if rm -f ${DESTDIR}${libdir}/$$i; then \ | |
603 | ${DELETE_OK}; \ | |
604 | else \ | |
605 | ${DELETE_FAILED}; \ | |
606 | fi \ | |
607 | fi \ | |
608 | done | |
609 | ||
610 | for i in ${PLUGIN}; do \ | |
611 | if test -f ${DESTDIR}${plugindir}/$$i; then \ | |
612 | if rm -f ${DESTDIR}${plugindir}/$$i; then \ | |
613 | ${DELETE_OK}; \ | |
614 | else \ | |
615 | ${DELETE_FAILED}; \ | |
616 | fi \ | |
617 | fi \ | |
618 | done | |
619 | -rmdir ${DESTDIR}${plugindir} >/dev/null 2>&1 | |
620 | ||
621 | for i in ${DATA}; do \ | |
109cf8f3 AJ |
622 | if test -f ${DESTDIR}${datadir}/${PACKAGE_TARNAME}/$$i; then \ |
623 | if rm -f ${DESTDIR}${datadir}/${PACKAGE_TARNAME}/$$i; then \ | |
505f945e WP |
624 | ${DELETE_OK}; \ |
625 | else \ | |
626 | ${DELETE_FAILED}; \ | |
627 | fi \ | |
80774a27 | 628 | fi; \ |
109cf8f3 | 629 | rmdir "$$(dirname ${DESTDIR}${datadir}/${PACKAGE_TARNAME}/$$i)" >/dev/null 2>&1 || true; \ |
505f945e | 630 | done |
109cf8f3 | 631 | -rmdir ${DESTDIR}${datadir}/${PACKAGE_TARNAME} >/dev/null 2>&1 |
505f945e WP |
632 | |
633 | for i in ${PROG}; do \ | |
634 | if test -f ${DESTDIR}${bindir}/$$i; then \ | |
635 | if rm -f ${DESTDIR}${bindir}/$$i; then \ | |
636 | ${DELETE_OK}; \ | |
637 | else \ | |
638 | ${DELETE_FAILED}; \ | |
639 | fi \ | |
640 | fi \ | |
641 | done | |
642 | ||
643 | for i in ${INCLUDES}; do \ | |
644 | if test -f ${DESTDIR}${includedir}/${includesubdir}/$$i; then \ | |
645 | if rm -f ${DESTDIR}${includedir}/${includesubdir}/$$i; then \ | |
646 | ${DELETE_OK}; \ | |
647 | else \ | |
648 | ${DELETE_FAILED}; \ | |
649 | fi \ | |
650 | fi \ | |
651 | done | |
652 | -rmdir ${DESTDIR}${includedir}/${includesubdir} >/dev/null 2>&1 | |
653 | ||
80774a27 WP |
654 | for i in ${MO_FILES}; do \ |
655 | if test -f ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES/${localename}.mo; then \ | |
656 | if rm -f ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES/${localename}.mo; then \ | |
657 | ${DELETE_OK}; \ | |
658 | else \ | |
659 | ${DELETE_FAILED}; \ | |
660 | fi \ | |
661 | fi \ | |
662 | done | |
663 | ||
505f945e WP |
664 | for i in ${MAN}; do \ |
665 | if test -f ${DESTDIR}${mandir}/${mansubdir}/$$i; then \ | |
666 | if rm -f ${DESTDIR}${mandir}/${mansubdir}/$$i; then \ | |
667 | ${DELETE_OK}; \ | |
668 | else \ | |
669 | ${DELETE_FAILED}; \ | |
670 | fi \ | |
671 | fi \ | |
672 | done | |
673 | ||
674 | uninstall-extra: | |
675 | ||
676 | clean: | |
677 | for i in ${SUBDIRS}; do \ | |
a76a2f89 | 678 | ${MAKE} -C $$i ${MFLAGS} clean || exit $$?; \ |
505f945e WP |
679 | done |
680 | ||
df690163 | 681 | for i in ${DEPS} ${OBJS} ${OBJS_EXTRA} ${LIB_OBJS} ${LIB_OBJS_EXTRA} ${PLUGIN_OBJS} ${PROG} ${PROG_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${CLEAN_LIB} ${MO_FILES} ${CLEAN}; do \ |
505f945e WP |
682 | if test -f $$i -o -d $$i; then \ |
683 | if rm -fr $$i; then \ | |
684 | ${DELETE_OK}; \ | |
685 | else \ | |
686 | ${DELETE_FAILED}; \ | |
687 | fi \ | |
688 | fi \ | |
689 | done | |
690 | ||
691 | distclean: clean | |
692 | for i in ${SUBDIRS}; do \ | |
a76a2f89 | 693 | ${MAKE} -C $$i ${MFLAGS} distclean || exit $$?; \ |
505f945e WP |
694 | done |
695 | ||
0e92127b | 696 | for i in ${DISTCLEAN} *.d *~; do \ |
505f945e WP |
697 | if test -f $$i -o -d $$i; then \ |
698 | if rm -fr $$i; then \ | |
699 | ${DELETE_OK}; \ | |
700 | else \ | |
701 | ${DELETE_FAILED}; \ | |
702 | fi \ | |
703 | fi \ | |
704 | done | |
705 | ||
df690163 WP |
706 | ifndef V |
707 | ||
a76a2f89 | 708 | QUIET = quiet_ |
d8159d55 WP |
709 | LINK_STATUS = printf "Link: $@\n" |
710 | LINK_OK = true | |
711 | LINK_FAILED = exit $$? | |
712 | INSTALL_STATUS = printf "Install: $$i\n" | |
713 | INSTALL_OK = true | |
714 | INSTALL_FAILED = exit $$? | |
715 | DELETE_OK = printf "Delete: $$i\n" | |
716 | DELETE_FAILED = exit $$? | |
505f945e | 717 | |
df690163 WP |
718 | else |
719 | ||
a76a2f89 | 720 | QUIET = |
34d4140f | 721 | LINK_STATUS = printf "Link: ${LD} -o $@ $$LDOBJS ${LDFLAGS} ${LIBS}\n" |
df690163 WP |
722 | LINK_OK = true |
723 | LINK_FAILED = exit $$? | |
724 | INSTALL_STATUS = printf "Install: $$i\n" | |
725 | INSTALL_OK = true | |
726 | INSTALL_FAILED = exit $$? | |
727 | DELETE_OK = printf "Delete: $$i\n" | |
728 | DELETE_FAILED = exit $$? | |
729 | ||
730 | endif | |
731 | ||
0e92127b | 732 | -include *.d |