Edit

IABSD.fr/xenocara/app/xterm/Imakefile

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2007-06-15 19:29:55
    Hash : 06d70fc7
    Message : import xterm 225

  • app/xterm/Imakefile
  • XCOMM $XTermId: Imakefile,v 1.101 2007/03/18 21:06:18 tom 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
    XCOMM $XFree86: xc/programs/xterm/Imakefile,v 3.73 2006/04/10 00:34:36 dickey Exp $
    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(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 \
    		  menu.c misc.c print.c ptydata.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 \
    		  menu.o misc.o print.o ptydata.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 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()