]> cgit.babelmonkeys.de Git - jubjub.git/blob - buildsys.mk.in
Adapt to ObjFW changes
[jubjub.git] / buildsys.mk.in
1 #
2 #  Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012
3 #  Jonathan Schleifer <js@webkeks.org>
4 #
5 #  https://webkeks.org/git/?p=buildsys.git
6 #
7 #  Permission to use, copy, modify, and/or distribute this software for any
8 #  purpose with or without fee is hereby granted, provided that the above
9 #  copyright notice and this permission notice is present in all copies.
10 #
11 #  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12 #  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13 #  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14 #  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
15 #  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16 #  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17 #  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18 #  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19 #  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20 #  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21 #  POSSIBILITY OF SUCH DAMAGE.
22 #
23
24 PACKAGE_NAME = @PACKAGE_NAME@
25 PACKAGE_VERSION = @PACKAGE_VERSION@
26 AS = @AS@
27 CC = @CC@
28 CXX = @CXX@
29 CPP = @CPP@
30 DC = @DC@
31 ERLC = @ERLC@
32 OBJC = @OBJC@
33 OBJCXX = @OBJCXX@
34 AR = @AR@
35 LD = ${CC}
36 RANLIB = @RANLIB@
37 PYTHON = @PYTHON@
38 ASFLAGS = @ASFLAGS@
39 CFLAGS = @CFLAGS@
40 CXXFLAGS = @CXXFLAGS@
41 CPPFLAGS = @CPPFLAGS@
42 DFLAGS = @DFLAGS@
43 ERLCFLAGS = @ERLCFLAGS@
44 OBJCFLAGS = @OBJCFLAGS@
45 OBJCXXFLAGS = @OBJCXXFLAGS@
46 LDFLAGS = @LDFLAGS@
47 LDFLAGS_RPATH = @LDFLAGS_RPATH@
48 LIBS = @LIBS@
49 PYTHON_FLAGS = @PYTHON_FLAGS@
50 PROG_IMPLIB_NEEDED = @PROG_IMPLIB_NEEDED@
51 PROG_IMPLIB_LDFLAGS = @PROG_IMPLIB_LDFLAGS@
52 PROG_SUFFIX = @EXEEXT@
53 LIB_CFLAGS = @LIB_CFLAGS@
54 LIB_LDFLAGS = @LIB_LDFLAGS@
55 LIB_PREFIX = @LIB_PREFIX@
56 LIB_SUFFIX = @LIB_SUFFIX@
57 PLUGIN_CFLAGS = @PLUGIN_CFLAGS@
58 PLUGIN_LDFLAGS = @PLUGIN_LDFLAGS@
59 PLUGIN_SUFFIX = @PLUGIN_SUFFIX@
60 INSTALL_LIB = @INSTALL_LIB@
61 UNINSTALL_LIB = @UNINSTALL_LIB@
62 CLEAN_LIB = @CLEAN_LIB@
63 AS_DEPENDS = @AS_DEPENDS@
64 CC_DEPENDS = @CC_DEPENDS@
65 CXX_DEPENDS = @CXX_DEPENDS@
66 OBJC_DEPENDS = @OBJC_DEPENDS@
67 OBJCXX_DEPENDS = @OBJCXX_DEPENDS@
68 LN_S = @LN_S@
69 MKDIR_P = mkdir -p
70 INSTALL = @INSTALL@
71 SHELL = @SHELL@
72 MSGFMT = @MSGFMT@
73 JAVAC = @JAVAC@
74 JAVACFLAGS = @JAVACFLAGS@
75 JAR = @JAR@
76 WINDRES = @WINDRES@
77 prefix = @prefix@
78 exec_prefix = @exec_prefix@
79 bindir = @bindir@
80 libdir = @libdir@
81 plugindir ?= ${libdir}/${PACKAGE_NAME}
82 datarootdir = @datarootdir@
83 datadir = @datadir@
84 includedir = @includedir@
85 includesubdir ?= ${PACKAGE_NAME}
86 localedir = @localedir@
87 localename ?= ${PACKAGE_NAME}
88 mandir = @mandir@
89 mansubdir ?= man1
90
91 OBJS1 = ${SRCS:.c=.o}
92 OBJS2 = ${OBJS1:.cc=.o}
93 OBJS3 = ${OBJS2:.cxx=.o}
94 OBJS4 = ${OBJS3:.d=.o}
95 OBJS5 = ${OBJS4:.erl=.beam}
96 OBJS6 = ${OBJS5:.java=.class}
97 OBJS7 = ${OBJS6:.m=.o}
98 OBJS8 = ${OBJS7:.mm=.o}
99 OBJS9 = ${OBJS8:.py=.pyc}
100 OBJS10 = ${OBJS9:.rc=.o}
101 OBJS11 = ${OBJS10:.S=.o}
102 OBJS += ${OBJS11:.xpm=.o}
103
104 LIB_OBJS = ${OBJS:.o=.lib.o}
105 PLUGIN_OBJS = ${OBJS:.o=.plugin.o}
106
107 MO_FILES = ${LOCALES:.po=.mo}
108
109 .SILENT:
110 .SUFFIXES:
111 .SUFFIXES: .beam .c .c.dep .cc .cc.dep .class .cxx .cxx.dep .d .erl .lib.o .java .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .rc .S .S.dep .xpm
112 .PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales ${SUBDIRS}
113
114 all:
115         ${MAKE} ${MFLAGS} subdirs
116         ${MAKE} ${MFLAGS} depend
117         ${MAKE} ${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
118
119 subdirs: ${SUBDIRS}
120
121 ${SUBDIRS}:
122         for i in $@; do \
123                 ${DIR_ENTER}; \
124                 ${MAKE} ${MFLAGS} || exit $$?; \
125                 ${DIR_LEAVE}; \
126         done
127
128 depend: pre-depend ${SRCS}
129         regen=0; \
130         deps=""; \
131         test -f .deps || regen=1; \
132         for i in ${SRCS}; do \
133                 case $$i in \
134                         *.c) \
135                                 if test x"${CC_DEPENDS}" = x"yes"; then \
136                                         test $$i -nt .deps && regen=1; \
137                                         deps="$$deps $$i.dep"; \
138                                 fi; \
139                                 ;; \
140                         *.cc | *.cxx) \
141                                 if test x"${CXX_DEPENDS}" = x"yes"; then \
142                                         test $$i -nt .deps && regen=1; \
143                                         deps="$$deps $$i.dep"; \
144                                 fi; \
145                                 ;; \
146                         *.m) \
147                                 if test x"${OBJC_DEPENDS}" = x"yes"; then \
148                                         test $$i -nt .deps && regen=1; \
149                                         deps="$$deps $$i.dep"; \
150                                 fi; \
151                                 ;; \
152                         *.mm) \
153                                 if test x"${OBJCXX_DEPENDS}" = x"yes"; then \
154                                         test $$i -nt .deps && regen=1; \
155                                         deps="$$deps $$i.dep"; \
156                                 fi; \
157                                 ;; \
158                         *.S) \
159                                 if test x"${AS_DEPENDS}" = x"yes"; then \
160                                         test $$i -nt .deps && regen=1; \
161                                         deps="$$deps $$i.dep"; \
162                                 fi; \
163                                 ;; \
164                 esac; \
165         done; \
166         if test x"$$regen" = x"1" -a x"$$deps" != x""; then \
167                 ${DEPEND_STATUS}; \
168                 if ${MAKE} ${MFLAGS} $$deps && cat $$deps >.deps; then \
169                         rm -f $$deps; \
170                         ${DEPEND_OK}; \
171                 else \
172                         :> .deps; \
173                         touch -t 0001010000 .deps; \
174                         ${DEPEND_FAILED}; \
175                 fi; \
176         fi
177
178 .c.c.dep:
179         ${CPP} ${CPPFLAGS} ${CFLAGS} -M $< | \
180         sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
181         { rm -f $@; false; }
182
183 .cc.cc.dep .cxx.cxx.dep:
184         ${CPP} ${CPPFLAGS} ${CXXFLAGS} -M $< | \
185         sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
186         { rm -f $@; false; }
187
188 .m.m.dep:
189         ${CPP} ${CPPFLAGS} ${OBJCFLAGS} -M $< | \
190         sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
191         { rm -f $@; false; }
192
193 .mm.mm.dep:
194         ${CPP} ${CPPFLAGS} ${OBJCPPFLAGS} -M $< | \
195         sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
196         { rm -f $@; false; }
197
198 .S.S.dep:
199         ${CPP} ${CPPFLAGS} ${ASFLAGS} -M $< | \
200         sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
201         { rm -f $@; false; }
202
203 pre-depend:
204
205 ${PROG} ${PROG_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
206         ${LINK_STATUS}
207         if ${LD} -o $@ ${OBJS} ${OBJS_EXTRA} ${LDFLAGS} ${LIBS}; then \
208                 ${LINK_OK}; \
209         else \
210                 ${LINK_FAILED}; \
211         fi
212
213 ${JARFILE}: ${EXT_DEPS} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA}
214         ${LINK_STATUS}
215         if test x"${JAR_MANIFEST}" != x""; then \
216                 if ${JAR} cfm ${JARFILE} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA}; then \
217                         ${LINK_OK}; \
218                 else \
219                         ${LINK_FAILED}; \
220                 fi \
221         else \
222                 if ${JAR} cf ${JARFILE} ${OBJS} ${OBJS_EXTRA}; then \
223                         ${LINK_OK}; \
224                 else \
225                         ${LINK_FAILED}; \
226                 fi \
227         fi
228
229 ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
230         ${LINK_STATUS}; \
231         objs=""; \
232         ars=""; \
233         for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
234                 case $$i in \
235                         *.a) \
236                                 ars="$$ars $$i" \
237                                 ;; \
238                         *.o) \
239                                 objs="$$objs $$i" \
240                                 ;; \
241                 esac \
242         done; \
243         for i in $$ars; do \
244                 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
245                 rm -fr $$dir; \
246                 mkdir -p $$dir; \
247                 cd $$dir; \
248                 ${AR} x ../$$i; \
249                 for j in *.o; do \
250                         objs="$$objs $$dir/$$j"; \
251                 done; \
252                 cd ..; \
253         done; \
254         if ${LD} -o $@ $$objs ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
255                 ${LINK_OK}; \
256         else \
257                 ${LINK_FAILED}; \
258         fi; \
259         for i in $$ars; do \
260                 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
261                 rm -fr $$dir; \
262         done
263
264 ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
265         ${LINK_STATUS}
266         objs=""; \
267         ars=""; \
268         for i in ${PLUGIN_OBJS}; do \
269                 case $$i in \
270                         *.a) \
271                                 ars="$$ars $$i" \
272                                 ;; \
273                         *.o) \
274                                 objs="$$objs $$i" \
275                                 ;; \
276                 esac \
277         done; \
278         for i in $$ars; do \
279                 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
280                 rm -fr $$dir; \
281                 mkdir -p $$dir; \
282                 cd $$dir; \
283                 ${AR} x ../$$i; \
284                 for j in *.o; do \
285                         objs="$$objs $$dir/$$j"; \
286                 done; \
287                 cd ..; \
288         done; \
289         if ${LD} -o $@ $$objs ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
290                 ${LINK_OK}; \
291         else \
292                 ${LINK_FAILED}; \
293         fi; \
294         for i in $$ars; do \
295                 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
296                 rm -fr $$dir; \
297         done
298
299 ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
300         ${LINK_STATUS}
301         rm -f $@
302         objs=""; \
303         ars=""; \
304         for i in ${OBJS} ${OBJS_EXTRA}; do \
305                 case $$i in \
306                         *.a) \
307                                 ars="$$ars $$i" \
308                                 ;; \
309                         *.o) \
310                                 objs="$$objs $$i" \
311                                 ;; \
312                 esac \
313         done; \
314         for i in $$ars; do \
315                 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
316                 rm -fr $$dir; \
317                 mkdir -p $$dir; \
318                 cd $$dir; \
319                 ${AR} x ../$$i; \
320                 for j in *.o; do \
321                         objs="$$objs $$dir/$$j"; \
322                 done; \
323                 cd ..; \
324         done; \
325         if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
326                 ${LINK_OK}; \
327         else \
328                 ${LINK_FAILED}; \
329                 rm -f $@; \
330         fi; \
331         for i in $$ars; do \
332                 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
333                 rm -fr $$dir; \
334         done
335
336 ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
337         ${LINK_STATUS}
338         rm -f $@
339         objs=""; \
340         ars=""; \
341         for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
342                 case $$i in \
343                         *.a) \
344                                 ars="$$ars $$i" \
345                                 ;; \
346                         *.o) \
347                                 objs="$$objs $$i" \
348                                 ;; \
349                 esac \
350         done; \
351         for i in $$ars; do \
352                 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
353                 rm -fr $$dir; \
354                 mkdir -p $$dir; \
355                 cd $$dir; \
356                 ${AR} x ../$$i; \
357                 for j in *.o; do \
358                         objs="$$objs $$dir/$$j"; \
359                 done; \
360                 cd ..; \
361         done; \
362         if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
363                 ${LINK_OK}; \
364         else \
365                 ${LINK_FAILED}; \
366                 rm -f $@; \
367         fi; \
368         for i in $$ars; do \
369                 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
370                 rm -fr $$dir; \
371         done
372
373 locales: ${MO_FILES}
374
375 .c.o:
376         ${COMPILE_STATUS}
377         if ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
378                 ${COMPILE_OK}; \
379         else \
380                 ${COMPILE_FAILED}; \
381         fi
382 .c.lib.o:
383         ${COMPILE_LIB_STATUS}
384         if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
385                 ${COMPILE_LIB_OK}; \
386         else \
387                 ${COMPILE_LIB_FAILED}; \
388         fi
389 .c.plugin.o:
390         ${COMPILE_PLUGIN_STATUS}
391         if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
392                 ${COMPILE_PLUGIN_OK}; \
393         else \
394                 ${COMPILE_PLUGIN_FAILED}; \
395         fi
396
397 .cc.o .cxx.o:
398         ${COMPILE_STATUS}
399         if ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
400                 ${COMPILE_OK}; \
401         else \
402                 ${COMPILE_FAILED}; \
403         fi
404 .cc.lib.o .cxx.lib.o:
405         ${COMPILE_LIB_STATUS}
406         if ${CXX} ${LIB_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
407                 ${COMPILE_LIB_OK}; \
408         else \
409                 ${COMPILE_LIB_FAILED}; \
410         fi
411 .cc.plugin.o .cxx.plugin.o:
412         ${COMPILE_PLUGIN_STATUS}
413         if ${CXX} ${PLUGIN_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
414                 ${COMPILE_PLUGIN_OK}; \
415         else \
416                 ${COMPILE_PLUGIN_FAILED}; \
417         fi
418
419 .d.o:
420         ${COMPILE_STATUS}
421         if test x"$(basename ${DC})" = x"dmd"; then \
422                 if ${DC} ${DFLAGS} -c -of$@ $<; then \
423                         ${COMPILE_OK}; \
424                 else \
425                         ${COMPILE_FAILED}; \
426                 fi \
427         else \
428                 if ${DC} ${DFLAGS} -c -o $@ $<; then \
429                         ${COMPILE_OK}; \
430                 else \
431                         ${COMPILE_FAILED}; \
432                 fi \
433         fi
434
435 .erl.beam:
436         ${COMPILE_STATUS}
437         if ${ERLC} ${ERLCFLAGS} -o $@ $<; then \
438                 ${COMPILE_OK}; \
439         else \
440                 ${COMPILE_FAILED}; \
441         fi
442
443 .java.class:
444         ${COMPILE_STATUS}
445         if ${JAVAC} ${JAVACFLAGS} $<; then \
446                 ${COMPILE_OK}; \
447         else \
448                 ${COMPILE_FAILED}; \
449         fi
450
451 .m.o:
452         ${COMPILE_STATUS}
453         if ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
454                 ${COMPILE_OK}; \
455         else \
456                 ${COMPILE_FAILED}; \
457         fi
458 .m.lib.o:
459         ${COMPILE_LIB_STATUS}
460         if ${OBJC} ${LIB_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
461                 ${COMPILE_LIB_OK}; \
462         else \
463                 ${COMPILE_LIB_FAILED}; \
464         fi
465 .m.plugin.o:
466         ${COMPILE_PLUGIN_STATUS}
467         if ${OBJC} ${PLUGIN_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
468                 ${COMPILE_PLUGIN_OK}; \
469         else \
470                 ${COMPILE_PLUGIN_FAILED}; \
471         fi
472
473 .mm.o:
474         ${COMPILE_STATUS}
475         if ${OBJCXX} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
476                 ${COMPILE_OK}; \
477         else \
478                 ${COMPILE_FAILED}; \
479         fi
480 .mm.lib.o:
481         ${COMPILE_LIB_STATUS}
482         if ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
483                 ${COMPILE_LIB_OK}; \
484         else \
485                 ${COMPILE_LIB_FAILED}; \
486         fi
487 .mm.plugin.o:
488         ${COMPILE_PLUGIN_STATUS}
489         if ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
490                 ${COMPILE_PLUGIN_OK}; \
491         else \
492                 ${COMPILE_PLUGIN_FAILED}; \
493         fi
494
495 .po.mo:
496         ${COMPILE_STATUS}
497         if ${MSGFMT} -c -o $@ $<; then \
498                 ${COMPILE_OK}; \
499         else \
500                 ${COMPILE_FAILED}; \
501         fi
502
503 .py.pyc:
504         ${COMPILE_STATUS}
505         if ${PYTHON} ${PYTHON_FLAGS} -c "import py_compile; py_compile.compile('$<')"; then \
506                 ${COMPILE_OK}; \
507         else \
508                 ${COMPILE_FAILED}; \
509         fi
510
511 .rc.o .rc.lib.o .rc.plugin.o:
512         ${COMPILE_STATUS}
513         if ${WINDRES} ${CPPFLAGS} -J rc -O coff -o $@ $<; then \
514                 ${COMPILE_OK}; \
515         else \
516                 ${COMPILE_FAILED}; \
517         fi
518
519 .S.o:
520         ${COMPILE_STATUS}
521         if ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
522                 ${COMPILE_OK}; \
523         else \
524                 ${COMPILE_FAILED}; \
525         fi
526 .S.lib.o:
527         ${COMPILE_LIB_STATUS}
528         if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
529                 ${COMPILE_LIB_OK}; \
530         else \
531                 ${COMPILE_LIB_FAILED}; \
532         fi
533 .S.plugin.o:
534         ${COMPILE_PLUGIN_STATUS}
535         if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
536                 ${COMPILE_PLUGIN_OK}; \
537         else \
538                 ${COMPILE_PLUGIN_FAILED}; \
539         fi
540
541 .xpm.o:
542         ${COMPILE_STATUS}
543         if ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
544                 ${COMPILE_OK}; \
545         else \
546                 ${COMPILE_FAILED}; \
547         fi
548 .xpm.lib.o:
549         ${COMPILE_LIB_STATUS}
550         if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
551                 ${COMPILE_LIB_OK}; \
552         else \
553                 ${COMPILE_LIB_FAILED}; \
554         fi
555 .xpm.plugin.o:
556         ${COMPILE_PLUGIN_STATUS}
557         if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
558                 ${COMPILE_PLUGIN_OK}; \
559         else \
560                 ${COMPILE_PLUGIN_FAILED}; \
561         fi
562
563 install: all install-extra
564         for i in ${SUBDIRS}; do \
565                 ${DIR_ENTER}; \
566                 ${MAKE} ${MFLAGS} install || exit $$?; \
567                 ${DIR_LEAVE}; \
568         done
569
570         for i in ${SHARED_LIB}; do \
571                 ${INSTALL_STATUS}; \
572                 if ${MKDIR_P} ${DESTDIR}${libdir} ${INSTALL_LIB}; then \
573                         ${INSTALL_OK}; \
574                 else \
575                         ${INSTALL_FAILED}; \
576                 fi \
577         done
578
579         for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
580                 ${INSTALL_STATUS}; \
581                 if ${MKDIR_P} ${DESTDIR}${libdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${libdir}/$$i; then \
582                         ${INSTALL_OK}; \
583                 else \
584                         ${INSTALL_FAILED}; \
585                 fi \
586         done
587
588         for i in ${PLUGIN}; do \
589                 ${INSTALL_STATUS}; \
590                 if ${MKDIR_P} ${DESTDIR}${plugindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i; then \
591                         ${INSTALL_OK}; \
592                 else \
593                         ${INSTALL_FAILED}; \
594                 fi \
595         done
596
597         for i in ${DATA}; do \
598                 ${INSTALL_STATUS}; \
599                 if ${MKDIR_P} $$(dirname ${DESTDIR}${datadir}/${PACKAGE_NAME}/$$i) && ${INSTALL} -m 644 $$i ${DESTDIR}${datadir}/${PACKAGE_NAME}/$$i; then \
600                         ${INSTALL_OK}; \
601                 else \
602                         ${INSTALL_FAILED}; \
603                 fi \
604         done
605
606         for i in ${PROG}; do \
607                 ${INSTALL_STATUS}; \
608                 if ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i; then \
609                         ${INSTALL_OK}; \
610                 else \
611                         ${INSTALL_FAILED}; \
612                 fi \
613         done
614
615         for i in ${INCLUDES}; do \
616                 ${INSTALL_STATUS}; \
617                 if ${MKDIR_P} ${DESTDIR}${includedir}/${includesubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
618                         ${INSTALL_OK}; \
619                 else \
620                         ${INSTALL_FAILED}; \
621                 fi \
622         done
623
624         for i in ${MO_FILES}; do \
625                 ${INSTALL_STATUS}; \
626                 if ${MKDIR_P} ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES && ${INSTALL} -m 644 $$i ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES/${localename}.mo; then \
627                         ${INSTALL_OK}; \
628                 else \
629                         ${INSTALL_FAILED}; \
630                 fi \
631         done
632
633         for i in ${MAN}; do \
634                 ${INSTALL_STATUS}; \
635                 if ${MKDIR_P} ${DESTDIR}${mandir}/${mansubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${mandir}/${mansubdir}/$$i; then \
636                         ${INSTALL_OK}; \
637                 else \
638                         ${INSTALL_FAILED}; \
639                 fi \
640         done
641
642 install-extra:
643
644 uninstall: uninstall-extra
645         for i in ${SUBDIRS}; do \
646                 ${DIR_ENTER}; \
647                 ${MAKE} ${MFLAGS} uninstall || exit $$?; \
648                 ${DIR_LEAVE}; \
649         done
650
651         for i in ${SHARED_LIB}; do \
652                 if test -f ${DESTDIR}${libdir}/$$i; then \
653                         if : ${UNINSTALL_LIB}; then \
654                                 ${DELETE_OK}; \
655                         else \
656                                 ${DELETE_FAILED}; \
657                         fi \
658                 fi; \
659         done
660
661         for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
662                 if test -f ${DESTDIR}${libdir}/$$i; then \
663                         if rm -f ${DESTDIR}${libdir}/$$i; then \
664                                 ${DELETE_OK}; \
665                         else \
666                                 ${DELETE_FAILED}; \
667                         fi \
668                 fi \
669         done
670
671         for i in ${PLUGIN}; do \
672                 if test -f ${DESTDIR}${plugindir}/$$i; then \
673                         if rm -f ${DESTDIR}${plugindir}/$$i; then \
674                                 ${DELETE_OK}; \
675                         else \
676                                 ${DELETE_FAILED}; \
677                         fi \
678                 fi \
679         done
680         -rmdir ${DESTDIR}${plugindir} >/dev/null 2>&1
681
682         for i in ${DATA}; do \
683                 if test -f ${DESTDIR}${datadir}/${PACKAGE_NAME}/$$i; then \
684                         if rm -f ${DESTDIR}${datadir}/${PACKAGE_NAME}/$$i; then \
685                                 ${DELETE_OK}; \
686                         else \
687                                 ${DELETE_FAILED}; \
688                         fi \
689                 fi; \
690                 rmdir "$$(dirname ${DESTDIR}${datadir}/${PACKAGE_NAME}/$$i)" >/dev/null 2>&1 || true; \
691         done
692         -rmdir ${DESTDIR}${datadir}/${PACKAGE_NAME} >/dev/null 2>&1
693
694         for i in ${PROG}; do \
695                 if test -f ${DESTDIR}${bindir}/$$i; then \
696                         if rm -f ${DESTDIR}${bindir}/$$i; then \
697                                 ${DELETE_OK}; \
698                         else \
699                                 ${DELETE_FAILED}; \
700                         fi \
701                 fi \
702         done
703
704         for i in ${INCLUDES}; do \
705                 if test -f ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
706                         if rm -f ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
707                                 ${DELETE_OK}; \
708                         else \
709                                 ${DELETE_FAILED}; \
710                         fi \
711                 fi \
712         done
713         -rmdir ${DESTDIR}${includedir}/${includesubdir} >/dev/null 2>&1
714
715         for i in ${MO_FILES}; do \
716                 if test -f ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES/${localename}.mo; then \
717                         if rm -f ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES/${localename}.mo; then \
718                                 ${DELETE_OK}; \
719                         else \
720                                 ${DELETE_FAILED}; \
721                         fi \
722                 fi \
723         done
724
725         for i in ${MAN}; do \
726                 if test -f ${DESTDIR}${mandir}/${mansubdir}/$$i; then \
727                         if rm -f ${DESTDIR}${mandir}/${mansubdir}/$$i; then \
728                                 ${DELETE_OK}; \
729                         else \
730                                 ${DELETE_FAILED}; \
731                         fi \
732                 fi \
733         done
734
735 uninstall-extra:
736
737 clean:
738         for i in ${SUBDIRS}; do \
739                 ${DIR_ENTER}; \
740                 ${MAKE} ${MFLAGS} clean || exit $$?; \
741                 ${DIR_LEAVE}; \
742         done
743
744         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 \
745                 if test -f $$i -o -d $$i; then \
746                         if rm -fr $$i; then \
747                                 ${DELETE_OK}; \
748                         else \
749                                 ${DELETE_FAILED}; \
750                         fi \
751                 fi \
752         done
753
754 distclean: clean
755         for i in ${SUBDIRS}; do \
756                 ${DIR_ENTER}; \
757                 ${MAKE} ${MFLAGS} distclean || exit $$?; \
758                 ${DIR_LEAVE}; \
759         done
760
761         for i in ${DISTCLEAN} .deps *~; do \
762                 if test -f $$i -o -d $$i; then \
763                         if rm -fr $$i; then \
764                                 ${DELETE_OK}; \
765                         else \
766                                 ${DELETE_FAILED}; \
767                         fi \
768                 fi \
769         done
770
771 DIR_ENTER = printf "@TERM_EL@@TERM_SETAF6@Entering directory @TERM_BOLD@$$i@TERM_SGR0@@TERM_SETAF6@.@TERM_SGR0@\n"; cd $$i || exit $$?
772 DIR_LEAVE = printf "@TERM_EL@@TERM_SETAF6@Leaving directory @TERM_BOLD@$$i@TERM_SGR0@@TERM_SETAF6@.@TERM_SGR0@\n"; cd .. || exit $$?
773 DEPEND_STATUS = printf "@TERM_EL@@TERM_SETAF3@Generating dependencies...@TERM_SGR0@\r"
774 DEPEND_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully generated dependencies.@TERM_SGR0@\n"
775 DEPEND_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to generate dependencies!@TERM_SGR0@\n"; exit $$err
776 COMPILE_STATUS = printf "@TERM_EL@@TERM_SETAF3@Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3@...@TERM_SGR0@\r"
777 COMPILE_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2@.@TERM_SGR0@\n"
778 COMPILE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
779 COMPILE_LIB_STATUS = printf "@TERM_EL@@TERM_SETAF3@Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3@ (lib)...@TERM_SGR0@\r"
780 COMPILE_LIB_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2@ (lib).@TERM_SGR0@\n"
781 COMPILE_LIB_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@ (lib)!@TERM_SGR0@\n"; exit $$err
782 COMPILE_PLUGIN_STATUS = printf "@TERM_EL@@TERM_SETAF3@Compiling @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF3@ (plugin)...@TERM_SGR0@\r"
783 COMPILE_PLUGIN_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully compiled @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF2@ (plugin).@TERM_SGR0@\n"
784 COMPILE_PLUGIN_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to compile @TERM_BOLD@$<@TERM_SGR0@@TERM_SETAF1@ (plugin)!@TERM_SGR0@\n"; exit $$err
785 LINK_STATUS = printf "@TERM_EL@@TERM_SETAF3@Linking @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF3@...@TERM_SGR0@\r"
786 LINK_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully linked @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF2@.@TERM_SGR0@\n"
787 LINK_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to link @TERM_BOLD@$@@TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
788 INSTALL_STATUS = printf "@TERM_EL@@TERM_SETAF3@Installing @TERM_BOLD@$$i@TERM_SGR0@@TERM_SETAF3@...@TERM_SGR0@\r"
789 INSTALL_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully installed @TERM_BOLD@$$i@TERM_SGR0@@TERM_SETAF2@.@TERM_SGR0@\n"
790 INSTALL_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to install @TERM_BOLD@$$i@TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
791 DELETE_OK = printf "@TERM_EL@@TERM_SETAF4@Deleted @TERM_BOLD@$$i@TERM_SGR0@@TERM_SETAF4@.@TERM_SGR0@\n"
792 DELETE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to delete @TERM_BOLD@$$i@TERM_SGR0@@TERM_SETAF1@!@TERM_SGR0@\n"; exit $$err
793
794 include .deps