summaryrefslogtreecommitdiff
path: root/Imakefile
diff options
context:
space:
mode:
Diffstat (limited to 'Imakefile')
-rw-r--r--Imakefile319
1 files changed, 319 insertions, 0 deletions
diff --git a/Imakefile b/Imakefile
new file mode 100644
index 0000000..fcfaced
--- /dev/null
+++ b/Imakefile
@@ -0,0 +1,319 @@
+XCOMM $XTermId: Imakefile,v 1.105 2011/11/29 10:19:20 Thorsten.Glaser Exp $
+XCOMM
+XCOMM Attention xterm porters
+XCOMM
+XCOMM
+XCOMM Xterm assumes that bcopy can handle overlapping arguments. If your
+XCOMM bcopy (or memcpy) cannot, write a routine called bcopy and link it in
+XCOMM or add -Dbcopy=mybcopy to the DEFINES list below.
+XCOMM
+
+/* Uncomment SCROLLBAR_RIGHT if you want the scroll bar to be on the right */
+SCROLLBAR_RIGHT = -DSCROLLBAR_RIGHT
+
+/* Define UTF8support to compile-in support for UTF-8 */
+#define UTF8support
+
+/*
+ * setgid mode works for systems that do not require setuid to open pty.
+ *
+ * This feature could also be applied to FreeBSD, but requires the installer
+ * to define a "utmp" group as well as chgrp the utmp file to match.
+ *
+ * Note: InstallXtermSetUID is always defined; InstallXtermSetGID is defined
+ * in newer imake configurations.
+ */
+#if !defined(InstallXtermSetGID) && !InstallXtermSetUID
+#if defined(OpenBSDArchitecture) || \
+ (defined(LinuxArchitecture) && \
+ (LinuxCLibMajorVersion == 6))
+#define InstallXtermSetGID YES
+#endif
+#endif
+
+/*
+ * Override the set uid/gid flags to use the utempter library.
+ */
+#if defined(UseUtempter)
+#undef InstallXtermSetUID /* imake sets this */
+#undef InstallXtermSetGID /* we set this */
+#define InstallXtermSetUID NO
+#define InstallXtermSetGID NO
+ UTMPLIB = -lutempter
+#endif
+
+/*
+ * Fixes to allow compile with X11R5, etc.
+ */
+#ifndef InstGidFlags
+#define InstGidFlags -m 2755 -g utmp
+#endif
+
+#ifndef InstUidFlags
+#define InstUidFlags -m 4711
+#endif
+
+#ifndef XkbClientDefines
+#define XkbClientDefines /**/
+#endif
+
+#ifndef InstallXtermSetUID
+#define InstallXtermSetUID NO
+#endif
+
+#ifndef InstallXtermSetGID
+#define InstallXtermSetGID NO
+#endif
+
+#ifndef XkbClientDepLibs
+#define XkbClientDepLibs /**/
+#endif
+
+#ifndef XkbClientLibs
+#define XkbClientLibs /**/
+#endif
+
+/* This must come before setting DEFINES */
+#if InstallXtermSetGID
+CSGIDFLAGS = -DUSE_UTMP_SETGID
+INSTSETIDFLAGS = InstGidFlags
+#elif InstallXtermSetUID
+INSTSETIDFLAGS = InstUidFlags
+#else
+INSTSETIDFLAGS = NullParameter
+#endif
+
+/*
+ * Compensate for broken imake configuration.
+ */
+#ifdef LinuxGnuSourceDefines
+# ifdef UseInstalled
+ IMAKEDEFINES = -D_GNU_SOURCE
+# endif
+#endif
+
+#ifndef SpecialCObjectRule
+#define SpecialCObjectRule(module,ignore,defines) \
+module.o: ; $(CC) -c defines $(CFLAGS) module.c
+#endif
+
+#ifndef ProgramTargetName
+#define ProgramTargetName(program) program
+#endif
+
+/*
+ * add -DWTMP and -DLASTLOG if you want them; make sure that bcopy can
+ * handle overlapping copies before using it.
+ */
+#if SetTtyGroup /* turn on in config/machine.cf */
+ TTYGROUPDEF = -DUSE_TTY_GROUP
+#endif
+#ifdef UsePUCCPtyd /* turn on in config/site.def */
+ PUCCPTYDDEF = -DPUCC_PTYD /* does not need to be setuid */
+ PTYLIB = -lpucc
+#endif
+
+#if defined(NetBSDArchitecture) || \
+ defined(OpenBSDArchitecture) || \
+ defined(FreeBSDArchitecture) || \
+ (defined(LinuxArchitecture) && \
+ (LinuxCLibMajorVersion == 6) && (LinuxCLibMinorVersion < 1))
+ PTYLIB = -lutil
+#endif
+
+#ifdef DarwinArchitecture
+/* dyld can deadlock if a signal comes in when it is looking up a symbol */
+ LOCAL_LDFLAGS = -Wl,-bind_at_load
+#endif
+
+#ifdef OS2Architecture
+/*
+ * Only used in os2main.c, see ptyx.h for OPT_I18N_SUPPORT
+ * <werner@suse.de>
+ */
+#if XtermWithI18N
+ I18NDEF = -DI18N
+ FEATURE_DEFINES = -DDEBUG -DALLOWLOGGING $(I18NDEF)
+#else
+ FEATURE_DEFINES = -DDEBUG -DALLOWLOGGING
+#endif
+#endif
+
+ OSMAJORVERSION = OSMajorVersion
+ OSMINORVERSION = OSMinorVersion
+
+#if defined(NTOArchitecture) || \
+ defined(OpenBSDArchitecture) || \
+ defined(SGIArchitecture) || \
+ defined(SunArchitecture)
+TERMCAPDEFINES=-DUSE_TERMINFO -DHAVE_TIGETSTR
+#elif defined(LinuxArchitecture)
+# if LinuxUsesNcurses
+TERMCAPDEFINES=-DUSE_TERMINFO -DHAVE_TIGETSTR
+# endif
+#endif
+
+#if !defined(OS2Architecture) && !defined(__GNU__)
+#if defined(UseUtempter)
+ UTMPDEF = -DUSE_UTEMPTER
+#else
+ UTMPDEF = -DUTMP
+#endif
+#endif
+
+#ifdef UTF8support
+ UTF8_OPTION = -DOPT_WIDE_CHARS -DOPT_LUIT_PROG
+ UTF8SRC = charclass.c precompose.c wcwidth.c xutf8.c
+ UTF8OBJ = charclass.o precompose.o wcwidth.o xutf8.o
+#endif
+#if BuildXftLibrary
+#define XRenderSupport
+#endif
+#ifdef XRenderSupport
+ XRFDEF = -DXRENDERFONT -DXFREE86_FT2
+ XRFLIBS = XftClientLibs
+ XRFDEPLIBS = XftClientDepLibs
+ XRFINCLUDES = $(XFTINCLUDES)
+#endif
+#if !HasPutenv
+ PUTENVDEF = -DNOPUTENV
+#endif
+#ifdef TraceXTerm
+ TRACEDEF = -DOPT_TRACE=1
+#endif
+ MAIN_DEFINES = $(UTMPDEF) $(TTYGROUPDEF) $(PUCCPTYDDEF) $(CSGIDFLAGS) \
+ -DOSMAJORVERSION=$(OSMAJORVERSION) \
+ -DOSMINORVERSION=$(OSMINORVERSION)
+ MISC_DEFINES = /* -DALLOWLOGGING -DALLOWLOGFILEEXEC */
+ XKB_DEFINES = XkbClientDefines
+ PATH_DEFINES = -DPROJECTROOT=$(PROJECTROOT)
+ DEFINES = $(XKB_DEFINES) $(TERMCAPDEFINES) $(FEATURE_DEFINES) $(SCROLLBAR_RIGHT) $(UTF8_OPTION) $(XRFDEF) $(PATH_DEFINES) $(PUTENVDEF) $(IMAKEDEFINES) $(TRACEDEF)
+ INCLUDES = -I. $(XRFINCLUDES)
+
+#ifdef OS2Architecture
+ MAINSRC = os2main.c
+ MAINOBJ = os2main.o
+#else
+ MAINSRC = main.c
+ MAINOBJ = main.o
+#endif
+#ifdef TraceXTerm
+ TRACESRC = trace.c
+ TRACEOBJ = trace.o
+#endif
+ SRCS1 = button.c cachedGCs.c charproc.c charsets.c cursor.c \
+ data.c doublechr.c fontutils.c input.c \
+ linedata.c menu.c misc.c print.c ptydata.c scrollback.c \
+ screen.c scrollbar.c tabs.c util.c xstrings.c xtermcap.c \
+ TekPrsTbl.c Tekproc.c VTPrsTbl.c \
+ $(MAINSRC) $(EXTRASRC) $(UTF8SRC) $(TRACESRC)
+ OBJS1 = button.o cachedGCs.o charproc.o charsets.o cursor.o \
+ data.o doublechr.o fontutils.o input.o \
+ linedata.o menu.o misc.o print.o ptydata.o scrollback.o \
+ screen.o scrollbar.o tabs.o util.o xstrings.o xtermcap.o \
+ TekPrsTbl.o Tekproc.o VTPrsTbl.o \
+ $(MAINOBJ) $(EXTRAOBJ) $(UTF8OBJ) $(TRACEOBJ)
+ SRCS2 = resize.c xstrings.c
+ OBJS2 = resize.o xstrings.o
+ SRCS = $(SRCS1) $(SRCS2)
+ OBJS = $(OBJS1) $(OBJS2)
+ PROGRAMS = ProgramTargetName(resize) ProgramTargetName(xterm)
+ DEPLIBS1 = XkbClientDepLibs XawClientDepLibs $(XRFDEPLIBS)
+ DEPLIBS2 =
+
+#ifndef TermcapLibrary
+#if SystemV && !defined(MacIIArchitecture)
+#if defined(CrayArchitecture) || \
+ (defined(HPArchitecture) && (OSMajorVersion < 10)) || \
+ defined(RsArchitecture) || \
+ defined(SCOArchitecture) || \
+ defined(USLArchitecture)
+#define TermcapLibrary -lcurses /* special cases of System V */
+#else
+#define TermcapLibrary -ltermlib /* usually in here */
+#endif
+#else
+#define TermcapLibrary -ltermcap /* bsd puts it here */
+#endif
+#endif
+
+ TERMCAPLIB = TermcapLibrary
+
+AllTarget($(PROGRAMS))
+
+SpecialCObjectRule(main,$(_NOOP_),$(MAIN_DEFINES))
+SpecialCObjectRule(menu,$(_NOOP_),$(MISC_DEFINES))
+SpecialCObjectRule(misc,$(_NOOP_),$(MISC_DEFINES))
+SpecialCObjectRule(charproc,$(_NOOP_),$(MISC_DEFINES))
+SpecialCObjectRule(data,$(_NOOP_),$(MISC_DEFINES))
+
+#if InstallXtermSetUID
+SetUIDProgramTarget(xterm,$(OBJS1),$(DEPLIBS1),$(XRFLIBS) XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(PTYLIB))
+#else
+NormalProgramTarget(xterm,$(OBJS1),$(DEPLIBS1),$(XRFLIBS) XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(UTMPLIB) $(PTYLIB))
+#endif
+
+#if defined(OpenBSDArchitecture) || defined(MirBSDArchitecture)
+/* On OpenBSD xterm is now setgid utmp */
+INSTUIDFLAGS= -m 2555 -g utmp
+#endif
+
+#if InstallXtermSetUID && defined(SunArchitecture) && HasSharedLibraries && (OSMajorVersion < 5)
+#if AlternateUsrLibDir
+#if ((OSMajorVersion == 4) && (OSMinorVersion >= 1))
+LDOVERRIDE = -L$(DESTDIR)$(USRLIBDIR)
+#else
+#if HasGcc
+LDOVERRIDE = -static -L$(DESTDIR)$(USRLIBDIR)
+#else
+LDOVERRIDE = -Bstatic -L$(DESTDIR)$(USRLIBDIR)
+LDRESUME = -Bdynamic
+#endif
+#endif
+#endif
+install::
+ MakeDir($(DESTDIR)$(BINDIR))
+ RemoveFile(ProgramTargetName(xterm.inst))
+ LinkRule(ProgramTargetName(xterm.inst),$(CDEBUGFLAGS) $(CCOPTIONS)
+ $(EXTRA_LDOPTIONS) $(LOCAL_LDFLAGS),$(OBJS1),$(LDOVERRIDE)
+ $(XRFLIBS) XawClientLibs $(LDRESUME) $(LDLIBS) $(TERMCAPLIB)
+ $(PTYLIB))
+ $(INSTALL) -c $(INSTPGMFLAGS) $(INSTSETIDFLAGS) ProgramTargetName(xterm.inst) $(DESTDIR)$(BINDIR)/ProgramTargetName(xterm)
+ RemoveFile(ProgramTargetName(xterm.inst))
+#else
+InstallProgramWithFlags(xterm,$(BINDIR),$(INSTSETIDFLAGS))
+#endif
+
+InstallNamedProg(uxterm,uxterm,$(BINDIR))
+
+/*
+ * Link with the termcap library if USE_TERMCAP is defined in resize.c
+ */
+#if defined(NTOArchitecture) || \
+ defined(LinuxArchitecture) || \
+ defined(OpenBSDArchitecture) || \
+ defined(SGIArchitecture) || \
+ defined(SunArchitecture)
+NormalProgramTarget(resize,$(OBJS2),$(DEPLIBS2),NullParameter,NullParameter)
+#else
+NormalProgramTarget(resize,$(OBJS2),$(DEPLIBS2),NullParameter,$(TERMCAPLIB))
+#endif
+
+InstallProgramWithFlags(resize,$(BINDIR),NullParameter)
+
+/*
+ * termcap is a special name that does not install correctly with
+ * InstallNamedNonExec()
+ */
+install::
+ MakeDir($(DESTDIR)$(LIBDIR)/etc)
+ $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) termcap \
+ $(DESTDIR)$(LIBDIR)/etc/xterm.termcap
+InstallNamedNonExec(terminfo,xterm.terminfo,$(LIBDIR)/etc)
+
+InstallAppDefaults(XTerm)
+InstallAppDefaults(UXTerm)
+InstallAppDefaultsLong(XTerm-col,XTerm-color)
+InstallManPage(xterm,$(MANDIR))
+InstallManPage(resize,$(MANDIR))
+DependTarget()