XCOMM platform:  $XFree86: xc/config/cf/gnu.cf,v 1.15 2006/05/16 16:01:50 tsi Exp $

/*
 * Copyright (c) 1994-2004 by The XFree86 Project, Inc.
 * All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject
 * to the following conditions:
 *
 *   1.  Redistributions of source code must retain the above copyright
 *       notice, this list of conditions, and the following disclaimer.
 *
 *   2.  Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer
 *       in the documentation and/or other materials provided with the
 *       distribution, and in the same place and form as other copyright,
 *       license and disclaimer information.
 *
 *   3.  The end-user documentation included with the redistribution,
 *       if any, must include the following acknowledgment: "This product
 *       includes software developed by The XFree86 Project, Inc
 *       (http://www.xfree86.org/) and its contributors", in the same
 *       place and form as other third-party acknowledgments.  Alternately,
 *       this acknowledgment may appear in the software itself, in the
 *       same form and location as other such third-party acknowledgments.
 *
 *   4.  Except as contained in this notice, the name of The XFree86
 *       Project, Inc shall not be used in advertising or otherwise to
 *       promote the sale, use or other dealings in this Software without
 *       prior written authorization from The XFree86 Project, Inc.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


#ifndef OSName
#define OSName			DefaultOSName
#endif

#ifndef OSVendor
#define OSVendor		/**/
#endif
#ifndef OSMajorVersion
#define OSMajorVersion		DefaultOSMajorVersion
#endif
#ifndef OSMinorVersion
#define OSMinorVersion		DefaultOSMinorVersion
#endif
#ifndef OSTeenyVersion
#define OSTeenyVersion		DefaultOSTeenyVersion
#endif
XCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)

#define GNUSourceDefines      -D_POSIX_C_SOURCE=199309L \
                              -D_POSIX_SOURCE -D_XOPEN_SOURCE \
                              -D_BSD_SOURCE -D_SVID_SOURCE

XCOMM XXXMB: What about _GNU_SOURCE, see Linux/UseInstalled?

#define XawI18nDefines        -DHAS_WCHAR_H -DHAS_WCTYPE_H -DNO_WIDEC_H

#define HasPosixThreads         YES
#define ThreadedX               YES
#define HasThreadSafeAPI        YES
#define ThreadsLibraries        -lpthread
#define SystemMTDefines         -D_REENTRANT

#ifndef HasLibCrypt
#define HasLibCrypt             YES
#endif

#ifndef BuildXF86RushExt
# define BuildXF86RushExt	YES
#endif

#define BuildLibPathVar		LD_LIBRARY_PATH
#define GccUsesGas		YES
#define UseGas			YES
#define GnuCpp			YES
#define HasDlopen		YES
#ifndef HasShadowPasswd
#  define HasShadowPasswd	YES
#endif
#define HasPutenv		YES

XCOMM Not implemented and will always fail.
#define HasShm			YES

#define HasBSD44Sockets		YES
#define HasSockets		YES
#define HasSnprintf		YES
#define HasMkstemp		YES
#define HasUsableFileMmap	YES
#ifndef HasNCurses
#define HasNCurses		YES
#endif

#define AvoidNullMakeCommand	YES
#ifndef DebuggableLibraries
#define DebuggableLibraries	NO
#endif
#define CompressAllFonts	YES
#define Malloc0ReturnsNull	YES
#define NeedConstPrototypes	YES
#define NeedFunctionPrototypes	YES
#define NeedNestedPrototypes	YES
#define NeedVarargsPrototypes	YES
#ifndef NeedWidePrototypes
#define NeedWidePrototypes	NO
#endif
#define SetTtyGroup		YES

#ifndef UseStaticTermcapLib
#define UseStaticTermcapLib	NO
#endif

#define MkdirHierCmd		mkdir -p
#ifndef CcCmd
#define CcCmd			gcc
#endif
#ifndef AsCmd
#define AsCmd			as
#endif
#ifndef LdCmd
#define LdCmd			ld
#endif

#define AsmDefines		-D__ELF__
#define CplusplusCmd		c++
#ifndef TermcapLibrary
#if UseStaticTermcapLib
#define TermcapLibrary		StaticLibrary(/usr/lib,ncurses)
#else
#define TermcapLibrary		-lncurses
#endif
#endif
#ifndef DoLoadableServer
#define DoLoadableServer	YES
#endif
#ifndef
#define CppCmd			/lib/cpp
#endif
#define YaccCmd			bison -y
#define LexCmd			flex -l
#define HasFlex			YES
#define LexLib			-lfl
#define PreProcessCmd		CcCmd -E
#define PostIncDir		DefaultGccIncludeDir
#define LdCombineFlags		-r
#ifndef LdPostLib
#define LdPostLib		/* Never needed */
#endif
#define HasWChar32		YES
#define StandardCppOptions	-traditional
#define StandardCppDefines	StandardDefines

#define HasVarRun		YES
#define VarDbDirectory		$(VARDIR)/lib

XCOMM i386Architecture
#define OptimizedCDebugFlags	DefaultGcc2i386Opt
#define GNUMachineDefines	-D__i386__
#define ServerOSDefines		XFree86ServerOSDefines
#define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
#define HasPlugin		YES
#define VendorHasX11R6_3libXext	YES

#ifndef StandardDefines
#define StandardDefines		GNUMachineDefines GNUSourceDefines
#endif

#define DlLibrary		-rdynamic -ldl

#define ServerExtraSysLibs	/**/

#define ConnectionFlags		-DUNIXCONN -DTCPCONN

/* Some of these man page defaults are overriden in the above OS sections */
#ifndef ManSuffix
# define ManSuffix	1x
#endif
#ifndef ManDir
# define ManDir		$(MANSOURCEPATH)1
#endif
#ifndef LibManSuffix
# define LibManSuffix	3x
#endif
#ifndef LibmanDir
# define LibmanDir	$(MANSOURCEPATH)3
#endif
#ifndef FileManSuffix
# define FileManSuffix	5x
#endif
#ifndef FileManDir
# define FileManDir	$(MANSOURCEPATH)5
#endif

#ifndef StaticLibrary
#define StaticLibrary(libpath,libname) -Wl,-Bstatic Concat(-L,libpath) Concat(-l,libname) -Wl,-Bdynamic
#endif

#define HasGnuMake	YES

#define MakeNamedTargetSubdir(dir,flags,subname)\
        $(MAKE) -C dir $(PASSMFLAGS) $(PARALLELMFLAGS) flags subname

#define ArchitectureDefines	-DGNU_ARCHITECTURE

#define XserverNeedsSetUID	YES

#include <gnuLib.rules>

XCOMM XXX Might need this if they are not careful with slashes.
XCOMM #define DirFailPrefix -

#include <xfree86.cf>

