1 # $NetBSD: bsd.x11.mk,v 1.162 2025/06/24 05:59:45 mrg Exp $ 2 3 .include <bsd.init.mk> 4 5 BINDIR= ${X11BINDIR} 6 LIBDIR= ${X11USRLIBDIR} 7 MANDIR= ${X11MANDIR} 8 9 COPTS+= -fno-strict-aliasing 10 11 .include <bsd.sys.mk> 12 13 .if !defined(NOSSP) && (${USE_SSP:Uno} != "no") 14 CPPFLAGS+= -DNO_ALLOCA 15 .endif 16 17 X11FLAGS.VERSION= -DOSMAJORVERSION=5 -DOSMINORVERSION=99 # XXX 18 19 # THREADS_DEFINES 20 X11FLAGS.THREADS= -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API \ 21 -DXNO_MTSAFE_PWDAPI 22 23 # CONNECTION_FLAGS 24 X11FLAGS.CONNECTION= -DTCPCONN -DUNIXCONN -DHAS_STICKY_DIR_BIT \ 25 -DHAS_FCHOWN -DHAVE_GETADDRINFO -DHAVE_INET_NTOP \ 26 -DHAVE_STRUCT_SOCKADDR_STORAGE 27 28 .if (${USE_INET6} != "no") 29 X11FLAGS.CONNECTION+= -DIPv6 30 .endif 31 32 # EXT_DEFINES 33 X11FLAGS.BASE_EXTENSION= -DMITMISC -DXTEST -DXTRAP -DXSYNC -DXCMISC \ 34 -DXRECORD -DMITSHM -DBIGREQS -DXF86VIDMODE \ 35 -DDPMSExtension -DEVI \ 36 -DSCREENSAVER -DXV -DXVMC -DGLXEXT \ 37 -DRES 38 39 X11FLAGS.PERVASIVE_EXTENSION= -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP \ 40 -DXCSECURITY -DTOGCUP -DXF86BIGFONT \ 41 -DDPMSExtension -DPIXPRIV -DPANORAMIX \ 42 -DRENDER -DRANDR -DXFIXES -DDAMAGE \ 43 -DCOMPOSITE -DXEVIE 44 X11FLAGS.EXTENSION= ${X11FLAGS.BASE_EXTENSION} \ 45 ${X11FLAGS.PERVASIVE_EXTENSION} 46 47 X11FLAGS.DIX= -DHAVE_DIX_CONFIG_H -D_BSD_SOURCE -DHAS_FCHOWN \ 48 -DHAS_STICKY_DIR_BIT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L \ 49 -DHAVE_XORG_CONFIG_H 50 X11INCS.DIX= -I${DESTDIR}${X11INCDIR}/freetype2 \ 51 -I${DESTDIR}${X11INCDIR}/pixman-1 \ 52 -I$(X11SRCDIR.xorg-server)/include \ 53 -I$(X11SRCDIR.xorg-server)/Xext \ 54 -I$(X11SRCDIR.xorg-server)/composite \ 55 -I$(X11SRCDIR.xorg-server)/damageext \ 56 -I$(X11SRCDIR.xorg-server)/xfixes \ 57 -I$(X11SRCDIR.xorg-server)/Xi \ 58 -I$(X11SRCDIR.xorg-server)/mi \ 59 -I$(X11SRCDIR.xorg-server)/miext/shadow \ 60 -I$(X11SRCDIR.xorg-server)/miext/damage \ 61 -I$(X11SRCDIR.xorg-server)/render \ 62 -I$(X11SRCDIR.xorg-server)/randr \ 63 -I$(X11SRCDIR.xorg-server)/fb \ 64 -I$(X11SRCDIR.xorg-server)/../include 65 66 X11FLAGS.DRI= -DGLXEXT -DXF86DRI -DGLX_DIRECT_RENDERING \ 67 -DGLX_USE_DLOPEN -DGLX_USE_MESA 68 69 .if ${X11DRI} != "no" 70 X11FLAGS.EXTENSION+= ${X11FLAGS.DRI} 71 .endif 72 73 # ServerDefines 74 X11FLAGS.SERVER= -DSHAPE -DXKB -DLBX -DXAPPGROUP -DXCSECURITY \ 75 -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DPIXPRIV \ 76 -DPANORAMIX -DRENDER -DRANDR -DGCCUSESGAS \ 77 -DAVOID_GLYPHBLT -DSINGLEDEPTH -DXvExtension \ 78 -DXFree86Server -DXvMCExtension -DSMART_SCHEDULE \ 79 -DBUILDDEBUG -DXResExtension -DNDEBUG 80 81 # OS_DEFINES 82 X11FLAGS.OS_DEFINES= -DDDXOSINIT -DSERVER_LOCK -DDDXOSFATALERROR \ 83 -DDDXOSVERRORF -DDDXTIME -DUSB_HID 84 85 .if !(${MACHINE} == "acorn32" || \ 86 ${MACHINE} == "sun3" || \ 87 ${MACHINE} == "x68k") 88 # EXT_DEFINES 89 X11FLAGS.EXTENSION+= -DXF86VIDMODE 90 91 X11FLAGS.DIX+= -DDBE -DXRECORD -DPRESENT 92 93 # ServerDefines 94 X11FLAGS.SERVER+= -DXFreeXDGA -DXF86VIDMODE 95 X11FLAGS.SERVER+= -DXINPUT -DXSERVER_LIBPCIACCESS 96 .endif 97 98 .if ${MACHINE_ARCH} == "alpha" || \ 99 ${MACHINE_ARCH} == "ia64" || \ 100 ${MACHINE_ARCH} == "powerpc64" || \ 101 ${MACHINE_ARCH} == "sparc64" || \ 102 ${MACHINE_ARCH} == "x86_64" || \ 103 ${MACHINE_CPU} == "aarch64" 104 # ServerDefines 105 X11FLAGS.SERVER+= -D_XSERVER64 106 X11FLAGS.EXTENSION+= -D__GLX_ALIGN64 107 .endif 108 109 .if ${MACHINE} == "amd64" || \ 110 ${MACHINE} == "cats" || \ 111 ${MACHINE} == "i386" || \ 112 ${MACHINE} == "macppc" || \ 113 ${MACHINE} == "netwinder" || \ 114 ${MACHINE} == "ofppc" || \ 115 ${MACHINE} == "prep" || \ 116 ${MACHINE} == "sgimips" || \ 117 ${MACHINE} == "sparc64" || \ 118 ${MACHINE} == "sparc" || \ 119 ${MACHINE} == "shark" || \ 120 ${MACHINE} == "zaurus" 121 # LOADABLE 122 .if ${XORG_SERVER_SUBDIR:Uxorg-server.old} == "xorg-server.old" 123 X11FLAGS.LOADABLE= -DXFree86LOADER 124 .endif 125 X11FLAGS.LOADABLE+= ${${ACTIVE_CXX} == "gcc":? -fno-merge-constants :} 126 .endif 127 128 # XXX FIX ME 129 .if ${XORG_SERVER_SUBDIR:Uxorg-server.old} == "xorg-server.old" 130 XORG_SERVER_MAJOR= 1 131 XORG_SERVER_MINOR= 10 132 XORG_SERVER_TEENY= 6 133 XORG_VERSION_CURRENT="(((${XORG_SERVER_MAJOR}) * 10000000) + ((${XORG_SERVER_MINOR}) * 100000) + ((${XORG_SERVER_TEENY}) * 1000) + 0)" 134 .else 135 XORG_SERVER_MAJOR= 21 136 XORG_SERVER_MINOR= 1 137 XORG_SERVER_TEENY= 18 138 XORG_VERSION_CURRENT="((10000000) + ((${XORG_SERVER_MAJOR}) * 100000) + ((${XORG_SERVER_MINOR}) * 1000) + ${XORG_SERVER_TEENY})" 139 .endif 140 141 XVENDORNAMESHORT= '"X.Org"' 142 XVENDORNAME= '"The X.Org Foundation"' 143 XORG_RELEASE= '"Release ${XORG_SERVER_MAJOR}.${XORG_SERVER_MINOR}.${XORG_SERVER_TEENY}"' 144 __XKBDEFRULES__= '"xorg"' 145 XLOCALE.DEFINES= -DXLOCALEDIR=\"${X11LIBDIR}/locale\" \ 146 -DXLOCALELIBDIR=\"${X11LIBDIR}/locale\" 147 148 PRINT_PACKAGE_VERSION= ${TOOL_AWK} '/^PACKAGE_VERSION=/ { \ 149 match($$1, "([0-9]+\\.)+[0-9]+"); \ 150 version = substr($$1, RSTART, RLENGTH); \ 151 } END { print version }' 152 153 _CONFIGURE_PATH= 154 .if exists(${X11SRCDIR.${PROG}}/configure) 155 _CONFIGURE_PATH=${X11SRCDIR.${PROG}}/configure 156 .elif exists(${X11SRCDIR.${LIB}}/configure) 157 _CONFIGURE_PATH=${X11SRCDIR.${LIB}}/configure 158 .endif 159 160 .if exists(${_CONFIGURE_PATH}) 161 _PRINT_PACKAGE_STRING= ${TOOL_AWK} -F= '/^PACKAGE_STRING=/ { print $$2 }' \ 162 ${_CONFIGURE_PATH} 163 PACKAGE_STRING!= ${_PRINT_PACKAGE_STRING} 164 .else 165 PACKAGE_STRING= "X11 program" 166 .endif 167 168 # Commandline to convert 'XCOMM' comments and 'XHASH' to '#', among other 169 # things. Transformed from the "CppSedMagic" macro from "Imake.rules". 170 # 171 X11TOOL_UNXCOMM= ${TOOL_SED} -e '/^\# *[0-9][0-9]* *.*$$/d' \ 172 -e '/^\#line *[0-9][0-9]* *.*$$/d' \ 173 -e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \ 174 -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \ 175 -e '/^[ ]*XHASH/s/XHASH/\#/' \ 176 -e '/\@\@$$/s/\@\@$$/\\/' 177 178 179 CPPFLAGS+= -DCSRG_BASED -DFUNCPROTO=15 -DNARROWPROTO 180 CPPFLAGS+= -I${DESTDIR}${X11INCDIR} 181 182 .if ${MACHINE_ARCH} == "x86_64" 183 CPPFLAGS+= -D__AMD64__ 184 .endif 185 186 LDFLAGS+= -Wl,-rpath,${X11USRLIBDIR} -L=${X11USRLIBDIR} 187 188 189 # 190 # .cpp -> "" handling 191 # CPPSCRIPTS list of files/scripts to run through cpp 192 # CPPSCRIPTFLAGS extra flags to ${CPP} 193 # CPPSCRIPTFLAGS_fn extra flags to ${CPP} for file `fn' 194 # 195 .if defined(CPPSCRIPTS) # { 196 .SUFFIXES: .cpp 197 198 .cpp: 199 ${_MKTARGET_CREATE} 200 rm -f ${.TARGET} 201 ${CC} -E -undef -traditional - \ 202 ${CPPSCRIPTFLAGS_${.TARGET}:U${CPPSCRIPTFLAGS}} \ 203 < ${.IMPSRC} | ${X11TOOL_UNXCOMM} > ${.TARGET} 204 205 realall: ${CPPSCRIPTS} 206 207 CLEANFILES+= ${CPPSCRIPTS} 208 .endif # } 209 210 # Used by pkg-config and manual handling to ensure we picked up all 211 # the necessary changes. 212 # 213 # Skip any line that starts with .IN (old X11 indexing method), 214 # or between a tab(@) and .TE. 215 _X11SKIP_FALSE_POSITIVE_GREP_CMD= \ 216 ${TOOL_SED} -e '/tab(@)/,/^\.TE/d' -e '/^\.IN /d' ${.TARGET}.tmp | \ 217 ${TOOL_GREP} -E '@([^ ]+)@' 218 219 # 220 # X.Org pkgconfig files handling 221 # 222 # PKGCONFIG is expected to contain a list of pkgconfig module names. 223 # They will produce the files <module1>.pc, <module2>.pc, etc, to be 224 # put in X11USRLIBDIR/pkgconfig. 225 # 226 # PKGDIST contains the name of a X11SRCDIR subscript where to find the 227 # source file for the pkgconfig files. 228 # 229 # If PKGDIST is not suitable, a consumer can set PKGDIST.<module> with 230 # the full path to the source file. 231 # 232 # Also, the consumer can use PKGDIST alone, and a PKGCONFIG will be 233 # derived from it. Many times, PKGDIST is capitalized and PKGCONFIG is 234 # the lower case version. 235 # 236 237 .if defined(PKGDIST) && !defined(PKGCONFIG) 238 PKGCONFIG= ${PKGDIST:tl} 239 .endif 240 .if defined(PKGCONFIG) && !defined(MLIBDIR) 241 242 .include <bsd.files.mk> 243 244 _PKGCONFIG_FILES= ${PKGCONFIG:C/$/.pc/} 245 246 .PHONY: pkgconfig-install 247 pkgconfig-install: 248 249 realall: ${_PKGCONFIG_FILES:O:u} 250 realinstall: pkgconfig-install 251 252 .for _pkg in ${PKGCONFIG:O:u} # { 253 254 PKGDIST.${_pkg}?= ${X11SRCDIR.${PKGDIST:U${_pkg}}} 255 _PKGDEST.${_pkg}= ${DESTDIR}${X11USRLIBDIR}/pkgconfig/${_pkg}.pc 256 257 .PATH: ${PKGDIST.${_pkg}} 258 259 FILESOWN_${_pkg}.pc= ${BINOWN} 260 FILESGRP_${_pkg}.pc= ${BINGRP} 261 FILESMODE_${_pkg}.pc= ${NONBINMODE} 262 263 ${_PKGDEST.${_pkg}}: ${_pkg}.pc __fileinstall 264 pkgconfig-install: ${_PKGDEST.${_pkg}} 265 266 # Add a dependancy on the configure file if it exists; this way we 267 # will rebuild the .pc file if the version in configure changes. 268 .if exists(${PKGDIST.${_pkg}}/configure) 269 ${_pkg}.pc: ${PKGDIST.${_pkg}}/configure Makefile 270 .endif 271 272 .endfor # } 273 274 # XXX 275 # The sed script is very, very ugly. What we actually need is a 276 # mknative-xorg script that will generate all the .pc files from 277 # running the autoconfigure script. 278 # And yes, it has to be split in multiple parts otherwise it's 279 # too long for sed to handle. 280 281 # hacky transforms: 282 # @XCBPROTO_VERSION@ 283 284 .SUFFIXES: .pc.in .pc 285 .pc.in.pc: 286 ${_MKTARGET_CREATE} 287 rm -f ${.TARGET} 288 if [ -n '${PKGCONFIG_VERSION.${.PREFIX}}' ]; then \ 289 _pkg_version='${PKGCONFIG_VERSION.${.PREFIX}}'; \ 290 else \ 291 _pkg_version=$$(${PRINT_PACKAGE_VERSION} \ 292 ${PKGDIST.${.PREFIX}}/configure); \ 293 fi; \ 294 ${TOOL_SED} \ 295 ${PKGCONFIG_SED_FLAGS} \ 296 -e "s,@prefix@,${X11ROOTDIR},; \ 297 s,@INSTALL_DIR@,${X11ROOTDIR},; \ 298 s,@exec_prefix@,\\$$\{prefix\},; \ 299 s,@libdir@,\\$$\{prefix\}/lib,; \ 300 s,@includedir@,\\$$\{prefix\}/include,; \ 301 s,@datarootdir@,\\$$\{prefix\}/share,; \ 302 s,@datadir@,\\$$\{datarootdir\},; \ 303 s,@appdefaultdir@,\\$$\{libdir}/X11/app-defaults,; \ 304 s,@MAPDIR@,\\$$\{libdir\}/X11/fonts/util,; \ 305 s,@ICONDIR@,\\$$\{datarootdir\}/icons,; \ 306 s,@PACKAGE_VERSION@,$${_pkg_version},; \ 307 s,@VERSION@,$${_pkg_version},; \ 308 s,@COMPOSITEEXT_VERSION@,$${_pkg_version%.*},; \ 309 s,@DAMAGEEXT_VERSION@,$${_pkg_version%.*},; \ 310 s,@FIXESEXT_VERSION@,$${_pkg_version%.*},; \ 311 s,@PRESENTEXT_VERSION@,$${_pkg_version%.*},; \ 312 s,@RANDR_VERSION@,$${_pkg_version%.*},; \ 313 s,@RENDER_VERSION@,$${_pkg_version%.*}," \ 314 -e "s,@LIBS@,,; \ 315 s,@Z_LIBS@,-lz,; \ 316 s,@LIBZ@,-lz,; \ 317 s,@LIBBZ2@,-lbz2,; \ 318 s,@xkb_base@,\\$$\{prefix\}/lib/X11/xkb,; \ 319 s,@xcbincludedir@,\\$$\{prefix\}/share/xcb,; \ 320 s,@fontrootdir@,\\$$\{libdir\}/X11/fonts,; \ 321 s,@LIBXML2_LIBS@,,; \ 322 s,@LIBXML2_CFLAGS@,,; \ 323 s,@ICONV_CFLAGS@,,; \ 324 s,@ICONV_LIBS@,,; \ 325 s,@NEEDED@,,; \ 326 s,@FT2_EXTRA_LIBS@,," \ 327 -e "s,@moduledir@,\\$$\{libdir\}/modules,; \ 328 s,@sdkdir@,\\$$\{includedir\}/xorg,; \ 329 s,@PIXMAN_CFLAGS@,,; \ 330 s,@LIB_DIR@,/lib,; \ 331 s,@INSTALL_LIB_DIR@,\\$$\{prefix\}/lib,; \ 332 s,@INSTALL_INC_DIR@,\\$$\{prefix\}/include,; \ 333 s,@XKBPROTO_REQUIRES@,kbproto,; \ 334 s,@XCBPROTO_VERSION@,1.7,; \ 335 s,@FREETYPE_REQUIRES@,freetype2,; \ 336 s,@EXPAT_LIBS@,-lexpat,; \ 337 s,@FREETYPE_LIBS@,-lfreetype,; \ 338 s,@DEP_CFLAGS@,,; \ 339 s,@DEP_LIBS@,,; \ 340 s,@X11_EXTRA_DEPS@,,; \ 341 s,@XTHREAD_CFLAGS@,-D_REENTRANT,; \ 342 s,@XTHREADLIB@,-lpthread,; \ 343 s,@GL_LIB@,GL,; \ 344 s,@GL_PC_REQ_PRIV@,x11 xext,; \ 345 s,@GL_PC_LIB_PRIV@,-lm -lpthread,; \ 346 s,@GL_PC_CFLAGS@,,; \ 347 s,@GLX_TLS@,no," \ 348 -e "s,@GLU_LIB@,GLU,; \ 349 s,@GLU_PC_REQ@,gl,; \ 350 s,@GLU_PC_REQ_PRIV@,,; \ 351 s,@GLU_PC_LIB_PRIV@,-lGLU,; \ 352 s,@GLU_PC_CFLAGS@,,; \ 353 s,@GLUT_LIB@,glut,; \ 354 s,@GLUT_PC_REQ_PRIV@,gl glu,; \ 355 s,@GLUT_PC_LIB_PRIV@,-lglut,; \ 356 s,@GLUT_PC_CFLAGS@,,; \ 357 s,@GLW_PC_CFLAGS@,,; \ 358 s,@GLW_PC_REQ_PRIV@,x11 xt,; \ 359 s,@GLW_PC_LIB_PRIV@,,; \ 360 s,@DRI_DRIVER_DIR@,\\$$\{libdir\}/modules/dri,; \ 361 s,@DRI_PC_REQ_PRIV@,,; \ 362 s,@GLW_LIB@,GLw,; \ 363 s,@GBM_PC_REQ_PRIV@,,; \ 364 s,@GBM_PC_LIB_PRIV@,,; \ 365 s,@abi_ansic@,0.4,; \ 366 s,@abi_videodrv@,5.0,; \ 367 s,@abi_xinput@,4.0,; \ 368 s,@abi_extension@,2.0,; \ 369 s,@abi_font@,0.6,; \ 370 s,@fchown_define@,-DHAS_FCHOWN,; \ 371 s,@sticky_bit_define@,-DHAS_STICKY_DIR_BIT,;" \ 372 -e "s,@PKG_CONFIG_LIBS@,${PKG_CONFIG_LIBS},; \ 373 s,@PACKAGE@,${PKGDIST},; \ 374 s,@PKGCONFIG_REQUIRES@,${PKGCONFIG_REQUIRES},; \ 375 s,@PKGCONFIG_REQUIRES_PRIVATELY@,${PKGCONFIG_REQUIRES_PRIVATELY},; \ 376 s,@ERRORDBDIR@,${X11LIBDIR},; \ 377 s,@EXPAT_CFLAGS@,,; \ 378 s,@FREETYPE_CFLAGS@,-I${X11ROOTDIR}/include/freetype2 -I${X11ROOTDIR}/include,;" \ 379 -e '/^Libs:/ s%-L\([^ ]*\)%-Wl,-rpath,\1 &%g' \ 380 < ${.IMPSRC} > ${.TARGET}.tmp 381 if ${_X11SKIP_FALSE_POSITIVE_GREP_CMD}; then \ 382 echo "pkg-config ${.TARGET} matches @.*@, probably missing updates" 1>&2; \ 383 false; \ 384 else \ 385 ${MV} ${.TARGET}.tmp ${.TARGET}; \ 386 fi 387 388 CLEANFILES+= ${_PKGCONFIG_FILES} ${_PKGCONFIG_FILES:C/$/.tmp/} 389 .endif 390 391 # 392 # APPDEFS (app defaults) handling 393 # 394 .if defined(APPDEFS) # { 395 appdefsinstall:: .PHONY ${APPDEFS:@S@${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}@} 396 .PRECIOUS: ${APPDEFS:@S@${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}@} 397 398 __appdefinstall: .USE 399 ${_MKTARGET_INSTALL} 400 ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \ 401 ${.ALLSRC} ${.TARGET} 402 403 .for S in ${APPDEFS:O:u} 404 ${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}: ${S} __appdefinstall 405 .endfor 406 407 realinstall: appdefsinstall 408 .endif # } 409 410 411 # 412 # .man page handling 413 # 414 .if (${MKMAN} != "no" && (${MAN:U} != "" || ${PROG:U} != "")) # { 415 CLEANDIRFILES+= ${MAN:U${PROG:D${PROG.1}}} 416 .endif # } 417 418 .SUFFIXES: .man .man.pre .1 .3 .4 .5 .7 .8 419 420 # Note the escaping trick for _X11MANTRANSFORM using % to replace spaces 421 XORGVERSION= '"X Version 11"' 422 423 _X11MANTRANSFORM= \ 424 ${X11EXTRAMANTRANSFORMS} 425 426 # These ones used to appear as __foo__ but may be now @foo@. 427 _X11MANTRANSFORMS_BOTH=\ 428 ${X11EXTRAMANTRANSFORMS_BOTH} \ 429 appmansuffix 1 \ 430 APP_MAN_SUFFIX 1 \ 431 LIB_MAN_SUFFIX 3 \ 432 libmansuffix 3 \ 433 oslibmansuffix 3 \ 434 drivermansuffix 4 \ 435 filemansuffix 5 \ 436 MISC_MAN_SUFFIX 7 \ 437 miscmansuffix 7 \ 438 adminmansuffix 8 \ 439 XORG_MAN_PAGE "X Version 11" \ 440 logdir /var/log \ 441 sysconfdir /etc \ 442 apploaddir ${X11ROOTDIR}/lib/X11/app-defaults \ 443 bindir ${X11BINDIR} \ 444 datadir ${X11LIBDIR} \ 445 libdir ${X11ROOTDIR}/lib \ 446 mandir ${X11MANDIR} \ 447 projectroot ${X11ROOTDIR} \ 448 xkbconfigroot ${X11LIBDIR}/xkb \ 449 vendorversion ${XORGVERSION:C/ /%/gW} \ 450 XCONFIGFILE xorg.conf \ 451 xconfigfile xorg.conf \ 452 XCONFIGFILEMAN 'xorg.conf(5)' \ 453 xlocaledir ${X11LIBDIR}/locale \ 454 xorgversion ${XORGVERSION:C/ /%/gW} \ 455 XSERVERNAME Xorg \ 456 xservername Xorg 457 458 .if !empty(PACKAGE_STRING) 459 _X11MANTRANSFORMS_BOTH+=\ 460 PACKAGE_STRING ${PACKAGE_STRING} 461 .endif 462 463 .for __def__ __value__ in ${_X11MANTRANSFORMS_BOTH} 464 _X11MANTRANSFORM+= \ 465 __${__def__}__ ${__value__} \ 466 @${__def__}@ ${__value__} 467 .endfor 468 469 _X11MANTRANSFORM+= \ 470 471 _X11MANTRANSFORMCMD= ${TOOL_SED} -e 's/\\$$/\\ /' ${.IMPSRC} 472 473 # XXX document me. 474 X11MANCPP?= no 475 476 .if ${X11MANCPP} != "no" 477 _X11MANTRANSFORMCMD+= | ${CC} -E -undef -traditional - 478 . for __def__ __value__ in ${_X11MANTRANSFORM} 479 _X11MANTRANSFORMCMD+= -D${__def__}=${__value__:C/%/ /gW} 480 . endfor 481 .else 482 _X11MANTRANSFORMCMD+= | ${TOOL_SED} 483 . for __def__ __value__ in ${_X11MANTRANSFORM} 484 _X11MANTRANSFORMCMD+= -e s,${__def__},${__value__:C/%/ /gW},g 485 . endfor 486 .endif 487 _X11MANTRANSFORMCMD+= ${X11EXTRAMANDEFS} 488 489 .man.1 .man.3 .man.4 .man.5 .man.7 .man.8 .man.pre.1 .man.pre.4 .man.pre.5: 490 ${_MKTARGET_CREATE} 491 rm -f ${.TARGET} 492 ${_X11MANTRANSFORMCMD} | ${X11TOOL_UNXCOMM} > ${.TARGET}.tmp 493 if ${_X11SKIP_FALSE_POSITIVE_GREP_CMD}; then \ 494 echo "manual ${.TARGET} matches @.*@, probably missing updates" 1>&2; \ 495 false; \ 496 else \ 497 ${MV} ${.TARGET}.tmp ${.TARGET}; \ 498 fi 499 500 ##### Pull in related .mk logic 501 .include <bsd.clean.mk> 502