I've been reworking the FreeBSD configuration file for XFree86 3.9.17.  At
the moment, I've only done Intel.  (Don't despair Alpha folks -- I'll get
myself a Compaq testdrive account :-))

This file is a drop-in replacement for 'xc/config/cf/FreeBSD.cf'  You don't
need any 'xc/config/cf/host.def' file.  Just cp and make World [1]  It
works on both 4.0-CURRENT and 3.4-STABLE. [2]  If you could give it a go,
and correct me on any incorrect definitions/switches/whatever I'd be very
grateful.

Sadly, there's a couple of gotchas.  First, it won't actually compile
_everything_ using the base compiler (gcc 2.95.2).  This is due to a bug in
this version of gcc.  To fix this, remove the -O2 option in the Makefile of
the affected module.

Secondly, XF86Setup is broken in this version of XFree86.  No XF86Setup
will be built by this config file.  More news on that as it happens.

best;


gjvc

-- 
"Readers who only want to see algorithms that are already packaged in a plug-in
way, using a trendy language, should buy other people's books." -- D. E. Knuth

[1] The XFree86 world, that is, obviously.
[2] If anyone has a 2.2.8 machine, and can do a test build, please do! :-)
XCOMM platform:  $TOG: FreeBSD.cf /main/21 1997/10/05 20:42:34 kaleb $
XCOMM platform:  $XFree86: xc/config/cf/FreeBSD.cf,v 3.85 1999/05/22 08:39:55 dawes 
Exp $
XCOMM gjvc:  $Id: FreeBSD-gjvc.cf,v 1.8 2000/01/18 01:37:35 gjvc Exp $

/*
 ---- [ WHAT THIS IS ] --------------------------------------------------

 This file is intended to replace the

   xc/config/cf/FreeBSD.cf

 file in the XFree86 3.9.17 distribution.  You don't need a host.def file
 or need to make any changes to the stock XFree86 3.9.17 tarballs [but see
 below]  This will let you build XFree86 on 3.4-STABLE and 4.0-CURRENT.  I
 don't know if it works on earlier FreeBSD 3.x versions.

 To use this file, copy it right over the current 'config/cf/FreeBSD.cf'
 file and type 'make World' in the 'xc' directory.

   cp xc/config/cf/FreeBSD.cf xc/config/cf/FreeBSD.cf.original
   cp FreeBSD-gjvc.cf xc/config/cf/FreeBSD.cf
   cd xc && make World

 I've also futzed around with #defines, C library features and goodness
 knows what else, so if you have any opinions on what follows I'd be
 grateful.


 ---- [ KNOWN PROBLEMS ] -----------------------------------------------

 3.4-STABLE : No reported problems yet -- be first! :-)

 4.0-CURRENT : Using the system compiler (2.95.2), compilation of the
 files

    xc/programs/Xserver/Xext/xf86vmode.c
    xc/programs/Xserver/Xext/extmod/xf86vmode.c

 will fail with a 'Unable to generate reloads' error.  This is a bug in
 gcc, and has been fixed in the latest gcc snapshot.  Either disable all
 optimisation for the compilation of just that file, or use a later
 version of the compiler. (Hint: do a make World, and then a make all --
 the compilation will stop here and you can remove the '-O2' flag in the
 Makefile.)

 XFree86 3.9.17 : the directory xc/doc/ is strangely missing an Imakefile,
 and consquently the build fails on it.  I got my documents by using the
 documents directory of XFree86 3.9.16.  XF86Setup is currently broken in
 3.9.17 so no attemp is made to build it.

 Anyway, please give it a go, and let me know how you get on.  All
 feedback is appreciated. :-)


 ---- [ GIVING FEEDBACK ] ---------------------------------------------

 Please include the output of 'uname -a',  and 'gcc --version' when
 reporting problems.

 best;


 George Cox
 <[EMAIL PROTECTED]>
*/


/* OPERATING SYSTEM IDENTIFICATION */

#ifndef OSName
#define OSName                  DefaultOSName
#endif
#ifndef OSMajorVersion
#define OSMajorVersion          DefaultOSMajorVersion
#endif
#ifndef OSMinorVersion
#define OSMinorVersion          DefaultOSMinorVersion
#endif
#ifndef OSTeenyVersion
#define OSTeenyVersion          DefaultOSTeenyVersion
#endif
#ifndef OSVendor
#define OSVendor                The FreeBSD Project
#endif


/* BINARY FORMAT */

#define UseElfFormat            YES
#define OSBinaryFormat          ELF
#define BuildAoutLibraries      YES


/* COMPILER */

#define GccUsesGas              YES
#define GnuCpp                  YES
#define HasBsdMake              YES
#define HasCplusplus            YES
#define HasGcc                  YES
#define HasGcc2                 YES
#define HasGcc2ForCplusplus     YES
#define HasGnuMake              NO
#define UseGas                  YES


/* COMPILER COMMANDS */

#define CcCmd                   gcc
#define CppCmd                  /usr/bin/cpp
#define DefaultCCOptions        -O2 -pipe -ansi -pedantic -Dasm=__asm GccWarningOptions
#define InstallCmd              /usr/bin/install
#define MkdirHierCmd            mkdir -p
#define PreProcessCmd           /usr/bin/cpp
#define RawCppCmd               /usr/bin/cpp
#define StandardCppDefines      /**/
#define StandardCppOptions      /**/


/* DEFINES -- ASSEMBLER */

#define AsmElfDefines           -D__ELF__
#define AsmDefines              -DUSE_GAS AsmElfDefines
#define GccGasOption            -DGCCUSESGAS

#define DefaultGcc2i386Opt      /**/
#define OptimizedCDebugFlags    DefaultGcc2i386Opt


/* C LANGUAGE CONVENTIONS */

#define NeedConstPrototypes     YES
#define NeedFunctionPrototypes  YES
#define NeedNestedPrototypes    YES
#define NeedVarargsPrototypes   YES
#define NeedWidePrototypes      NO


/* C LIBRARY FEATURES */

#define HasBSD44Sockets         YES
#define HasBsearch              YES
#define HasDlopen               YES
#define HasMTRRSupport          YES
#define HasMkstemp              YES
#define HasNdbm                 YES
#define HasPoll                 NO  /* _poll is not in the a.out libc -- how silly! */
#define HasPutenv               YES
#define HasSetUserContext       YES
#define HasShm                  YES
#define HasSnprintf             YES
#define HasSockets              YES
#define HasStrcasecmp           YES
#define HasStreams              NO
#define HasUsableFileMmap       YES
#define HasVFork                YES
#define HasVoidSignalReturn     YES
#define Malloc0ReturnsNull      NO
#define SetTtyGroup             YES
#define HasWChar32              YES


/* SYSTEM LIBRARIES */

#define ExtraLibraries          -lxpg4
#define GnuMallocLibrary        -lgnumalloc
#define HasSharedLibraries      YES
#define HasLibCrypt             YES
#define HasZlib                 YES
#define HasNCurses              YES
#define DlLibrary               -rdynamic  /* no -ldl */
#define NCursesLibName          -lcurses
#define UseGnuMalloc            NO

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


/* MISCELLANEOUS DEFINES */

#define ExtraFilesToClean       *.core
#define UseRgbTxt               YES
#define DoLoadableServer        YES
#define AvoidNullMakeCommand    YES
#define CompressAllFonts        YES
#define ForceNormalLib          YES
#define StripInstalledPrograms  YES


/* DEFINES -- X */

#define StandardDefines         -DCSRG_BASED -D_BSD_SOURCE -D_XOPEN_SOURCE
#define ServerOSDefines         XFree86ServerOSDefines -DDDXTIME
#define ServerExtraDefines      GccGasOption XFree86ServerDefines
#define XawI18nDefines          -DUSE_XWCHAR_STRING -DUSE_XMBTOWC


/* PATHS */

#define DefaultUserPath         /bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR)
#define DefaultSystemPath       /bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR)
#define SystemManDirectory      /usr/share/man
#define PreIncDir               DefaultGccIncludeDir


/* DOCUMENT TYPESETTING TOOLS */

#define EqnCmd                  eqn -Tps
#define NeqnCmd                 neqn -Tlatin1
#define NroffCmd                groff -Tlatin1
#define TroffCmd                groff -Tps


/* XFREE86 BUILD SYSTEM INCLUDE FILES */

#include <xfree86.cf>
#include <bsdLib.rules>


/* Good luck, Commander    */
/* ...TRANSMISSION ENDS... */

Reply via email to