bsd.own.mk revision 263951
11590Srgrimes# $FreeBSD: head/share/mk/bsd.own.mk 263951 2014-03-30 22:24:53Z imp $ 21590Srgrimes# 31590Srgrimes# The include file <bsd.own.mk> set common variables for owner, 41590Srgrimes# group, mode, and directories. Defaults are in brackets. 51590Srgrimes# 61590Srgrimes# 71590Srgrimes# +++ variables +++ 81590Srgrimes# 91590Srgrimes# DESTDIR Change the tree where the file gets installed. [not set] 101590Srgrimes# 111590Srgrimes# DISTDIR Change the tree where the file for a distribution 121590Srgrimes# gets installed (see /usr/src/release/Makefile). [not set] 131590Srgrimes# 141590Srgrimes# COMPRESS_CMD Program to compress documents. 151590Srgrimes# Output is to stdout. [gzip -cn] 161590Srgrimes# 171590Srgrimes# COMPRESS_EXT File name extension of ${COMPRESS_CMD} command. [.gz] 181590Srgrimes# 191590Srgrimes# BINOWN Binary owner. [root] 201590Srgrimes# 211590Srgrimes# BINGRP Binary group. [wheel] 221590Srgrimes# 231590Srgrimes# BINMODE Binary mode. [555] 241590Srgrimes# 251590Srgrimes# NOBINMODE Mode for non-executable files. [444] 261590Srgrimes# 271590Srgrimes# LIBDIR Base path for libraries. [/usr/lib] 281590Srgrimes# 291590Srgrimes# LIBCOMPATDIR Base path for compat libraries. [/usr/lib/compat] 3087707Smarkm# 3187707Smarkm# LIBPRIVATEDIR Base path for private libraries. [/usr/lib/private] 3287707Smarkm# 3387707Smarkm# LIBDATADIR Base path for misc. utility data files. [/usr/libdata] 341590Srgrimes# 3587707Smarkm# LIBEXECDIR Base path for system daemons and utilities. [/usr/libexec] 361590Srgrimes# 371590Srgrimes# LINTLIBDIR Base path for lint libraries. [/usr/libdata/lint] 3887707Smarkm# 391590Srgrimes# SHLIBDIR Base path for shared libraries. [${LIBDIR}] 401590Srgrimes# 4187707Smarkm# LIBOWN Library owner. [${BINOWN}] 4265428Simp# 431590Srgrimes# LIBGRP Library group. [${BINGRP}] 44200462Sdelphij# 45200462Sdelphij# LIBMODE Library mode. [${NOBINMODE}] 461590Srgrimes# 475080Sache# 481590Srgrimes# DEBUGDIR Base path for standalone debug files. [/usr/lib/debug] 491590Srgrimes# 5078718Sdd# DEBUGMODE Mode for debug files. [${NOBINMODE}] 511590Srgrimes# 521590Srgrimes# 535080Sache# KMODDIR Base path for loadable kernel modules 543031Sdg# (see kld(4)). [/boot/kernel] 553031Sdg# 5692922Simp# KMODOWN Kernel and KLD owner. [${BINOWN}] 5792922Simp# 5892922Simp# KMODGRP Kernel and KLD group. [${BINGRP}] 591590Srgrimes# 601590Srgrimes# KMODMODE KLD mode. [${BINMODE}] 61102944Sdwmalone# 621590Srgrimes# 631590Srgrimes# SHAREDIR Base path for architecture-independent ascii 6487707Smarkm# text files. [/usr/share] 6587707Smarkm# 661590Srgrimes# SHAREOWN ASCII text file owner. [root] 671590Srgrimes# 6824360Simp# SHAREGRP ASCII text file group. [wheel] 691590Srgrimes# 701590Srgrimes# SHAREMODE ASCII text file mode. [${NOBINMODE}] 711590Srgrimes# 721590Srgrimes# 731590Srgrimes# CONFDIR Base path for configuration files. [/etc] 741590Srgrimes# 751590Srgrimes# CONFOWN Configuration file owner. [root] 761590Srgrimes# 771590Srgrimes# CONFGRP Configuration file group. [wheel] 781590Srgrimes# 791590Srgrimes# CONFMODE Configuration file mode. [644] 80163283Sru# 81163283Sru# 82163283Sru# DOCDIR Base path for system documentation (e.g. PSD, USD, 831590Srgrimes# handbook, FAQ etc.). [${SHAREDIR}/doc] 841590Srgrimes# 851590Srgrimes# DOCOWN Documentation owner. [${SHAREOWN}] 8698218Stjr# 871590Srgrimes# DOCGRP Documentation group. [${SHAREGRP}] 881590Srgrimes# 891590Srgrimes# DOCMODE Documentation mode. [${NOBINMODE}] 901590Srgrimes# 911590Srgrimes# 921590Srgrimes# INFODIR Base path for GNU's hypertext system 931590Srgrimes# called Info (see info(1)). [${SHAREDIR}/info] 941590Srgrimes# 951590Srgrimes# INFOOWN Info owner. [${SHAREOWN}] 961590Srgrimes# 971590Srgrimes# INFOGRP Info group. [${SHAREGRP}] 985080Sache# 991590Srgrimes# INFOMODE Info mode. [${NOBINMODE}] 1005080Sache# 1015080Sache# 1025080Sache# MANDIR Base path for manual installation. [${SHAREDIR}/man/man] 1031590Srgrimes# 1041590Srgrimes# MANOWN Manual owner. [${SHAREOWN}] 1051590Srgrimes# 1061590Srgrimes# MANGRP Manual group. [${SHAREGRP}] 1071590Srgrimes# 1081590Srgrimes# MANMODE Manual mode. [${NOBINMODE}] 1091590Srgrimes# 1101590Srgrimes# 1111590Srgrimes# NLSDIR Base path for National Language Support files 1121590Srgrimes# installation. [${SHAREDIR}/nls] 1131590Srgrimes# 1141590Srgrimes# NLSOWN National Language Support files owner. [${SHAREOWN}] 1151590Srgrimes# 1161590Srgrimes# NLSGRP National Language Support files group. [${SHAREGRP}] 1171590Srgrimes# 1181590Srgrimes# NLSMODE National Language Support files mode. [${NOBINMODE}] 1191590Srgrimes# 120102944Sdwmalone# INCLUDEDIR Base path for standard C include files [/usr/include] 1211590Srgrimes 1221590Srgrimes.if !target(__<bsd.own.mk>__) 1231590Srgrimes__<bsd.own.mk>__: 1241590Srgrimes 1251590Srgrimes.if !defined(_WITHOUT_SRCCONF) 1261590SrgrimesSRCCONF?= /etc/src.conf 1271590Srgrimes.if exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf" 1281590Srgrimes.include "${SRCCONF}" 1291590Srgrimes.endif 1301590Srgrimes.endif 1311590Srgrimes 1321590Srgrimes# Binaries 133102944SdwmaloneBINOWN?= root 1341590SrgrimesBINGRP?= wheel 13590165SkrisBINMODE?= 555 1361590SrgrimesNOBINMODE?= 444 13790165Skris 1381590Srgrimes.if defined(MODULES_WITH_WORLD) 13990165SkrisKMODDIR?= /boot/modules 1401590Srgrimes.else 1411590SrgrimesKMODDIR?= /boot/kernel 1421590Srgrimes.endif 1431590SrgrimesKMODOWN?= ${BINOWN} 1441590SrgrimesKMODGRP?= ${BINGRP} 1451590SrgrimesKMODMODE?= ${BINMODE} 1461590Srgrimes 1471590SrgrimesLIBDIR?= /usr/lib 1481590SrgrimesLIBCOMPATDIR?= /usr/lib/compat 1491590SrgrimesLIBPRIVATEDIR?= /usr/lib/private 1501590SrgrimesLIBDATADIR?= /usr/libdata 1511590SrgrimesLIBEXECDIR?= /usr/libexec 1521590SrgrimesLINTLIBDIR?= /usr/libdata/lint 1531590SrgrimesSHLIBDIR?= ${LIBDIR} 1541590SrgrimesLIBOWN?= ${BINOWN} 1551590SrgrimesLIBGRP?= ${BINGRP} 1561590SrgrimesLIBMODE?= ${NOBINMODE} 1571590Srgrimes 1581590SrgrimesDEBUGDIR?= /usr/lib/debug 1591590SrgrimesDEBUGMODE?= ${NOBINMODE} 1601590Srgrimes 1611590Srgrimes 1621590Srgrimes# Share files 16397763SacheSHAREDIR?= /usr/share 16497763SacheSHAREOWN?= root 16597763SacheSHAREGRP?= wheel 16697763SacheSHAREMODE?= ${NOBINMODE} 16797763Sache 1681590SrgrimesCONFDIR?= /etc 1691590SrgrimesCONFOWN?= root 1701590SrgrimesCONFGRP?= wheel 1711590SrgrimesCONFMODE?= 644 17224542Sjmg 1731590SrgrimesMANDIR?= ${SHAREDIR}/man/man 1741590SrgrimesMANOWN?= ${SHAREOWN} 1751590SrgrimesMANGRP?= ${SHAREGRP} 1761590SrgrimesMANMODE?= ${NOBINMODE} 1771590Srgrimes 1781590SrgrimesDOCDIR?= ${SHAREDIR}/doc 1791590SrgrimesDOCOWN?= ${SHAREOWN} 1801590SrgrimesDOCGRP?= ${SHAREGRP} 1811590SrgrimesDOCMODE?= ${NOBINMODE} 1821590Srgrimes 1831590SrgrimesINFODIR?= ${SHAREDIR}/info 1841590SrgrimesINFOOWN?= ${SHAREOWN} 1851590SrgrimesINFOGRP?= ${SHAREGRP} 1861590SrgrimesINFOMODE?= ${NOBINMODE} 1871590Srgrimes 1881590SrgrimesNLSDIR?= ${SHAREDIR}/nls 1891590SrgrimesNLSOWN?= ${SHAREOWN} 1901590SrgrimesNLSGRP?= ${SHAREGRP} 1911590SrgrimesNLSMODE?= ${NOBINMODE} 1921590Srgrimes 1931590SrgrimesINCLUDEDIR?= /usr/include 1941590Srgrimes 1951590Srgrimes# 1961590Srgrimes# install(1) parameters. 1971590Srgrimes# 1981590SrgrimesHRDLINK?= -l h 1991590SrgrimesSYMLINK?= -l s 2001590Srgrimes 2011590SrgrimesINSTALL_LINK?= ${INSTALL} ${HRDLINK} 2021590SrgrimesINSTALL_SYMLINK?= ${INSTALL} ${SYMLINK} 2031590Srgrimes 2041590Srgrimes# Common variables 2051590Srgrimes.if !defined(DEBUG_FLAGS) 2061590SrgrimesSTRIP?= -s 2071590Srgrimes.endif 208102944Sdwmalone 2091590SrgrimesCOMPRESS_CMD?= gzip -cn 2101590SrgrimesCOMPRESS_EXT?= .gz 21198218Stjr 2121590Srgrimes.if !defined(_WITHOUT_SRCCONF) 213# 214# Define MK_* variables (which are either "yes" or "no") for users 215# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the 216# make(1) environment. 217# These should be tested with `== "no"' or `!= "no"' in makefiles. 218# The NO_* variables should only be set by makefiles. 219# 220 221# 222# Supported NO_* options (if defined, MK_* will be forced to "no", 223# regardless of user's setting). 224# 225.for var in \ 226 CTF \ 227 DEBUG_FILES \ 228 INSTALLLIB \ 229 MAN \ 230 PROFILE 231.if defined(NO_${var}) 232MK_${var}:=no 233.endif 234.endfor 235 236# 237# Older-style variables that enabled behaviour when set. 238# 239.if defined(YES_HESIOD) 240WITH_HESIOD= 241.endif 242 243__DEFAULT_YES_OPTIONS = \ 244 ACCT \ 245 ACPI \ 246 AMD \ 247 APM \ 248 ARM_EABI \ 249 ASSERT_DEBUG \ 250 AT \ 251 ATM \ 252 AUDIT \ 253 AUTHPF \ 254 BINUTILS \ 255 BLUETOOTH \ 256 BMAKE \ 257 BOOT \ 258 BSD_CPIO \ 259 BSNMP \ 260 BZIP2 \ 261 CALENDAR \ 262 CAPSICUM \ 263 CASPER \ 264 CDDL \ 265 CPP \ 266 CROSS_COMPILER \ 267 CRYPT \ 268 CTM \ 269 CXX \ 270 DICT \ 271 DMAGENT \ 272 DYNAMICROOT \ 273 ED_CRYPTO \ 274 EXAMPLES \ 275 FLOPPY \ 276 FMTREE \ 277 FORMAT_EXTENSIONS \ 278 FORTH \ 279 FP_LIBC \ 280 FREEBSD_UPDATE \ 281 GAMES \ 282 GCOV \ 283 GDB \ 284 GNU \ 285 GPIB \ 286 GPIO \ 287 GPL_DTC \ 288 GROFF \ 289 HTML \ 290 ICONV \ 291 INET \ 292 INET6 \ 293 INFO \ 294 INSTALLLIB \ 295 IPFILTER \ 296 IPFW \ 297 JAIL \ 298 KDUMP \ 299 KERBEROS \ 300 KERNEL_SYMBOLS \ 301 KVM \ 302 LDNS \ 303 LDNS_UTILS \ 304 LEGACY_CONSOLE \ 305 LIB32 \ 306 LIBPTHREAD \ 307 LIBTHR \ 308 LOCALES \ 309 LOCATE \ 310 LPR \ 311 LS_COLORS \ 312 MAIL \ 313 MAILWRAPPER \ 314 MAKE \ 315 MAN \ 316 NCURSESW \ 317 NDIS \ 318 NETCAT \ 319 NETGRAPH \ 320 NIS \ 321 NLS \ 322 NLS_CATALOGS \ 323 NS_CACHING \ 324 NTP \ 325 OPENSSH \ 326 OPENSSL \ 327 PAM \ 328 PC_SYSINSTALL \ 329 PF \ 330 PKGBOOTSTRAP \ 331 PMC \ 332 PORTSNAP \ 333 PPP \ 334 PROFILE \ 335 QUOTAS \ 336 RCMDS \ 337 RCS \ 338 RESCUE \ 339 ROUTED \ 340 SENDMAIL \ 341 SETUID_LOGIN \ 342 SHAREDOCS \ 343 SOURCELESS \ 344 SOURCELESS_HOST \ 345 SOURCELESS_UCODE \ 346 SSP \ 347 SVNLITE \ 348 SYMVER \ 349 SYSCONS \ 350 SYSINSTALL \ 351 TCSH \ 352 TELNET \ 353 TEXTPROC \ 354 TOOLCHAIN \ 355 UNBOUND \ 356 USB \ 357 UTMPX \ 358 WIRELESS \ 359 WPA_SUPPLICANT_EAPOL \ 360 ZFS \ 361 ZONEINFO 362 363__DEFAULT_NO_OPTIONS = \ 364 BSD_GREP \ 365 CLANG_EXTRAS \ 366 CTF \ 367 DEBUG_FILES \ 368 HESIOD \ 369 INSTALL_AS_USER \ 370 LLDB \ 371 NAND \ 372 OFED \ 373 OPENSSH_NONE_CIPHER \ 374 SHARED_TOOLCHAIN \ 375 SVN \ 376 TESTS \ 377 USB_GADGET_EXAMPLES 378 379# 380# Default behaviour of some options depends on the architecture. Unfortunately 381# this means that we have to test TARGET_ARCH (the buildworld case) as well 382# as MACHINE_ARCH (the non-buildworld case). Normally TARGET_ARCH is not 383# used at all in bsd.*.mk, but we have to make an exception here if we want 384# to allow defaults for some things like clang and fdt to vary by target 385# architecture. 386# 387.if defined(TARGET_ARCH) 388__T=${TARGET_ARCH} 389.else 390__T=${MACHINE_ARCH} 391.endif 392.if defined(TARGET) 393__TT=${TARGET} 394.else 395__TT=${MACHINE} 396.endif 397# Clang is only for x86, powerpc and little-endian arm right now, by default. 398.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*} 399__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL 400.elif ${__T} == "arm" || ${__T} == "armv6" || ${__T} == "armv6hf" 401__DEFAULT_YES_OPTIONS+=CLANG 402# GCC is unable to build the full clang on arm, disable it by default. 403__DEFAULT_NO_OPTIONS+=CLANG_FULL 404.else 405__DEFAULT_NO_OPTIONS+=CLANG CLANG_FULL 406.endif 407# Clang the default system compiler only on little-endian arm and x86. 408.if ${__T} == "amd64" || ${__T} == "arm" || ${__T} == "armv6" || \ 409 ${__T} == "armv6hf" || ${__T} == "i386" 410__DEFAULT_YES_OPTIONS+=CLANG_IS_CC 411# The pc98 bootloader requires gcc to build and so we must leave gcc enabled 412# for pc98 for now. 413.if ${__TT} == "pc98" 414__DEFAULT_NO_OPTIONS+=GNUCXX 415__DEFAULT_YES_OPTIONS+=GCC 416.else 417__DEFAULT_NO_OPTIONS+=GCC GNUCXX 418.endif 419.else 420# If clang is not cc, then build gcc by default 421__DEFAULT_NO_OPTIONS+=CLANG_IS_CC 422__DEFAULT_YES_OPTIONS+=GCC 423# And if g++ is c++, build the rest of the GNU C++ stack 424.if defined(WITHOUT_CXX) 425__DEFAULT_NO_OPTIONS+=GNUCXX 426.else 427__DEFAULT_YES_OPTIONS+=GNUCXX 428.endif 429.endif 430# FDT is needed only for arm, mips and powerpc 431.if ${__T:Marm*} || ${__T:Mpowerpc*} || ${__T:Mmips*} 432__DEFAULT_YES_OPTIONS+=FDT 433.else 434__DEFAULT_NO_OPTIONS+=FDT 435.endif 436.undef __T 437 438# 439# MK_* options which default to "yes". 440# 441.for var in ${__DEFAULT_YES_OPTIONS} 442.if defined(WITH_${var}) && defined(WITHOUT_${var}) 443.error WITH_${var} and WITHOUT_${var} can't both be set. 444.endif 445.if defined(MK_${var}) 446.if ${.MAKE.LEVEL} == 0 447.error MK_${var} can't be set by a user. 448.endif 449.else 450.if defined(WITHOUT_${var}) 451MK_${var}:= no 452.else 453MK_${var}:= yes 454.endif 455.endif 456.endfor 457.undef __DEFAULT_YES_OPTIONS 458 459# 460# MK_* options which default to "no". 461# 462.for var in ${__DEFAULT_NO_OPTIONS} 463.if defined(WITH_${var}) && defined(WITHOUT_${var}) 464.error WITH_${var} and WITHOUT_${var} can't both be set. 465.endif 466.if defined(MK_${var}) 467.if ${.MAKE.LEVEL} == 0 468.error MK_${var} can't be set by a user. 469.endif 470.else 471.if defined(WITH_${var}) 472MK_${var}:= yes 473.else 474MK_${var}:= no 475.endif 476.endif 477.endfor 478.undef __DEFAULT_NO_OPTIONS 479 480# 481# Force some options off if their dependencies are off. 482# Order is somewhat important. 483# 484.if ${MK_LIBPTHREAD} == "no" 485MK_LIBTHR:= no 486.endif 487 488.if ${MK_LDNS} == "no" 489MK_LDNS_UTILS:= no 490MK_UNBOUND:= no 491.endif 492 493.if ${MK_SOURCELESS} == "no" 494MK_SOURCELESS_HOST:= no 495MK_SOURCELESS_UCODE:= no 496.endif 497 498.if ${MK_CDDL} == "no" 499MK_ZFS:= no 500MK_CTF:= no 501.endif 502 503.if ${MK_CRYPT} == "no" 504MK_OPENSSL:= no 505MK_OPENSSH:= no 506MK_KERBEROS:= no 507.endif 508 509.if ${MK_CXX} == "no" 510MK_CLANG:= no 511MK_GROFF:= no 512.endif 513 514.if ${MK_MAIL} == "no" 515MK_MAILWRAPPER:= no 516MK_SENDMAIL:= no 517MK_DMAGENT:= no 518.endif 519 520.if ${MK_NETGRAPH} == "no" 521MK_ATM:= no 522MK_BLUETOOTH:= no 523.endif 524 525.if ${MK_OPENSSL} == "no" 526MK_OPENSSH:= no 527MK_KERBEROS:= no 528.endif 529 530.if ${MK_PF} == "no" 531MK_AUTHPF:= no 532.endif 533 534.if ${MK_TEXTPROC} == "no" 535MK_GROFF:= no 536.endif 537 538.if ${MK_TOOLCHAIN} == "no" 539MK_BINUTILS:= no 540MK_CLANG:= no 541MK_GCC:= no 542MK_GDB:= no 543.endif 544 545.if ${MK_CLANG} == "no" 546MK_CLANG_EXTRAS:= no 547MK_CLANG_FULL:= no 548.endif 549 550# 551# Set defaults for the MK_*_SUPPORT variables. 552# 553 554# 555# MK_*_SUPPORT options which default to "yes" unless their corresponding 556# MK_* variable is set to "no". 557# 558.for var in \ 559 BZIP2 \ 560 GNU \ 561 INET \ 562 INET6 \ 563 KERBEROS \ 564 KVM \ 565 NETGRAPH \ 566 PAM \ 567 WIRELESS 568.if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT) 569.error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set. 570.endif 571.if defined(MK_${var}_SUPPORT) 572.error MK_${var}_SUPPORT can't be set by a user. 573.endif 574.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no" 575MK_${var}_SUPPORT:= no 576.else 577MK_${var}_SUPPORT:= yes 578.endif 579.endfor 580 581# 582# MK_* options whose default value depends on another option. 583# 584.for vv in \ 585 GSSAPI/KERBEROS \ 586 MAN_UTILS/MAN 587.if defined(WITH_${vv:H}) && defined(WITHOUT_${vv:H}) 588.error WITH_${vv:H} and WITHOUT_${vv:H} can't both be set. 589.endif 590.if defined(MK_${vv:H}) 591.error MK_${vv:H} can't be set by a user. 592.endif 593.if defined(WITH_${vv:H}) 594MK_${vv:H}:= yes 595.elif defined(WITHOUT_${vv:H}) 596MK_${vv:H}:= no 597.else 598MK_${vv:H}:= ${MK_${vv:T}} 599.endif 600.endfor 601 602# 603# MK_* options that default to "yes" if the compiler is a C++11 compiler. 604# 605.include <bsd.compiler.mk> 606.for var in \ 607 LIBCPLUSPLUS 608.if defined(WITH_${var}) && defined(WITHOUT_${var}) 609.error WITH_${var} and WITHOUT_${var} can't both be set. 610.endif 611.if defined(MK_${var}) 612.if ${.MAKE.LEVEL} == 0 613.error MK_${var} can't be set by a user. 614.endif 615.else 616.if ${COMPILER_FEATURES:Mc++11} 617.if defined(WITHOUT_${var}) 618MK_${var}:= no 619.else 620MK_${var}:= yes 621.endif 622.else 623.if defined(WITH_${var}) 624MK_${var}:= yes 625.else 626MK_${var}:= no 627.endif 628.endif 629.endif 630.endfor 631 632.if !${COMPILER_FEATURES:Mc++11} 633MK_LLDB:= no 634.endif 635 636.if ${MK_CTF} != "no" 637CTFCONVERT_CMD= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 638.elif defined(.PARSEDIR) || (defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300) 639CTFCONVERT_CMD= 640.else 641CTFCONVERT_CMD= @: 642.endif 643 644.if ${MK_INSTALL_AS_USER} != "no" 645_uid!= id -u 646.if ${_uid} != 0 647.if !defined(USER) 648USER!= id -un 649.endif 650_gid!= id -gn 651.for x in BIN CONF DOC INFO KMOD LIB MAN NLS SHARE 652$xOWN= ${USER} 653$xGRP= ${_gid} 654.endfor 655.endif 656.endif 657 658.endif # !_WITHOUT_SRCCONF 659 660# Pointer to the top directory into which tests are installed. Should not be 661# overriden by Makefiles, but the user may choose to set this in src.conf(5). 662TESTSBASE?= /usr/tests 663 664.endif # !target(__<bsd.own.mk>__) 665