home *** CD-ROM | disk | FTP | other *** search
- XCOMM platform: $TOG: FreeBSD.cf /main/18 1997/06/12 07:40:35 kaleb $
- XCOMM platform: $XFree86: xc/config/cf/FreeBSD.cf,v 3.58.2.20 1999/01/09 14:18:56 dawes Exp $
-
- #ifndef UseElfFormat
- #define UseElfFormat DefaultToElfFormat
- #endif
-
- #if UseElfFormat
- #define OSBinaryFormat [ELF]
- #else
- #define OSBinaryFormat /**/
- #endif
-
- #ifndef OSName
- #define OSName DefaultOSName OSBinaryFormat
- #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 HasGcc YES
- #define HasGcc2 YES
- #define HasCplusplus YES
- #define HasGcc2ForCplusplus YES
- #define GccUsesGas YES
- #define UseGas YES
- #define GnuCpp YES
- #define HasNdbm YES
- #define HasPutenv YES
- #define HasSnprintf YES
- #define HasBSD44Sockets YES
- #ifndef HasLibCrypt
- # define HasLibCrypt YES
- #endif
- #ifndef HasShm
- # define HasShm YES
- #endif
- #define HasWChar32 YES
-
- #define AvoidNullMakeCommand YES
- #define StripInstalledPrograms YES
- #define CompressAllFonts YES
- #define Malloc0ReturnsNull YES
- #define NeedConstPrototypes YES
- #define NeedFunctionPrototypes YES
- #define NeedNestedPrototypes YES
- #define NeedVarargsPrototypes YES
- #define NeedWidePrototypes NO
-
- #define MkdirHierCmd mkdir -p
-
- #define CcCmd cc
- #define CppCmd /usr/libexec/cpp
- #define PreProcessCmd CppCmd
- #define StandardCppDefines -traditional
- #if defined(UseInstalled) && (!defined(XF86LinkKit) || !XF86LinkKit)
- #define DefaultCCOptions /**/
- #else
- #define DefaultCCOptions -ansi -pedantic -Dasm=__asm
- #endif
- #ifndef ExtraLibraries
- /* support for multi-byte locales is in libxpg4 rather than libc */
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)
- #define ExtraLibraries -lxpg4
- #else
- #define ExtraLibraries /**/
- #endif
- #endif
- #ifndef UseGnuMalloc
- /* 2.2 doesn't really have GnuMalloc */
- #if OSMajorVersion < 2 || (OSMajorVersion == 2 && OSMinorVersion < 2)
- #define UseGnuMalloc YES
- #else
- #define UseGnuMalloc NO
- #endif
- #endif
-
- /* 2.2.2 and later has setusercontext() */
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 2) || \
- (OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 2)
- #define HasSetUserContext YES
- #endif
-
- /*
- * This doesn't work the way it does on every other system. On FreeBSD it's
- * only a "hint, not a demand", whatever that means. Note that this is not
- * what it says in the ld and ld.so man pages, which are rather vague on the
- * matter.
- *
- * But we do know that if a) you do what the X Project team does and set your
- * ProjectRoot to something like "/X11", and b) you have other X libraries,
- * e.g. in /usr/X11R6/lib, and you have added /usr/X11R6/lib to your
- * ld.so.cache with ldconfig, then any programs linked with this "hint" will
- * find that ld.so ignores the "hint" at runtime and loads the libraries in
- * the ld.so.cache, i.e.the wrong ones, instead! Empirically we find that
- * the run-path is only used as a last resort to find the libraries, after
- * the LD_LIBRARY_PATH and ld.so.cache.
- *
- * N. B. to FreeBSD users who are not familiar with the semantics of the run-
- * path on other systems. The run-path is akin to a per-program ld.so.cache.
- * If a program is linked with a run-path, that run-path should take
- * precedence over _everything_ else! In my opinion ldconfig and the
- * ld.so.cache should be deprecated immediately now that FreeBSD has run-
- * paths. Any program that needs libraries that are outside the "well known"
- * locations should be linked with a run-path.
- *
- * All of which begs the question: If this option doesn't work in any useful
- * way, why did they (FreeBSD) bother to add it? It would be nice if FreeBSD
- * would fix ld.so so that run-paths are truly useful.
- *
- * Using run-paths is added with the intent that vendors who ship X for
- * FreeBSD should use it too. Once everyone uses it then there will be no
- * reason for FreeBSD to assume that it knows where X libraries are installed
- * and they can remove it from the list of directories they add to ld.so.cache
- * in their /etc/rc file.
- */
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)
- #ifndef ExtraLoadFlags
- #if UseElfFormat
- #define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
- #else
- #define ExtraLoadFlags -Wl,-R,$(USRLIBDIRPATH)
- #endif
- #endif
- #endif
-
- #ifndef SharedLibraryLoadFlags
- #if UseElfFormat
- #define SharedLibraryLoadFlags -shared -rpath $(USRLIBDIRPATH)
- #else
- #define SharedLibraryLoadFlags -Bshareable -R $(USRLIBDIRPATH)
- #endif
- #endif
-
- #ifndef GnuMallocLibrary
- #define GnuMallocLibrary -lgnumalloc
- #endif
-
- #if (OSMajorVersion > 2) || (OSMajorVersion == 2 && OSMinorVersion >= 2) \
- || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 6)
- /* 2.1.6 and 2.2 have libz */
- #ifndef HasZlib
- #define HasZlib YES
- #endif
- #endif
-
- /*
- * For FreeBSD 2.2.5 and later don't make any assumptions about the version
- * of Tcl in the base OS.
- *
- * Note the static libs in some versions of the FreeBSD packages are
- * broken. The symptom of this is unresolved symbols when linking
- * XF86Setup. If you run into this problem, either build your own
- * static libs from the standard Tcl and Tk source, or change the
- * definitions of XF86SetupUsesStatic{Tcl,Tk}. The latter is not
- * recommended for binaries that are going to be redistributed.
- */
-
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 2) || \
- (OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion > 5)
- /*
- * For 2.2.6, 3.0 and later the defaults assume that the tcl-8.0 and tk-8.0
- * packages have been installed. XF86Setup is much faster with 8.x than
- * with earlier versions.
- *
- */
-
- #ifndef TkLibName
- #define TkLibName tk80
- #endif
- #ifndef TkIncDir
- #define TkIncDir /usr/local/include/tk8.0
- #endif
- #ifndef TclLibName
- #define TclLibName tcl80
- #endif
- #ifndef TclIncDir
- #define TclIncDir /usr/local/include/tcl8.0
- #endif
-
- #ifndef JpTkLibName
- #define JpTkLibName tk80jp
- #endif
- #ifndef JpTkIncDir
- #define JpTkIncDir /usr/local/include/tk8.0jp
- #endif
- #ifndef JpTclLibName
- #define JpTclLibName tcl80jp
- #endif
- #ifndef JpTclIncDir
- #define JpTclIncDir /usr/local/include/tcl8.0jp
- #endif
-
- #elif OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion > 2
- /*
- * For 2.2.5, the defaults assume that the tcl-7.6 and tk-4.2
- * packages have been installed.
- */
-
- #ifndef TkLibName
- #define TkLibName tk42
- #endif
- #ifndef TkIncDir
- #define TkIncDir /usr/local/include/tk4.2
- #endif
- #ifndef TclLibName
- #define TclLibName tcl76
- #endif
- #ifndef TclIncDir
- #define TclIncDir /usr/local/include/tcl7.6
- #endif
-
- #ifndef JpTkLibName
- #define JpTkLibName tk42jp
- #endif
- #ifndef JpTkIncDir
- #define JpTkIncDir /usr/local/include/tk4.2jp
- #endif
- #ifndef JpTclLibName
- #define JpTclLibName tcl76jp
- #endif
- #ifndef JpTclIncDir
- #define JpTclIncDir /usr/local/include/tcl7.6jp
- #endif
-
- #elif OSMajorVersion == 2 && OSMinorVersion == 2
- /*
- * FreeBSD 2.2 prior to 2.2.5
- *
- * tcl is part of the base OS.
- *
- * Note: the tk-4.1 package for FreeBSD doesn't have the static lib, so
- * you'll have to build it yourself, or change the definition of
- * XF86SetupUsesStaticTk.
- */
- #ifndef TkLibName
- #define TkLibName tk41
- #endif
- #ifndef TclLibName
- #define TclLibName tcl
- #endif
- #ifndef TclLibDir
- #define TclLibDir /usr/lib
- #endif
- #ifndef TclIncDir
- #define TclIncDir /usr/include
- #endif
- /* FreeBSD 2.2 has libtcl in the base system */
- #ifndef XF86SetupUsesStaticTcl
- #define XF86SetupUsesStaticTcl NO
- #endif
-
- #else /* ! 2.2 or later */
-
- #if OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 6
-
- /*
- * 2.1.x with x >=6 has tk 4.1 and tcl 7.5 in the packages collection.
- * Neither packages include the static libs, so you either need to build
- * them yourself or set XF86SetupUsesStaticTcl and XF86SetupUsesStaticTk
- * to NO. This isn't the default because we don't want the XFree86
- * binaries to have these packages as a dependency.
- */
-
- #ifndef TkLibName
- #define TkLibName tk41
- #endif
- #ifndef TclLibName
- #define TclLibName tcl75
- #endif
-
- #else /* ! 2.1.6 or later */
-
- #ifndef TkLibName
- #define TkLibName tk40
- #endif
- #ifndef TclLibName
- #define TclLibName tcl74
- #endif
-
- #endif
- #endif
-
- #undef InstallCmd
- #define InstallCmd /usr/bin/install
-
- #if UseElfFormat
- # define AsmElfDefines -D__ELF__
- #else
- # define AsmElfDefines /**/
- #endif
-
- #if GccUsesGas
- # define GccGasOption -DGCCUSESGAS
- # define AsmDefines -DUSE_GAS AsmElfDefines
- #else
- # define GccGasOption /**/
- # define AsmDefines AsmElfDefines
- #endif
-
- #define ServerExtraDefines GccGasOption XFree86ServerDefines
-
- #define StandardDefines -DCSRG_BASED
-
- #if OSMajorVersion > 1
- #define ServerOSDefines XFree86ServerOSDefines -DDDXTIME
- #define XawI18nDefines -DUSE_XWCHAR_STRING
- #define HasMakefileSafeInclude YES
- #define IncludeMakefile(file) @@# dependencies are in .depend
- #define DependFileName .depend
- #ifndef BuildDynamicLoading
- #define BuildDynamicLoading YES
- #endif
- #ifndef ForceNormalLib
- #define ForceNormalLib YES
- #endif
- #define HasMkstemp YES
- #else
- #define ServerOSDefines XFree86ServerOSDefines -DDDXTIME -DXNO_SYSCONF
- #define XawI18nDefines -DUSE_XWCHAR_STRING -DUSE_XMBTOWC
- #endif
-
- /* The GCC strength-reduce bug is fixed for FreeBSD 2.1.5 and later */
- #ifndef DefaultGcc2i386Opt
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 5)
- #define DefaultGcc2i386Opt -O2
- #endif
- #endif
-
- #ifdef i386Architecture
- # define OptimizedCDebugFlags DefaultGcc2i386Opt
- #else
- # define OptimizedCDebugFlags -O2
- #endif
-
- #ifndef PreIncDir
- # define PreIncDir /usr/include
- #endif
-
- #define TroffCmd groff -Tps
- #define NroffCmd groff -Tascii
- #define SetTtyGroup YES
-
- #ifndef ExtraFilesToClean
- # define ExtraFilesToClean *.core
- #endif
-
- #define DefaultUserPath /bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR):/usr/gnu/bin:/usr/local/bin
- #define DefaultSystemPath /bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR)
- #ifndef SystemManDirectory
- #define SystemManDirectory /usr/share/man
- #endif
-
- #define InstKmemFlags -g kmem -m 2755
-
- /*
- * Compress manual pages
- */
- #ifndef CompressManPages
- # define CompressManPages YES
- #endif
-
- #if CompressManPages
-
- #ifndef CompressManCmd
- # define CompressManCmd gzip -n
- #endif
- COMPRESSMANCMD = CompressManCmd
-
- #ifndef InstallManPageLong
- #define InstallManPageLong(file,destdir,dest) @@\
- install.man:: file.man @@\
- MakeDir($(DESTDIR)destdir) @@\
- $(RM) $(DESTDIR)destdir/dest.$(MANSUFFIX)* @@\
- $(INSTALL) -c $(INSTMANFLAGS) file.man \ @@\
- $(DESTDIR)destdir/dest.$(MANSUFFIX) @@\
- -$(COMPRESSMANCMD) $(DESTDIR)destdir/dest.$(MANSUFFIX)
- #endif
-
- #ifndef InstallGenManPageLong
- #define InstallGenManPageLong(file,destdir,dest,suffix) @@\
- install.man:: file.man @@\
- MakeDir($(DESTDIR)destdir) @@\
- $(RM) $(DESTDIR)destdir/dest.suffix* @@\
- $(INSTALL) -c $(INSTMANFLAGS) file.man \ @@\
- $(DESTDIR)destdir/dest.suffix @@\
- -$(COMPRESSMANCMD) $(DESTDIR)destdir/dest.suffix
- #endif
-
- #ifndef InstallMultipleMan
- #define InstallMultipleMan(list,dest) @@\
- install.man:: list @@\
- MakeDir($(DESTDIR)dest) @@\
- @case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\
- for i in list; do \ @@\
- (set -x; \ @@\
- MNAME=`echo $$i | cut -f1 -d.`; \ @@\
- $(RM) $(DESTDIR)dest/$${MNAME}*; \ @@\
- $(INSTALL) -c $(INSTMANFLAGS) $$i \ @@\
- $(DESTDIR)dest/$${MNAME}.$(MANSUFFIX); \ @@\
- $(COMPRESSMANCMD) $(DESTDIR)dest/$${MNAME}.$(MANSUFFIX)); \ @@\
- done
- #endif
-
- /*
- * InstallManPageAliases - install soft links for aliases.
- */
- #ifndef InstallManPageAliases
- #define InstallManPageAliases(file,destdir,aliases) @@\
- install.man:: @@\
- @(SUFFIX=`echo $(DESTDIR)destdir/file.* | sed -e 's,.*/[^\.]*.,,'`; \ @@\
- for i in aliases; do (set -x; \ @@\
- $(RM) $(DESTDIR)destdir/$$i.*; \ @@\
- (cd $(DESTDIR)destdir; $(LN) file.$${SUFFIX} \ @@\
- $$i.$${SUFFIX})); \ @@\
- done)
- #endif
-
- /*
- * InstallGenManPageAliases - install soft links for aliases.
- */
- #ifndef InstallGenManPageAliases
- #define InstallGenManPageAliases(file,destdir,suffix,aliases) @@\
- InstallManPageAliases(file,destdir,aliases)
- #endif
- #endif
-
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 1)
- #define HasBsdMake YES
- #endif
-
- #ifndef StaticLibrary
- #define StaticLibrary(libpath,libname) -Wl,-Bstatic Concat(-L,libpath) Concat(-l,libname) -Wl,-Bdynamic
- #endif
-
- #if UseElfFormat
- #define DlLibrary -rdynamic
- #else
- #define DlLibrary /**/
- #endif
-
- #if BuildDynamicLoading
- #define ServerExtraSysLibs DlLibrary
- #else
- #define ServerExtraSysLibs /**/
- #endif
-
- #include <bsdLib.rules>
-
- #ifdef i386Architecture
- #include <xfree86.cf>
- #endif
-