Makefile.in revision 04b94745
1## $XTermId: Makefile.in,v 1.266 2023/12/10 19:32:38 tom Exp $
2# -----------------------------------------------------------------------------
3# this file is part of xterm
4#
5# Copyright 1997-2022,2023 by Thomas E. Dickey
6#
7#                         All Rights Reserved
8#
9# Permission is hereby granted, free of charge, to any person obtaining a
10# copy of this software and associated documentation files (the
11# "Software"), to deal in the Software without restriction, including
12# without limitation the rights to use, copy, modify, merge, publish,
13# distribute, sublicense, and/or sell copies of the Software, and to
14# permit persons to whom the Software is furnished to do so, subject to
15# the following conditions:
16#
17# The above copyright notice and this permission notice shall be included
18# in all copies or substantial portions of the Software.
19#
20# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
24# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27#
28# Except as contained in this notice, the name(s) of the above copyright
29# holders shall not be used in advertising or otherwise to promote the
30# sale, use or other dealings in this Software without prior written
31# authorization.
32# -----------------------------------------------------------------------------
33
34SHELL		= /bin/sh
35
36#### Start of system configuration section. ####
37
38srcdir		= @srcdir@
39VPATH  		= @srcdir@
40
41x		= @EXEEXT@
42o		= .@OBJEXT@
43
44CC		= @CC@
45CPP		= @CPP@
46AWK		= @AWK@
47LINK		= $(CC) $(CFLAGS)
48
49CTAGS		= @CTAGS@
50ETAGS		= @ETAGS@
51
52LN_S		= @LN_S@
53RM              = rm -f
54LINT		= @LINT@
55LINT_OPTS	= @LINT_OPTS@
56
57INSTALL		= @INSTALL@
58INSTALL_PROGRAM	= @INSTALL_PROGRAM@
59INSTALL_SCRIPT	= @INSTALL_SCRIPT@
60INSTALL_DATA	= @INSTALL_DATA@
61transform	= @program_transform_name@
62
63EXTRA_CFLAGS	= @EXTRA_CFLAGS@
64EXTRA_CPPFLAGS	= @EXTRA_CPPFLAGS@
65EXTRA_LOADFLAGS	= @IMAKE_LOADFLAGS@
66
67PIXMAPDIR_DEF	= @no_pixmapdir@-DPIXMAP_ROOTDIR=\"@PIXMAPDIR@/\"
68CPPFLAGS	= -I. -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@ -DDEFCLASS=\"@APP_CLASS@\" $(PIXMAPDIR_DEF) $(EXTRA_CPPFLAGS)
69CFLAGS		= @CFLAGS@ $(EXTRA_CFLAGS)
70LDFLAGS		= @LDFLAGS@ @EXTRA_LDFLAGS@
71LIBS		= @LIBS@
72
73prefix		= @prefix@
74exec_prefix	= @exec_prefix@
75datarootdir	= @datarootdir@
76datadir		= @datadir@
77
78manext		= 1
79bindir		= @bindir@
80libdir		= @libdir@
81mandir		= @mandir@/man$(manext)
82appsdir		= @APPSDIR@
83icondir		= @ICONDIR@
84pixmapdir	= @PIXMAPDIR@
85
86#### End of system configuration section. ####
87
88ICON_NAME	= @ICON_NAME@
89ICON_SYMLINK	= @ICON_SYMLINK@
90
91DESTDIR		=
92BINDIR		= $(DESTDIR)$(bindir)
93LIBDIR		= $(DESTDIR)$(libdir)
94MANDIR		= $(DESTDIR)$(mandir)
95APPSDIR		= $(DESTDIR)$(appsdir)
96
97@no_icondir@ICONDIR		= $(DESTDIR)$(icondir)
98@no_pixmapdir@PIXMAPDIR	= $(DESTDIR)$(pixmapdir)
99
100INSTALL_DIRS    = $(BINDIR) $(APPSDIR) $(ICONDIR) $(PIXMAPDIR) $(MANDIR)
101
102CLASS		= @APP_CLASS@
103EXTRAHDR	= @EXTRAHDRS@
104EXTRASRC	= @EXTRASRCS@
105EXTRAOBJ	= @EXTRAOBJS@
106
107AUTO_SOURCE	= \
108		builtin_icons.h \
109		VTparse.cin \
110		Tekparse.cin \
111		VTparse.hin \
112		Tekparse.hin
113
114          SRCS1 = button.c cachedGCs.c charproc.c charsets.c cursor.c \
115	  	  data.c doublechr.c fontutils.c input.c \
116		  linedata.c main.c menu.c misc.c \
117		  print.c ptydata.c scrollback.c \
118		  screen.c scrollbar.c tabs.c util.c version.c xstrings.c \
119		  xtermcap.c VTPrsTbl.c $(EXTRASRC)
120          OBJS1 = button$o cachedGCs$o charproc$o charsets$o cursor$o \
121	  	  data$o doublechr$o fontutils$o input$o \
122		  linedata$o main$o menu$o misc$o \
123		  print$o ptydata$o scrollback$o \
124		  screen$o scrollbar$o tabs$o util$o version$o xstrings$o \
125		  xtermcap$o VTPrsTbl$o $(EXTRAOBJ)
126          SRCS2 = resize.c version.c xstrings.c
127          OBJS2 = resize$o version$o xstrings$o
128           SRCS = $(SRCS1) $(SRCS2)
129           OBJS = $(OBJS1) $(OBJS2)
130           HDRS = VTparse.h data.h error.h fontutils.h main.h menu.h \
131                  ptyx.h version.h xstrings.h xterm.h xtermcap.h $(EXTRAHDR)
132       PROGRAMS = xterm$x resize$x
133  TEST_PROGRAMS = test_charclass$x test_ptydata$x test_wcwidth$x
134
135all :	$(PROGRAMS)
136################################################################################
137.SUFFIXES : .i .def .cin .hin .$(manext) .ms .man .txt @MAN2HTML_NOTE@ .html @GROFF_NOTE@ .ps .pdf
138
139.c$o :
140	@RULE_CC@
141	@ECHO_CC@$(CC) $(CPPFLAGS) $(CFLAGS) -c $(srcdir)/$*.c
142
143.c.i :
144	@RULE_CC@
145	@ECHO_CC@$(CPP) -C $(CPPFLAGS) $*.c >$@
146
147.def.cin :
148	@echo "making $@ from $<"
149	@$(AWK) 'BEGIN{printf "/* vile:cmode */\n";}/^CASE_/{printf "{ %d, \"%s\" },\n", n++, $$1; }' < $< >$@
150
151.def.hin :
152	@echo "making $@ from $<"
153	@$(AWK) 'BEGIN{printf "/* vile:cmode */\n";}/^CASE_/{printf "#define %s %d\n", $$1, n++}' < $< >$@
154
155.man.$(manext) :
156	$(SHELL) ./minstall "$(INSTALL_DATA)" $< $@ $* $*
157
158@NROFF_NOTE@.$(manext).txt :
159@NROFF_NOTE@	$(SHELL) -c "tbl $*.$(manext) | nroff -man | col -bx" >$@
160@NROFF_NOTE@
161@NROFF_NOTE@.ms.txt :
162@NROFF_NOTE@	$(SHELL) -c "tbl $*.$(manext) | nroff -ms | col -bx" >$@
163@NROFF_NOTE@
164
165@MAN2HTML_NOTE@.$(manext).html :
166@MAN2HTML_NOTE@	./@MAN2HTML_TEMP@ $* $(manext) man >$@
167@MAN2HTML_NOTE@
168@GROFF_NOTE@.$(manext).ps :
169@GROFF_NOTE@	$(SHELL) -c "tbl $*.$(manext) | groff -man" >$@
170@GROFF_NOTE@
171@GROFF_NOTE@.$(manext).txt :
172@GROFF_NOTE@	GROFF_NO_SGR=stupid $(SHELL) -c "tbl $*.$(manext) | groff -rHY=0 -Tascii -man | col -bx" >$@
173@GROFF_NOTE@
174@MAN2HTML_NOTE@.ms.html :
175@MAN2HTML_NOTE@	./@MAN2HTML_TEMP@ $* ms ms >$@
176@MAN2HTML_NOTE@
177@GROFF_NOTE@.ms.ps :
178@GROFF_NOTE@	$(SHELL) -c "tbl $< | groff -ms" >$@
179@GROFF_NOTE@
180@GROFF_NOTE@.ms.txt :
181@GROFF_NOTE@	GROFF_NO_SGR=stupid $(SHELL) -c "tbl $< | groff -rHY=0 -Tascii -ms | col -bx" >$@
182@GROFF_NOTE@
183@GROFF_NOTE@.ps.pdf :
184@GROFF_NOTE@	ps2pdf $*.ps
185################################################################################
186
187VTPARSE_H = VTparse.h VTparse.hin
188TEKPARSE_H = Tekparse.h Tekparse.hin
189
190main$o : main.h
191misc$o : version.h
192
193$(OBJS1) : xterm.h ptyx.h fontutils.h menu.h xtermcfg.h
194main$o resize$o screen$o : xterm_io.h
195
196xterm$x : $(OBJS1)
197	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(LINK) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS1) $(LIBS) $(EXTRA_LOADFLAGS)
198
199resize$x : $(OBJS2)
200	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(LINK) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS2) $(LIBS)
201
202256colres.h :
203	-$(RM) $@
204	perl $(srcdir)/256colres.pl > $@
205
20688colres.h :
207	-$(RM) $@
208	perl $(srcdir)/88colres.pl > $@
209
210charproc$o : $(VTPARSE_H) main.h @CHARPROC_DEPS@
211graphics_regis$o : $(VTPARSE_H)
212graphics_sixel$o : $(VTPARSE_H)
213misc$o : $(VTPARSE_H)
214VTPrsTbl$o : $(VTPARSE_H)
215
216charsets$o : charsets.h
217
218charproc$o \
219graphics$o \
220graphics_regis$o \
221graphics_sixel$o \
222main$o \
223misc$o \
224screen$o \
225util$o : graphics.h
226
227TekPrsTbl$o : $(TEKPARSE_H)
228Tekproc$o : $(TEKPARSE_H)
229
230misc$o : builtin_icons.h
231
232trace$o : VTparse.cin Tekparse.cin
233
234# do this to quiet gcc -Wcast-qual warnings
235builtin_icons.h :
236	@echo "#if OPT_BUILTIN_XPMS" >$@
237	@echo "#include <icons/mini.xterm.xpms>" >>$@
238	@echo "#include <icons/filled-xterm.xpms>" >>$@
239	@echo "#include <icons/xterm.xpms>" >>$@
240	@echo "#include <icons/xterm-color.xpms>" >>$@
241	@echo "#else" >>$@
242	@sed -e 's/static char \* /static const char * /' $(srcdir)/icons/mini.xterm_48x48.xpm >>$@
243	@echo "#endif" >>$@
244	@echo "made $@"
245
246################################################################################
247test_charclass$x : $(srcdir)/charclass.c
248	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/charclass.c $(LDFLAGS) $(LIBS)
249
250################################################################################
251test_ptydata$x : $(srcdir)/ptydata.c
252	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/ptydata.c $(LDFLAGS) $(LIBS)
253
254################################################################################
255test_wcwidth$x : $(srcdir)/wcwidth.c
256	@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/wcwidth.c $(LDFLAGS) $(LIBS)
257
258################################################################################
259actual_xterm  = `echo xterm|        sed '$(transform)'`
260actual_resize = `echo resize|       sed '$(transform)'`
261actual_uxterm = `echo uxterm|       sed '$(transform)'`
262actual_k8term = `echo koi8rxterm|   sed '$(transform)'`
263
264binary_xterm  = $(actual_xterm)$x
265binary_resize = $(actual_resize)$x
266binary_uxterm = $(actual_uxterm)
267binary_k8term = $(actual_k8term)
268
269install \
270install-bin \
271install-full :: xterm$x resize$x $(BINDIR)
272@MAY_SETUID@	$(SHELL) $(srcdir)/sinstall.sh @SINSTALL_OPTS@ "$(INSTALL_PROGRAM)" xterm$x  @XTERM_PATH@ $(BINDIR)/$(binary_xterm)
273@NOT_SETUID@	$(INSTALL_PROGRAM) xterm$x $(BINDIR)/$(binary_xterm)
274	$(INSTALL_PROGRAM) -m  755 resize$x $(BINDIR)/$(binary_resize)
275
276EDIT_SCRIPT = sed -e s,=xterm,=\$$name, -e s,XTerm,$(CLASS),
277
278InstallLink = \
279	if test @XTERM_SYMLINK@ != NONE \
280	&& test \$$source != NONE \
281	&& test \$$source != \$$target ; then \
282		cd \$$TARGET && ( \
283			$(RM) \$$source ; \
284			$(LN_S) \$$target \$$source ; \
285			echo \"... created symbolic link:\" ; \
286			ls -l \$$target \$$source ) ; \
287	fi
288
289InstallBinLink = TARGET=$(BINDIR); $(InstallLink)
290InstallManLink = TARGET=$(MANDIR); $(InstallLink)
291
292InstallScript = \
293	echo \"... installing $(BINDIR)/\$$target\"; \
294	name=$(binary_xterm); \
295	$(EDIT_SCRIPT) $(srcdir)/\$$source >\$$source.tmp; \
296	$(INSTALL_SCRIPT) -m  755 \$$source.tmp $(BINDIR)/\$$target; \
297	$(RM) \$$source.tmp
298
299install \
300install-bin \
301install-scripts \
302install-full :: $(BINDIR)
303	@$(SHELL) -c "source=\"@XTERM_SYMLINK@\"; \
304		target=\"$(binary_xterm)\"; \
305		$(InstallBinLink)"
306	@$(SHELL) -c "source=\"resize\"; \
307		target=\"$(binary_resize)\"; \
308		$(InstallBinLink)"
309	@$(SHELL) -c "source=\"uxterm\"; \
310		target=\"$(binary_uxterm)\"; \
311		$(InstallScript); \
312		$(InstallBinLink)"
313	@$(SHELL) -c "source=\"koi8rxterm\"; \
314		target=\"$(binary_k8term)\"; \
315		$(InstallScript); \
316		$(InstallBinLink)"
317
318install \
319install-man \
320install-full :: $(MANDIR)
321	@-$(SHELL) -c "for source in xterm resize uxterm koi8rxterm ; \
322		do \
323			target=\`echo \"\$$source\" | sed '@program_transform_name@'\`; \
324			$(SHELL) ./minstall \"$(INSTALL_DATA)\" \
325				$(srcdir)/\$$source.man  \
326				$(MANDIR)/\$$target.$(manext) \
327				\$$source \
328				\$$target; \
329		done"
330	@-$(SHELL) -c "if test @XTERM_SYMLINK@ != NONE ; then \
331		source=$(actual_xterm).$(manext); \
332		target=@XTERM_SYMLINK@.$(manext); \
333		cd $(MANDIR) && ( \
334			$(RM) \$$target ; \
335			$(LN_S) \$$source \$$target ; \
336			echo '... created symbolic link:' ; \
337			ls -l \$$source \$$target ; \
338			) \
339		fi"
340
341APP_NAMES = XTerm UXTerm KOI8RXTerm
342
343@no_appsdir@install \
344@no_appsdir@install-app \
345@no_appsdir@install-full :: $(APPSDIR)
346@no_appsdir@	@-$(SHELL) -c 'for s in $(APP_NAMES); \
347@no_appsdir@	do \
348@no_appsdir@		echo "** $$s"; \
349@no_appsdir@		d=`echo $$s | sed -e s/XTerm/$(CLASS)/`; \
350@no_appsdir@		echo installing $(APPSDIR)/$$d; \
351@no_appsdir@		sed -e s/XTerm/$(CLASS)/ $(srcdir)/$$s.ad >XTerm.tmp; \
352@no_appsdir@		$(INSTALL_DATA) XTerm.tmp $(APPSDIR)/$$d; \
353@no_appsdir@		echo installing $(APPSDIR)/$$d-color; \
354@no_appsdir@		sed -e s/XTerm/$$d/ $(srcdir)/XTerm-col.ad >XTerm.tmp; \
355@no_appsdir@		$(INSTALL_DATA) XTerm.tmp $(APPSDIR)/$$d-color; \
356@no_appsdir@	done'
357@no_appsdir@	@$(RM) XTerm.tmp
358@no_icondir@	@echo "... installed app-defaults"
359
360@no_icondir@ICON_LIST = @ICON_LIST@
361@no_icondir@ICON_THEME = @ICON_THEME@
362@no_icondir@install \
363@no_icondir@install-icon \
364@no_icondir@install-full :: $(ICONDIR)
365@no_icondir@	@ECHO_CC@ACTUAL_XTERM=$(actual_xterm) $(SHELL) -c '\
366@no_icondir@		h=$(ICONDIR)/$(ICON_THEME); \
367@no_icondir@		for n in $(ICON_LIST); \
368@no_icondir@		do \
369@no_icondir@			x=$$ACTUAL_XTERM; \
370@no_icondir@			l=`echo "$$n" | cut -f1 -d:`; \
371@no_icondir@			r=`echo "$$n" | cut -f2 -d: |sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
372@no_icondir@			test -z "$$r" && continue; \
373@no_icondir@			d=$$h/`echo "$$r" | sed -e "s,/[^/]*$$,,"`; \
374@no_icondir@			test -d "$$d" || mkdir -p "$$d"; \
375@no_icondir@			echo "installing icon $$h/$$r"; \
376@no_icondir@			$(INSTALL_DATA) $$l $$h/$$r; \
377@no_icondir@			s=`echo "$$r" | sed -e '"'s,^.*\.,.,'"'`; \
378@no_icondir@			t=$(ICON_SYMLINK)$$s; \
379@no_icondir@			b=`basename $$n $$s | sed -e "s,_[1-9][0-9]*x.*,,"`; \
380@no_icondir@			if test "$(ICON_SYMLINK)" != NONE ; then \
381@no_icondir@				if test "$$r" != "$$t" ; then \
382@no_icondir@					if test "x$$b" = "x$(ICON_NAME)" ; then \
383@no_icondir@						echo "linking $$r -> $$t"; \
384@no_icondir@						( cd $$h; $(RM) $$t; $(LN_S) $$r $$t; ) \
385@no_icondir@					fi \
386@no_icondir@				fi \
387@no_icondir@			fi \
388@no_icondir@		done'
389@no_icondir@	@echo "... installed icons"
390
391@no_pixmapdir@install \
392@no_pixmapdir@install-icon \
393@no_pixmapdir@install-full :: $(PIXMAPDIR)
394@no_pixmapdir@	@ECHO_CC@ACTUAL_XTERM=$(actual_xterm) $(SHELL) -c '\
395@no_pixmapdir@		h=$(PIXMAPDIR); \
396@no_pixmapdir@		for n in $(srcdir)/icons/*xterm*_*x*.xpm; \
397@no_pixmapdir@		do \
398@no_pixmapdir@			l=`basename $$n`; \
399@no_pixmapdir@			r=`echo "$$l" | sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
400@no_pixmapdir@			echo "installing pixmap $$h/$$r"; \
401@no_pixmapdir@			$(INSTALL_DATA) $(srcdir)/icons/$$l $$h/$$r; \
402@no_pixmapdir@			s=`echo "$$r" | sed -e '"'s,^.*\.,.,'"'`; \
403@no_pixmapdir@			t=$(ICON_SYMLINK)$$s; \
404@no_pixmapdir@			b=`basename $$n $$s | sed -e "s,_[1-9][0-9]*x.*,,"`; \
405@no_pixmapdir@			if test "$(ICON_SYMLINK)" != NONE ; then \
406@no_pixmapdir@				if test "x$$r" != "$$t" ; then \
407@no_pixmapdir@					if test "x$$b" = "x$(ICON_NAME)" ; then \
408@no_pixmapdir@						echo "linking $$r -> $$t"; \
409@no_pixmapdir@						( cd $$h; $(RM) $$t; $(LN_S) $$r $$t; ) \
410@no_pixmapdir@					fi \
411@no_pixmapdir@				fi \
412@no_pixmapdir@			fi \
413@no_pixmapdir@		done'
414@no_pixmapdir@	@echo "... installed icons"
415
416install ::
417	@echo 'Completed installation of executables and documentation.'
418	@echo 'Use "make install-ti" to install terminfo description.'
419
420TERMINFO_DIR = @TERMINFO_DIR@
421SET_TERMINFO = @SET_TERMINFO@
422
423@no_ticprog@install-full \
424@no_ticprog@install-ti :: $(TERMINFO_DIR)
425@no_ticprog@	@echo "Installing $(srcdir)/terminfo"
426@no_ticprog@	@$(SHELL) -c "chmod +x ./run-tic.sh"
427@no_ticprog@	@$(SHELL) -c "$(SET_TERMINFO) ./run-tic.sh $(srcdir)/terminfo"
428@no_ticprog@	@echo 'Completed installation of terminfo description.'
429
430install-full \
431install-tc ::
432	@-$(SHELL) -c "if test -f /etc/termcap ; then echo 'You must install the termcap entry manually by editing /etc/termcap'; fi"
433
434installdirs : $(INSTALL_DIRS)
435################################################################################
436
437UninstallLink = \
438	if test @XTERM_SYMLINK@ != NONE \
439	&& test \$$source != NONE \
440	&& test \$$source != \$$target \
441	&& test -h \$$TARGET/\$$source ; then \
442		echo \"... removing \$$TARGET/\$$source\"; \
443		cd \$$TARGET && \
444		$(RM) \$$source; \
445	fi
446
447UninstallBinLink = TARGET=$(BINDIR); $(UninstallLink)
448UninstallManLink = TARGET=$(MANDIR); $(UninstallLink)
449
450UninstallBinary = \
451	echo \"... removing $(BINDIR)/\$$target\"; \
452	$(RM) $(BINDIR)/\$$target
453
454uninstall \
455uninstall-bin \
456uninstall-full ::
457	@-$(SHELL) -c "source=\"@XTERM_SYMLINK@\"; \
458		target=\"$(binary_xterm)\"; \
459		$(UninstallBinLink); \
460		$(UninstallBinary)"
461	@-$(SHELL) -c "source=\"resize\"; \
462		target=\"$(binary_resize)\"; \
463		$(UninstallBinLink); \
464		$(UninstallBinary)"
465
466uninstall \
467uninstall-bin \
468uninstall-scripts \
469uninstall-full ::
470	@-$(SHELL) -c "source=\"uxterm\"; \
471		target=\"$(binary_uxterm)\"; \
472		$(UninstallBinLink); \
473		$(UninstallBinary)"
474	@-$(SHELL) -c "source=\"koi8rxterm\"; \
475		target=\"$(binary_k8term)\"; \
476		$(UninstallBinLink); \
477		$(UninstallBinary)"
478
479uninstall \
480uninstall-man \
481uninstall-full ::
482	@-$(SHELL) -c "\
483		source=@XTERM_SYMLINK@.$(manext); \
484		target=$(actual_xterm).$(manext); \
485		$(UninstallManLink)"
486	@-$(SHELL) -c "for source in \
487		$(actual_xterm).$(manext) \
488		$(actual_resize).$(manext) \
489		$(actual_uxterm).$(manext) \
490		$(actual_k8term).$(manext); \
491		do \
492			echo \"... removing $(MANDIR)/\$$source\"; \
493			$(RM) $(MANDIR)/\$$source; \
494		done"
495
496@no_appsdir@uninstall \
497@no_appsdir@uninstall-app \
498@no_appsdir@uninstall-full ::
499@no_appsdir@	-@ECHO_CC@$(SHELL) -c 'for s in $(APP_NAMES); \
500@no_appsdir@	do \
501@no_appsdir@		echo "** $$s"; \
502@no_appsdir@		d=`echo $$s | sed -e s/XTerm/$(CLASS)/`; \
503@no_appsdir@		echo uninstalling $(APPSDIR)/$$d; \
504@no_appsdir@		$(RM) $(APPSDIR)/$$d; \
505@no_appsdir@		echo uninstalling $(APPSDIR)/$$d-color; \
506@no_appsdir@		$(RM) $(APPSDIR)/$$d-color; \
507@no_appsdir@	done'
508
509@no_icondir@uninstall \
510@no_icondir@uninstall-icon \
511@no_icondir@uninstall-full ::
512@no_icondir@	-@ECHO_CC@$(SHELL) -c 'ACTUAL_XTERM=$(actual_xterm) ; \
513@no_icondir@		for n in $(ICON_LIST); \
514@no_icondir@		do \
515@no_icondir@		r=`echo "$$n" | sed -e s,\^.\*:,, -e s,xterm,$$ACTUAL_XTERM,`; \
516@no_icondir@		test -z "$$r" && continue; \
517@no_icondir@		h=$(ICONDIR)/$(ICON_THEME); \
518@no_icondir@		test -f $$h/$$r || continue; \
519@no_icondir@		echo removing $$h/$$r; \
520@no_icondir@		$(RM) $$h/$$r; \
521@no_icondir@		done'
522@no_icondir@	@echo "... removed icons"
523
524@no_pixmapdir@uninstall \
525@no_pixmapdir@uninstall-icon \
526@no_pixmapdir@uninstall-full ::
527@no_pixmapdir@	-@$(SHELL) -c 'ACTUAL_XTERM=$(actual_xterm) ; \
528@no_pixmapdir@		for n in $(srcdir)/icons/*xterm*_32x32.xpm $(srcdir)/icons/*xterm*_48x48.xpm; \
529@no_pixmapdir@		do \
530@no_pixmapdir@			l=`basename $$n`; \
531@no_pixmapdir@			r=`echo "$$l" | sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
532@no_pixmapdir@			echo removing $(PIXMAPDIR)/$$r; \
533@no_pixmapdir@			$(RM) $(PIXMAPDIR)/$$r; \
534@no_pixmapdir@		done'
535@no_pixmapdir@	@echo "... removed icons"
536################################################################################
537# Desktop-utils does not provide an uninstall, and is not uniformly available.
538@desktop_utils@DESKTOP_FILES = $(srcdir)/xterm.desktop $(srcdir)/uxterm.desktop
539@desktop_utils@DESKTOP_FLAGS = @DESKTOP_FLAGS@
540@desktop_utils@install-desktop \
541@desktop_utils@install-full ::
542@desktop_utils@	ACTUAL_XTERM=$(actual_xterm) \
543@desktop_utils@	$(SHELL) -c 'for n in $(DESKTOP_FILES); \
544@desktop_utils@		do $(SHELL) df-install $$ACTUAL_XTERM $(ICON_NAME) DESTDIR="$(DESTDIR)" $(DESKTOP_FLAGS) $$n; \
545@desktop_utils@		done'
546################################################################################
547check : $(TEST_PROGRAMS)
548	@ echo "See demos in vttests/* (use vttest for system-level testing)"
549	@ $(SHELL) -c 'echo "** executing test_charclass"; \
550		./test_charclass'
551	@ $(SHELL) -c 'echo "** executing test_wcwidth"; \
552		for range in 32-126 160-0xff00 0x10000-0x11000; \
553		do echo ".. range $$range"; \
554		./test_wcwidth -s $$range; \
555		./test_wcwidth -s $$range -w; \
556	done'
557	@ $(SHELL) -c 'echo "** executing test_ptydata"; \
558		./test_ptydata -a'
559################################################################################
560mostlyclean :
561	-$(RM) *$o *.[is] XTerm[1-9]*.* Xterm.log.* XtermLog.* .pure core *~ *.bak *.BAK *.out *.tmp
562
563clean : mostlyclean
564	-$(RM) $(PROGRAMS) $(TEST_PROGRAMS) $(AUTO_SOURCE)
565
566sources : $(AUTO_SOURCE)
567
568distclean :: clean
569	-$(RM) Makefile config.status config.cache config.log xtermcfg.h
570	-$(RM) df-install minstall run-tic.sh
571
572distclean \
573docs-clean ::
574	-$(RM) *.ps *.pdf *.png
575	-$(SHELL) -c 'for p in xterm resize uxterm koi8rxterm; \
576	do \
577		$(RM) $$p.html $$p.$(manext) $$p.txt; \
578	done'
579	-$(RM) ctlseqs.html ctlseqs.$(manext)
580
581distclean ::
582	-$(RM) man2html.tmp
583
584realclean : distclean
585	-$(RM) tags TAGS
586
587maintainer-clean : realclean
588	-$(RM) 256colres.h 88colres.h
589################################################################################
590TIC=tic
591terminfo.out : terminfo		; $(TIC) -a -I -1 terminfo >$@
592termcap.out : termcap		; $(TIC) -a -C -U termcap >$@
593################################################################################
594docs-ctlseqs \
595docs :: $(srcdir)/ctlseqs.txt @MAN2HTML_NOTE@ ctlseqs.html @GROFF_NOTE@ ctlseqs.pdf ctlseqs.ps
596
597ctlseqs.html : $(srcdir)/ctlseqs.ms
598ctlseqs.pdf : ctlseqs.ps
599ctlseqs.ps : $(srcdir)/ctlseqs.ms
600ctlseqs.txt : $(srcdir)/ctlseqs.ms
601################################################################################
602docs-resize \
603docs ::  resize.txt @MAN2HTML_NOTE@ resize.html @GROFF_NOTE@ resize.pdf resize.ps
604resize.html : resize.$(manext)
605resize.pdf : resize.ps
606resize.ps : resize.$(manext)
607resize.txt : resize.$(manext)
608################################################################################
609docs-xterm \
610docs ::  xterm.txt @MAN2HTML_NOTE@ xterm.html @GROFF_NOTE@ xterm.pdf xterm.ps
611xterm.html : xterm.$(manext)
612xterm.pdf : xterm.ps
613xterm.ps : xterm.$(manext)
614xterm.txt : xterm.$(manext)
615################################################################################
616docs-uxterm \
617docs ::  uxterm.txt @MAN2HTML_NOTE@ uxterm.html @GROFF_NOTE@ uxterm.pdf uxterm.ps
618uxterm.html : uxterm.$(manext)
619uxterm.pdf : uxterm.ps
620uxterm.ps : uxterm.$(manext)
621uxterm.txt : uxterm.$(manext)
622################################################################################
623docs-koi8rxterm \
624docs ::  koi8rxterm.txt @MAN2HTML_NOTE@ koi8rxterm.html @GROFF_NOTE@ koi8rxterm.pdf koi8rxterm.ps
625koi8rxterm.html : koi8rxterm.$(manext)
626koi8rxterm.pdf : koi8rxterm.ps
627koi8rxterm.ps : koi8rxterm.$(manext)
628koi8rxterm.txt : koi8rxterm.$(manext)
629################################################################################
630lint :
631	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS1)
632	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS2)
633
634tags :
635	$(CTAGS) $(SRCS) $(HDRS)
636
637TAGS :
638	$(ETAGS) $(SRCS) $(HDRS)
639
640$(TERMINFO_DIR) $(INSTALL_DIRS) :
641	mkdir -p $@
642
643ALWAYS :
644
645depend : $(TABLES)
646	makedepend -- $(CPPFLAGS) -- $(SRCS)
647
648# DO NOT DELETE THIS LINE -- make depend depends on it.
649