/**************************************************************************/ /* */ /* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */ /* Copyright (c) 2008-2014 Oleksandr Shneyder */ /* Copyright (c) 2011-2016 Mike Gabriel */ /* Copyright (c) 2014-2016 Mihai Moldovan */ /* Copyright (c) 2014-2016 Ulrich Sibiller */ /* 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 */ XCOMM $XFree86: xc/programs/Xserver/Imakefile,v 3.296 2003/11/23 06:47:00 torrey Exp $ #include /* 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 PreFbLibsNoFont $(DIX) $(OS) #define BarePostFbLibs $(MFB) $(XPFBLIBS) $(MI) #define PostFbLibs BarePostFbLibs $(EXTENSIONS) #define NoMfbBarePostFbLibs $(XPFBLIBS) $(MI) #if !BuildXinerama #define NoMfbPostFbLibs NoMfbBarePostFbLibs $(EXTENSIONS) #else #define NoMfbPostFbLibs $(EXTENSIONS) NoMfbBarePostFbLibs $(EXTENSIONS) #endif #define MFBBareLibs PreFbLibs BarePostFbLibs #define NoMFBBareLibs PreFbLibs NoMfbBarePostFbLibs #define MFBLibs PreFbLibs PostFbLibs #define NoMFBLibs PreFbLibs NoMfbPostFbLibs #define CFBLibs PreFbLibs $(CFB) PostFbLibs #define CFB4Libs PreFbLibs $(CFB4) PostFbLibs #define CFB8Libs PreFbLibs $(CFB8) PostFbLibs #define CFB16Libs PreFbLibs $(CFB16) PostFbLibs #define CFB24Libs PreFbLibs $(CFB24) PostFbLibs #define CFB32Libs PreFbLibs $(CFB32) PostFbLibs #define NoMFBCFBLibs PreFbLibs $(CFB) NoMfbPostFbLibs #define NoMFBCFB8Libs PreFbLibs $(CFB8) NoMfbPostFbLibs #define FbPostFbLibs $(FB) NoMfbPostFbLibs #define FBLibs PreFbLibs FbPostFbLibs #define MiExtLibs $(SHADOW) #define AllFBLibs PreFbLibs $(FB) $(CFB) PostFbLibs #if BuildGlxExt # if DoLoadableServer GLXLIB = GL/glx/ModuleLibraryTargetName(glx) \ GL/mesa/GLcore/ModuleLibraryTargetName(GLcore) # else GLXLIB = GL/glx/ModuleLibraryTargetName(glx) \ GL/mesa/GLcore/ModuleLibraryTargetName(GLcore) # endif 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 #if DoLoadableServer && HasDlopen LIBDL = DlLibrary #endif LIBREGEX = RegexLibrary #if DoLoadableServer LIBCWRAPPER = os/libcwrapper.o #endif #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)/libdamage.a #endif #if BuildComposite CWDIR = miext/cw COMPOSITEDIR = composite COMPOSITELIB = $(COMPOSITEDIR)/libcomposite.a #if DoLoadableServer CW = miext/cw/ModuleLibraryTargetName(cw) #else CW = miext/cw/LibraryTargetName(cw) #endif #endif #if DoLoadableServer EXTENSIONS = $(COMPOSITELIB) $(DAMAGELIB) $(DAMAGE) $(FIXESLIB) $(CW) \ $(OTHEREXTS) $(RANDRLIB) $(RENDERLIB) LOADABLEEXTS = $(MISCEXT) $(DBEEXT) $(RECORDEXT) $(GLXEXT) MISCEXT = Xext/LibraryTargetName(ext) OTHEREXTS = Xext/LibraryTargetName(exts) $(XKBEXT) $(XINPUTEXT) \ $(SITEEXTS) #else EXTENSIONS = $(COMPOSITELIB) $(DAMAGELIB) $(DAMAGE) $(FIXESLIB) $(CW) \ $(OTHEREXTS) $(GLXEXT) $(RANDRLIB) $(RENDERLIB) OTHEREXTS = Xext/LibraryTargetName(ext) $(XKBEXT) $(XINPUTEXT) \ $(DBEEXT) $(RECORDEXT) $(SITEEXTS) #endif EXTDIRS = Xext $(XKBDIR) $(XIDIR) $(GLXDIR) \ $(DBEDIR) $(RECORDDIR) $(SITEEXTDIRS) \ $(RANDRDIR) $(RENDERDIR) $(XPCONFIGDIR) \ $(FIXESDIR) $(DAMAGEDIR) $(CWDIR) $(COMPOSITEDIR) OS = os/LibraryTargetName(os) BSDEMUL = $(DEPXBSDLIB) #if DoLoadableServer MFB = mfb/ModuleLibraryTargetName(mfb) FB = fb/ModuleLibraryTargetName(fb) #if XF8_32Wid CFB = cfb/ModuleLibraryTargetName(cfb) \ cfb16/ModuleLibraryTargetName(cfb16) \ cfb24/ModuleLibraryTargetName(cfb24) \ cfb32/ModuleLibraryTargetName(cfb32) #else CFB = cfb/ModuleLibraryTargetName(cfb) \ cfb16/ModuleLibraryTargetName(cfb16) \ cfb32/ModuleLibraryTargetName(cfb32) #endif CFB8 = cfb/ModuleLibraryTargetName(cfb) CFB4 = cfb/ModuleLibraryTargetName(cfb) \ cfb4/ModuleLibraryTargetName(cfb4) CFB16 = cfb/ModuleLibraryTargetName(cfb) \ cfb16/ModuleLibraryTargetName(cfb16) CFB24 = cfb/ModuleLibraryTargetName(cfb) \ cfb24/ModuleLibraryTargetName(cfb24) CFB32 = cfb/ModuleLibraryTargetName(cfb) \ cfb32/ModuleLibraryTargetName(cfb32) #if (!(defined(NXAgentServer) && NXAgentServer)) DAMAGE = miext/damage/ModuleLibraryTargetName(damage) #endif SHADOW = miext/shadow/ModuleLibraryTargetName(shadow) LAYER = miext/layer/ModuleLibraryTargetName(layer) #else MFB = mfb/LibraryTargetName(mfb) FB = fb/LibraryTargetName(fb) #if XF8_32Wid CFB = cfb16/LibraryTargetName(cfb16) \ cfb24/LibraryTargetName(cfb24) \ cfb32/LibraryTargetName(cfb32) \ cfb/LibraryTargetName(cfb) #else CFB = cfb16/LibraryTargetName(cfb16) \ cfb32/LibraryTargetName(cfb32) \ cfb/LibraryTargetName(cfb) #endif CFB8 = cfb/LibraryTargetName(cfb) CFB4 = cfb4/LibraryTargetName(cfb4) \ cfb/LibraryTargetName(cfb) CFB16 = cfb16/LibraryTargetName(cfb16) \ cfb/LibraryTargetName(cfb) CFB24 = cfb24/LibraryTargetName(cfb24) \ cfb/LibraryTargetName(cfb) CFB32 = cfb32/LibraryTargetName(cfb32) \ cfb/LibraryTargetName(cfb) #if (!(defined(NXAgentServer) && NXAgentServer)) DAMAGE = miext/damage/LibraryTargetName(damage) #endif SHADOW = miext/shadow/LibraryTargetName(shadow) LAYER = miext/layer/LibraryTargetName(layer) #endif #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 #if !(SystemV4 || defined(SGIArchitecture) || UseRgbTxt) DBMLIBS = DBMLibrary #endif SYSLIBS = $(ZLIB) MathLibrary $(DBMLIBS) $(USB) \ $(PAMLIBS) $(EXTRASYSLIBS) #if !HasCbrt CBRT = mi/LibraryTargetName(cbrt) #endif STDDIRS = include dix os mi $(XPDDXDIR) $(EXTDIRS) FBDIR = fb MFBDIR = mfb CFB4DIR = cfb4 CFB8DIR = cfb CFB16DIR = cfb16 CFB24DIR = cfb24 CFB32DIR = cfb32 AFBDIR = afb 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: /* Build rule blocks, add one for each server * * If a server needs mfb, its build block should have a line like: * MFBSUBDIR = mfb * Similarly, its build block should have: * CFB4SUBDIR = cfb4 (if the server needs 4 bit cfb) * CFB8SUBDIR = cfb (8 bit cfb) * CFB16SUBDIR = cfb16 (16 bit cfb) * CFB24SUBDIR = cfb24 (24 bit cfb) * CFB32SUBDIR = cfb32 (32 bit cfb) * * If a server does not need all of the above components, simply * omit the relevant lines from the build block. * * If these guidelines are followed, a make at the top of the server * tree should result in each subdirectory being built only once, * even if multiple servers that share subdirectories are being built. */ #if HasParallelMake XCOMM XCOMM force non-parallel build of XF86 servers to prevent MUTEX overrides XCOMM #if defined(NXAgentServer) && NXAgentServer NXAGENT = nxagent #endif #if defined(NXWinServer) && NXWinServer && !MakeDllModules NXWIN = NXWin #endif #if (defined(NXAgentServer) && NXAgentServer) || \ (!MakeDllModules && defined(NXWinServer) && NXWinServer) MakeMutex($(NXAGENT) $(NXWIN)) #endif MakeMutex($(STDDIRS) mfb fb cfb cfb16 cfb24 cfb32) #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) $(MFBDIR) $(FBDIR) $(MIDAMAGEDIR) $(NXAGENTDDXDIR) $(DEPDIRS) NX_XCOMP_HEADERS = \ ../../../nxcomp/NXalert.h \ ../../../nxcomp/NX.h \ ../../../nxcomp/NXpack.h \ ../../../nxcomp/NXproto.h \ ../../../nxcomp/NXvars.h NX_XCOMPEXT_HEADERS = \ ../../../nxcompext/NXlib.h \ ../../../nxcompext/NXlibint.h NX_XCOMPSHAD_HEADERS = \ ../../../nxcompshad/Shadow.h NX_HEADERS = \ $(NX_XCOMP_HEADERS) \ $(NX_XCOMPEXT_HEADERS) \ $(NX_XCOMPSHAD_HEADERS) 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/NXextension.o \ hw/nxagent/NXglxext.o \ hw/nxagent/NXmiglyph.o \ hw/nxagent/NXmiexpose.o \ hw/nxagent/NXresource.o \ hw/nxagent/NXdamage.o #elif !defined(LynxOSArchitecture) && \ !defined(Win32Architecture) && \ !defined(QNX4Architecture) 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/NXextension.o \ hw/nxagent/NXglxext.o \ hw/nxagent/NXxvdisp.o \ hw/nxagent/NXmiglyph.o \ hw/nxagent/NXmiexpose.o \ hw/nxagent/NXresource.o \ hw/nxagent/NXdamage.o #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/NXextension.o \ hw/nxagent/NXglxext.o \ hw/nxagent/NXxvdisp.o \ hw/nxagent/NXmiglyph.o \ hw/nxagent/NXmiexpose.o \ hw/nxagent/NXresource.o \ hw/nxagent/NXdamage.o \ dix/main.o #endif XPMLIB = -lXpm XMLLIB = `pkg-config --libs libxml-2.0` PIXMANLIB = `pkg-config --libs pixman-1` NXAGENT = hw/nxagent/LibraryTargetName(nxagent) NXAGENTLIBS = PreFbLibs $(NXAGENT) FbPostFbLibs $(NXAGENT) $(MI) NXAGENTSYSLIBS = $(LDPRELIBS) $(XLIB) $(SYSLIBS) $(XPMLIB) $(XMLLIB) $(PIXMANLIB) #if HasParallelMake MakeMutex($(NXAGENTDIRS) $(NXAGENTOBJS) $(NXAGENTLIBS) $(NXAGENTSYSLIBS)) #endif #if ForceServerRemake $(NXAGENTOBJS) $(NXAGENTLIBS) $(NXAGENTSYSLIBS):: $(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 \ -L../../../nx-X11/exports/lib \ -L ../../../nxcompext -L ../../../nxcompshad \ -lrt \ -lXcomp \ -lXcompext -lXcompshad \ -lXrender -lXfixes -lXfont -lXcomposite -lXinerama -lXdmcp \ -lNX_X11 -lXext #elif defined(cygwinArchitecture) NXAGENTNXLIBS = -L ../../../nxcomp \ -L../../../nx-X11/exports/lib \ -L ../../../nxcompext -L ../../../nxcompshad \ -lXcomp \ -lXcompext -lXcompshad \ -lXrender -lXfixes -lXfont -lXcomposite -lXdmcp \ -lNX_X11 -lXext #else NXAGENTNXLIBS = -L ../../../nxcomp \ -L../../../nx-X11/exports/lib \ -L ../../../nxcompext -L ../../../nxcompshad \ -lXcomp \ -lXcompext -lXcompshad \ -lXrender -lXfixes -lXfont -lXcomposite -lXinerama -lXdmcp \ -lNX_X11 -lXext #endif #endif #ifdef cygwinArchitecture NX_XSHADOWLIBNAME = cygXcompshad.dll #else NX_XSHADOWLIBNAME = libXcompshad.so #endif ServerTarget(nxagent,$(NXAGENTDIRS),$(NXAGENTOBJS), \ $(LIBCWRAPPER) $(NXAGENTLIBS) $(LOADABLEEXTS),$(NXAGENTSYSLIBS) $(NXAGENTNXLIBS)) /* * 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) $(NXAGENTLIBS) $(LOADABLEEXTS) $(LDLIBS) \ $(NXAGENTSYSLIBS) $(EXTRA_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_LOAD_FLAGS) #endif /* NXAgentServer */ #if defined(NXWinServer) && NXWinServer XCOMM XCOMM X Server for MS Windows XCOMM FBSUBDIR = fb MIDAMAGEDIR = miext/damage SHADOWDIR = miext/shadow #if BuildXWinLayer LAYERDIR = miext/layer XWINLAYERLIB = $(LAYER) #else LAYERDIR = XWINLAYERLIB = #endif #if BuildXWinMultiWindowExtWM ROOTLESSDIR = miext/rootless ROOTLESSLIB = $(ROOTLESSDIR)/LibraryTargetName(rootless) \ $(ROOTLESSDIR)/safeAlpha/LibraryTargetName(safeAlpha) \ $(ROOTLESSDIR)/accel/LibraryTargetName(rlAccel) #else ROOTLESSDIR = ROOTLESSLIB = #endif NXWINDDXDIR = hw/nxwin #if BuildXWinXF86Config XWINPARSERDIR = hw/xfree86/parser XWINPARSERLIB = $(XWINPARSERDIR)/LibraryTargetName(xf86config) #else XWINPARSERDIR = XWINPARSERLIB = #endif XWINOPENGLLIB = NXWINLIB = $(NXWINDDXDIR)/LibraryTargetName(NXWin) NXWINDIRS = $(STDDIRS) $(FBDIR) $(SHADOWDIR) $(LAYERDIR) $(NXWINDDXDIR) \ $(DEPDIRS) $(XWINPARSERDIR) $(ROOTLESSDIR) $(MIDAMAGEDIR) NXWINOBJS = $(NXWINDDXDIR)/stubs.o $(NXWINDDXDIR)/NXWin.res NXWINLIBS = PreFbLibs $(NXWINLIB) FbPostFbLibs $(NXWINLIB) $(XWINLAYERLIB) \ $(SHADOW) $(XWINPARSERLIB) $(ROOTLESSLIB) $(OS) #if BuildXWinMultiWindow || BuildXWinClipboard XWINX11 = $(XONLYLIB) # if defined(Win32Architecture) PTHREADLIB = -lpthreadGC # endif #endif #if defined(Win32Architecture) XWINW32 = -lgdi32 -lwsock32 $(PTHREADLIB) #else XWINW32 = -lgdi32 #endif NXWINSYSLIBS = $(LDPRELIBS) $(XWINX11) $(SYSLIBS) $(XWINW32) NXWINNXLIBS = -L../../../nxcomp -lXcomp /* * These flags cause NXWin.exe to be a Windows executable, which * prevents NXWin.exe from opening a Command Prompt window when it is * started. However, the flags also prevent NXWin.exe from outputting * its status and error message to a Command Prompt; thus, one most * implement a method to redirect status and error messages to a file * before enabling these flags. */ EXTRA_LDOPTIONS = -e _mainCRTStartup #if HasParallelMake MakeMutex($(NXWINDIRS) $(NXWINOBJS) $(NXWINLIB) $(NXWINLIBS) $(NXWINSYSLIBS) $(NXWINNXLIBS)) #endif #if ForceServerRemake $(NXWINOBJS) $(NXWINLIB) $(NXWINLIBS) $(NXWINSYSLIBS) $(NXWINNXLIBS):: $(NXWINDIRS) @if [ -f $@ ]; then touch $@ >/dev/null 2>&1 || exit 0; fi #endif #ifdef mingwArchitecture NXWINSERVERNAME=NXming #else NXWINSERVERNAME=NXWin #endif ServerTarget($(NXWINSERVERNAME),$(NXWINDIRS),$(NXWINOBJS), \ $(LIBCWRAPPER) $(NXWINLIBS) $(LOADABLEEXTS),$(NXWINSYSLIBS) $(NXWINNXLIBS)) #ifndef ServerToInstall # define ServerToInstall $(NXWINSERVERNAME) #endif #endif /* NXWinServer */ #if 0 #if defined(NXWinServer) && NXWinServer XCOMM XCOMM X Server for MS Windows XCOMM FBDIR = fb SHADOWDIR = miext/shadow LAYERDIR = miext/layer NXWINDDXDIR = hw/nxwin XWINPARSERDIR = hw/xfree86/parser XWINPARSERLIB = $(XWINPARSERDIR)/LibraryTargetName(xf86config) NXWINLIB = $(NXWINDDXDIR)/LibraryTargetName(nxwin) NXWINDIRS = $(STDDIRS) $(FBDIR) $(SHADOWDIR) $(LAYERDIR) $(NXWINDDXDIR) \ $(DEPDIRS) $(XWINPARSERDIR) #NXWINOBJS = $(NXWINDDXDIR)/stubs.o $(NXWINDDXDIR)/NX.res \ $(NXWINDDXDIR)/NXwindow.o \ $(NXWINDDXDIR)/NXdispatch.o $(NXWINDDXDIR)/NXproperty.o \ $(NXWINDDXDIR)/NXevents.o NXWINOBJS = $(NXWINDDXDIR)/stubs.o $(NXWINDDXDIR)/NX.res NXWINLIBS = PreFbLibs $(NXWINLIB) FbPostFbLibs $(LAYER) $(SHADOW) \ $(XWINPARSERLIB) NXWINSYSLIBS = $(LDPRELIBS) $(XLIB) $(SYSLIBS) -lgdi32 -lddraw NXWINNXLIBS = -L../../../nxcomp -lXcomp /* * These flags cause NXWin.exe to be a Windows executable, which * prevents NXWin.exe from opening a Command Prompt window when it is * started. However, the flags also prevent NXWin.exe from outputting * its status and error message to a Command Prompt; thus, one most * implement a method to redirect status and error messages to a file * before enabling these flags. */ EXTRA_LDOPTIONS = -mwindows -e _mainCRTStartup #if HasParallelMake MakeMutex($(NXWINDIRS) $(NXWINOBJS) $(NXWINLIB) $(NXWINLIBS) $(NXWINSYSLIBS) $(NXWINNXLIBS)) #endif #if ForceServerRemake $(NXWINOBJS) $(NXWINLIB) $(NXWINLIBS) $(NXWINSYSLIBS) $(NXWINNXLIBS):: $(NXWINDIRS) @if [ -f $@ ]; then touch $@ >/dev/null 2>&1 || exit 0; fi #endif ServerTarget(NXWin,$(NXWINDIRS),$(NXWINOBJS), \ $(NXWINLIBS) $(LOADABLEEXTS) $(LIBCWRAPPER),$(NXWINSYSLIBS) $(NXWINNXLIBS)) #ifndef ServerToInstall #define ServerToInstall NXWin #endif #endif /* NXWinServer */ #endif CFBSUBDIRS = $(CFB8SUBDIR) $(CFB16SUBDIR) $(CFB24SUBDIR) $(CFB32SUBDIR) MIEXTDIRS = $(SHADOWDIR) $(LAYERDIR) $(ROOTLESSDIR) $(MIDAMAGEDIR) IPLANDIRS = $(IPLAN2P2DIR) $(IPLAN2P4DIR) $(IPLAN2P8DIR) DDXDIRS = $(DECWSDDXDIR) $(SUNDDXDIR) $(LYNXDDXDIR) \ $(HPDDXDIR) $(XFREE86DDXDIR) \ $(NXAGENTDDXDIR) $(NXWINDDXDIR) SUBDIRS = $(STDDIRS) $(MFBSUBDIR) $(CFBSUBDIRS) \ $(IPLANDIRS) $(ILBMDIR) $(AFBSUBDIR) \ $(DDXDIRS) $(FBSUBDIR) $(KDRIVEDIRS) $(MIEXTDIRS) #if defined(ServerToInstall) && !defined(OS2Architecture) 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'`" #if MakeDllModules && DoLoadableServer && \ (defined(SunArchitecture) && defined(SVR4Architecture)) XCOMM Hackery for building dlopen-able .so modules on Solaris AllTarget(linker-deps) LINKER_DEPS_DIRS = $(SUBDIRS) XCOMM After everything is built, run through and generate linker dependencies linker-deps: RunPerlScript($(XF86SRC)/os-support/sunos/find_deps.pl,-R ProjectRoot $(LINKER_DEPS_DIRS)) for i in $(LINKER_DEPS_DIRS) ; do \ echo "relinking with dependency flags in $(CURRENT_DIR)/$$i..."; \ MakeNamedTargetSubdir($$i,NullParameter,all) ; \ done #endif