## $XTermId: Makefile.in,v 1.265 2023/09/04 16:27:43 tom Exp $
# -----------------------------------------------------------------------------
# this file is part of xterm
#
# Copyright 1997-2022,2023 by Thomas E. Dickey
#
#                         All Rights Reserved
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name(s) of the above copyright
# holders shall not be used in advertising or otherwise to promote the
# sale, use or other dealings in this Software without prior written
# authorization.
# -----------------------------------------------------------------------------

SHELL		= /bin/sh

#### Start of system configuration section. ####

srcdir		= @srcdir@
VPATH  		= @srcdir@

x		= @EXEEXT@
o		= .@OBJEXT@

CC		= @CC@
CPP		= @CPP@
AWK		= @AWK@
LINK		= $(CC) $(CFLAGS)

CTAGS		= @CTAGS@
ETAGS		= @ETAGS@

LN_S		= @LN_S@
RM              = rm -f
LINT		= @LINT@
LINT_OPTS	= @LINT_OPTS@

INSTALL		= @INSTALL@
INSTALL_PROGRAM	= @INSTALL_PROGRAM@
INSTALL_SCRIPT	= @INSTALL_SCRIPT@
INSTALL_DATA	= @INSTALL_DATA@
transform	= @program_transform_name@

EXTRA_CFLAGS	= @EXTRA_CFLAGS@
EXTRA_CPPFLAGS	= @EXTRA_CPPFLAGS@
EXTRA_LOADFLAGS	= @IMAKE_LOADFLAGS@

PIXMAPDIR_DEF	= @no_pixmapdir@-DPIXMAP_ROOTDIR=\"@PIXMAPDIR@/\"
CPPFLAGS	= -I. -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@ -DDEFCLASS=\"@APP_CLASS@\" $(PIXMAPDIR_DEF) $(EXTRA_CPPFLAGS)
CFLAGS		= @CFLAGS@ $(EXTRA_CFLAGS)
LDFLAGS		= @LDFLAGS@ @EXTRA_LDFLAGS@
LIBS		= @LIBS@

prefix		= @prefix@
exec_prefix	= @exec_prefix@
datarootdir	= @datarootdir@
datadir		= @datadir@

manext		= 1
bindir		= @bindir@
libdir		= @libdir@
mandir		= @mandir@/man$(manext)
appsdir		= @APPSDIR@
icondir		= @ICONDIR@
pixmapdir	= @PIXMAPDIR@

#### End of system configuration section. ####

ICON_NAME	= @ICON_NAME@
ICON_SYMLINK	= @ICON_SYMLINK@

DESTDIR		=
BINDIR		= $(DESTDIR)$(bindir)
LIBDIR		= $(DESTDIR)$(libdir)
MANDIR		= $(DESTDIR)$(mandir)
APPSDIR		= $(DESTDIR)$(appsdir)

@no_icondir@ICONDIR		= $(DESTDIR)$(icondir)
@no_pixmapdir@PIXMAPDIR	= $(DESTDIR)$(pixmapdir)

INSTALL_DIRS    = $(BINDIR) $(APPSDIR) $(ICONDIR) $(PIXMAPDIR) $(MANDIR)

CLASS		= @APP_CLASS@
EXTRAHDR	= @EXTRAHDRS@
EXTRASRC	= @EXTRASRCS@
EXTRAOBJ	= @EXTRAOBJS@

AUTO_SOURCE	= \
		builtin_icons.h \
		VTparse.cin \
		Tekparse.cin \
		VTparse.hin \
		Tekparse.hin

          SRCS1 = button.c cachedGCs.c charproc.c charsets.c cursor.c \
	  	  data.c doublechr.c fontutils.c input.c \
		  linedata.c main.c menu.c misc.c \
		  print.c ptydata.c scrollback.c \
		  screen.c scrollbar.c tabs.c util.c version.c xstrings.c \
		  xtermcap.c VTPrsTbl.c $(EXTRASRC)
          OBJS1 = button$o cachedGCs$o charproc$o charsets$o cursor$o \
	  	  data$o doublechr$o fontutils$o input$o \
		  linedata$o main$o menu$o misc$o \
		  print$o ptydata$o scrollback$o \
		  screen$o scrollbar$o tabs$o util$o version$o xstrings$o \
		  xtermcap$o VTPrsTbl$o $(EXTRAOBJ)
          SRCS2 = resize.c version.c xstrings.c
          OBJS2 = resize$o version$o xstrings$o
           SRCS = $(SRCS1) $(SRCS2)
           OBJS = $(OBJS1) $(OBJS2)
           HDRS = VTparse.h data.h error.h fontutils.h main.h menu.h \
                  ptyx.h version.h xstrings.h xterm.h xtermcap.h $(EXTRAHDR)
       PROGRAMS = xterm$x resize$x
  TEST_PROGRAMS = test_charclass$x test_ptydata$x test_wcwidth$x

all :	$(PROGRAMS)
################################################################################
.SUFFIXES : .i .def .cin .hin .$(manext) .ms .man .txt @MAN2HTML_NOTE@ .html @GROFF_NOTE@ .ps .pdf

.c$o :
	@RULE_CC@
	@ECHO_CC@$(CC) $(CPPFLAGS) $(CFLAGS) -c $(srcdir)/$*.c

.c.i :
	@RULE_CC@
	@ECHO_CC@$(CPP) -C $(CPPFLAGS) $*.c >$@

.def.cin :
	@echo "making $@ from $<"
	@$(AWK) 'BEGIN{printf "/* vile:cmode */\n";}/^CASE_/{printf "{ %d, \"%s\" },\n", n++, $$1; }' < $< >$@

.def.hin :
	@echo "making $@ from $<"
	@$(AWK) 'BEGIN{printf "/* vile:cmode */\n";}/^CASE_/{printf "#define %s %d\n", $$1, n++}' < $< >$@

.man.$(manext) :
	$(SHELL) ./minstall "$(INSTALL_DATA)" $< $@ $* $*

@NROFF_NOTE@.$(manext).txt :
@NROFF_NOTE@	$(SHELL) -c "tbl $*.$(manext) | nroff -man | col -bx" >$@
@NROFF_NOTE@
@NROFF_NOTE@.ms.txt :
@NROFF_NOTE@	$(SHELL) -c "tbl $*.$(manext) | nroff -ms | col -bx" >$@
@NROFF_NOTE@

@MAN2HTML_NOTE@.$(manext).html :
@MAN2HTML_NOTE@	./@MAN2HTML_TEMP@ $* $(manext) man >$@
@MAN2HTML_NOTE@
@GROFF_NOTE@.$(manext).ps :
@GROFF_NOTE@	$(SHELL) -c "tbl $*.$(manext) | groff -man" >$@
@GROFF_NOTE@
@GROFF_NOTE@.$(manext).txt :
@GROFF_NOTE@	GROFF_NO_SGR=stupid $(SHELL) -c "tbl $*.$(manext) | groff -rHY=0 -Tascii -man | col -bx" >$@
@GROFF_NOTE@
@MAN2HTML_NOTE@.ms.html :
@MAN2HTML_NOTE@	./@MAN2HTML_TEMP@ $* ms ms >$@
@MAN2HTML_NOTE@
@GROFF_NOTE@.ms.ps :
@GROFF_NOTE@	$(SHELL) -c "tbl $< | groff -ms" >$@
@GROFF_NOTE@
@GROFF_NOTE@.ms.txt :
@GROFF_NOTE@	GROFF_NO_SGR=stupid $(SHELL) -c "tbl $< | groff -rHY=0 -Tascii -ms | col -bx" >$@
@GROFF_NOTE@
@GROFF_NOTE@.ps.pdf :
@GROFF_NOTE@	ps2pdf $*.ps
################################################################################

VTPARSE_H = VTparse.h VTparse.hin
TEKPARSE_H = Tekparse.h Tekparse.hin

main$o : main.h
misc$o : version.h

$(OBJS1) : xterm.h ptyx.h fontutils.h menu.h xtermcfg.h
main$o resize$o screen$o : xterm_io.h

xterm$x : $(OBJS1)
	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(LINK) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS1) $(LIBS) $(EXTRA_LOADFLAGS)

resize$x : $(OBJS2)
	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(LINK) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS2) $(LIBS)

256colres.h :
	-$(RM) $@
	perl $(srcdir)/256colres.pl > $@

88colres.h :
	-$(RM) $@
	perl $(srcdir)/88colres.pl > $@

charproc$o : $(VTPARSE_H) main.h @CHARPROC_DEPS@
graphics_regis$o : $(VTPARSE_H)
graphics_sixel$o : $(VTPARSE_H)
misc$o : $(VTPARSE_H)
VTPrsTbl$o : $(VTPARSE_H)

charproc$o \
graphics$o \
graphics_regis$o \
graphics_sixel$o \
main$o \
misc$o \
screen$o \
util$o : graphics.h

TekPrsTbl$o : $(TEKPARSE_H)
Tekproc$o : $(TEKPARSE_H)

misc$o : builtin_icons.h

trace$o : VTparse.cin Tekparse.cin

# do this to quiet gcc -Wcast-qual warnings
builtin_icons.h :
	@echo "#if OPT_BUILTIN_XPMS" >$@
	@echo "#include <icons/mini.xterm.xpms>" >>$@
	@echo "#include <icons/filled-xterm.xpms>" >>$@
	@echo "#include <icons/xterm.xpms>" >>$@
	@echo "#include <icons/xterm-color.xpms>" >>$@
	@echo "#else" >>$@
	@sed -e 's/static char \* /static const char * /' $(srcdir)/icons/mini.xterm_48x48.xpm >>$@
	@echo "#endif" >>$@
	@echo "made $@"

################################################################################
test_charclass$x : $(srcdir)/charclass.c
	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/charclass.c $(LDFLAGS) $(LIBS)

################################################################################
test_ptydata$x : $(srcdir)/ptydata.c
	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/ptydata.c $(LDFLAGS) $(LIBS)

################################################################################
test_wcwidth$x : $(srcdir)/wcwidth.c
	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/wcwidth.c $(LDFLAGS) $(LIBS)

################################################################################
actual_xterm  = `echo xterm|        sed '$(transform)'`
actual_resize = `echo resize|       sed '$(transform)'`
actual_uxterm = `echo uxterm|       sed '$(transform)'`
actual_k8term = `echo koi8rxterm|   sed '$(transform)'`

binary_xterm  = $(actual_xterm)$x
binary_resize = $(actual_resize)$x
binary_uxterm = $(actual_uxterm)
binary_k8term = $(actual_k8term)

install \
install-bin \
install-full :: xterm$x resize$x $(BINDIR)
@MAY_SETUID@	$(SHELL) $(srcdir)/sinstall.sh @SINSTALL_OPTS@ "$(INSTALL_PROGRAM)" xterm$x  @XTERM_PATH@ $(BINDIR)/$(binary_xterm)
@NOT_SETUID@	$(INSTALL_PROGRAM) xterm$x $(BINDIR)/$(binary_xterm)
	$(INSTALL_PROGRAM) -m  755 resize$x $(BINDIR)/$(binary_resize)

EDIT_SCRIPT = sed -e s,=xterm,=\$$name, -e s,XTerm,$(CLASS),

InstallLink = \
	if test @XTERM_SYMLINK@ != NONE \
	&& test \$$source != NONE \
	&& test \$$source != \$$target ; then \
		cd \$$TARGET && ( \
			$(RM) \$$source ; \
			$(LN_S) \$$target \$$source ; \
			echo \"... created symbolic link:\" ; \
			ls -l \$$target \$$source ) ; \
	fi

InstallBinLink = TARGET=$(BINDIR); $(InstallLink)
InstallManLink = TARGET=$(MANDIR); $(InstallLink)

InstallScript = \
	echo \"... installing $(BINDIR)/\$$target\"; \
	name=$(binary_xterm); \
	$(EDIT_SCRIPT) $(srcdir)/\$$source >\$$source.tmp; \
	$(INSTALL_SCRIPT) -m  755 \$$source.tmp $(BINDIR)/\$$target; \
	$(RM) \$$source.tmp

install \
install-bin \
install-scripts \
install-full :: $(BINDIR)
	@$(SHELL) -c "source=\"@XTERM_SYMLINK@\"; \
		target=\"$(binary_xterm)\"; \
		$(InstallBinLink)"
	@$(SHELL) -c "source=\"resize\"; \
		target=\"$(binary_resize)\"; \
		$(InstallBinLink)"
	@$(SHELL) -c "source=\"uxterm\"; \
		target=\"$(binary_uxterm)\"; \
		$(InstallScript); \
		$(InstallBinLink)"
	@$(SHELL) -c "source=\"koi8rxterm\"; \
		target=\"$(binary_k8term)\"; \
		$(InstallScript); \
		$(InstallBinLink)"

install \
install-man \
install-full :: $(MANDIR)
	@-$(SHELL) -c "for source in xterm resize uxterm koi8rxterm ; \
		do \
			target=\`echo \"\$$source\" | sed '@program_transform_name@'\`; \
			$(SHELL) ./minstall \"$(INSTALL_DATA)\" \
				$(srcdir)/\$$source.man  \
				$(MANDIR)/\$$target.$(manext) \
				\$$source \
				\$$target; \
		done"
	@-$(SHELL) -c "if test @XTERM_SYMLINK@ != NONE ; then \
		source=$(actual_xterm).$(manext); \
		target=@XTERM_SYMLINK@.$(manext); \
		cd $(MANDIR) && ( \
			$(RM) \$$target ; \
			$(LN_S) \$$source \$$target ; \
			echo '... created symbolic link:' ; \
			ls -l \$$source \$$target ; \
			) \
		fi"

APP_NAMES = XTerm UXTerm KOI8RXTerm

@no_appsdir@install \
@no_appsdir@install-app \
@no_appsdir@install-full :: $(APPSDIR)
@no_appsdir@	@-$(SHELL) -c 'for s in $(APP_NAMES); \
@no_appsdir@	do \
@no_appsdir@		echo "** $$s"; \
@no_appsdir@		d=`echo $$s | sed -e s/XTerm/$(CLASS)/`; \
@no_appsdir@		echo installing $(APPSDIR)/$$d; \
@no_appsdir@		sed -e s/XTerm/$(CLASS)/ $(srcdir)/$$s.ad >XTerm.tmp; \
@no_appsdir@		$(INSTALL_DATA) XTerm.tmp $(APPSDIR)/$$d; \
@no_appsdir@		echo installing $(APPSDIR)/$$d-color; \
@no_appsdir@		sed -e s/XTerm/$$d/ $(srcdir)/XTerm-col.ad >XTerm.tmp; \
@no_appsdir@		$(INSTALL_DATA) XTerm.tmp $(APPSDIR)/$$d-color; \
@no_appsdir@	done'
@no_appsdir@	@$(RM) XTerm.tmp
@no_icondir@	@echo "... installed app-defaults"

@no_icondir@ICON_LIST = @ICON_LIST@
@no_icondir@ICON_THEME = @ICON_THEME@
@no_icondir@install \
@no_icondir@install-icon \
@no_icondir@install-full :: $(ICONDIR)
@no_icondir@	@ECHO_CC@ACTUAL_XTERM=$(actual_xterm) $(SHELL) -c '\
@no_icondir@		h=$(ICONDIR)/$(ICON_THEME); \
@no_icondir@		for n in $(ICON_LIST); \
@no_icondir@		do \
@no_icondir@			x=$$ACTUAL_XTERM; \
@no_icondir@			l=`echo "$$n" | cut -f1 -d:`; \
@no_icondir@			r=`echo "$$n" | cut -f2 -d: |sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
@no_icondir@			test -z "$$r" && continue; \
@no_icondir@			d=$$h/`echo "$$r" | sed -e "s,/[^/]*$$,,"`; \
@no_icondir@			test -d "$$d" || mkdir -p "$$d"; \
@no_icondir@			echo "installing icon $$h/$$r"; \
@no_icondir@			$(INSTALL_DATA) $$l $$h/$$r; \
@no_icondir@			s=`echo "$$r" | sed -e '"'s,^.*\.,.,'"'`; \
@no_icondir@			t=$(ICON_SYMLINK)$$s; \
@no_icondir@			b=`basename $$n $$s | sed -e "s,_[1-9][0-9]*x.*,,"`; \
@no_icondir@			if test "$(ICON_SYMLINK)" != NONE ; then \
@no_icondir@				if test "$$r" != "$$t" ; then \
@no_icondir@					if test "x$$b" = "x$(ICON_NAME)" ; then \
@no_icondir@						echo "linking $$r -> $$t"; \
@no_icondir@						( cd $$h; $(RM) $$t; $(LN_S) $$r $$t; ) \
@no_icondir@					fi \
@no_icondir@				fi \
@no_icondir@			fi \
@no_icondir@		done'
@no_icondir@	@echo "... installed icons"

@no_pixmapdir@install \
@no_pixmapdir@install-icon \
@no_pixmapdir@install-full :: $(PIXMAPDIR)
@no_pixmapdir@	@ECHO_CC@ACTUAL_XTERM=$(actual_xterm) $(SHELL) -c '\
@no_pixmapdir@		h=$(PIXMAPDIR); \
@no_pixmapdir@		for n in $(srcdir)/icons/*xterm*_*x*.xpm; \
@no_pixmapdir@		do \
@no_pixmapdir@			l=`basename $$n`; \
@no_pixmapdir@			r=`echo "$$l" | sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
@no_pixmapdir@			echo "installing pixmap $$h/$$r"; \
@no_pixmapdir@			$(INSTALL_DATA) $(srcdir)/icons/$$l $$h/$$r; \
@no_pixmapdir@			s=`echo "$$r" | sed -e '"'s,^.*\.,.,'"'`; \
@no_pixmapdir@			t=$(ICON_SYMLINK)$$s; \
@no_pixmapdir@			b=`basename $$n $$s | sed -e "s,_[1-9][0-9]*x.*,,"`; \
@no_pixmapdir@			if test "$(ICON_SYMLINK)" != NONE ; then \
@no_pixmapdir@				if test "x$$r" != "$$t" ; then \
@no_pixmapdir@					if test "x$$b" = "x$(ICON_NAME)" ; then \
@no_pixmapdir@						echo "linking $$r -> $$t"; \
@no_pixmapdir@						( cd $$h; $(RM) $$t; $(LN_S) $$r $$t; ) \
@no_pixmapdir@					fi \
@no_pixmapdir@				fi \
@no_pixmapdir@			fi \
@no_pixmapdir@		done'
@no_pixmapdir@	@echo "... installed icons"

install ::
	@echo 'Completed installation of executables and documentation.'
	@echo 'Use "make install-ti" to install terminfo description.'

TERMINFO_DIR = @TERMINFO_DIR@
SET_TERMINFO = @SET_TERMINFO@

@no_ticprog@install-full \
@no_ticprog@install-ti :: $(TERMINFO_DIR)
@no_ticprog@	@echo "Installing $(srcdir)/terminfo"
@no_ticprog@	@$(SHELL) -c "chmod +x ./run-tic.sh"
@no_ticprog@	@$(SHELL) -c "$(SET_TERMINFO) ./run-tic.sh $(srcdir)/terminfo"
@no_ticprog@	@echo 'Completed installation of terminfo description.'

install-full \
install-tc ::
	@-$(SHELL) -c "if test -f /etc/termcap ; then echo 'You must install the termcap entry manually by editing /etc/termcap'; fi"

installdirs : $(INSTALL_DIRS)
################################################################################

UninstallLink = \
	if test @XTERM_SYMLINK@ != NONE \
	&& test \$$source != NONE \
	&& test \$$source != \$$target \
	&& test -h \$$TARGET/\$$source ; then \
		echo \"... removing \$$TARGET/\$$source\"; \
		cd \$$TARGET && \
		$(RM) \$$source; \
	fi

UninstallBinLink = TARGET=$(BINDIR); $(UninstallLink)
UninstallManLink = TARGET=$(MANDIR); $(UninstallLink)

UninstallBinary = \
	echo \"... removing $(BINDIR)/\$$target\"; \
	$(RM) $(BINDIR)/\$$target

uninstall \
uninstall-bin \
uninstall-full ::
	@-$(SHELL) -c "source=\"@XTERM_SYMLINK@\"; \
		target=\"$(binary_xterm)\"; \
		$(UninstallBinLink); \
		$(UninstallBinary)"
	@-$(SHELL) -c "source=\"resize\"; \
		target=\"$(binary_resize)\"; \
		$(UninstallBinLink); \
		$(UninstallBinary)"

uninstall \
uninstall-bin \
uninstall-scripts \
uninstall-full ::
	@-$(SHELL) -c "source=\"uxterm\"; \
		target=\"$(binary_uxterm)\"; \
		$(UninstallBinLink); \
		$(UninstallBinary)"
	@-$(SHELL) -c "source=\"koi8rxterm\"; \
		target=\"$(binary_k8term)\"; \
		$(UninstallBinLink); \
		$(UninstallBinary)"

uninstall \
uninstall-man \
uninstall-full ::
	@-$(SHELL) -c "\
		source=@XTERM_SYMLINK@.$(manext); \
		target=$(actual_xterm).$(manext); \
		$(UninstallManLink)"
	@-$(SHELL) -c "for source in \
		$(actual_xterm).$(manext) \
		$(actual_resize).$(manext) \
		$(actual_uxterm).$(manext) \
		$(actual_k8term).$(manext); \
		do \
			echo \"... removing $(MANDIR)/\$$source\"; \
			$(RM) $(MANDIR)/\$$source; \
		done"

@no_appsdir@uninstall \
@no_appsdir@uninstall-app \
@no_appsdir@uninstall-full ::
@no_appsdir@	-@ECHO_CC@$(SHELL) -c 'for s in $(APP_NAMES); \
@no_appsdir@	do \
@no_appsdir@		echo "** $$s"; \
@no_appsdir@		d=`echo $$s | sed -e s/XTerm/$(CLASS)/`; \
@no_appsdir@		echo uninstalling $(APPSDIR)/$$d; \
@no_appsdir@		$(RM) $(APPSDIR)/$$d; \
@no_appsdir@		echo uninstalling $(APPSDIR)/$$d-color; \
@no_appsdir@		$(RM) $(APPSDIR)/$$d-color; \
@no_appsdir@	done'

@no_icondir@uninstall \
@no_icondir@uninstall-icon \
@no_icondir@uninstall-full ::
@no_icondir@	-@ECHO_CC@$(SHELL) -c 'ACTUAL_XTERM=$(actual_xterm) ; \
@no_icondir@		for n in $(ICON_LIST); \
@no_icondir@		do \
@no_icondir@		r=`echo "$$n" | sed -e s,\^.\*:,, -e s,xterm,$$ACTUAL_XTERM,`; \
@no_icondir@		test -z "$$r" && continue; \
@no_icondir@		h=$(ICONDIR)/$(ICON_THEME); \
@no_icondir@		test -f $$h/$$r || continue; \
@no_icondir@		echo removing $$h/$$r; \
@no_icondir@		$(RM) $$h/$$r; \
@no_icondir@		done'
@no_icondir@	@echo "... removed icons"

@no_pixmapdir@uninstall \
@no_pixmapdir@uninstall-icon \
@no_pixmapdir@uninstall-full ::
@no_pixmapdir@	-@$(SHELL) -c 'ACTUAL_XTERM=$(actual_xterm) ; \
@no_pixmapdir@		for n in $(srcdir)/icons/*xterm*_32x32.xpm $(srcdir)/icons/*xterm*_48x48.xpm; \
@no_pixmapdir@		do \
@no_pixmapdir@			l=`basename $$n`; \
@no_pixmapdir@			r=`echo "$$l" | sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
@no_pixmapdir@			echo removing $(PIXMAPDIR)/$$r; \
@no_pixmapdir@			$(RM) $(PIXMAPDIR)/$$r; \
@no_pixmapdir@		done'
@no_pixmapdir@	@echo "... removed icons"
################################################################################
# Desktop-utils does not provide an uninstall, and is not uniformly available.
@desktop_utils@DESKTOP_FILES = $(srcdir)/xterm.desktop $(srcdir)/uxterm.desktop
@desktop_utils@DESKTOP_FLAGS = @DESKTOP_FLAGS@
@desktop_utils@install-desktop \
@desktop_utils@install-full ::
@desktop_utils@	ACTUAL_XTERM=$(actual_xterm) \
@desktop_utils@	$(SHELL) -c 'for n in $(DESKTOP_FILES); \
@desktop_utils@		do $(SHELL) df-install $$ACTUAL_XTERM $(ICON_NAME) DESTDIR="$(DESTDIR)" $(DESKTOP_FLAGS) $$n; \
@desktop_utils@		done'
################################################################################
check : $(TEST_PROGRAMS)
	@ echo "See demos in vttests/* (use vttest for system-level testing)"
	@ $(SHELL) -c 'echo "** executing test_charclass"; \
		./test_charclass'
	@ $(SHELL) -c 'echo "** executing test_wcwidth"; \
		for range in 32-126 160-0xff00 0x10000-0x11000; \
		do echo ".. range $$range"; \
		./test_wcwidth -s $$range; \
		./test_wcwidth -s $$range -w; \
	done'
	@ $(SHELL) -c 'echo "** executing test_ptydata"; \
		./test_ptydata -a'
################################################################################
mostlyclean :
	-$(RM) *$o *.[is] XTerm[1-9]*.* Xterm.log.* XtermLog.* .pure core *~ *.bak *.BAK *.out *.tmp

clean : mostlyclean
	-$(RM) $(PROGRAMS) $(TEST_PROGRAMS) $(AUTO_SOURCE)

sources : $(AUTO_SOURCE)

distclean :: clean
	-$(RM) Makefile config.status config.cache config.log xtermcfg.h
	-$(RM) df-install minstall run-tic.sh

distclean \
docs-clean ::
	-$(RM) *.ps *.pdf *.png
	-$(SHELL) -c 'for p in xterm resize uxterm koi8rxterm; \
	do \
		$(RM) $$p.html $$p.$(manext) $$p.txt; \
	done'
	-$(RM) ctlseqs.html ctlseqs.$(manext)

distclean ::
	-$(RM) man2html.tmp

realclean : distclean
	-$(RM) tags TAGS

maintainer-clean : realclean
	-$(RM) 256colres.h 88colres.h
################################################################################
TIC=tic
terminfo.out : terminfo		; $(TIC) -a -I -1 terminfo >$@
termcap.out : termcap		; $(TIC) -a -C -U termcap >$@
################################################################################
docs-ctlseqs \
docs :: $(srcdir)/ctlseqs.txt @MAN2HTML_NOTE@ ctlseqs.html @GROFF_NOTE@ ctlseqs.pdf ctlseqs.ps

ctlseqs.html : $(srcdir)/ctlseqs.ms
ctlseqs.pdf : ctlseqs.ps
ctlseqs.ps : $(srcdir)/ctlseqs.ms
ctlseqs.txt : $(srcdir)/ctlseqs.ms
################################################################################
docs-resize \
docs ::  resize.txt @MAN2HTML_NOTE@ resize.html @GROFF_NOTE@ resize.pdf resize.ps
resize.html : resize.$(manext)
resize.pdf : resize.ps
resize.ps : resize.$(manext)
resize.txt : resize.$(manext)
################################################################################
docs-xterm \
docs ::  xterm.txt @MAN2HTML_NOTE@ xterm.html @GROFF_NOTE@ xterm.pdf xterm.ps
xterm.html : xterm.$(manext)
xterm.pdf : xterm.ps
xterm.ps : xterm.$(manext)
xterm.txt : xterm.$(manext)
################################################################################
docs-uxterm \
docs ::  uxterm.txt @MAN2HTML_NOTE@ uxterm.html @GROFF_NOTE@ uxterm.pdf uxterm.ps
uxterm.html : uxterm.$(manext)
uxterm.pdf : uxterm.ps
uxterm.ps : uxterm.$(manext)
uxterm.txt : uxterm.$(manext)
################################################################################
docs-koi8rxterm \
docs ::  koi8rxterm.txt @MAN2HTML_NOTE@ koi8rxterm.html @GROFF_NOTE@ koi8rxterm.pdf koi8rxterm.ps
koi8rxterm.html : koi8rxterm.$(manext)
koi8rxterm.pdf : koi8rxterm.ps
koi8rxterm.ps : koi8rxterm.$(manext)
koi8rxterm.txt : koi8rxterm.$(manext)
################################################################################
lint :
	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS1)
	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS2)

tags :
	$(CTAGS) $(SRCS) $(HDRS)

TAGS :
	$(ETAGS) $(SRCS) $(HDRS)

$(TERMINFO_DIR) $(INSTALL_DIRS) :
	mkdir -p $@

ALWAYS :

depend : $(TABLES)
	makedepend -- $(CPPFLAGS) -- $(SRCS)

# DO NOT DELETE THIS LINE -- make depend depends on it.
