XCOMM $XConsortium: os2.cf /main/1 1996/10/31 14:47:25 kaleb $



XCOMM platform:  $XFree86: xc/config/cf/os2.cf,v 3.18.2.8 1999/07/13 07:09:36 hohndel Exp $

#define OSName           OS/2
#define OSVendor	 IBM
#define OSMajorVersion    4
#define OSMinorVersion    0

/*
 * C library features
 */
#ifdef __EMX__

/* set this to what you like (almost :-) 
 * OS/2 does a nonstandard bootstrap of imake 
 */
#define BootstrapCFlags   -DBSD43

#define StandardDefines   -DX_LOCALE -DX_WCHAR
#define XawI18nDefines    -DUSE_XWCHAR_STRING -DUSE_XMBTOWC

/* This will redirect everything to /XFree86
 * Care will be taken that programs that need a file from this tree
 * will add the environment variable X11ROOT to the search path
 * so you can redirect the stuff to a different drive
 */
#ifdef ProjectRoot
#undef ProjectRoot
#endif
/* This will be mangled with a drive letter in most OS/2 rules ... */
#define ProjectRoot	/XFree86

/* ... but not when a user tries to compile something from a different drive 
 * Please report any directories missed to Holger.Veit@gmd.de 
*/
#ifdef UseInstalled
#define IncRoot $(X11ROOT)/XFree86/include
#define LdPreLib -L$(X11ROOT)/XFree86/lib
#endif

/* more directories */
#define AdmDir		        $(LIBDIR)/adm
#define ConfigDir		$(X11ROOT)$(LIBDIR)/config
        DESTDIR = $(X11ROOT)

/* for the man pages */
#define BookFormatManPages	YES
#define ManDirectoryRoot /XFree86/man/man
#define ManSuffix	1
#define LibManSuffix	3
#define FileManSuffix	4
#define XmanSearchPath	/XFree86/man/man
#define ManSourcePath	$(MANPATH)

/* you must have installed groff! */
#define TblCmd		tbl
#define ColCmd		cat
#define NeqnCmd		eqn 
#define NroffCmd	groff -Tascii
#define	EqnCmd 		eqn -Tascii
#define TroffCmd        groff -Tps
         NEQN = NeqnCmd
        NROFF = NroffCmd

/* A set of standard defines: */
#define OSDefines		-D__EMX__ -D__i386__ -Demxos2 -D_POSIX_SOURCE \
				-D_BSD_SOURCE -D_GNU_SOURCE

#ifndef BuildXKB
#define BuildXKB		YES
#endif
#define BuildImplibs		YES
#ifndef BuildLBX
#define BuildLBX		YES
#endif

/* some more properties of the OS/2 implementation */
#define HasNdbm         	YES
#define HasPutenv       	YES
#define HasSockets		YES
#define HasSnprintf		YES
#define HasBsearch		NO
#define HasLargeTmp		NO
#define HasPoll			NO
#define HasBSD44Sockets 	NO
#define HasSecureRPC		NO
#define	HasSymLinks		NO
#define HasVFork		NO
#define HasVarDirectory		NO
#define HasStrcasecmp		NO
#define Malloc0ReturnsNull	YES
#define SetTtyGroup     	NO
#ifndef HasLibCrypt
# define HasLibCrypt		NO
#endif
#ifndef HasShm
# define HasShm          	YES
#endif
#define ConnectionFlags		-DTCPCONN -DOS2PIPECONN
#define StdIncDir $(C_INCLUDE_PATH)
#define HasStickyDirBit		NO

/* XF86Setup stuff - does not work yet! */
#define HasTcl			NO
/*define TclLibDir		$(X11ROOT)$(SHLIBDIR)*/
/*define TclIncDir		$(X11ROOT)$(INCROOT)/tcl*/
/*define TclLibName		xtcl*/

#define HasTk			NO
/*define TkLibDir		$(X11ROOT)$(SHLIBDIR)*/
/*define TkIncDir		$(X11ROOT)$(INCROOT)/tk*/
/*define TkLibName		xtk*/

/*
 * Compiler Features
 */
#define HasGcc			YES
#define HasGcc2			YES
#define HasCplusplus		YES
#define HasGcc2ForCplusplus	YES
#define GccUsesGas		YES
#define UseGas			YES
#define GnuCpp			YES
#define DoRanlibCmd		YES
#define NeedConstPrototypes	YES
#define NeedFunctionPrototypes	YES
#define NeedNestedPrototypes	YES
#define NeedVarargsPrototypes	YES
#define NeedWidePrototypes	NO

#define CppCmd	cpp
#define StandardCppDefines	-traditional
#define PreProcessCmd	CppCmd

#define CcCmd	gcc
#define DefaultCCOptions	-D__ST_MT_ERRNO__ -Zmtd -Zsysv-signals
#define LibraryCCOptions	-D__ST_MT_ERRNO__ -Zmtd -Zsysv-signals
#define ServerCCOptions	-D__ST_MT_ERRNO__ -Zmtd -Zsysv-signals

#define CplusplusCmd g++
#define CplusplusOptions	-Zmtd -Zsysv-signals

#define MakeCmd x11make 
#define AsCmd	gcc -S
#define GccGasOption	-DGCCUSESGAS
#define AsmDefines	-DUSE_GAS

#define InstallCmd	install

#define LdCmd	ld
#define ExtraLoadFlags	-Zbin-files
#define ExtraLibraries	-lsocket -lbsd

/* quite a number of programs you need, most of them the same as
 * with Unix, but listed here for completeness
 */
#define ArCmd	ar cq
#define RanlibCmd	ar s
#define BourneShell	/**/
#define LexCmd	flex -l
#define LexLib	-lfl
#define YaccCmd	yacc
#define LintCmd	/**/
#define MvCmd	mv
#define CompressCmd	compress
#define GzipCmd	gzip
#define LnCmd cp
#define CpCmd cp
#define RmCmd	ImakeHelper 4 

#ifndef UseInstalled
#define ImakeCmd \imake
#define MkdirHierCmd \mkdirhier
#define DependCmd \makedepend
#else
/* imake and mkdirhier come from Imake.tmpl, but DependCmd must be overriden */
#define DependCmd makedepend
#endif

/* "shell scripts" in OS/2 have this extension */
#define SHsuf cmd

#define InstPgmFlags /**/
#define InstBinFlags /**/
#define InstUidFlags /**/
#define InstLibFlags /**/
#define InstIncFlags /**/
#define InstManFlags /**/
#define InstDatFlags /**/
#define InstallFlags /**/

#define OptimizedCDebugFlags 	DefaultGcc2i386Opt
#define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
#define ServerExtraDefines GccGasOption XFree86ServerDefines

#if HasShm
# define ServerExtraSysLibs	-lshm
#endif

/*
 * Make & install Features
 */

#define AvoidNullMakeCommand 	YES
_NULLCMD_ = @ rem
#define NullMakeCommand	@ rem
#define StripInstalledPrograms	NO
#define CompressAllFonts	YES
#define CompressManPages	YES
#define GzipFontCompression	YES
#define DefaultUserPath		.;/os2;/emx/bin;/tcpip/bin;$(BINDIR)
#define DefaultSystemPath	/os2;/emx/bin;$(BINDIR)

#ifndef ExtraFilesToClean
# define ExtraFilesToClean 	*.~* *.exe *.dll *.obj *.lib *.map
#endif

#if CompressManPages
#define CompressManCmd	gzip -n
   COMPRESSMANCMD = CompressManCmd
#endif

#define ProgramTargetName(target)target.exe

/* we don't name libraries lib*.a */
#define LibraryTargetName(libname) libname.a
#define LibraryTargetNameSuffix(libname,suffix)Concat(libname,suffix.a)

/* ... and we even don't do it in rules that should have used the above
 * LibraryTargetName macro
 */
#ifndef UnSharedLibReferences
#define UnsharedLibReferences(varname,libname,libsource)		@@\
Concat3(DEP,varname,LIB) = _UseCat($(USRLIBDIR)/,$(BUILDLIBDIR)/,libname.a)	@@\
Concat(varname,LIB) = LoaderLibPrefix Concat(-l,libname)		@@\
LintLibReferences(varname,libname,libsource)
#endif

#ifndef SharedLibReferences
#define SharedLibReferences(varname,libname,libsource,revname,rev)	@@\
Concat3(DEP,varname,LIB) = SharedLibDependencies(libname,libsource,revname) @@\
Concat(varname,LIB) = LoaderLibPrefix Concat(-l,libname)		@@\
LintLibReferences(varname,libname,libsource)
#endif

#include <os2.rules>
#include <os2Lib.rules>

# include <xfree86.cf>

#else
#error You must edit os2.cf for your (non-EMX) OS/2 dev system
#endif
