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