Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jan 2000 02:06:34 +0000
From:      George Cox <gjvc@extremis.demon.co.uk>
To:        freebsd-current@freebsd.org
Subject:   Compiling XFree86 3.9.17
Message-ID:  <20000118020634.A8092@extremis.demon.co.uk>

next in thread | raw e-mail | index | archive | help

--BOKacYhQ+x31HxR3
Content-Type: text/plain; charset=us-ascii

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! :-)

--BOKacYhQ+x31HxR3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="FreeBSD-gjvc.cf"

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
 <gjvc@extremis.demon.co.uk>
*/


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

--BOKacYhQ+x31HxR3--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000118020634.A8092>