2 # Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012
3 # Jonathan Schleifer <js@webkeks.org>
5 # https://webkeks.org/git/?p=buildsys.git
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.
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.
24 PACKAGE_NAME = @PACKAGE_NAME@
25 PACKAGE_VERSION = @PACKAGE_VERSION@
43 ERLCFLAGS = @ERLCFLAGS@
44 OBJCFLAGS = @OBJCFLAGS@
45 OBJCXXFLAGS = @OBJCXXFLAGS@
47 LDFLAGS_RPATH = @LDFLAGS_RPATH@
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@
74 JAVACFLAGS = @JAVACFLAGS@
78 exec_prefix = @exec_prefix@
81 plugindir ?= ${libdir}/${PACKAGE_NAME}
82 datarootdir = @datarootdir@
84 includedir = @includedir@
85 includesubdir ?= ${PACKAGE_NAME}
86 localedir = @localedir@
87 localename ?= ${PACKAGE_NAME}
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}
104 LIB_OBJS = ${OBJS:.o=.lib.o}
105 PLUGIN_OBJS = ${OBJS:.o=.plugin.o}
107 MO_FILES = ${LOCALES:.po=.mo}
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}
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
124 ${MAKE} ${MFLAGS} || exit $$?; \
128 depend: pre-depend ${SRCS}
131 test -f .deps || regen=1; \
132 for i in ${SRCS}; do \
135 if test x"${CC_DEPENDS}" = x"yes"; then \
136 test $$i -nt .deps && regen=1; \
137 deps="$$deps $$i.dep"; \
141 if test x"${CXX_DEPENDS}" = x"yes"; then \
142 test $$i -nt .deps && regen=1; \
143 deps="$$deps $$i.dep"; \
147 if test x"${OBJC_DEPENDS}" = x"yes"; then \
148 test $$i -nt .deps && regen=1; \
149 deps="$$deps $$i.dep"; \
153 if test x"${OBJCXX_DEPENDS}" = x"yes"; then \
154 test $$i -nt .deps && regen=1; \
155 deps="$$deps $$i.dep"; \
159 if test x"${AS_DEPENDS}" = x"yes"; then \
160 test $$i -nt .deps && regen=1; \
161 deps="$$deps $$i.dep"; \
166 if test x"$$regen" = x"1" -a x"$$deps" != x""; then \
168 if ${MAKE} ${MFLAGS} $$deps && cat $$deps >.deps; then \
173 touch -t 0001010000 .deps; \
179 ${CPP} ${CPPFLAGS} ${CFLAGS} -M $< | \
180 sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
183 .cc.cc.dep .cxx.cxx.dep:
184 ${CPP} ${CPPFLAGS} ${CXXFLAGS} -M $< | \
185 sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
189 ${CPP} ${CPPFLAGS} ${OBJCFLAGS} -M $< | \
190 sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
194 ${CPP} ${CPPFLAGS} ${OBJCPPFLAGS} -M $< | \
195 sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
199 ${CPP} ${CPPFLAGS} ${ASFLAGS} -M $< | \
200 sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
205 ${PROG} ${PROG_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
207 if ${LD} -o $@ ${OBJS} ${OBJS_EXTRA} ${LDFLAGS} ${LIBS}; then \
213 ${JARFILE}: ${EXT_DEPS} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA}
215 if test x"${JAR_MANIFEST}" != x""; then \
216 if ${JAR} cfm ${JARFILE} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA}; then \
222 if ${JAR} cf ${JARFILE} ${OBJS} ${OBJS_EXTRA}; then \
229 ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
233 for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
244 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
250 objs="$$objs $$dir/$$j"; \
254 if ${LD} -o $@ $$objs ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
260 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
264 ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
268 for i in ${PLUGIN_OBJS}; do \
279 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
285 objs="$$objs $$dir/$$j"; \
289 if ${LD} -o $@ $$objs ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
295 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
299 ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
304 for i in ${OBJS} ${OBJS_EXTRA}; do \
315 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
321 objs="$$objs $$dir/$$j"; \
325 if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
332 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
336 ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
341 for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
352 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
358 objs="$$objs $$dir/$$j"; \
362 if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
369 dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
377 if ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
383 ${COMPILE_LIB_STATUS}
384 if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
387 ${COMPILE_LIB_FAILED}; \
390 ${COMPILE_PLUGIN_STATUS}
391 if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
392 ${COMPILE_PLUGIN_OK}; \
394 ${COMPILE_PLUGIN_FAILED}; \
399 if ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
404 .cc.lib.o .cxx.lib.o:
405 ${COMPILE_LIB_STATUS}
406 if ${CXX} ${LIB_CFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
409 ${COMPILE_LIB_FAILED}; \
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}; \
416 ${COMPILE_PLUGIN_FAILED}; \
421 if test x"$(basename ${DC})" = x"dmd"; then \
422 if ${DC} ${DFLAGS} -c -of$@ $<; then \
428 if ${DC} ${DFLAGS} -c -o $@ $<; then \
437 if ${ERLC} ${ERLCFLAGS} -o $@ $<; then \
445 if ${JAVAC} ${JAVACFLAGS} $<; then \
453 if ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
459 ${COMPILE_LIB_STATUS}
460 if ${OBJC} ${LIB_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
463 ${COMPILE_LIB_FAILED}; \
466 ${COMPILE_PLUGIN_STATUS}
467 if ${OBJC} ${PLUGIN_CFLAGS} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
468 ${COMPILE_PLUGIN_OK}; \
470 ${COMPILE_PLUGIN_FAILED}; \
475 if ${OBJCXX} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
481 ${COMPILE_LIB_STATUS}
482 if ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
485 ${COMPILE_LIB_FAILED}; \
488 ${COMPILE_PLUGIN_STATUS}
489 if ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
490 ${COMPILE_PLUGIN_OK}; \
492 ${COMPILE_PLUGIN_FAILED}; \
497 if ${MSGFMT} -c -o $@ $<; then \
505 if ${PYTHON} ${PYTHON_FLAGS} -c "import py_compile; py_compile.compile('$<')"; then \
511 .rc.o .rc.lib.o .rc.plugin.o:
513 if ${WINDRES} ${CPPFLAGS} -J rc -O coff -o $@ $<; then \
521 if ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
527 ${COMPILE_LIB_STATUS}
528 if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
531 ${COMPILE_LIB_FAILED}; \
534 ${COMPILE_PLUGIN_STATUS}
535 if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
536 ${COMPILE_PLUGIN_OK}; \
538 ${COMPILE_PLUGIN_FAILED}; \
543 if ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
549 ${COMPILE_LIB_STATUS}
550 if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
553 ${COMPILE_LIB_FAILED}; \
556 ${COMPILE_PLUGIN_STATUS}
557 if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
558 ${COMPILE_PLUGIN_OK}; \
560 ${COMPILE_PLUGIN_FAILED}; \
563 install: all install-extra
564 for i in ${SUBDIRS}; do \
566 ${MAKE} ${MFLAGS} install || exit $$?; \
570 for i in ${SHARED_LIB}; do \
572 if ${MKDIR_P} ${DESTDIR}${libdir} ${INSTALL_LIB}; then \
579 for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
581 if ${MKDIR_P} ${DESTDIR}${libdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${libdir}/$$i; then \
588 for i in ${PLUGIN}; do \
590 if ${MKDIR_P} ${DESTDIR}${plugindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i; then \
597 for i in ${DATA}; do \
599 if ${MKDIR_P} $$(dirname ${DESTDIR}${datadir}/${PACKAGE_NAME}/$$i) && ${INSTALL} -m 644 $$i ${DESTDIR}${datadir}/${PACKAGE_NAME}/$$i; then \
606 for i in ${PROG}; do \
608 if ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i; then \
615 for i in ${INCLUDES}; do \
617 if ${MKDIR_P} ${DESTDIR}${includedir}/${includesubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
624 for i in ${MO_FILES}; do \
626 if ${MKDIR_P} ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES && ${INSTALL} -m 644 $$i ${DESTDIR}${localedir}/$${i%.mo}/LC_MESSAGES/${localename}.mo; then \
633 for i in ${MAN}; do \
635 if ${MKDIR_P} ${DESTDIR}${mandir}/${mansubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${mandir}/${mansubdir}/$$i; then \
644 uninstall: uninstall-extra
645 for i in ${SUBDIRS}; do \
647 ${MAKE} ${MFLAGS} uninstall || exit $$?; \
651 for i in ${SHARED_LIB}; do \
652 if test -f ${DESTDIR}${libdir}/$$i; then \
653 if : ${UNINSTALL_LIB}; then \
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 \
671 for i in ${PLUGIN}; do \
672 if test -f ${DESTDIR}${plugindir}/$$i; then \
673 if rm -f ${DESTDIR}${plugindir}/$$i; then \
680 -rmdir ${DESTDIR}${plugindir} >/dev/null 2>&1
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 \
690 rmdir "$$(dirname ${DESTDIR}${datadir}/${PACKAGE_NAME}/$$i)" >/dev/null 2>&1 || true; \
692 -rmdir ${DESTDIR}${datadir}/${PACKAGE_NAME} >/dev/null 2>&1
694 for i in ${PROG}; do \
695 if test -f ${DESTDIR}${bindir}/$$i; then \
696 if rm -f ${DESTDIR}${bindir}/$$i; then \
704 for i in ${INCLUDES}; do \
705 if test -f ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
706 if rm -f ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
713 -rmdir ${DESTDIR}${includedir}/${includesubdir} >/dev/null 2>&1
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 \
725 for i in ${MAN}; do \
726 if test -f ${DESTDIR}${mandir}/${mansubdir}/$$i; then \
727 if rm -f ${DESTDIR}${mandir}/${mansubdir}/$$i; then \
738 for i in ${SUBDIRS}; do \
740 ${MAKE} ${MFLAGS} clean || exit $$?; \
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 \
755 for i in ${SUBDIRS}; do \
757 ${MAKE} ${MFLAGS} distclean || exit $$?; \
761 for i in ${DISTCLEAN} .deps *~; do \
762 if test -f $$i -o -d $$i; then \
763 if rm -fr $$i; then \
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