XCOMM platform: $Xorg: NetBSD.cf,v 1.3 2000/08/17 19:41:46 cpqbld Exp $ XCOMM platform: $XFree86: xc/config/cf/NetBSD.cf,v 3.122 2003/11/18 18:09:45 dawes Exp $ #ifndef OSName #define OSName DefaultOSName OSBinaryType #endif #ifndef OSMajorVersion #define OSMajorVersion DefaultOSMajorVersion #endif #ifndef OSMinorVersion #define OSMinorVersion DefaultOSMinorVersion #endif #ifndef OSTeenyVersion #define OSTeenyVersion DefaultOSTeenyVersion #endif #ifndef OSVendor #define OSVendor The NetBSD Foundation, Inc. #endif XCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion) /* * C library features */ #if ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion > 2) || \ (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1)) # define HasPoll YES #endif #define HasNdbm YES #define HasPutenv YES #if OSMajorVersion == 1 && OSMinorVersion > 4 || OSMajorVersion > 1 # define HasStrlcat YES #endif #define HasSnprintf YES #define HasBSD44Sockets YES #define Malloc0ReturnsNull NO #define SetTtyGroup YES #define DBMLibrary /**/ #define HasDlopen YES #define HasSetProcTitle YES #ifndef HasLibCrypt # define HasLibCrypt YES #endif #ifndef HasGhostScript # define HasGhostScript YES #endif /* !HasGhostScript */ #ifndef HasShm # if OSMajorVersion == 0 && OSMinorVersion == 9 && OSTeenyVersion == 2 /* * Shm memory was removed in 0.9B because it was encumbered. * A free version was added in 0.9C */ # define HasShm NO # else # define HasShm YES # endif #endif #define HasWChar32 YES /* * There's a bug in NetBSD 1.0, 1.1 and 1.2 dlsym() */ #if ((OSMajorVersion == 1 && OSMinorVersion < 2) || \ (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion < 2)) # define HasDlsymBug YES #endif /* Mkstemp is there since 1.2 (at least) */ #if (!(OSMajorVersion == 0 || \ (OSMajorVersion == 1 && OSMinorVersion < 2))) #define HasMkstemp YES #endif /* But the standalone mktemp doesn't exist before NetBSD 1.5*/ #if (OSMajorVersion ==0 || (OSMajorVersion == 1 && OSMinorVersion <= 4)) # define HasMktemp NO #else # define HasMktemp YES #endif #ifndef HasIssetugid # if (OSMajorVersion > 1 || (OSMajorVersion == 1 && OSMinorVersion >= 5)) # define HasIssetugid YES # endif #endif #if (OSMajorVersion == 1 && OSMinorVersion >= 5 || OSMajorVersion > 1) #define HasGetIfAddrs YES #endif #define HasUsableFileMmap YES #define HasVarRun YES #define HasVarDb YES #define HasShadowPasswd NO #define InstallXloadSetGID NO #if OSMajorVersion < 1 || (OSMajorVersion == 1 && OSMinorVersion < 5) #define BuildIPv6 NO #endif #define IPv6SocketsAlsoIPv4 NO /* * NetBSD 1.6M and newer supports POSIX Threads. */ #ifndef NetBSDThreads # define NetBSDThreads YES #endif #if NetBSDThreads && \ ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion > 6) || \ (OSMajorVersion == 1 && OSMinorVersion == 6 && OSTeenyVersion >= 13)) # define HasPosixThreads YES # define ThreadedX YES # define HasThreadSafeAPI YES # define ThreadsLibraries -lpthread # define LibraryMTDefines -DUSE_NBSD_THREADLIB # define SystemMTDefines -D_REENTRANT # define MTSafeAPIDefines -DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI #else # define ThreadedX NO #endif /* * Compiler Features */ #define GccUsesGas YES #define UseGas YES #define GnuCpp YES #define NeedConstPrototypes YES #define NeedFunctionPrototypes YES #define NeedNestedPrototypes YES #define NeedVarargsPrototypes YES #define NeedWidePrototypes NO #define MkdirHierCmd mkdir -p #undef CcCmd #define CcCmd gcc #ifndef DefaultCCOptions #if defined(UseInstalled) #define DefaultCCOptions /**/ #else #ifdef Arm32Architecture #define DefaultCCOptions -ansi -Dasm=__asm -fsigned-char \ -fomit-frame-pointer #elif defined(PpcArchitecture) # define DefaultCCOptions -ansi -Dasm=__asm -fsigned-char #else #define DefaultCCOptions -ansi -Dasm=__asm GccWarningOptions #endif #endif #endif #define CppCmd cpp #define StandardCppOptions -traditional #define StandardCppDefines /**/ #define PreProcessCmd CcCmd -E #define PostIncDir /usr/include #define GccGasOption -DGCCUSESGAS #define AsmDefines -DUSE_GAS /* UseElfFormat defaults to YES if __ELF__ set */ #ifndef UseElfFormat # ifdef __ELF__ # undef __ELF__ /* other imake files shouldn't care */ # define UseElfFormat YES # else # define UseElfFormat NO # endif #endif /* * Dynamic loading supported starting in 1.0 on a.out platforms, * and on all ELF platforms. * * XXX May not be correct on NetBSD/pmax (ELF, but might not have * working shared libs). * * Disabled for NetBSD/vax until I figure out the scheme. --CS */ #if ((OSMajorVersion > 0) && defined(i386Architecture)) || \ defined(PpcArchitecture) # ifndef DoLoadableServer # define DoLoadableServer YES # endif #else # ifndef DoLoadableServer # define DoLoadableServer NO # endif #endif #if UseElfFormat #define DlLibrary -rdynamic /* no -ldl yet */ #else #define DlLibrary /**/ #endif /* All ELF NetBSD systems support Weak symbols */ #define HasWeakSymbols UseElfFormat #ifdef i386Architecture # ifndef DefaultGcc2i386Opt # if OSMajorVersion > 1 || (OSMajorVersion == 1 && OSMinorVersion > 2) /* The GCC strength-reduce bug is fixed for NetBSD 1.3 and later */ # define DefaultGcc2i386Opt -O2 GccAliasingArgs # endif # endif # define OptimizedCDebugFlags DefaultGcc2i386Opt # if OSMajorVersion < 1 # define ServerOSDefines XFree86ServerOSDefines -DXNO_SYSCONF # else # define ServerOSDefines XFree86ServerOSDefines # endif # if OSMajorVersion == 1 && OSMinorVersion >= 1 || OSMajorVersion >= 2 # define ServerExtraSysLibs -li386 # endif #else # define OptimizedCDebugFlags -O2 # if defined(SparcArchitecture) # define ServerOSDefines -DDDXOSINIT # elif defined(AlphaArchitecture) # define ServerOSDefines XFree86ServerOSDefines # elif defined(Arm32Architecture) # define ServerOSDefines XFree86ServerOSDefines -DDDXTIME # elif defined(PpcArchitecture) # define ServerOSDefines XFree86ServerOSDefines -DDDXTIME -DDDXOSINIT # else # define ServerOSDefines /**/ # endif # if defined(AlphaArchitecture) # define ServerExtraSysLibs -lalpha # else # define ServerExtraSysLibs /**/ # endif #endif #ifdef i386Architecture # define ServerExtraDefines GccGasOption XFree86ServerDefines # ifndef XFree86ConsoleDefines # if (OSMajorVersion == 1 && ((OSMinorVersion == 3 && OSTeenyVersion >= 6) \ || OSMinorVersion >= 4) \ || OSMajorVersion >= 2) # define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT -DWSCONS_SUPPORT # else # define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT # endif # endif #elif defined(SparcArchitecture) # if defined(Sparc64Architecture) # define ServerExtraDefines XFree86ServerDefines -D_XSERVER64 # else # define ServerExtraDefines XFree86ServerDefines # endif # elif defined(AlphaArchitecture) /* XXX for the following */ # define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64 # ifndef XFree86ConsoleDefines # define XFree86ConsoleDefines -DWSCONS_SUPPORT -DPCCONS_SUPPORT -DPCVT_SUPPORT # endif #elif defined(AlphaArchitecture) # define ServerExtraDefines GccGasOption -D_XSERVER64 #elif defined(Arm32Architecture) # define ServerExtraDefines GccGasOption XFree86ServerDefines # ifndef XFree86ConsoleDefines # define XFree86ConsoleDefines -DPCCONS_SUPPORT # endif #elif defined(PpcArchitecture) # define ServerExtraDefines GccGasOption XFree86ServerDefines # ifndef XFree86ConsoleDefines # define XFree86ConsoleDefines -DWSCONS_SUPPORT # endif #else # define ServerExtraDefines GccGasOption #endif #define StandardDefines -DCSRG_BASED /* Citrus mb locale were added in 1.5P */ #if ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion > 5) || \ (OSMajorVersion == 1 && OSMinorVersion == 5 && OSTeenyVersion >= 15)) #define XawI18nDefines -DHAS_WCHAR_H -DHAS_WCTYPE_H -DNO_WIDEC_H #else #define XawI18nDefines -DUSE_XWCHAR_STRING -DUSE_XMBTOWC #endif #ifndef ExtraLibraries #define ExtraLibraries /**/ #endif #ifndef UseGnuMalloc /* * There is no way to map 1.4J correctly to OS*Version, so 'J' is mapped * to OSTeenyVersion == 9. That should be safe, since there will never * be a release for 1.4.9. */ # if ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion > 4) || \ (OSMajorVersion == 1 && OSMinorVersion == 4 && OSTeenyVersion > 9)) # define UseGnuMalloc NO # else # define UseGnuMalloc YES #endif #endif #ifndef GnuMallocLibrary #define GnuMallocLibrary -lgnumalloc #endif #if ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion > 2) || \ (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1)) #ifndef HasZlib #define HasZlib YES #endif #endif #define AdmDir /var/log #define HasFlex YES /* NetBSD doesn't have gperf in the base install */ #define DontRebuildGperfOutput YES /* * NetBSD doesn't have perl in default system * you may override this in host.def if you installed perl from the packages */ #ifndef HasPerl #define HasPerl NO #endif /* * NetBSD doesn't have gperf in default system * you may override this in host.def if you installed perl from the packages */ #ifndef HasGperf #define HasGperf NO #endif /* * Make & install Features */ #define HasBsdMake YES #define CompressAllFonts YES #define GzipFontCompression YES #define DefaultUserPath /bin:/usr/bin:/usr/pkg/bin:/usr/local/bin:$(BINDIR) #define DefaultSystemPath /sbin:/usr/sbin:/bin:/usr/bin:$(BINDIR) #ifdef InstallCmd # undef InstallCmd # define InstallCmd /usr/bin/install #endif #ifndef ExtraFilesToClean # define ExtraFilesToClean *.core #endif /* * Documentation formatting */ #define NeqnCmd neqn -Tlatin1 #define NroffCmd nroff -Tlatin1 #define EqnCmd eqn -Tps #define HasGroff YES /* * To use the NetBSD Aperture driver */ #if defined(i386Architecture) # ifndef HasNetBSDApertureDriver # define HasNetBSDApertureDriver YES # endif /* * Builtin MTRR support (NetBSD 1.5Y and up) */ # if ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion >= 6) || \ (OSMajorVersion == 1 && OSMinorVersion == 5 && \ OSTeenyVersion >= 25)) # define HasMTRRBuiltin YES # else /* * MTRR support provided by the Aperture driver */ # if HasNetBSDApertureDriver # ifndef HasMTRRSupport # define HasMTRRSupport YES # endif # endif # endif /* MTRRBuiltin */ #endif /* i386Architecture */ /* * agpgart support (NetBSD 1.5Y and up) */ #if ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion >= 6) || \ (OSMajorVersion == 1 && OSMinorVersion == 5 && \ OSTeenyVersion >= 25)) # ifndef HasAgpGart # define HasAgpGart YES # endif #endif /* * MMX, SSE and 3DNow will be autodetected. NetBSD 1.6 and up have the * necessary kernel and toolchain support. */ #if defined(i386Architecture) && \ ((OSMajorVersion > 1) || (OSMajorVersion == 1 && OSMinorVersion > 5)) # define HasX86Support YES # define HasMMXSupport YES # define Has3DNowSupport YES # define HasSSESupport YES #else # define HasX86Support NO # define HasMMXSupport NO # define Has3DNowSupport NO # define HasSSESupport NO #endif #ifndef HasCookieMaker # if OSMajorVersion == 1 && OSMinorVersion >= 5 || OSMajorVersion >= 2 /* NetBSD 1.5 and later have /dev/urandom */ # define HasCookieMaker YES # define MkCookieCmd \ 'dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"' # else # define HasCookieMaker NO # endif #endif /* * ForceSubdirs - force make to build subdirectories * * For BSD 4.4 make */ #define ForceSubdirs(dirs) @@\ dirs: .EXEC @@\ @cd $@ ; echo "making all in $(CURRENT_DIR)/$@..."; \ @@\ $(MAKE) $(MFLAGS) PassCDebugFlags all @@\ @@\ .EXEC: /* * Man pages need to be formatted when installed, so override the default * imake rules. */ #define ManSuffix 1 #define FileManSuffix 5 #define ManSourcePath $(MANPATH)/cat #define InstallManPageLongBase(file,destdir,dest) @@\ @@\ all:: file.0 @@\ @@\ file.0:: file.$(MANNEWSUFFIX) @@\ @if [ -f file.$(MANNEWSUFFIX) ]; \ @@\ then \ @@\ cat file.$(MANNEWSUFFIX) | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$$$.man; \ @@\ cp /tmp/$$$$.man file.0; \ @@\ $(RM) /tmp/$$$$.man; \ @@\ fi @@\ @@\ install.man:: @@\ MakeDir($(DESTDIR)destdir) @@\ -@if [ -f file.0 ]; \ @@\ then \ @@\ $(INSTALL) -c $(INSTMANFLAGS) file.0 $(DESTDIR)destdir/dest.0; \@@\ fi @@\ @@\ clean:: @@\ RemoveFile(file.0) #define InstallManPageLong(file,destdir,dest) @@\ BuildInstallHtmlManPage(file,dest,$(MANSUFFIX)) @@\ @@\ CppManTarget(file, $(EXTRAMANDEFS)) @@\ @@\ InstallManPageLongBase(file,destdir,dest) #define InstallGenManPageLong(file,destdir,dest,suffix) @@\ BuildInstallHtmlManPage(file,dest,suffix) @@\ @@\ CppManTarget(file, $(EXTRAMANDEFS)) @@\ @@\ InstallManPageLongBase(file,destdir,dest) #define InstallMultipleMan(list,dest) @@\ install.man:: @@\ MakeDir($(DESTDIR)dest) @@\ case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\ for i in list; do \ @@\ (MNAME=`echo $$i | cut -f1 -d.`; \ @@\ set -x; \ @@\ cat $$i | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) \ @@\ | $(COL) > $${MNAME}.0; \ @@\ $(INSTALL) -c $(INSTMANFLAGS) $${MNAME}.0 \ @@\ $(DESTDIR)dest/$${MNAME}.0; \ @@\ $(RM) $${MNAME}.0); \ @@\ done #define InstallMultipleManSuffix(list,dest,suff) @@\ install.man:: @@\ MakeDir($(DESTDIR)dest) @@\ case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\ for i in list; do \ @@\ (set -x; \ @@\ cat $$i.suff | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) \ @@\ | $(COL) > $$i.0; \ @@\ $(INSTALL) -c $(INSTMANFLAGS) $$i.0 \ @@\ $(DESTDIR)dest/$$i.0; \ @@\ $(RM) $$i.0 ); \ @@\ done #define InstallManPageAliasesBase(file,destdir,aliases) @@\ install.man:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\ for i in aliases; do \ @@\ (set -x; \ @@\ $(RM) $(DESTDIR)destdir/$$i.0;\ @@\ (cd $(DESTDIR)/destdir; $(LN) file.0 $$i.0);\ @@\ ); \ @@\ done #define InstallManPageAliases(file,destdir,aliases) @@\ InstallHtmlManPageAliases(file,aliases,$(MANSUFFIX)) @@\ @@\ InstallManPageAliasesBase(file,destdir,aliases) #define InstallGenManPageAliases(file,destdir,suffix,aliases) @@\ InstallHtmlManPageAliases(file,aliases,suffix) @@\ @@\ InstallManPageAliasesBase(file,destdir,aliases) /* * Shared libraries supported starting in 1.0 on a.out platforms, * and on all ELF platforms. * * XXX May not be correct on NetBSD/pmax (ELF, but might not have * working shared libs). */ #if ((OSMajorVersion > 0) && \ !defined(AlphaArchitecture) && !defined(MipsArchitecture)) || \ UseElfFormat # ifndef HasSharedLibraries # define HasSharedLibraries YES # endif #endif #ifndef OSBinaryType #if UseElfFormat #define OSBinaryType [ELF] #else #define OSBinaryType /**/ #endif #endif #ifndef HasSharedLibraries #define HasSharedLibraries NO #endif /* * Unresolved references are fatal on NetBSD 1.5 for libGL, which is * built with -Bsymbolic. */ #if UseElfFormat && OSMajorVersion == 1 && OSMinorVersion == 5 #define SharedGLReqs $(LDPRELIBS) $(XLIB) -lc #endif #if HasSharedLibraries #include #endif /* HasSharedLibraries */ /* Always build the XInput library, regardless of server support on this plattform */ #if !defined(BuildXInputLib) && !defined(BuildServersOnly) # define BuildXInputLib YES #endif #if defined(i386Architecture) || defined(Arm32Architecture) || defined(AlphaArchitecture) || defined(PpcArchitecture) # include #endif /* * Definitions for the SUN server on NetBSD/sparc */ #ifdef SparcArchitecture #ifndef Xsun24Server #define Xsun24Server YES #endif #ifndef XsunServer #define XsunServer YES #endif #ifndef XsunMonoServer #define XsunMonoServer NO /* XXX: does not link */ #endif #ifndef BuildScreenSaverLibrary #define BuildScreenSaverLibrary YES #endif /* * XFree86 uses its own (more portable) database routines to speed up * the RGB database lookups * However, if you want to use ndbm anyway, you can set that to NO in * site.def */ #ifndef UseRgbTxt #define UseRgbTxt YES #endif #define BuildXF86VidModeExt NO #define BuildXF86DGA NO #define BuildXInputExt NO #include #endif /* * Definition for compiling on MIPS machines */ #ifdef MipsArchitecture #define PositionIndependentCFlags #define SharedLibraryLoadFlags -x -shared --whole-archive -soname `echo $@ | sed 's/\.[0-9]*$$//'` #define SharedXtReqs $(XONLYLIB) $(SMLIB) $(ICELIB) #define SharedXmuReqs $(LDPRELIB) $(XTOOLONLYLIB) $(XLIB) #endif /* * Definition for compiling on Alpha machines */ #ifdef AlphaArchitecture /* Build the shared XDM greeter on Alpha if it supports shared libs */ #define SharedLibXdmGreet HasSharedLibraries #endif /* * Definition for compile on macppc machines */ #ifdef PpcArchitecture # define OptimizedCDebugFlags -O2 # define XkbServerDefines -DXKB_ALWAYS_USES_SOFT_REPEAT # ifndef DoLoadableServer # define DoLoadableServer YES # endif # define UseElfFormat YES #endif /* * Definition for compiling on VAX machines */ #ifdef VaxArchitecture #define BuildServer NO #endif /* * General settings for all platforms */ #ifndef SharedLibXdmGreet #define SharedLibXdmGreet NO #endif #ifndef BuildHtmlManPages #define BuildHtmlManPages NO /* We don't want HTML manpages */ #endif #ifndef UseSeparateConfDir #define UseSeparateConfDir NO /* We don't want appdefs in "/etc/X11". */ #endif #if defined(NetBSDArchitecture) && \ ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion > 3)) #define HasDevRandom YES #define RandomDeviceFile /dev/urandom #endif