/**************************************************************************/
/*                                                                        */
/* 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.                                          */
/*                                                                        */
/**************************************************************************/

#include <Server.tmpl>

NULL =

/*
 * If you have any extra files to be put into the library, define them here.
 */

ZONEID_DEFINES = -UHAVE_GETZONEID

#if NXLibraries

NX_INCLUDES = -I../../../../nxcomp

NX_DEFINES = -DNX_TRANS_SOCKET		\
             -DNX_TRANS_AUTH		\
             -DNX_TRANS_FOPEN		\
             -DNX_TRANS_SLEEP		\
             -DNX_TRANS_EXIT		\
             -DNX_TRANS_WAKEUP=1000	\
             $(NULL)

#            -DNX_TRANS_WARN		\
#            -DNX_TRANS_INFO		\
#            -DNX_TRANS_TEST		\
#            -DNX_TRANS_DEBUG		\

#endif

/*
 * do not modify the following two definitions
 */

#ifndef OtherSources
#define OtherSources
#endif

#ifndef OtherObjects
#define OtherObjects
#endif

#if HasXdmAuth
XDMAUTHDEFS = -DHASXDMAUTH
XDMAUTHOBJS = xdmauth.o
XDMAUTHSRCS = xdmauth.c
#else
XDMAUTHDEFS = 
XDMAUTHOBJS =
XDMAUTHSCRS =
#endif

#if HasSecureRPC
RPCDEFS = -DSECURE_RPC
RPCOBJS = rpcauth.o
RPCSRCS = rpcauth.c
#else
RPCDEFS =
RPCOBJS =
RPCSRCS =
#endif

#if HasBSD44Sockets
   SOCK_DEFINES = -DBSD44SOCKETS
#endif

#if HasGetIfAddrs
   IFADDRS_DEFINES = -DHAS_GETIFADDRS
#endif

#if !defined(DDXOsColor)
COLOR_SRCS=oscolor.c
COLOR_OBJS=oscolor.o
#endif

#if !HasSnprintf
SNPRINTF_SRCS = snprintf.c
SNPRINTF_OBJS = snprintf.o
#endif

#if !HasStrlcat
STRLCAT_SRCS = strlcat.c strlcpy.c
STRLCAT_OBJS = strlcat.o strlcpy.o
#endif

#if !HasReallocarray
REALLOCARRAY_SRCS = reallocarray.c
REALLOCARRAY_OBJS = reallocarray.o
#endif

#if HasGetpeerucred
GETPEER_DEFINES = -DHAS_GETPEERUCRED
#else
# if HasGetpeereid
GETPEER_DEFINES = -DHAS_GETPEEREID
# endif
#endif

#if !HasTimingsafeMemcmp
TMEMCMP_SRCS = timingsafe_memcmp.c
TMEMCMP_OBJS = timingsafe_memcmp.o
#endif

BOOTSTRAPCFLAGS = 
           SRCS = WaitFor.c		\
                  access.c		\
                  client.c		\
                  connection.c		\
                  io.c			\
                  $(COLOR_SRCS)		\
                  osinit.c		\
                  utils.c		\
                  log.c			\
                  auth.c		\
                  mitauth.c		\
                  secauth.c		\
                  $(XDMAUTHSRCS)	\
                  $(RPCSRCS)		\
                  xdmcp.c		\
                  OtherSources		\
                  xstrans.c		\
                  $(SNPRINTF_SRCS)	\
                  $(STRLCAT_SRCS)	\
                  $(REALLOCARRAY_SRCS)	\
                  xprintf.c		\
                  $(TMEMCMP_SRCS)	\
                  $(NULL)

           OBJS = WaitFor.o		\
                  access.o		\
                  client.o		\
                  connection.o		\
                  io.o			\
                  $(COLOR_OBJS)		\
                  osinit.o 		\
                  utils.o		\
                  log.o			\
                  auth.o		\
                  mitauth.o		\
                  secauth.o		\
                  $(XDMAUTHOBJS)	\
                  $(RPCOBJS)		\
                  xdmcp.o		\
                  OtherObjects		\
                  xstrans.o		\
                  $(SNPRINTF_OBJS)	\
                  $(STRLCAT_OBJS)	\
                  $(REALLOCARRAY_OBJS)	\
                  xprintf.o		\
                  $(TMEMCMP_OBJS)	\
                  $(NULL)

#if UseMemLeak
     MEM_DEFINES = -DMEMBUG
#endif
    ADM_DEFINES = -DADMPATH=\"$(ADMDIR)/X\%smsgs\"
  XDMCP_DEFINES = ServerXdmcpDefines
  ERROR_DEFINES = ServerErrorDefines
#if HasPam && HasPamMisc
    PAM_DEFINES = -DUSE_PAM
#endif
 XTRANS_DEFINES = -DXTRANS_SEND_FDS=0

        DEFINES = $(CONNECTION_FLAGS)			\
                  $(MEM_DEFINES)			\
                  $(XDMAUTHDEFS)			\
                  $(RPCDEFS)				\
                  $(SIGNAL_DEFINES)			\
                  $(OS_DEFINES)				\
                  $(GETPEER_DEFINES)			\
                  $(RANDOM_DEFINES)			\
                  $(BUGMSG)				\
                  $(XTRANS_FAILDEFINES)			\
                  $(XTRANS_DEFINES)			\
                  $(NX_DEFINES)				\
                  $(NULL)

       INCLUDES = -I.					\
                  -I../include				\
                  -I$(XINCLUDESRC)			\
                  -I$(EXTINCSRC)			\
                  -I$(SERVERSRC)/Xext			\
                  -I$(SERVERSRC)/render			\
                  -I$(TOP)/lib/Xau			\
                  $(NX_INCLUDES)			\
                  `pkg-config --cflags-only-I pixman-1`	\
                  $(NULL)

 DEPEND_DEFINES = $(XDMCP_DEFINES)			\
                  $(EXT_DEFINES)			\
                  $(TRANS_INCLUDES)			\
                  $(CONNECTION_FLAGS)			\
                  $(GETPEER_DEFINES)			\
                  DependDefines				\
                  $(NULL)

       LINTLIBS = ../dix/llib-ldix.ln

#ifdef NEED_ALLOCA_FROM_LIBPW
          PWLIB = /lib/libPW.a
#endif /* NEED_ALLOCA_FROM_LIBPW */

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

#ifdef NEED_ALLOCA_FROM_LIBPW
XCOMM
XCOMM And this one is to get the version of alloca that lives in /lib/libPW.a
XCOMM without getting all of the rest of the stuff in there.
XCOMM
alloca.o:  $(PWLIB)
	rm -f alloca.o
	ar x $(PWLIB) alloca.o
#endif /* NEED_ALLOCA_FROM_LIBPW */

SpecialCObjectRule(access,$(ICONFIGFILES),$(XDMCP_DEFINES) $(SOCK_DEFINES) $(IFADDRS_DEFINES) $(ZONEID_DEFINES))
SpecialCObjectRule(auth,$(ICONFIGFILES),$(XDMCP_DEFINES))
SpecialCObjectRule(xdmauth,$(ICONFIGFILES),$(XDMCP_DEFINES))
SpecialCObjectRule(xdmcp,$(ICONFIGFILES),$(SOCK_DEFINES) $(XDMCP_DEFINES))
SpecialCObjectRule(connection,$(ICONFIGFILES),$(SOCK_DEFINES) $(XDMCP_DEFINES))
SpecialCObjectRule(osinit,$(ICONFIGFILES),$(ADM_DEFINES))
SpecialCObjectRule(WaitFor,$(ICONFIGFILES),$(EXT_DEFINES))
SpecialCObjectRule(io,$(ICONFIGFILES),$(EXT_DEFINES))
SpecialCObjectRule(utils,$(ICONFIGFILES),$(XDMCP_DEFINES) $(EXT_DEFINES) $(ERROR_DEFINES) $(PAM_DEFINES))
#if defined(SparcArchitecture) && HasGcc && !HasGcc2
oscolor.o: oscolor.c $(ICONFIGFILES)
	$(RM) $@
	cc -c $(CDEBUGFLAGS) $(ALLDEFINES) $*.c
#endif

#if !HasSnprintf
LinkSourceFile(snprintf.c,$(LIBSRC)/misc)
#endif

DependTarget()