/**************************************************************************/
/*                                                                        */
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com)          */
/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de>  */
/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de>                */
/* Copyright (c) 2014-2016 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.                                          */
/*                                                                        */
/**************************************************************************/

NULL =

#include <Server.tmpl>

#if ! HasCbrt
CBRT_SRC = cbrt.c
CBRT_OBJ = cbrt.o
#endif

#if HasFfs
FFS_DEFINES = -DHAS_FFS
#endif

MIINITEXTSRC = miinitext.c
MIINITEXTOBJ = miinitext.o

#if (!(defined(NXAgentServer) && NXAgentServer))
NXAGENT_SKIP_SRCS =                     \
                    miexpose.c          \
                    $(NULL)
NXAGENT_SKIP_OBJS =                     \
                    miexpose.o          \
                    $(NULL)
#endif

SRCS =  $(CBRT_SRC)             \
        mivaltree.c             \
        mipolyseg.c             \
        mipolyrect.c            \
        mipoly.c                \
        mipolycon.c             \
        mipolygen.c             \
        mipolyutil.c            \
        mifillrct.c             \
        miwideline.c            \
        mispans.c               \
        miarc.c                 \
        mizerarc.c              \
        mifillarc.c             \
        miwindow.c              \
        micursor.c              \
        mipolytext.c            \
        mibitblt.c              \
        mipolypnt.c             \
        mipushpxl.c             \
        miglblt.c               \
        mizerline.c             \
        mizerclip.c             \
        mifpolycon.c            \
        midash.c                \
        mibstore.c              \
        $(MIINITEXTSRC)         \
        mieq.c                  \
        mipointer.c             \
        misprite.c              \
        midispcur.c             \
        miscrinit.c             \
        miclipn.c               \
        migc.c                  \
        micmap.c                \
        mioverlay.c             \
        $(NXAGENT_SKIP_SRCS)    \
        $(NULL)

OBJS =  $(CBRT_OBJ)             \
        mivaltree.o             \
        mipolyseg.o             \
        mipolyrect.o            \
        mipoly.o                \
        mipolycon.o             \
        mipolygen.o             \
        mipolyutil.o            \
        mifillrct.o             \
        miwideline.o            \
        mispans.o               \
        miarc.o                 \
        mizerarc.o              \
        mifillarc.o             \
        miwindow.o              \
        micursor.o              \
        mipolytext.o            \
        mibitblt.o              \
        mipolypnt.o             \
        mipushpxl.o             \
        miglblt.o               \
        mizerline.o             \
        mizerclip.o             \
        mifpolycon.o            \
        midash.o                \
        mibstore.o              \
        $(MIINITEXTOBJ)         \
        mieq.o                  \
        mipointer.o             \
        misprite.o              \
        midispcur.o             \
        miscrinit.o             \
        miclipn.o               \
        migc.o                  \
        micmap.o                \
        mioverlay.o             \
        $(NXAGENT_SKIP_OBJS)    \
        $(NULL)

#if defined(XorgVersion)
/* 
 * Make sure XINPUT, XF86VidTune, etc aren't defined for the miinitext.o 
 * used by Xnest, Xvfb 
 */

#if NXLibraries

/*
 * To build the NX agent we need the XINPUT symbol
 * in order to build the XInputExtension, since we
 * don't use the XF86 module loader.
 */
EXT_DEFINES = ExtensionDefines \
              $(NULL)
#else
EXT_DEFINES = ExtensionDefines \
              -UXINPUT \
              $(NULL)
#endif

#endif

INCLUDES = -I.                  \
           -I../include         \
           -I../render          \
           -I../xfixes          \
           -I../damageext       \
           -I../miext/damage    \
           -I$(XINCLUDESRC)     \
           -I$(EXTINCSRC)       \
           -I$(SERVERSRC)/Xext  \
           `pkg-config --cflags-only-I pixman-1` \
           $(NULL)

LINTLIBS =                      \
           ../dix/llib-ldix.ln  \
           ../os/llib-los.ln    \
           $(NULL)

DEFINES  = $(FFS_DEFINES)

NormalLibraryObjectRule()
NormalLibraryTarget(mi,$(OBJS))
LintLibraryTarget(mi,$(SRCS))
NormalLintTarget($(SRCS))

#ifndef Win32Architecture
NormalLibraryTarget(cbrt,cbrt.o)
#endif

SpecialCObjectRule(miinitext,$(ICONFIGFILES),$(EXT_DEFINES))
SpecialCObjectRule(miscrinit,$(ICONFIGFILES),$(EXT_DEFINES))
#ifdef ItsyCompilerBug
SpecialCObjectRule(mipolycon,$(_NOOP_),-O0)
#endif
#if defined(OpenBSDArchitecture) && defined(Sparc64Architecture)
SpecialCObjectRule(mizerclip,NullParameter,-O0)
#endif

AllTarget($(EXTRAMIINITEXTOBJ))

DependTarget()

InstallDriverSDKNonExecFile(mi.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(mibstore.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(micmap.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(migc.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(miline.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(mipointer.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(mipointrst.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(mizerarc.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(micoord.h,$(DRIVERSDKINCLUDEDIR))