1# $NetBSD: bsd.x11.mk,v 1.51 2005/11/12 22:57:46 spz Exp $ 2 3.include <bsd.init.mk> 4 5BINDIR= ${X11BINDIR} 6LIBDIR= ${X11USRLIBDIR} 7MANDIR= ${X11MANDIR} 8 9COPTS+= -fno-strict-aliasing 10 11X11FLAGS.VERSION= -DOSMAJORVERSION=1 -DOSMINORVERSION=6 # XXX 12 13# THREADS_DEFINES 14X11FLAGS.THREADS= -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API \ 15 -DXNO_MTSAFE_PWDAPI 16 17# CONNECTION_FLAGS 18X11FLAGS.CONNECTION= -DTCPCONN -DUNIXCONN -DHAS_STICKY_DIR_BIT \ 19 -DHAS_FCHOWN 20 21.if (${USE_INET6} != "no") 22X11FLAGS.CONNECTION+= -DIPv6 23.endif 24 25# EXT_DEFINES 26X11FLAGS.EXTENSION= -DMITMISC -DXTEST -DXTRAP -DXSYNC -DXCMISC -DXRECORD \ 27 -DMITSHM -DBIGREQS -DXF86MISC -DDBE -DDPMSExtension \ 28 -DEVI -DSCREENSAVER -DXV -DXVMC -DGLXEXT \ 29 -DGLX_USE_MESA -DFONTCACHE -DRES 30 31X11FLAGS.DRI= -DGLXEXT -DXF86DRI -DGLX_DIRECT_RENDERING \ 32 -DGLX_USE_DLOPEN -DGLX_USE_MESA 33 34.if ${X11DRI} != "no" 35X11FLAGS.EXTENSION+= ${X11FLAGS.DRI} 36.endif 37 38# ServerDefines 39X11FLAGS.SERVER= -DSHAPE -DXKB -DLBX -DXAPPGROUP -DXCSECURITY \ 40 -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DPIXPRIV \ 41 -DPANORAMIX -DRENDER -DRANDR -DGCCUSESGAS \ 42 -DAVOID_GLYPHBLT -DSINGLEDEPTH -DXvExtension \ 43 -DXFree86Server -DXvMCExtension -DSMART_SCHEDULE \ 44 -DBUILDDEBUG -DXResExtension -DNDEBUG 45 46# OS_DEFINES 47X11FLAGS.OS_DEFINES= -DDDXOSINIT -DSERVER_LOCK -DDDXOSFATALERROR \ 48 -DDDXOSVERRORF -DDDXTIME -DUSB_HID 49 50.if !(${MACHINE} == "acorn32" || \ 51 ${MACHINE} == "alpha" || \ 52 ${MACHINE} == "amiga" || \ 53 ${MACHINE} == "pmax" || \ 54 ${MACHINE} == "sun3" || \ 55 ${MACHINE} == "vax") 56# EXT_DEFINES 57X11FLAGS.EXTENSION+= -DXF86VIDMODE 58 59# ServerDefines 60X11FLAGS.SERVER+= -DXINPUT -DXFreeXDGA -DXF86VIDMODE 61.endif 62 63.if ${MACHINE_ARCH} == "alpha" || \ 64 ${MACHINE_ARCH} == "sparc64" || \ 65 ${MACHINE_ARCH} == "x86_64" 66# ServerDefines 67X11FLAGS.SERVER+= -D_XSERVER64 68X11FLAGS.EXTENSION+= -D__GLX_ALIGN64 69.endif 70 71.if ${MACHINE} == "amd64" || \ 72 ${MACHINE} == "cats" || \ 73 ${MACHINE} == "i386" || \ 74 ${MACHINE} == "macppc" || \ 75 ${MACHINE} == "sgimips" || \ 76 ${MACHINE} == "sparc64" || \ 77 ${MACHINE} == "sparc" 78# LOADABLE 79X11FLAGS.LOADABLE= -DXFree86LOADER -DIN_MODULE -DXFree86Module \ 80 -fno-merge-constants 81.endif 82 83# Extract X11VERSION 84PRINTX11VERSION=awk '/^\#define XF86_VERSION_MAJOR/ {major = $$3} \ 85 /^\#define XF86_VERSION_MINOR/ {minor = $$3} \ 86 /^\#define XF86_VERSION_PATCH/ {patch = $$3} \ 87 /^\#define XF86_VERSION_SNAP/ {snap = $$3} \ 88 END { print "((("major") * 10000000) + (("minor") * 100000) + (("patch") * 1000) + "snap")"}' \ 89 ${X11SRCDIR.xc}/programs/Xserver/hw/xfree86/xf86Version.h 90 91# Commandline to convert 'XCOMM' comments and 'XHASH' to '#', among other 92# things. Transformed from the "CppSedMagic" macro from "Imake.rules". 93# 94X11TOOL_UNXCOMM= sed -e '/^\# *[0-9][0-9]* *.*$$/d' \ 95 -e '/^\#line *[0-9][0-9]* *.*$$/d' \ 96 -e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \ 97 -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \ 98 -e '/^[ ]*XHASH/s/XHASH/\#/' \ 99 -e '/\@\@$$/s/\@\@$$/\\/' 100 101 102CPPFLAGS+= -DCSRG_BASED -DFUNCPROTO=15 -DNARROWPROTO 103CPPFLAGS+= -I${DESTDIR}${X11INCDIR} 104 105.if ${MACHINE_ARCH} == "x86_64" 106CPPFLAGS+= -D__AMD64__ 107.endif 108 109LDFLAGS+= -Wl,-rpath-link,${DESTDIR}${X11USRLIBDIR} \ 110 -R${X11USRLIBDIR} \ 111 -L${DESTDIR}${X11USRLIBDIR} 112 113 114# 115# .cpp -> "" handling 116# CPPSCRIPTS list of files/scripts to run through cpp 117# CPPSCRIPTFLAGS extra flags to ${CPP} 118# CPPSCRIPTFLAGS_fn extra flags to ${CPP} for file `fn' 119# 120.if defined(CPPSCRIPTS) # { 121.SUFFIXES: .cpp 122 123.cpp: 124 ${_MKTARGET_CREATE} 125 rm -f ${.TARGET} 126 ${CPP} -undef -traditional \ 127 ${CPPSCRIPTFLAGS_${.TARGET}:U${CPPSCRIPTFLAGS}} \ 128 < ${.IMPSRC} | ${X11TOOL_UNXCOMM} > ${.TARGET} 129 130realall: ${CPPSCRIPTS} 131 132clean: cleancppscripts 133cleancppscripts: .PHONY 134 rm -f ${CPPSCRIPTS} 135.endif # } 136 137 138# 139# APPDEFS (app defaults) handling 140# 141.if defined(APPDEFS) # { 142appdefsinstall:: .PHONY ${APPDEFS:@S@${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}@} 143.PRECIOUS: ${APPDEFS:@S@${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}@} 144 145__appdefinstall: .USE 146 ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \ 147 ${SYSPKGTAG} ${.ALLSRC} ${.TARGET} 148 149.for S in ${APPDEFS:O:u} 150${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}: ${S} __appdefinstall 151.endfor 152 153realinstall: appdefsinstall 154.endif # } 155 156 157# 158# .man page handling 159# 160.if (${MKMAN} != "no" && (${MAN:U} != "" || ${PROG:U} != "")) # { 161cleandir: cleanx11man 162cleanx11man: .PHONY 163 rm -f ${MAN:U${PROG:D${PROG.1}}} 164.endif # } 165 166.SUFFIXES: .man .1 .3 .4 .5 .7 167 168.man.1 .man.3 .man.4 .man.5 .man.7: 169 ${_MKTARGET_CREATE} 170 rm -f ${.TARGET} 171 sed -e 's/\\$$/\\ /' ${.IMPSRC} \ 172 | ${CPP} -undef -traditional \ 173 -D__apploaddir__=${X11ROOTDIR}/lib/X11/app-defaults \ 174 -D__libmansuffix__=3 \ 175 -D__filemansuffix__=5 \ 176 -D__miscmansuffix__=7 \ 177 -D__drivermansuffix__=4 \ 178 -D__adminmansuffix__=8 \ 179 -D__projectroot__=${X11ROOTDIR} \ 180 -D__xorgversion__='"Release 6.6" "X Version 11"' \ 181 -D__vendorversion__="XFree86 4.5.0" \ 182 ${X11EXTRAMANDEFS} \ 183 | ${X11TOOL_UNXCOMM} > ${.TARGET} 184