"Fossies" - the Fresh Open Source Software Archive 
Member "xterm-379/Imakefile" (2 Nov 2019, 10210 Bytes) of package /linux/misc/xterm-379.tgz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 XCOMM $XTermId: Imakefile,v 1.123 2019/11/02 21:50:51 tom Exp $
2 XCOMM
3 XCOMM Attention xterm porters
4 XCOMM
5 XCOMM
6 XCOMM Xterm assumes that bcopy can handle overlapping arguments. If your
7 XCOMM bcopy (or memcpy) cannot, write a routine called bcopy and link it in
8 XCOMM or add -Dbcopy=mybcopy to the DEFINES list below.
9 XCOMM
10
11 /* Uncomment SCROLLBAR_RIGHT if you want the scroll bar to be on the right */
12 SCROLLBAR_RIGHT = -DSCROLLBAR_RIGHT
13
14 /* Define UTF8support to compile-in support for UTF-8 */
15 #define UTF8support
16
17 /*
18 * setgid mode works for systems that do not require setuid to open pty.
19 *
20 * This feature could also be applied to FreeBSD, but requires the installer
21 * to define a "utmp" group as well as chgrp the utmp file to match.
22 *
23 * Note: InstallXtermSetUID is always defined; InstallXtermSetGID is defined
24 * in newer imake configurations.
25 */
26 #if !defined(InstallXtermSetGID) && !InstallXtermSetUID
27 #if defined(OpenBSDArchitecture) || \
28 (defined(LinuxArchitecture) && \
29 (LinuxCLibMajorVersion == 6))
30 #define InstallXtermSetGID YES
31 #endif
32 #endif
33
34 /*
35 * Override the set uid/gid flags to use the utempter library.
36 */
37 #if defined(UseUtempter)
38 #undef InstallXtermSetUID /* imake sets this */
39 #undef InstallXtermSetGID /* we set this */
40 #define InstallXtermSetUID NO
41 #define InstallXtermSetGID NO
42 UTMPLIB = -lutempter
43 #endif
44
45 /*
46 * Fixes to allow compile with X11R5, etc.
47 */
48 #ifndef InstGidFlags
49 #define InstGidFlags -m 2755 -g utmp
50 #endif
51
52 #ifndef InstUidFlags
53 #define InstUidFlags -m 4711
54 #endif
55
56 #ifndef XkbClientDefines
57 #define XkbClientDefines /**/
58 #endif
59
60 #ifndef InstallXtermSetUID
61 #define InstallXtermSetUID NO
62 #endif
63
64 #ifndef InstallXtermSetGID
65 #define InstallXtermSetGID NO
66 #endif
67
68 #ifndef XkbClientDepLibs
69 #define XkbClientDepLibs /**/
70 #endif
71
72 #ifndef XkbClientLibs
73 #define XkbClientLibs /**/
74 #endif
75
76 /* This must come before setting DEFINES */
77 #if InstallXtermSetGID
78 CSGIDFLAGS = -DUSE_UTMP_SETGID
79 INSTSETIDFLAGS = InstGidFlags
80 #elif InstallXtermSetUID
81 INSTSETIDFLAGS = InstUidFlags
82 #else
83 INSTSETIDFLAGS = NullParameter
84 #endif
85
86 /*
87 * Compensate for broken imake configuration.
88 */
89 #ifdef LinuxGnuSourceDefines
90 # ifdef UseInstalled
91 IMAKEDEFINES = -D_DEFAULT_SOURCE -U_XOPEN_SOURCE -D_XOPEN_SOURCE=600
92 # endif
93 #endif
94
95 #ifndef SpecialCObjectRule
96 #define SpecialCObjectRule(module,ignore,defines) \
97 module.o: ; $(CC) -c defines $(CFLAGS) module.c
98 #endif
99
100 #ifndef ProgramTargetName
101 #define ProgramTargetName(program) program
102 #endif
103
104 /*
105 * add -DWTMP and -DLASTLOG if you want them; make sure that bcopy can
106 * handle overlapping copies before using it.
107 */
108 #if SetTtyGroup /* turn on in config/machine.cf */
109 TTYGROUPDEF = -DUSE_TTY_GROUP
110 #endif
111 #ifdef UsePUCCPtyd /* turn on in config/site.def */
112 PUCCPTYDDEF = -DPUCC_PTYD /* does not need to be setuid */
113 PTYLIB = -lpucc
114 #endif
115
116 #if defined(NetBSDArchitecture) || \
117 defined(OpenBSDArchitecture) || \
118 defined(FreeBSDArchitecture) || \
119 (defined(LinuxArchitecture) && \
120 (LinuxCLibMajorVersion == 6) && (LinuxCLibMinorVersion < 1))
121 PTYLIB = -lutil
122 #endif
123
124 #ifdef DarwinArchitecture
125 /* dyld can deadlock if a signal comes in when it is looking up a symbol */
126 LOCAL_LDFLAGS = -Wl,-bind_at_load
127 #endif
128
129 OSMAJORVERSION = OSMajorVersion
130 OSMINORVERSION = OSMinorVersion
131
132 /* none of these can be expected to use termcap unless emulated by terminfo */
133 #if defined(NTOArchitecture) || \
134 defined(OpenBSDArchitecture) || \
135 defined(SGIArchitecture) || \
136 defined(SunArchitecture) || \
137 defined(NetBSDArchitecture) || \
138 defined(OpenBSDArchitecture) || \
139 defined(FreeBSDArchitecture) || \
140 defined(LinuxArchitecture)
141 TERMCAPDEFINES=-DUSE_TERMINFO -DHAVE_TIGETSTR -DHAVE_TERM_H
142 #endif
143
144 #if !defined(OS2Architecture) && !defined(__GNU__) && !defined(Minix3Architecture)
145 #if defined(UseUtempter)
146 UTMPDEF = -DUSE_UTEMPTER
147 #else
148 UTMPDEF = -DUTMP
149 #endif
150 #endif
151
152 #ifdef UTF8support
153 UTF8_OPTION = -DOPT_WIDE_CHARS -DOPT_LUIT_PROG
154 UTF8SRC = charclass.c precompose.c wcwidth.c xutf8.c
155 UTF8OBJ = charclass.o precompose.o wcwidth.o xutf8.o
156 #endif
157 #if BuildXftLibrary
158 #define XRenderSupport
159 #endif
160 #ifdef XRenderSupport
161 XRFDEF = -DXRENDERFONT -DXFREE86_FT2
162 XRFLIBS = XftClientLibs
163 XRFDEPLIBS = XftClientDepLibs
164 XRFINCLUDES = $(XFTINCLUDES)
165 #endif
166 #if !HasPutenv
167 PUTENVDEF = -DNOPUTENV
168 #endif
169 #ifdef RegisXTerm
170 SIXELDEF = -DOPT_REGIS_GRAPHICS=1
171 #endif
172 #ifdef SixelXTerm
173 SIXELDEF = -DOPT_SIXEL_GRAPHICS=1
174 #endif
175 #ifdef TraceXTerm
176 TRACEDEF = -DOPT_TRACE=1
177 #endif
178 MAIN_DEFINES = $(UTMPDEF) $(TTYGROUPDEF) $(PUCCPTYDDEF) $(CSGIDFLAGS) \
179 -DOSMAJORVERSION=$(OSMAJORVERSION) \
180 -DOSMINORVERSION=$(OSMINORVERSION)
181 MISC_DEFINES = /* -DALLOWLOGGING -DALLOWLOGFILEEXEC */
182 XKB_DEFINES = XkbClientDefines
183 PATH_DEFINES = -DPROJECTROOT=$(PROJECTROOT)
184 DEFINES = $(XKB_DEFINES) $(TERMCAPDEFINES) $(FEATURE_DEFINES) $(SCROLLBAR_RIGHT) $(UTF8_OPTION) $(XRFDEF) $(PATH_DEFINES) $(PUTENVDEF) $(IMAKEDEFINES) $(SIXELDEF) $(TRACEDEF)
185 INCLUDES = -I. $(XRFINCLUDES)
186
187 MAINSRC = main.c
188 MAINOBJ = main.o
189 DUMPSSRC = html.c svg.c
190 DUMPSOBJ = html.o svg.o
191 #ifdef RegisXTerm
192 SIXELSRC = graphics_regis.c
193 SIXELOBJ = graphics_regis.o
194 #endif
195 #ifdef SixelXTerm
196 SIXELSRC = graphics_sixel.c
197 SIXELOBJ = graphics_sixel.o
198 #endif
199 #ifdef TraceXTerm
200 TRACESRC = trace.c
201 TRACEOBJ = trace.o
202 #endif
203 SRCS1 = button.c cachedGCs.c charproc.c charsets.c cursor.c \
204 data.c doublechr.c fontutils.c input.c \
205 linedata.c menu.c misc.c print.c ptydata.c scrollback.c \
206 screen.c scrollbar.c tabs.c util.c version.c xstrings.c \
207 xtermcap.c TekPrsTbl.c Tekproc.c VTPrsTbl.c \
208 $(MAINSRC) $(EXTRASRC) $(UTF8SRC) $(SIXELSRC) $(TRACESRC) $(DUMPSSRC)
209 OBJS1 = button.o cachedGCs.o charproc.o charsets.o cursor.o \
210 data.o doublechr.o fontutils.o input.o \
211 linedata.o menu.o misc.o print.o ptydata.o scrollback.o \
212 screen.o scrollbar.o tabs.o util.o version.o xstrings.o \
213 xtermcap.o TekPrsTbl.o Tekproc.o VTPrsTbl.o \
214 $(MAINOBJ) $(EXTRAOBJ) $(UTF8OBJ) $(SIXELOBJ) $(TRACEOBJ) $(DUMPSOBJ)
215 SRCS2 = resize.c version.c xstrings.c
216 OBJS2 = resize.o version.o xstrings.o
217 SRCS = $(SRCS1) $(SRCS2)
218 OBJS = $(OBJS1) $(OBJS2)
219 PROGRAMS = ProgramTargetName(resize) ProgramTargetName(xterm)
220 DEPLIBS1 = XkbClientDepLibs XawClientDepLibs $(XRFDEPLIBS)
221 DEPLIBS2 =
222
223 #ifndef TermcapLibrary
224 #if SystemV && !defined(MacIIArchitecture)
225 #if defined(CrayArchitecture) || \
226 (defined(HPArchitecture) && (OSMajorVersion < 10)) || \
227 defined(RsArchitecture) || \
228 defined(SCOArchitecture) || \
229 defined(USLArchitecture)
230 #define TermcapLibrary -lcurses /* special cases of System V */
231 #else
232 #define TermcapLibrary -ltermlib /* usually in here */
233 #endif
234 #else
235 #define TermcapLibrary -ltermcap /* bsd puts it here */
236 #endif
237 #endif
238
239 TERMCAPLIB = TermcapLibrary
240
241 AllTarget($(PROGRAMS))
242
243 VTPARSE_H = VTparse.h VTparse.hin
244 TEKPARSE_H = Tekparse.h Tekparse.hin
245
246 VTPARSE_C = VTparse.h VTparse.cin
247 TEKPARSE_C = Tekparse.h Tekparse.cin
248
249 .SUFFIXES : .def .cin .hin
250 .def.cin :
251 awk '/^CASE_/{printf "{ %d, \"%s\" },\n", n++, $$1; }' < $< >$@
252 .def.hin :
253 awk '/^CASE_/{printf "#define %s %d\n", $$1, n++}' < $< >$@
254
255 SpecialCObjectRule(main,$(_NOOP_),$(MAIN_DEFINES))
256 SpecialCObjectRule(menu,$(_NOOP_),$(MISC_DEFINES))
257 SpecialCObjectRule(misc,$(VTPARSE_H),$(MISC_DEFINES))
258 SpecialCObjectRule(VTPrsTbl,$(VTPARSE_H),$(MISC_DEFINES))
259 SpecialCObjectRule(charproc,$(VTPARSE_H),$(MISC_DEFINES))
260 SpecialCObjectRule(data,$(_NOOP_),$(MISC_DEFINES))
261 SpecialCObjectRule(TekPrsTbl,$(TEKPARSE_H),$(MISC_DEFINES))
262 SpecialCObjectRule(TekProc,$(TEKPARSE_H),$(MISC_DEFINES))
263 SpecialCObjectRule(trace,$(VTPARSE_C) $(TEKPARSE_C),$(MISC_DEFINES))
264
265 #if InstallXtermSetUID
266 SetUIDProgramTarget(xterm,$(OBJS1),$(DEPLIBS1),$(XRFLIBS) XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(PTYLIB))
267 #else
268 NormalProgramTarget(xterm,$(OBJS1),$(DEPLIBS1),$(XRFLIBS) XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(UTMPLIB) $(PTYLIB))
269 #endif
270
271 #if defined(OpenBSDArchitecture) || defined(MirBSDArchitecture)
272 /* On OpenBSD xterm is now setgid utmp */
273 INSTUIDFLAGS= -m 2555 -g utmp
274 #endif
275
276 #if InstallXtermSetUID && defined(SunArchitecture) && HasSharedLibraries && (OSMajorVersion < 5)
277 #if AlternateUsrLibDir
278 #if ((OSMajorVersion == 4) && (OSMinorVersion >= 1))
279 LDOVERRIDE = -L$(DESTDIR)$(USRLIBDIR)
280 #else
281 #if HasGcc
282 LDOVERRIDE = -static -L$(DESTDIR)$(USRLIBDIR)
283 #else
284 LDOVERRIDE = -Bstatic -L$(DESTDIR)$(USRLIBDIR)
285 LDRESUME = -Bdynamic
286 #endif
287 #endif
288 #endif
289 install::
290 MakeDir($(DESTDIR)$(BINDIR))
291 RemoveFile(ProgramTargetName(xterm.inst))
292 LinkRule(ProgramTargetName(xterm.inst),$(CDEBUGFLAGS) $(CCOPTIONS)
293 $(EXTRA_LDOPTIONS) $(LOCAL_LDFLAGS),$(OBJS1),$(LDOVERRIDE)
294 $(XRFLIBS) XawClientLibs $(LDRESUME) $(LDLIBS) $(TERMCAPLIB)
295 $(PTYLIB))
296 $(INSTALL) -c $(INSTPGMFLAGS) $(INSTSETIDFLAGS) ProgramTargetName(xterm.inst) $(DESTDIR)$(BINDIR)/ProgramTargetName(xterm)
297 RemoveFile(ProgramTargetName(xterm.inst))
298 #else
299 InstallProgramWithFlags(xterm,$(BINDIR),$(INSTSETIDFLAGS))
300 #endif
301
302 InstallNamedProg(uxterm,uxterm,$(BINDIR))
303
304 /*
305 * Link with the termcap library if USE_TERMCAP is defined in resize.c
306 */
307 #if defined(NTOArchitecture) || \
308 defined(LinuxArchitecture) || \
309 defined(OpenBSDArchitecture) || \
310 defined(SGIArchitecture) || \
311 defined(SunArchitecture)
312 NormalProgramTarget(resize,$(OBJS2),$(DEPLIBS2),NullParameter,NullParameter)
313 #else
314 NormalProgramTarget(resize,$(OBJS2),$(DEPLIBS2),NullParameter,$(TERMCAPLIB))
315 #endif
316
317 InstallProgramWithFlags(resize,$(BINDIR),NullParameter)
318
319 /*
320 * termcap is a special name that does not install correctly with
321 * InstallNamedNonExec()
322 */
323 install::
324 MakeDir($(DESTDIR)$(LIBDIR)/etc)
325 $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) termcap \
326 $(DESTDIR)$(LIBDIR)/etc/xterm.termcap
327 InstallNamedNonExec(terminfo,xterm.terminfo,$(LIBDIR)/etc)
328
329 InstallAppDefaults(XTerm)
330 InstallAppDefaults(UXTerm)
331 InstallAppDefaultsLong(XTerm-col,XTerm-color)
332 InstallManPage(xterm,$(MANDIR))
333 InstallManPage(resize,$(MANDIR))
334
335 cleandir::
336 $(RM) *parse.hin *parse.cin
337
338 DependTarget()