1# $NetBSD: bsd.x11.mk,v 1.151 2023/10/25 04:37:59 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 -DXF86MISC -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 ${MACHINE} == "vax") 88# EXT_DEFINES 89X11FLAGS.EXTENSION+= -DXF86VIDMODE 90 91X11FLAGS.DIX+= -DDBE -DXRECORD -DPRESENT 92 93# ServerDefines 94X11FLAGS.SERVER+= -DXFreeXDGA -DXF86VIDMODE 95X11FLAGS.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 105X11FLAGS.SERVER+= -D_XSERVER64 106X11FLAGS.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" 123X11FLAGS.LOADABLE= -DXFree86LOADER 124.endif 125X11FLAGS.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" 130XORG_SERVER_MAJOR= 1 131XORG_SERVER_MINOR= 10 132XORG_SERVER_TEENY= 6 133XORG_VERSION_CURRENT="(((${XORG_SERVER_MAJOR}) * 10000000) + ((${XORG_SERVER_MINOR}) * 100000) + ((${XORG_SERVER_TEENY}) * 1000) + 0)" 134.else 135XORG_SERVER_MAJOR= 21 136XORG_SERVER_MINOR= 1 137XORG_SERVER_TEENY= 9 138XORG_VERSION_CURRENT="((10000000) + ((${XORG_SERVER_MAJOR}) * 100000) + ((${XORG_SERVER_MINOR}) * 1000) + ${XORG_SERVER_TEENY})" 139.endif 140 141XVENDORNAMESHORT= '"X.Org"' 142XVENDORNAME= '"The X.Org Foundation"' 143XORG_RELEASE= '"Release ${XORG_SERVER_MAJOR}.${XORG_SERVER_MINOR}.${XORG_SERVER_TEENY}"' 144__XKBDEFRULES__= '"xorg"' 145XLOCALE.DEFINES= -DXLOCALEDIR=\"${X11LIBDIR}/locale\" \ 146 -DXLOCALELIBDIR=\"${X11LIBDIR}/locale\" 147 148PRINT_PACKAGE_VERSION= awk '/^PACKAGE_VERSION=/ { \ 149 match($$1, "([0-9]+\\.)+[0-9]+"); \ 150 version = substr($$1, RSTART, RLENGTH); \ 151 } END { print version }' 152 153 154# Commandline to convert 'XCOMM' comments and 'XHASH' to '#', among other 155# things. Transformed from the "CppSedMagic" macro from "Imake.rules". 156# 157X11TOOL_UNXCOMM= ${TOOL_SED} -e '/^\# *[0-9][0-9]* *.*$$/d' \ 158 -e '/^\#line *[0-9][0-9]* *.*$$/d' \ 159 -e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \ 160 -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \ 161 -e '/^[ ]*XHASH/s/XHASH/\#/' \ 162 -e '/\@\@$$/s/\@\@$$/\\/' 163 164 165CPPFLAGS+= -DCSRG_BASED -DFUNCPROTO=15 -DNARROWPROTO 166CPPFLAGS+= -I${DESTDIR}${X11INCDIR} 167 168.if ${MACHINE_ARCH} == "x86_64" 169CPPFLAGS+= -D__AMD64__ 170.endif 171 172LDFLAGS+= -Wl,-rpath,${X11USRLIBDIR} -L=${X11USRLIBDIR} 173 174 175# 176# .cpp -> "" handling 177# CPPSCRIPTS list of files/scripts to run through cpp 178# CPPSCRIPTFLAGS extra flags to ${CPP} 179# CPPSCRIPTFLAGS_fn extra flags to ${CPP} for file `fn' 180# 181.if defined(CPPSCRIPTS) # { 182.SUFFIXES: .cpp 183 184.cpp: 185 ${_MKTARGET_CREATE} 186 rm -f ${.TARGET} 187 ${CC} -E -undef -traditional - \ 188 ${CPPSCRIPTFLAGS_${.TARGET}:U${CPPSCRIPTFLAGS}} \ 189 < ${.IMPSRC} | ${X11TOOL_UNXCOMM} > ${.TARGET} 190 191realall: ${CPPSCRIPTS} 192 193CLEANFILES+= ${CPPSCRIPTS} 194.endif # } 195 196# Used by pkg-config and manual handling to ensure we picked up all 197# the necessary changes. 198# 199# Skip any line that starts with .IN (old X11 indexing method), 200# or between a tab(@) and .TE. 201_X11SKIP_FALSE_POSITIVE_GREP_CMD= \ 202 ${TOOL_SED} -e '/tab(@)/,/^\.TE/d' -e '/^\.IN /d' ${.TARGET}.tmp | \ 203 ${TOOL_GREP} -E '@([^ ]+)@' 204 205# 206# X.Org pkgconfig files handling 207# 208# PKGCONFIG is expected to contain a list of pkgconfig module names. 209# They will produce the files <module1>.pc, <module2>.pc, etc, to be 210# put in X11USRLIBDIR/pkgconfig. 211# 212# PKGDIST contains the name of a X11SRCDIR subscript where to find the 213# source file for the pkgconfig files. 214# 215# If PKGDIST is not suitable, a consumer can set PKGDIST.<module> with 216# the full path to the source file. 217# 218# Also, the consumer can use PKGDIST alone, and a PKGCONFIG will be 219# derived from it. Many times, PKGDIST is capitalized and PKGCONFIG is 220# the lower case version. 221# 222 223.if defined(PKGDIST) && !defined(PKGCONFIG) 224PKGCONFIG= ${PKGDIST:tl} 225.endif 226.if defined(PKGCONFIG) && !defined(MLIBDIR) 227 228.include <bsd.files.mk> 229 230_PKGCONFIG_FILES= ${PKGCONFIG:C/$/.pc/} 231 232.PHONY: pkgconfig-install 233pkgconfig-install: 234 235realall: ${_PKGCONFIG_FILES:O:u} 236realinstall: pkgconfig-install 237 238.for _pkg in ${PKGCONFIG:O:u} # { 239 240PKGDIST.${_pkg}?= ${X11SRCDIR.${PKGDIST:U${_pkg}}} 241_PKGDEST.${_pkg}= ${DESTDIR}${X11USRLIBDIR}/pkgconfig/${_pkg}.pc 242 243.PATH: ${PKGDIST.${_pkg}} 244 245FILESOWN_${_pkg}.pc= ${BINOWN} 246FILESGRP_${_pkg}.pc= ${BINGRP} 247FILESMODE_${_pkg}.pc= ${NONBINMODE} 248 249${_PKGDEST.${_pkg}}: ${_pkg}.pc __fileinstall 250pkgconfig-install: ${_PKGDEST.${_pkg}} 251 252# Add a dependancy on the configure file if it exists; this way we 253# will rebuild the .pc file if the version in configure changes. 254.if exists(${PKGDIST.${_pkg}}/configure) 255${_pkg}.pc: ${PKGDIST.${_pkg}}/configure Makefile 256.endif 257 258.endfor # } 259 260# XXX 261# The sed script is very, very ugly. What we actually need is a 262# mknative-xorg script that will generate all the .pc files from 263# running the autoconfigure script. 264# And yes, it has to be split in multiple parts otherwise it's 265# too long for sed to handle. 266 267# hacky transforms: 268# @XCBPROTO_VERSION@ 269 270.SUFFIXES: .pc.in .pc 271.pc.in.pc: 272 ${_MKTARGET_CREATE} 273 rm -f ${.TARGET} 274 if [ -n '${PKGCONFIG_VERSION.${.PREFIX}}' ]; then \ 275 _pkg_version='${PKGCONFIG_VERSION.${.PREFIX}}'; \ 276 else \ 277 _pkg_version=$$(${PRINT_PACKAGE_VERSION} \ 278 ${PKGDIST.${.PREFIX}}/configure); \ 279 fi; \ 280 ${TOOL_SED} \ 281 ${PKGCONFIG_SED_FLAGS} \ 282 -e "s,@prefix@,${X11ROOTDIR},; \ 283 s,@INSTALL_DIR@,${X11ROOTDIR},; \ 284 s,@exec_prefix@,\\$$\{prefix\},; \ 285 s,@libdir@,\\$$\{prefix\}/lib,; \ 286 s,@includedir@,\\$$\{prefix\}/include,; \ 287 s,@datarootdir@,\\$$\{prefix\}/share,; \ 288 s,@datadir@,\\$$\{datarootdir\},; \ 289 s,@appdefaultdir@,\\$$\{libdir}/X11/app-defaults,; \ 290 s,@MAPDIR@,\\$$\{libdir\}/X11/fonts/util,; \ 291 s,@ICONDIR@,\\$$\{datarootdir\}/icons,; \ 292 s,@PACKAGE_VERSION@,$${_pkg_version},; \ 293 s,@VERSION@,$${_pkg_version},; \ 294 s,@COMPOSITEEXT_VERSION@,$${_pkg_version%.*},; \ 295 s,@DAMAGEEXT_VERSION@,$${_pkg_version%.*},; \ 296 s,@FIXESEXT_VERSION@,$${_pkg_version%.*},; \ 297 s,@PRESENTEXT_VERSION@,$${_pkg_version%.*},; \ 298 s,@RANDR_VERSION@,$${_pkg_version%.*},; \ 299 s,@RENDER_VERSION@,$${_pkg_version%.*}," \ 300 -e "s,@LIBS@,,; \ 301 s,@Z_LIBS@,-lz,; \ 302 s,@LIBZ@,-lz,; \ 303 s,@LIBBZ2@,-lbz2,; \ 304 s,@xkb_base@,\\$$\{prefix\}/lib/X11/xkb,; \ 305 s,@xcbincludedir@,\\$$\{prefix\}/share/xcb,; \ 306 s,@fontrootdir@,\\$$\{libdir\}/X11/fonts,; \ 307 s,@LIBXML2_LIBS@,,; \ 308 s,@LIBXML2_CFLAGS@,,; \ 309 s,@ICONV_CFLAGS@,,; \ 310 s,@ICONV_LIBS@,,; \ 311 s,@NEEDED@,,; \ 312 s,@FT2_EXTRA_LIBS@,," \ 313 -e "s,@moduledir@,\\$$\{libdir\}/modules,; \ 314 s,@sdkdir@,\\$$\{includedir\}/xorg,; \ 315 s,@PIXMAN_CFLAGS@,,; \ 316 s,@LIB_DIR@,/lib,; \ 317 s,@INSTALL_LIB_DIR@,\\$$\{prefix\}/lib,; \ 318 s,@INSTALL_INC_DIR@,\\$$\{prefix\}/include,; \ 319 s,@XKBPROTO_REQUIRES@,kbproto,; \ 320 s,@XCBPROTO_VERSION@,1.7,; \ 321 s,@FREETYPE_REQUIRES@,freetype2,; \ 322 s,@EXPAT_LIBS@,-lexpat,; \ 323 s,@FREETYPE_LIBS@,-lfreetype,; \ 324 s,@DEP_CFLAGS@,,; \ 325 s,@DEP_LIBS@,,; \ 326 s,@X11_EXTRA_DEPS@,,; \ 327 s,@XTHREAD_CFLAGS@,-D_REENTRANT,; \ 328 s,@XTHREADLIB@,-lpthread,; \ 329 s,@GL_LIB@,GL,; \ 330 s,@GL_PC_REQ_PRIV@,x11 xext,; \ 331 s,@GL_PC_LIB_PRIV@,-lm -lpthread,; \ 332 s,@GL_PC_CFLAGS@,,; \ 333 s,@GLX_TLS@,no," \ 334 -e "s,@GLU_LIB@,GLU,; \ 335 s,@GLU_PC_REQ@,gl,; \ 336 s,@GLU_PC_REQ_PRIV@,,; \ 337 s,@GLU_PC_LIB_PRIV@,-lGLU,; \ 338 s,@GLU_PC_CFLAGS@,,; \ 339 s,@GLUT_LIB@,glut,; \ 340 s,@GLUT_PC_REQ_PRIV@,gl glu,; \ 341 s,@GLUT_PC_LIB_PRIV@,-lglut,; \ 342 s,@GLUT_PC_CFLAGS@,,; \ 343 s,@GLW_PC_CFLAGS@,,; \ 344 s,@GLW_PC_REQ_PRIV@,x11 xt,; \ 345 s,@GLW_PC_LIB_PRIV@,,; \ 346 s,@DRI_DRIVER_DIR@,\\$$\{libdir\}/modules/dri,; \ 347 s,@DRI_PC_REQ_PRIV@,,; \ 348 s,@GLW_LIB@,GLw,; \ 349 s,@GBM_PC_REQ_PRIV@,,; \ 350 s,@GBM_PC_LIB_PRIV@,,; \ 351 s,@abi_ansic@,0.4,; \ 352 s,@abi_videodrv@,5.0,; \ 353 s,@abi_xinput@,4.0,; \ 354 s,@abi_extension@,2.0,; \ 355 s,@abi_font@,0.6,; \ 356 s,@fchown_define@,-DHAS_FCHOWN,; \ 357 s,@sticky_bit_define@,-DHAS_STICKY_DIR_BIT,;" \ 358 -e "s,@PKG_CONFIG_LIBS@,${PKG_CONFIG_LIBS},; \ 359 s,@PACKAGE@,${PKGDIST},; \ 360 s,@PKGCONFIG_REQUIRES@,${PKGCONFIG_REQUIRES},; \ 361 s,@PKGCONFIG_REQUIRES_PRIVATELY@,${PKGCONFIG_REQUIRES_PRIVATELY},; \ 362 s,@ERRORDBDIR@,${X11LIBDIR},; \ 363 s,@EXPAT_CFLAGS@,,; \ 364 s,@FREETYPE_CFLAGS@,-I${X11ROOTDIR}/include/freetype2 -I${X11ROOTDIR}/include,;" \ 365 -e '/^Libs:/ s%-L\([^ ]*\)%-Wl,-rpath,\1 &%g' \ 366 < ${.IMPSRC} > ${.TARGET}.tmp 367 if ${_X11SKIP_FALSE_POSITIVE_GREP_CMD}; then \ 368 echo "pkg-config ${.TARGET} matches @.*@, probably missing updates" 1>&2; \ 369 false; \ 370 else \ 371 ${MV} ${.TARGET}.tmp ${.TARGET}; \ 372 fi 373 374CLEANFILES+= ${_PKGCONFIG_FILES} ${_PKGCONFIG_FILES:C/$/.tmp/} 375.endif 376 377# 378# APPDEFS (app defaults) handling 379# 380.if defined(APPDEFS) # { 381appdefsinstall:: .PHONY ${APPDEFS:@S@${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}@} 382.PRECIOUS: ${APPDEFS:@S@${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}@} 383 384__appdefinstall: .USE 385 ${_MKTARGET_INSTALL} 386 ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \ 387 ${.ALLSRC} ${.TARGET} 388 389.for S in ${APPDEFS:O:u} 390${DESTDIR}${X11LIBDIR}/app-defaults/${S:T:R}: ${S} __appdefinstall 391.endfor 392 393realinstall: appdefsinstall 394.endif # } 395 396 397# 398# .man page handling 399# 400.if (${MKMAN} != "no" && (${MAN:U} != "" || ${PROG:U} != "")) # { 401CLEANDIRFILES+= ${MAN:U${PROG:D${PROG.1}}} 402.endif # } 403 404.SUFFIXES: .man .man.pre .1 .3 .4 .5 .7 405 406# Note the escaping trick for _X11MANTRANSFORM using % to replace spaces 407XORGVERSION= '"X Version 11"' 408 409_X11MANTRANSFORM= \ 410 ${X11EXTRAMANTRANSFORMS} 411 412# These ones used to appear as __foo__ but may be now @foo@. 413_X11MANTRANSFORMS_BOTH=\ 414 ${X11EXTRAMANTRANSFORMS_BOTH} \ 415 appmansuffix 1 \ 416 LIB_MAN_SUFFIX 3 \ 417 libmansuffix 3 \ 418 oslibmansuffix 3 \ 419 drivermansuffix 4 \ 420 filemansuffix 5 \ 421 miscmansuffix 7 \ 422 adminmansuffix 8 \ 423 logdir /var/log \ 424 sysconfdir /etc \ 425 apploaddir ${X11ROOTDIR}/lib/X11/app-defaults \ 426 bindir ${X11BINDIR} \ 427 datadir ${X11LIBDIR} \ 428 libdir ${X11ROOTDIR}/lib \ 429 mandir ${X11MANDIR} \ 430 projectroot ${X11ROOTDIR} \ 431 xkbconfigroot ${X11LIBDIR}/xkb \ 432 vendorversion ${XORGVERSION:C/ /%/gW} \ 433 XCONFIGFILE xorg.conf \ 434 xconfigfile xorg.conf \ 435 XCONFIGFILEMAN 'xorg.conf(5)' \ 436 xlocaledir ${X11LIBDIR}/locale \ 437 xorgversion ${XORGVERSION:C/ /%/gW} \ 438 XSERVERNAME Xorg \ 439 xservername Xorg 440 441.for __def__ __value__ in ${_X11MANTRANSFORMS_BOTH} 442_X11MANTRANSFORM+= \ 443 __${__def__}__ ${__value__} \ 444 @${__def__}@ ${__value__} 445.endfor 446 447_X11MANTRANSFORM+= \ 448 449_X11MANTRANSFORMCMD= ${TOOL_SED} -e 's/\\$$/\\ /' ${.IMPSRC} 450 451# XXX document me. 452X11MANCPP?= no 453 454.if ${X11MANCPP} != "no" 455_X11MANTRANSFORMCMD+= | ${CC} -E -undef -traditional - 456. for __def__ __value__ in ${_X11MANTRANSFORM} 457_X11MANTRANSFORMCMD+= -D${__def__}=${__value__:C/%/ /gW} 458. endfor 459.else 460_X11MANTRANSFORMCMD+= | ${TOOL_SED} 461. for __def__ __value__ in ${_X11MANTRANSFORM} 462_X11MANTRANSFORMCMD+= -e s,${__def__},${__value__:C/%/ /gW},g 463. endfor 464.endif 465_X11MANTRANSFORMCMD+= ${X11EXTRAMANDEFS} 466 467.man.1 .man.3 .man.4 .man.5 .man.7 .man.pre.1 .man.pre.4 .man.pre.5: 468 ${_MKTARGET_CREATE} 469 rm -f ${.TARGET} 470 ${_X11MANTRANSFORMCMD} | ${X11TOOL_UNXCOMM} > ${.TARGET}.tmp 471 if ${_X11SKIP_FALSE_POSITIVE_GREP_CMD}; then \ 472 echo "manual ${.TARGET} matches @.*@, probably missing updates" 1>&2; \ 473 false; \ 474 else \ 475 ${MV} ${.TARGET}.tmp ${.TARGET}; \ 476 fi 477 478##### Pull in related .mk logic 479.include <bsd.clean.mk> 480