434 lines
14 KiB
Plaintext
434 lines
14 KiB
Plaintext
/**************************************************************************/
|
|
/* */
|
|
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
|
|
/* Copyright (c) 2008-2017 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
|
|
/* Copyright (c) 2011-2022 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
|
|
/* Copyright (c) 2014-2019 Mihai Moldovan <ionic@ionic.de> */
|
|
/* Copyright (c) 2014-2022 Ulrich Sibiller <uli42@gmx.de> */
|
|
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
|
|
/* */
|
|
/* nx-X11, NX protocol compression and NX extensions to this software */
|
|
/* are copyright of the aforementioned persons and companies. */
|
|
/* */
|
|
/* Redistribution and use of the present software is allowed according */
|
|
/* to terms specified in the file LICENSE which comes in the source */
|
|
/* distribution. */
|
|
/* */
|
|
/* All rights reserved. */
|
|
/* */
|
|
/* NOTE: This software has received contributions from various other */
|
|
/* contributors, only the core maintainers and supporters are listed as */
|
|
/* copyright holders. Please contact us, if you feel you should be listed */
|
|
/* as copyright holder, as well. */
|
|
/* */
|
|
/**************************************************************************/
|
|
|
|
/*
|
|
* Server Master Makefile
|
|
*/
|
|
|
|
NULL =
|
|
|
|
#include <Server.tmpl>
|
|
|
|
/* On most systems the linker requires the libraries in dependency order.
|
|
But we have no real order because there are cycles. We fix this by adding
|
|
some libraries twice on the commandline. dependLib will add the
|
|
dependency library to the commandline if the link order is important */
|
|
#if 1 /* This is currently enabled for all systems */
|
|
#define dependLib(x) x
|
|
#else
|
|
#define dependLib(x)
|
|
#endif
|
|
|
|
#if defined(XorgVersion)
|
|
/* Do not strip server binaries */
|
|
INSTPGMFLAGS =
|
|
#endif
|
|
|
|
#define PreFbLibs $(DIX) $(OS) $(XPDDX)
|
|
#define BarePostFbLibs $(XPFBLIBS) $(MI)
|
|
#define PostFbLibs BarePostFbLibs $(EXTENSIONS)
|
|
|
|
#if !BuildXinerama
|
|
#define FbPostFbLibs $(FB) BarePostFbLibs $(EXTENSIONS)
|
|
#else
|
|
#define FbPostFbLibs $(FB) $(EXTENSIONS) BarePostFbLibs $(EXTENSIONS)
|
|
#endif
|
|
|
|
#define FBLibs PreFbLibs FbPostFbLibs
|
|
|
|
#define MiExtLibs $(SHADOW)
|
|
|
|
#define AllFBLibs PreFbLibs $(FB) PostFbLibs
|
|
|
|
#if BuildGlxExt
|
|
GLXLIB = GL/glx/ModuleLibraryTargetName(glx) \
|
|
GL/mesa/GLcore/ModuleLibraryTargetName(GLcore)
|
|
GLXDIR = GL
|
|
GLXEXT = $(GLXLIB)
|
|
#endif
|
|
|
|
#if BuildXInputExt
|
|
XINPUTEXT = Xi/LibraryTargetName(xinput)
|
|
XIDIR = Xi
|
|
#endif
|
|
#if BuildXKB
|
|
XKBEXT = xkb/LibraryTargetName(xkb) dependLib($(OS))
|
|
XKBDIR = xkb
|
|
#if defined(XorgVersion)
|
|
XF86XKBOBJS = xkb/xf86KillSrv.o xkb/xf86VT.o xkb/xf86Private.o
|
|
#endif
|
|
#endif
|
|
#if BuildDBE
|
|
DBEEXT = dbe/LibraryTargetName(dbe)
|
|
#endif
|
|
#if BuildDBE
|
|
DBEDIR = dbe
|
|
#endif
|
|
#if BuildRECORD
|
|
RECORDEXT = record/LibraryTargetName(record)
|
|
#endif
|
|
#if BuildRECORD || BuildRECORDlib
|
|
RECORDDIR = record
|
|
#endif
|
|
#ifdef SiteExtensionLibs
|
|
SITEEXTS = SiteExtensionLibs
|
|
#endif
|
|
#ifdef SiteExtensionDirs
|
|
SITEEXTDIRS = SiteExtensionDirs
|
|
#endif
|
|
LIBREGEX = RegexLibrary
|
|
|
|
|
|
#if BuildRender
|
|
RENDERDIR = render
|
|
RENDERLIB = $(RENDERDIR)/librender.a
|
|
#endif
|
|
#if BuildRandR
|
|
RANDRDIR = randr
|
|
RANDRLIB = $(RANDRDIR)/librandr.a
|
|
#endif
|
|
#if BuildXfixes
|
|
FIXESDIR = xfixes
|
|
FIXESLIB = $(FIXESDIR)/libxfixes.a
|
|
#endif
|
|
#if BuildDamage
|
|
DAMAGEDIR = damageext
|
|
DAMAGELIB = $(DAMAGEDIR)/libdamageext.a
|
|
#endif
|
|
#if BuildComposite
|
|
CWDIR = miext/cw
|
|
COMPOSITEDIR = composite
|
|
COMPOSITELIB = $(COMPOSITEDIR)/libcomposite.a
|
|
CW = miext/cw/LibraryTargetName(cw)
|
|
#endif
|
|
EXTENSIONS = $(COMPOSITELIB) $(DAMAGELIB) $(DAMAGE) $(FIXESLIB) $(CW) \
|
|
$(OTHEREXTS) $(GLXEXT) $(RANDRLIB) $(RENDERLIB)
|
|
OTHEREXTS = Xext/LibraryTargetName(ext) $(XKBEXT) $(XINPUTEXT) \
|
|
$(DBEEXT) $(RECORDEXT) $(SITEEXTS)
|
|
EXTDIRS = Xext $(XKBDIR) $(XIDIR) $(GLXDIR) \
|
|
$(DBEDIR) $(RECORDDIR) $(SITEEXTDIRS) \
|
|
$(RANDRDIR) $(RENDERDIR) $(XPCONFIGDIR) \
|
|
$(FIXESDIR) $(DAMAGEDIR) $(CWDIR) $(COMPOSITEDIR)
|
|
OS = os/LibraryTargetName(os)
|
|
BSDEMUL = $(DEPXBSDLIB)
|
|
FB = fb/LibraryTargetName(fb)
|
|
DAMAGE = miext/damage/LibraryTargetName(damage)
|
|
SHADOW = miext/shadow/LibraryTargetName(shadow)
|
|
LAYER = miext/layer/LibraryTargetName(layer)
|
|
#if !HasFfs && (defined(mingwArchitecture) || defined(cygwinArchitecture))
|
|
/* Order of libraries is important when linking in mingw or
|
|
* cygwin. libmi.a requires ffs from libdix.a. So it is added
|
|
* after libmi.a on the commandline */
|
|
MI = mi/LibraryTargetName(mi) $(DIX)
|
|
#else
|
|
MI = mi/LibraryTargetName(mi)
|
|
#endif
|
|
MIINITEXTOBJ = mi/miinitext.o
|
|
DIX = dix/LibraryTargetName(dix)
|
|
#if UsbMouseSupport
|
|
#if !HasLibUsb
|
|
USB = $(XF86OSSRC)/bsd/libusb/LibraryTargetName(usb)
|
|
#else
|
|
USB = UsbHidLib
|
|
#endif
|
|
#endif
|
|
#ifdef ServerExtraSysLibs
|
|
EXTRASYSLIBS = ServerExtraSysLibs
|
|
#endif
|
|
#if HasPam && HasPamMisc
|
|
PAMLIBS = PamLibraries PamMiscLibraries
|
|
#endif
|
|
SYSLIBS = $(ZLIB) MathLibrary $(USB) \
|
|
$(PAMLIBS) $(EXTRASYSLIBS)
|
|
#if !HasCbrt
|
|
CBRT = mi/LibraryTargetName(cbrt)
|
|
#endif
|
|
STDDIRS = include dix os mi $(XPDDXDIR) $(EXTDIRS)
|
|
FBDIR = fb
|
|
|
|
XCOMM
|
|
XCOMM This turns off the default rule for compiling .c files because
|
|
XCOMM this makefile does not really know how to build it. This is really
|
|
XCOMM just a hack because of the Sun version of make and nfs.
|
|
XCOMM
|
|
.c.o:
|
|
|
|
.s.o:
|
|
|
|
#if HasParallelMake
|
|
XCOMM
|
|
XCOMM force non-parallel build of XF86 servers to prevent MUTEX overrides
|
|
XCOMM
|
|
#if defined(NXAgentServer) && NXAgentServer
|
|
NXAGENT = nxagent
|
|
#endif
|
|
MakeMutex($(STDDIRS) fb)
|
|
#endif
|
|
|
|
|
|
#if defined(NXAgentServer) && NXAgentServer
|
|
XCOMM
|
|
XCOMM Nested server with NXlib-based ddx and compressed transport.
|
|
XCOMM
|
|
FBSUBDIR = fb
|
|
MIDAMAGEDIR = miext/damage
|
|
FBDIR = fb
|
|
#ifndef Win32Architecture
|
|
NXAGENTDDXDIR = hw/nxagent
|
|
#else
|
|
NXAGENTDDXDIR = hw
|
|
#endif
|
|
|
|
NXAGENTDIRS = $(STDDIRS) $(FBDIR) $(MIDAMAGEDIR) $(NXAGENTDDXDIR) $(DEPDIRS)
|
|
|
|
NX_XCOMP_HEADERS = \
|
|
../../../nxcomp/include/MD5.h \
|
|
../../../nxcomp/include/NXalert.h \
|
|
../../../nxcomp/include/NX.h \
|
|
../../../nxcomp/include/NXpack.h \
|
|
../../../nxcomp/include/NXproto.h \
|
|
../../../nxcomp/include/NXvars.h \
|
|
$(NULL)
|
|
|
|
NX_XCOMPSHAD_HEADERS = \
|
|
../../../nxcompshad/include/Shadow.h \
|
|
$(NULL)
|
|
|
|
NX_HEADERS = \
|
|
$(NX_XCOMP_HEADERS) \
|
|
$(NX_XCOMPSHAD_HEADERS) \
|
|
$(NULL)
|
|
|
|
BuildIncludes($(NX_HEADERS),nx,..)
|
|
|
|
#if defined(SunArchitecture) || \
|
|
defined(SparcArchitecture)
|
|
NXAGENTOBJS = hw/nxagent/miinitext.o \
|
|
hw/nxagent/NXwindow.o \
|
|
hw/nxagent/NXevents.o \
|
|
hw/nxagent/NXproperty.o \
|
|
hw/nxagent/NXdixfonts.o \
|
|
hw/nxagent/NXglyphcurs.o \
|
|
hw/nxagent/NXdispatch.o \
|
|
hw/nxagent/NXrender.o \
|
|
hw/nxagent/NXglyph.o \
|
|
hw/nxagent/NXpicture.o \
|
|
hw/nxagent/NXglxext.o \
|
|
hw/nxagent/NXresource.o \
|
|
$(NULL)
|
|
#elif !defined(Win32Architecture)
|
|
NXAGENTOBJS = hw/nxagent/miinitext.o \
|
|
hw/nxagent/NXwindow.o \
|
|
hw/nxagent/NXevents.o \
|
|
hw/nxagent/NXproperty.o \
|
|
hw/nxagent/NXdixfonts.o \
|
|
hw/nxagent/NXglyphcurs.o \
|
|
hw/nxagent/NXdispatch.o \
|
|
hw/nxagent/NXrender.o \
|
|
hw/nxagent/NXglyph.o \
|
|
hw/nxagent/NXpicture.o \
|
|
hw/nxagent/NXglxext.o \
|
|
hw/nxagent/NXxvdisp.o \
|
|
hw/nxagent/NXresource.o \
|
|
$(NULL)
|
|
#else
|
|
NXAGENTOBJS = hw/nxagent/miinitext.o \
|
|
hw/nxagent/NXwindow.o \
|
|
hw/nxagent/NXevents.o \
|
|
hw/nxagent/NXproperty.o \
|
|
hw/nxagent/NXdixfonts.o \
|
|
hw/nxagent/NXglyphcurs.o \
|
|
hw/nxagent/NXdispatch.o \
|
|
hw/nxagent/NXrender.o \
|
|
hw/nxagent/NXglyph.o \
|
|
hw/nxagent/NXpicture.o \
|
|
hw/nxagent/NXglxext.o \
|
|
hw/nxagent/NXxvdisp.o \
|
|
hw/nxagent/NXresource.o \
|
|
dix/main.o \
|
|
$(NULL)
|
|
#endif
|
|
|
|
XPMLIB = -lXpm
|
|
XMLLIB = `pkg-config --libs libxml-2.0`
|
|
PIXMANLIB = `pkg-config --libs pixman-1`
|
|
ZLIB = $$(pkg-config --exists 'zlib' >/dev/null 2>&1 && pkg-config --libs 'zlib' || printf '%s' '-lz')
|
|
PNGLIB = `pkg-config --libs libpng`
|
|
JPEGLIB = -ljpeg
|
|
|
|
TIRPC_LIB =
|
|
|
|
#if HasSecureRPC
|
|
#if UseTIRPC
|
|
TIRPC_LIB = $$(pkg-config --libs 'libtirpc')
|
|
#endif
|
|
#endif
|
|
|
|
NXAGENT = hw/nxagent/LibraryTargetName(nxagent)
|
|
NXCOMPEXT = hw/nxagent/compext/LibraryTargetName(compext)
|
|
NXAGENTLIBS = PreFbLibs $(NXAGENT) FbPostFbLibs $(NXCOMPEXT) $(NXAGENT) $(MI)
|
|
NXAGENTSYSLIBS = $(XLIB) $(SYSLIBS) $(XPMLIB) $(XMLLIB) $(PIXMANLIB) $(TIRPC_LIB)
|
|
NXCOMPEXTSYSLIBS = $(ZLIB) $(PNGLIB) $(JPEGLIB)
|
|
#if HasParallelMake
|
|
MakeMutex($(NXAGENTDIRS) $(NXCOMPEXT) $(NXAGENTOBJS) $(NXAGENTLIBS) $(NXCOMPEXTSYSLIBS) $(NXAGENTSYSLIBS))
|
|
#endif
|
|
#if ForceServerRemake
|
|
$(NXAGENTOBJS) $(NXAGENTLIBS):: $(NXAGENTDIRS)
|
|
@if [ -f $@ ]; then touch $@ >/dev/null 2>&1 || exit 0; fi
|
|
#endif
|
|
#if NXLibraries
|
|
/*
|
|
* We need this as the linker will try to locate dependencies of X11 and Xext.
|
|
*/
|
|
|
|
#if defined(SunArchitecture)
|
|
NXAGENTNXLIBS = -L/usr/sfw/lib \
|
|
-L../../../nxcomp/src/.libs \
|
|
-L../../../nxcompshad/src/.libs \
|
|
-L../../lib/src/.libs \
|
|
-lrt \
|
|
-lX11 \
|
|
-lXcomp \
|
|
-lXcompshad \
|
|
-lXrender \
|
|
-lXfixes \
|
|
$(XFONTLIB) \
|
|
-lXcomposite \
|
|
-lXinerama \
|
|
-lXdmcp \
|
|
-lNX_X11 \
|
|
-lXext \
|
|
$(NULL)
|
|
#elif defined(cygwinArchitecture)
|
|
NXAGENTNXLIBS = -L../../../nxcomp/src/.libs \
|
|
-L../../../nxcompshad/src/.libs \
|
|
-L../../lib/src/.libs \
|
|
-lX11 \
|
|
-lXcomp \
|
|
-lXcompshad \
|
|
-lXrender \
|
|
-lXfixes \
|
|
$(XFONTLIB) \
|
|
-lXcomposite \
|
|
-lXdmcp \
|
|
-lNX_X11 \
|
|
-lXext \
|
|
$(NULL)
|
|
#elif defined(OpenBSDArchitecture)
|
|
NXAGENTNXLIBS = -L../../../nxcomp/src/.libs \
|
|
-L../../../nxcompshad/src/.libs \
|
|
-L../../lib/src/.libs \
|
|
-lkvm \
|
|
-lX11 \
|
|
-lXcomp \
|
|
-lXcompshad \
|
|
-lXrender \
|
|
-lXfixes \
|
|
$(XFONTLIB) \
|
|
-lXcomposite \
|
|
-lXinerama \
|
|
-lXdmcp \
|
|
-lNX_X11 \
|
|
-lXext \
|
|
$(NULL)
|
|
#else
|
|
NXAGENTNXLIBS = -L../../../nxcomp/src/.libs \
|
|
-L../../../nxcompshad/src/.libs \
|
|
-L../../lib/src/.libs \
|
|
-lX11 \
|
|
-lXcomp \
|
|
-lXcompshad \
|
|
-lXrender \
|
|
-lXfixes \
|
|
$(XFONTLIB) \
|
|
-lXcomposite \
|
|
-lXinerama \
|
|
-lXdmcp \
|
|
-lNX_X11 \
|
|
-lXext \
|
|
$(NULL)
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef cygwinArchitecture
|
|
NX_XSHADOWLIBNAME = cygXcompshad.dll
|
|
#else
|
|
NX_XSHADOWLIBNAME = libXcompshad.so
|
|
#endif
|
|
|
|
ServerTarget(nxagent,$(NXAGENTDIRS),$(NXAGENTOBJS), \
|
|
$(LIBCWRAPPER) $(NXCOMPEXT) $(NXAGENTLIBS) $(LOADABLEEXTS),$(NXAGENTNXLIBS) $(NXAGENTSYSLIBS) $(NXCOMPEXTSYSLIBS))
|
|
|
|
LibX11Links()
|
|
|
|
/*
|
|
* Hard coded target to build a static nxagent server.
|
|
*/
|
|
nxagent_static: nxagent
|
|
if [ -f nxagent_static ]; then set -x; \
|
|
$(MV) nxagent_static nxagent_static.bak; \
|
|
else exit 0; fi
|
|
$(CCLINK) -o nxagent_static -static $(LDOPTIONS) $(NXAGENTOBJS) \
|
|
$(LIBCWRAPPER) $(NXCOMPEXT) $(NXAGENTLIBS) $(LOADABLEEXTS) $(LDLIBS) \
|
|
$(NXCOMPEXTSYSLIBS) $(NXAGENTSYSLIBS) $(EXTRA_INSTALL_LOAD_FLAGS)
|
|
|
|
/*
|
|
* Hard coded target to build a static nxagent server except for libX11 and libXext.
|
|
*/
|
|
nxagent_static_nolibs: nxagent
|
|
if [ -f nxagent_static_nolibs ]; then set -x; \
|
|
$(MV) nxagent__static_nolibs nxagent_static_nolibs.bak; \
|
|
else exit 0; fi
|
|
$(CCLINK) -o nxagent_static_nolibs -Wl,-Bstatic $(LDOPTIONS) $(NXAGENTOBJS) \
|
|
$(NXAGENTLIBS) $(LOADABLEEXTS) $(LIBCWRAPPER) $(LDLIBS) \
|
|
$(LDPRELIBS) $(SYSLIBS) -Wl,-Bdynamic -lNX_X11 -lXext $(EXTRA_INSTALL_LOAD_FLAGS)
|
|
#endif /* NXAgentServer */
|
|
|
|
|
|
MIEXTDIRS = $(SHADOWDIR) $(LAYERDIR) $(ROOTLESSDIR) $(MIDAMAGEDIR)
|
|
IPLANDIRS = $(IPLAN2P2DIR) $(IPLAN2P4DIR) $(IPLAN2P8DIR)
|
|
DDXDIRS = $(DECWSDDXDIR) $(SUNDDXDIR) \
|
|
$(HPDDXDIR) $(XFREE86DDXDIR) \
|
|
$(NXAGENTDDXDIR)
|
|
SUBDIRS = $(STDDIRS) \
|
|
$(IPLANDIRS) $(ILBMDIR) \
|
|
$(DDXDIRS) $(FBSUBDIR) $(KDRIVEDIRS) $(MIEXTDIRS)
|
|
|
|
#if defined(ServerToInstall)
|
|
install::
|
|
-(cd $(DESTDIR)$(BINDIR); $(RM) X; $(LN) ServerToInstall X)
|
|
#endif
|
|
|
|
#define IHaveSubdirs
|
|
|
|
DependSubdirs($(SUBDIRS))
|
|
MakeLintLibSubdirs($(SUBDIRS))
|
|
LintSubdirs($(SUBDIRS))
|
|
|
|
ForceSubdirs($(DEPDIRS) $(SUBDIRS))
|
|
|
|
DEFAULTFONTPATH = DefaultFontPath
|
|
EXTRAMANDEFS = -D__default_font_path__="`echo $(DEFAULTFONTPATH) | sed -e 's/,/, /g'`"
|