bsd.README revision 1.341
1# $NetBSD: bsd.README,v 1.341 2015/04/26 21:37:22 mrg Exp $ 2# @(#)bsd.README 8.2 (Berkeley) 4/2/94 3 4This is the README file for the make "include" files for the NetBSD 5source tree. The files are installed in /usr/share/mk, and are, 6by convention, named with the suffix ".mk". 7 8Note, this file is not intended to replace reading through the .mk 9files for anything tricky. 10 11=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 12 13RANDOM THINGS WORTH KNOWING: 14 15The files are simply C-style #include files, and pretty much behave like 16you'd expect. The syntax is slightly different in that a single '.' is 17used instead of the hash mark, i.e. ".include <bsd.prog.mk>". 18 19One difference that will save you lots of debugging time is that inclusion 20of the file is normally done at the *end* of the Makefile. The reason for 21this is because .mk files often modify variables and behavior based on the 22values of variables set in the Makefile. To make this work, remember that 23the FIRST target found is the target that is used, i.e. if the Makefile has: 24 25 a: 26 echo a 27 a: 28 echo a number two 29 30the command "make a" will echo "a". To make things confusing, the SECOND 31variable assignment is the overriding one, i.e. if the Makefile has: 32 33 a= foo 34 a= bar 35 36 b: 37 echo ${a} 38 39the command "make b" will echo "bar". This is for compatibility with the 40way the V7 make behaved. 41 42It's fairly difficult to make the BSD .mk files work when you're building 43multiple programs in a single directory. It's a lot easier to split up the 44programs than to deal with the problem. Most of the agony comes from making 45the "obj" directory stuff work right, not because we switched to a new version 46of make. So, don't get mad at us, figure out a better way to handle multiple 47architectures so we can quit using the symbolic link stuff. (Imake doesn't 48count.) 49 50The file .depend in the source directory is expected to contain dependencies 51for the source files. This file is read automatically by make after reading 52the Makefile. 53 54The variable DESTDIR works as before. It's not set anywhere but will change 55the tree where the file gets installed. 56 57The profiled libraries are no longer built in a different directory than 58the regular libraries. A new suffix, ".po", is used to denote a profiled 59object, and ".pico" denotes a shared (position-independent) object. 60 61There are various make variables used during the build. 62 63Many variables support a (case sensitive) value of "no" or "yes", 64and are tested with ${VAR} == "no" and ${VAR} != "no" . 65 66 67The basic rule for the variable naming scheme is as follows: 68 69HOST_xxx A command that runs on the host machine regardless of 70 whether or not the system is being cross compiled, or 71 flags for such a command. 72 73MKxxx Can be set to "no" to disable functionality, or 74 "yes" to enable it. 75 Usually defaults to "yes", although some variables 76 default to "no". 77 Due to make(1) implementation issues, if a temporary 78 command-line override of a mk.conf(5) or <bsd.own.mk> 79 setting is required whilst still honoring a particular 80 Makefile's setting of MKxxx, use 81 env MKxxx=value make 82 instead of 83 make MKxxx=value 84 85NOxxx If defined, disables a feature. 86 Not intended for users. 87 This is to allow Makefiles to disable functionality 88 that they don't support (such as missing man pages). 89 NOxxx variables must be defined before <bsd.own.mk> 90 is included. 91 92TOOL_xxx A tool that is provided as part of the USETOOLS 93 framework. When not using the USETOOLS framework, 94 TOOL_xxx variables should refer to tools that are 95 already installed on the host system. 96 97The following variables that control how things are made/installed that 98are not set by default. These should not be set by Makefiles; they're for 99the user to define in MAKECONF (see <bsd.own.mk>, below, or mk.conf(5)) 100or on the make(1) command line: 101 102BUILD If defined, 'make install' checks that the targets in the 103 source directories are up-to-date and remakes them if they 104 are out of date, instead of blindly trying to install 105 out of date or non-existent targets. 106 107MAKEVERBOSE Control how "verbose" the standard make(1) rules are. 108 Default: 2 109 Supported values: 110 0 Minimal output ("quiet") 111 1 Describe what is occurring 112 2 Describe what is occurring and echo the actual command 113 3 Ignore the effect of the "@" prefix in make commands 114 4 Trace shell commands using the shell's -x flag 115 116MKATF If "no", don't build the Automated Testing Framework (ATF), 117 which includes the libatf-c, libatf-c++ and libatf-sh libraries 118 and the various command line tools. Also, because the build of 119 the libraries is disabled, don't build the NetBSD test suite 120 either. 121 Default: yes 122 123MKBFD Obsolete, use MKBINUTILS 124 125MKBINUTILS If "no", don't build binutils (gas, ld, etc and libbfd, 126 libopcodes) 127 Default: yes 128 129MKBSDTAR If "yes", use the libarchive based cpio and tar instead of 130 the pax frontends. 131 Default: no 132 133MKCATPAGES If "no", don't build or install the catman pages. 134 Default: no 135 136MKCOMPAT If "no", don't build or install the src/compat. 137 Default: yes on amd64/mips64/sparc64, no elsewhere. 138 139MKCOMPLEX If "no", don't build libm support for <complex.h> 140 Default: yes 141 142MKCRYPTO If "no", no cryptography support will be built into the system, 143 and also acts as "MKKERBEROS=no". 144 Default: yes 145 146MKCRYPTO_RC5 If not "no", RC5 support will be built into libcrypto_rc5 147 Default: no 148 149MKCTF If "no", do not build and install CTF tools, and also 150 don't generate and manipulate CTF data of ELF binaries 151 during build. 152 Default: no 153 154MKCVS If "no", don't build or install cvs(1). 155 Default: yes 156 157MKDEBUG If "no", don't build and install separate debugging symbols 158 into /usr/libdata/debug. 159 Default: no 160 161MKDEBUGLIB Build *_g.a debugging libraries, which are compiled 162 with -DDEBUG. 163 Default: no 164 165MKDEPINCLUDES If "yes" issue .include statements in the .depend file 166 instead of inlining the contents of the .d files. Useful 167 when stale dependencies are present, to list the exact 168 files that need refreshing. It is off by default because 169 it is possibly slower. 170 Default "no" 171 172MKDOC If "no", don't build or install the documentation. 173 Default: yes 174 175MKDTRACE If "no", do not build and install the kernel modules, 176 utilities and libraries used to implement the dtrace(1) 177 facility. 178 Default: no 179 180MKDYNAMICROOT If "no", build programs in /bin and /sbin statically, 181 don't install certain libraries in /lib, and don't 182 install the shared linker into /libexec. 183 Default: yes 184 185MKEXTSRC If not "no", 'make build' also descends into either src/extsrc 186 to cross-build programs and libraries externally added by 187 users, and automatically enables creation of those sets. 188 Default: no 189 190MKGCC If "no", don't build gcc(1) or any of the GCC-related 191 libraries (libgcc, libobjc, libstdc++). 192 Default: yes 193 194MKGCCCMDS If "no", don't build gcc(1), but do build the GCC-related 195 libraries (libgcc, libobjc, libstdc++). 196 Default: yes 197 198MKGDB If "no", don't build gdb(1). 199 Default: yes 200 201MKGROFFHTMLDOC If "no", avoid trying to use groff to generate html for 202 miscellaneous articles, as this seems to sometimes want 203 to run software not in base. Does not affect html man 204 pages. 205 Default: no 206 207MKHESIOD If "no", disables building of Hesiod infrastructure 208 (libraries and support programs). 209 Default: yes 210 211MKHOSTOBJ If not "no", for programs intended to be run on the compile 212 host, the name, release, and architecture of the host 213 operating system will be suffixed to the name of the object 214 directory created by "make obj". 215 Default: no 216 217MKHTML If "no", don't build or install the HTML man pages. 218 Default: yes 219 220MKIEEEFP If "no", don't add code for IEEE754/IEC60559 conformance. 221 Has no effect on most platforms. 222 Default: yes 223 224MKSTRIPIDENT Strip the RCS IDs from program binaries and shared libraries. 225 Default: no 226 227MKINET6 If "no", disables building of INET6 (IPv6) infrastructure 228 (libraries and support programs). This option must not be 229 set to "no" if MKX11 is not "no". 230 Default: yes 231 232MKINFO If "no", don't build or install Info documentation from 233 Texinfo source files. 234 Default: yes 235 236MKIPFILTER If "no", don't build or install the IP Filter programs and LKM. 237 Default: yes 238 239MKISCSI If "no", don't build or install iSCSI library or applications 240 (depends on libpthread.) 241 Default: yes 242 243MKKDEBUG If "yes", force building of kernel symbol info and creation 244 of netbsd.gdb in all kernel builds, independently of the 245 settings for "makeoptions DEBUG" in the kernel config file. 246 247MKKERBEROS If "no", disables building of Kerberos v5 248 infrastructure (libraries and support programs). 249 Default: yes 250 251MKKMOD If "no", disables building of kernel modules. 252 Default: yes 253 254MKKYUA If "no", don't build Kyua nor its dependent library Lutok. 255 Note that setting this to "no" does not disable the build of 256 the NetBSD test suite itself; the build of the tests is 257 controlled by the MKATF knob. 258 Default: no (until the import is done and validated) 259 260MKLDAP If "no", disables building of LDAP infrastructure 261 (libraries and support programs). 262 Default: yes 263 264MKLIBCXX If not "no", build and install libc++. 265 Default: no 266 267MKLIBSTDCXX If not "no", build and install libstdc++. 268 Default: yes 269 270MKLINKLIB If "no", act as "MKLINT=no MKPICINSTALL=no MKPROFILE=no". 271 Also: 272 - don't install the .a libraries 273 - don't install _pic.a libraries on PIC systems 274 - don't build .a libraries on PIC systems 275 - don't install the .so symlink on ELF systems 276 I.e, only install the shared library (and the .so.major 277 symlink on ELF). 278 Default: yes 279 280MKLINT If "no", don't build or install the lint libraries. 281 Default: yes 282 283MKLVM If "no", don't build or install the logical volume manager 284 and device mapper tools and libraries 285 Default: yes 286 287MKMAN If "no", don't build or install the man or catman pages, 288 and also acts as "MKCATPAGES=no MKHTML=no". 289 Default: yes 290 291MKMANDOC If "yes", mandoc is built as tool and used to compile 292 catman or html pages. A directory can be exempted by 293 defining NOMANDOC. Individual man pages are exempted 294 if NOMANDOC.${target} is set to "yes". 295 Default: yes 296 297MKMANZ If not "no", compress manual pages at installation time. 298 Default: no 299 300MKMDNS If "no", disables building of mDNS infrastructure 301 (libraries and support programs). 302 Default: yes 303 304MKNLS If "no", don't build or install the NLS files and locale 305 definition files. 306 Default: yes 307 308MKNPF If "no", don't build or install the NPF and its modules. 309 Default: yes 310 311MKOBJ If "no", don't enable the rule which creates objdirs, 312 and also acts as "MKOBJDIRS=no". 313 Default: yes 314 315MKOBJDIRS If "no", don't create objdirs during a "make build". 316 Default: no 317 318MKPAM If "no", disables building of PAM authentication 319 infrastructure (libraries and support programs). 320 Default: yes 321 322MKPCC If "no", don't build pcc(1) or any of the PCC-related 323 libraries (libpcc, libpccsoftfloat). 324 Default: no 325 326MKPF If "no", don't build or install the pf programs and LKM. 327 Default: yes 328 329MKPIC If "no", don't build or install shared libraries, and 330 also acts as "MKPICLIB=no" 331 Default: yes (for MACHINE_ARCHs that support it) 332 333MKPICINSTALL If "no", don't install the *_pic.a libraries. 334 Default: yes 335 336MKPICLIB If "no", don't build *_pic.a libraries, and build the 337 shared object libraries from the .a libraries. 338 A symlink is installed in ${DESTDIR}/usr/lib for the 339 _pic.a library pointing to the .a library. 340 Default: yes 341 342MKPIE If "no", create regular executables. Otherwise create 343 PIE (Position Independent Executables). 344 Default: no 345 346MKPIGZGZIP If "no", only install pigz as pigz, not gzip. 347 Default: no 348 349MKPOSTFIX If "no", don't build or install postfix(1). 350 Default: yes 351 352MKPROFILE If "no", don't build or install the profiling (*_p.a) libraries. 353 Default: yes 354 355MKREPRO If "yes", create reproducable builds. This enables 356 different switches to make two builds from the same source tree 357 result in the same build results. 358 Default: no 359 360MKSHARE If "no", act as "MKCATPAGES=no MKDOC=no MKHTML=no MKINFO=no 361 MKMAN=no MKNLS=no". 362 I.e, don't build catman pages, documentation, Info 363 documentation, man pages, NLS files, ... 364 Default: yes 365 366MKSKEY If "no", disables building of S/key authentication 367 infrastructure (libraries and support programs). 368 Default: yes 369 370MKSLJIT If "no", disables building of sljit (stack-less platform 371 independent JIT compiler) private library and tests. 372 Default: yes on amd64, i386 and sparc, no elsewhere. 373 374MKSOFTFLOAT If not "no", build with options to enable the compiler to 375 generate output containing library calls for floating 376 point and possibly soft-float library support. 377 Default: no 378 379MKSTATICLIB If "no", don't build or install the normal static (*.a) 380 libraries. 381 Default: yes 382 383MKTPM If "no" then don't build the Trusted Platform Module 384 infrastructure. 385 Default: no 386 387MKUNPRIVED If not "no", don't set the owner/group/mode when installing 388 files or directories, and keep a metadata log of what 389 the owner/group/mode should be. This allows a 390 non-root "make install". 391 Default: no 392 393MKUPDATE If not "no", 'make install' only installs targets that are 394 more recently modified in the source directories that their 395 installed counterparts. 396 Default: no 397 398MKX11 If not "no", depending on the value of ${X11FLAVOUR}, 399 'make build' also descends into either src/x11 (XFree86) or 400 src/external/mit/xorg (modular Xorg) to cross-build X11 and 401 automatically enables creation of X sets. 402 Default: no 403 404MKX11FONTS If not "no", if ${X11FLAVOUR} is "Xorg", do not build or 405 install the X fonts. The xfont set is still created but 406 will be empty. 407 Default: yes 408 409MKX11MOTIF: If "yes" and ${X11FLAVOUR} is "Xorg", build the native X11 410 libGLw with Motif stubs. If Motif is not installed in the 411 default location /usr/pkg, the location can be specified 412 using the X11MOTIFPATH variable. 413 Default: no 414 415MKX11RADEONKMS If "no", build the xf86-video-ati 6.x driver (the last one 416 with user-mode switching support), otherwise build the 417 kernek-mode switching (KMS) requiring driver. 418 Default: yes on i386 and amd64, no elsewhere. 419 420MKRADEONFIRMWARE If "no", install the /libdata/firmware/radeon directory, 421 which is necessary for the radeon DRM driver. 422 Default: yes on i386 and amd64, no elsewhere. 423 424MKYP If "no", disables building of YP (NIS) 425 infrastructure (libraries and support programs). 426 Default: yes 427 428MKZFS If "no", do not build and install utilities and libraries 429 used to manage ZFS file system. Do not build zfs and solaris 430 compatibility kernel modules. Note: ZFS requires 64bit 431 atomic operations. 432 Default: yes on amd64, no elsewhere. 433 434MKRUMP If "no", do not build and install rump related headers, 435 libraries, and programs. 436 Default: yes 437 438USE_HESIOD If "no", disables building Hesiod support into 439 various system utilities/libraries that support it. 440 If ${MKHESIOD} is "no", USE_HESIOD will also be 441 forced to "no". 442 443USE_INET6 If "no", disables building INET6 (IPv6) support into 444 various system utilities/libraries that support it. 445 If ${MKINET6} is "no", USE_INET6 will also be 446 forced to "no". 447 448USE_JEMALLOC If "no", disables building the "jemalloc" allocator 449 designed for improved performance with threaded 450 applications. The "phkmalloc" allocator as used up 451 before NetBSD-5.0 will be substituted. 452 453USE_KERBEROS If "no", disables building Kerberos v5 454 support into various system utilities/libraries that 455 support it. If ${MKKERBEROS} is "no", USE_KERBEROS 456 will also be forced to "no". 457 458USE_LDAP If "no", disables building LDAP support into various 459 system utilities/libraries that support it. 460 If ${MKLDAP} is "no", USE_LDAP will also be forced to "no". 461 462USE_PAM If "no", disables building PAM authentication support 463 into various system utilities/libraries that support it. 464 If ${MKPAM} is "no", USE_PAM will also be forced to "no". 465 466USE_SKEY If "no", disables building S/key authentication 467 support into various system utilities/libraries that 468 support it. If ${MKSKEY} is "no", USE_SKEY will 469 also be forced to "no". 470 Default: no 471 472USE_SSP If "no", disables GCC stack protection code, which 473 detects stack overflows and aborts the program. The 474 stack protection code imposes a performance penalty 475 of about 5%. 476 Default: "no", unless "USE_FORT" is set to "yes" 477 478USE_FORT If "yes" turns on substitute wrappers for commonly used 479 functions that do not do bounds checking regularly, but 480 they could in some cases by using the gcc 481 __builtin_object_size() function to determine the buffer 482 size where it is known and detect buffer overflows. 483 These substitute functions are in /usr/include/ssp. 484 Default: depends on the part of the source tree 485 486USE_YP If "no", disables building YP (NIS) support into 487 various system utilities/libraries that support it. 488 If ${MKYP} is "no", USE_YP will also be forced to "no". 489 490USE_PIGZGZIP If "no", use the host "gzip" program to compress things. 491 Otherwise, build tools/pigz, set TOOL_GZIP=${TOOL_PIGZ}, 492 and use nbpigz to compress things. 493 Default: "no". 494 495X11FLAVOUR Set to "Xorg" or "XFree86", depending on whether to build 496 XFree86 or modular Xorg. Only matters if MKX11!=no. 497 Default: "Xorg" on amd64, i386, macppc, shark and sparc64, 498 "XFree86" on everything else. 499 500COPTS.lib<lib> 501OBJCOPTS.lib<lib> 502LDADD.lib<lib> 503CPPFLAGS.lib<lib> 504CXXFLAGS.lib<lib> 505COPTS.<prog> 506OBJCCOPTS.<prog> 507LDADD.<prog> 508CPPFLAGS.<prog> 509CXXFLAGS.<prog> These provide a way to specify additions to the associated 510 variables in a way that applies only to a particular library 511 or program. <lib> corresponds to the LIB variable set in 512 the library's makefile. <prog> corresponds to either PROG 513 or PROG_CXX (if set). For example, if COPTS.libcrypto is 514 set to "-g", "-g" will be added to COPTS only when compiling 515 the crypto library. 516 517The active compiler is selected using the following variables: 518AVAILABLE_COMPILER 519 List of available compiler suites. Processed in order 520 for selecting the active compiler for each frontend. 521HAVE_PCC If defined, PCC is present and enabled. 522HAVE_LLVM If defined, LLVM/Clang is present and enabled. 523UNSUPPORTED_COMPILER.xxx 524 If defined, the support for compiler "xxx" is disabled. 525 526For the frontends (CC, CPP, CXX, FC and OBJC) the following variables exist: 527ACTIVE_CC Active compile suite for the CC frontend. 528SUPPORTED_CC Compile suite with support for the CC frontend. 529TOOL_CC.xxx Path to the CC frontend for compiler "xxx" 530 531=-=-=-=-= sys.mk =-=-=-=-= 532 533The include file <sys.mk> has the default rules for all makes, in the BSD 534environment or otherwise. You probably don't want to touch this file. 535 536=-=-=-=-= bsd.own.mk =-=-=-=-= 537 538The include file <bsd.own.mk> contains source tree configuration parameters, 539such as the owners, groups, etc. for both manual pages and binaries, and 540a few global "feature configuration" parameters. 541 542It has no targets. 543 544To get system-specific configuration parameters, <bsd.own.mk> will try to 545include the file specified by the "MAKECONF" variable. If MAKECONF is not 546set, or no such file exists, the system make configuration file, /etc/mk.conf 547is included. These files may define any of the variables described below. 548 549<bsd.own.mk> sets the following variables, if they are not already defined 550(defaults are in brackets): 551 552NETBSDSRCDIR Top of the NetBSD source tree. 553 If _SRC_TOP_ != "", that will be used as the default, 554 otherwise BSDSRCDIR will be used as the default. 555 Various makefiles within the NetBSD source tree will 556 use this to reference the top level of the source tree. 557 558_SRC_TOP_ Top of the system source tree, as determined by <bsd.own.mk> 559 based on the presence of tools/ and build.sh. This variable 560 is "internal" to <bsd.own.mk>, although its value is only 561 determined once and then propagated to all sub-makes. 562 563_NETBSD_VERSION_DEPENDS 564 A list of files which contain information about 565 the version of the NetBSD being built. This is 566 defined only if the current directory appears 567 to be inside a NetBSD source tree. The list of 568 files includes ${NETBSDSRCDIR}/sys/sys/param.h 569 (which contains the kernel version number), 570 ${NETBSDSRCDIR}/sys/conf/newvers.sh and 571 ${NETBSDSRCDIR}/sys/conf/osrelease.sh (which 572 interpret the information in sys/sys/param.h), and 573 ${_SRC_TOP_OBJ_}/params (which is an optional file, 574 created by "make build" in ${_SRC_TOP_}/Makefile, 575 containing all the variables that may influence the 576 build). 577 578 Targets that depend on the NetBSD version, or on 579 variables defined at build time, can declare a 580 dependency on ${_NETBSD_VERSION_DEPENDS}, like this: 581 582 version.c: ${_NETBSD_VERSION_DEPENDS} 583 commands to create version.c 584 585BSDSRCDIR The real path to the system sources, so that 'make obj' 586 will work correctly. [/usr/src] 587 588BSDOBJDIR The real path to the system 'obj' tree, so that 'make obj' 589 will work correctly. [/usr/obj] 590 591BINGRP Binary group. [wheel] 592 593BINOWN Binary owner. [root] 594 595BINMODE Binary mode. [555] 596 597NONBINMODE Mode for non-executable files. [444] 598 599MANDIR Base path for manual installation. [/usr/share/man/cat] 600 601MANGRP Manual group. [wheel] 602 603MANOWN Manual owner. [root] 604 605MANMODE Manual mode. [${NONBINMODE}] 606 607MANINSTALL Manual installation type. Space separated list: 608 catinstall, htmlinstall, maninstall 609 Default value derived from MKCATPAGES and MKHTML. 610 611LDSTATIC Control program linking; if set blank, link everything 612 dynamically. If set to "-static", link everything statically. 613 If not set, programs link according to their makefile. 614 615LIBDIR Base path for library installation. [/usr/lib] 616 617LINTLIBDIR Base path for lint(1) library installation. [/usr/libdata/lint] 618 619LIBGRP Library group. [${BINGRP}] 620 621LIBOWN Library owner. [${BINOWN}] 622 623LIBMODE Library mode. [${NONBINMODE}] 624 625DOCDIR Base path for system documentation (e.g. PSD, USD, etc.) 626 installation. [/usr/share/doc] 627 628DOCGRP Documentation group. [wheel] 629 630DOCOWN Documentation owner. [root] 631 632DOCMODE Documentation mode. [${NONBINMODE}] 633 634GZIP_N_FLAG Flags to pass to TOOL_GZIP to prevent it from inserting 635 file names or timestamps in the compressed output. 636 [-n, or -nT when TOOL_GZIP is really TOOL_PIGZ] 637 638NLSDIR Base path for Native Language Support files installation. 639 [/usr/share/nls] 640 641NLSGRP Native Language Support files group. [wheel] 642 643NLSOWN Native Language Support files owner. [root] 644 645NLSMODE Native Language Support files mode. [${NONBINMODE}] 646 647X11SRCDIR The path to the xsrc tree. [${NETBSDSRCDIR}/../xsrc, 648 if that exists; otherwise /usr/xsrc] 649 650X11SRCDIR.xc The path to the (old) X11 xc src tree. [${X11SRCDIR}/xfree/xc] 651 652X11SRCDIR.local The path to the local X11 src tree. [${X11SRCDIR}/local] 653 654X11SRCDIR.lib<package> 655X11SRCDIR.<package> 656 The path to the xorg src tree for the specificed package>. 657 [${X11SRCDIR}/external/mit/xorg/<package>/dist] 658 659X11ROOTDIR Root directory of the X11 installation. [/usr/X11R6 or 660 [/usr/X11R7] 661 662X11BINDIR X11 bin directory. [${X11ROOTDIR}/bin] 663 664X11FONTDIR X11 font directory. [${X11ROOTDIR}/lib/X11/fonts] 665 666X11INCDIR X11 include directory. [${X11ROOTDIR}/include] 667 668X11LIBDIR X11 lib/x11 (config) directory. [${X11ROOTDIR}/lib/X11] 669 670X11MANDIR X11 manual directory. [${X11ROOTDIR}/man] 671 672X11USRLIBDIR X11 library directory. [${X11ROOTDIR}/lib] 673 674STRIPFLAG The flag passed to the install program to cause the binary 675 to be stripped. This is to be used when building your 676 own install script so that the entire system can be made 677 stripped/not-stripped using a single knob. [] 678 679COPY The flag passed to the install program to cause the binary 680 to be copied rather than moved. This is to be used when 681 building our own install script so that the entire system 682 can either be installed with copies, or with moves using 683 a single knob. [-c] 684 685MAKEDIRTARGETENV 686 Environment variables passed to the child make process 687 invoked by MAKEDIRTARGET. 688 689MAKEDIRTARGET dir target [params] 690 Runs "cd $${dir} && ${MAKE} [params] $${target}", 691 displaying a "pretty" message whilst doing so. 692 693RELEASEMACHINEDIR 694 Subdirectory used below RELEASEDIR when building 695 a release. [${MACHINE}] 696 697RELEASEMACHINE Subdirectory or path component used for the following 698 paths: 699 distrib/${RELEASEMACHINE} 700 distrib/notes/${RELEASEMACHINE} 701 etc/etc.${RELEASEMACHINE} 702 Used when building a release. [${MACHINE}] 703 704Additionally, the following variables may be set by <bsd.own.mk> or in a 705make configuration file to modify the behavior of the system build 706process (default values are in brackets along with comments, if set by 707<bsd.own.mk>): 708 709USETOOLS Indicates whether the tools specified by ${TOOLDIR} should 710 be used as part of a build in progress. 711 Supported values: 712 713 yes Use the tools from TOOLDIR. 714 Must be set to this if cross-compiling. 715 716 no Do not use the tools from TOOLDIR, but refuse to 717 build native compilation tool components that are 718 version-specific for that tool. 719 720 never Do not use the tools from TOOLDIR, even when 721 building native tool components. This is similar to 722 the traditional NetBSD build method, but does not 723 verify that the compilation tools in use are 724 up-to-date enough in order to build the tree 725 successfully. This may cause build or runtime 726 problems when building the whole NetBSD source tree. 727 728 Default: "yes" if building all or part of a whole NetBSD 729 source tree (detected automatically); "no" otherwise 730 (to preserve traditional semantics of the <bsd.*.mk> 731 make(1) include files). 732 733OBJECT_FMT Object file format. [set to "ELF" on architectures that 734 use ELF -- currently all architectures]. 735 736TOOLCHAIN_MISSING 737 If not "no", this indicates that the platform being built 738 does not have a working in-tree toolchain. If the 739 ${MACHINE_ARCH} in question falls into this category, 740 TOOLCHAIN_MISSING is conditionally assigned the value "yes". 741 Otherwise, the variable is unconditionally assigned the 742 value "no". 743 If not "no", ${MKBINUTILS}, ${MKGCC}, and ${MKGDB} are 744 unconditionally assigned the value "no". 745 746EXTERNAL_TOOLCHAIN 747 This variable is not directly set by <bsd.own.mk>, but 748 including <bsd.own.mk> is the canonical way to gain 749 access to this variable. The variable should be defined 750 either in the user's environment or in the user's mk.conf 751 file. If defined, this variable indicates the root of 752 an external toolchain which will be used to build the 753 tree. For example, if a platform is a ${TOOLCHAIN_MISSING} 754 platform, EXTERNAL_TOOLCHAIN can be used to re-enable the 755 cross-compile framework. 756 757 If EXTERNAL_TOOLCHAIN is defined, ${MKGCC} is unconditionally 758 assigned the value "no", since the external version of the 759 compiler may not be able to build the library components of 760 the in-tree compiler. 761 762 NOTE: This variable is not yet used in as many places as 763 it should be. Expect the exact semantics of this variable 764 to change in the short term as parts of the cross-compile 765 framework continue to be cleaned up. 766 767The following variables are defined to commands to perform the 768appropriate operation, with the default in [brackets]. Note that 769the defaults change if USETOOLS == "yes": 770 771TOOL_AMIGAAOUT2BB aout to Amiga bootblock converter. [amiga-aout2bb] 772 773TOOL_AMIGAELF2BB ELF to Amiga bootblock converter. [amiga-elf2bb] 774 775TOOL_AMIGATXLT Amige assembly language format translator. [amiga-txlt] 776 777TOOL_ASN1_COMPILE ASN1 compiler. [asn1_compile] 778 779TOOL_AWK Pattern-directed scanning/processing language. [awk] 780 781TOOL_CAP_MKDB Create capability database. [cap_mkdb] 782 783TOOL_CAT Concatenate and print files. [cat] 784 785TOOL_CKSUM Display file checksums. [cksum] 786 787TOOL_COMPILE_ET Error table compiler. [compile_et] 788 789TOOL_CONFIG Build kernel compilation directories. [config] 790 791TOOL_CRUNCHGEN Generate crunched binary build environment. [crunchgen] 792 793TOOL_CTAGS Create a tags file. [ctags] 794 795TOOL_DB Manipulate db(3) databases. [db] 796 797TOOL_DISKLABEL Read and write disk pack label. [disklabel] 798 799TOOL_EQN Format equations for groff. [eqn] 800 801TOOL_FDISK MS-DOS partition maintenance program. [fdisk] 802 803TOOL_FGEN IEEE 1275 Open Firmware FCode Tokenizer. [fgen] 804 805TOOL_GENASSYM Generate constants for assembly files. [genassym] 806 807TOOL_GENCAT Generate NLS message catalogs. [gencat] 808 809TOOL_GMAKE GNU make utility. [gmake] 810 811TOOL_GREP Print lines matching a pattern. [grep] 812 813TOOL_GROFF Front end for groff document formatting system. [groff] 814 815TOOL_GZIP Compression/decompression tool. [gzip] 816 817TOOL_GZIP_N Same as TOOL_GZIP, plus a command line option to 818 prevent it from inserting file names or timestamps 819 into the compressed output. 820 [${TOOL_GZIP} ${GZIP_N_FLAG}] 821 822TOOL_HEXDUMP Ascii, decimal, hexadecimal, octal dump. [hexdump] 823 824TOOL_HP300MKBOOT Make bootable image for hp300. [hp300-mkboot] 825 826TOOL_HPPAMKBOOT Make bootable image for hppa. [hppa-mkboot] 827 828TOOL_INDXBIB Make bibliographic database's inverted index. [indxbib] 829 830TOOL_INSTALLBOOT Install disk bootstrap software. [installboot] 831 832TOOL_INSTALL_INFO Update info/dir entries. [install-info] 833 834TOOL_JOIN Relational database operator. [join] 835 836TOOL_M4 M4 macro language processor. [m4] 837 838TOOL_MACPPCFIXCOFF Fix up xcoff headers for macppc. [macppc-fixcoff] 839 840TOOL_MAKEFS Create file system image from directory tree. [makefs] 841 842TOOL_MAKEINFO Translate Texinfo documents. [makeinfo] 843 844TOOL_MAKEWHATIS Create a whatis.db database. [makewhatis] 845 846TOOL_MDSETIMAGE Set kernel RAM disk image. [mdsetimage] 847 848TOOL_MENUC Menu compiler. [menuc] 849 850TOOL_MIPSELF2ECOFF Convert ELF-format executable to ECOFF for mips. 851 [mips-elf2ecoff] 852 853TOOL_MKCSMAPPER Make charset mapping table. [mkcsmapper] 854 855TOOL_MKESDB Make encoding scheme database. [mkesdb] 856 857TOOL_MKLOCALE Make LC_CTYPE locale files. [mklocale] 858 859TOOL_MKMAGIC Create database for file(1). [file] 860 861TOOL_MKNOD Make device special file. [mknod] 862 863TOOL_MKTEMP Make (unique) temporary file name. [mktemp] 864 865TOOL_MSGC Simple message list compiler. [msgc] 866 867TOOL_MTREE Map a directory hierarchy. [mtree] 868 869TOOL_NCDCS Turn ELF kernel into a NCD firmware image. [ncdcs] 870 871TOOL_PAX Manipulate file archives and copy directories. [pax] 872 873TOOL_PIC Compile pictures for groff. [pic] 874 875TOOL_PIGZ Parallel compressor. [pigz] 876 877TOOL_POWERPCMKBOOTIMAGE Make bootable image for powerpc. [powerpc-mkbootimage] 878 879TOOL_PWD_MKDB Generate the password databases. [pwd_mkdb] 880 881TOOL_REFER Preprocess bibliographic references for groff. [refer] 882 883TOOL_ROFF_ASCII Generate ASCII groff output. [nroff] 884 885TOOL_ROFF_DVI Generate DVI groff output. [${TOOL_GROFF} -Tdvi] 886 887TOOL_ROFF_HTML Generate HTML groff output. 888 [${TOOL_GROFF} -Tlatin1 -mdoc2html] 889 890TOOL_ROFF_PS Generate PS groff output. [${TOOL_GROFF} -Tps] 891 892TOOL_ROFF_RAW Generate "raw" groff output. [${TOOL_GROFF} -Z] 893 894TOOL_RPCGEN Remote Procedure Call (RPC) protocol compiler. [rpcgen] 895 896TOOL_SED Stream editor. [sed] 897 898TOOL_SOELIM Eliminate .so's from groff input. [soelim] 899 900TOOL_SPARKCRC Generate a crc suitable for use in a sparkive file. 901 [sparkcrc] 902 903TOOL_STAT Display file status. [stat] 904 905TOOL_STRFILE Create a random access file for storing strings. 906 [strfile] 907 908TOOL_SUNLABEL Read or modify a SunOS disk label. [sunlabel] 909 910TOOL_TBL Format tables for groff. [tbl] 911 912TOOL_UUDECODE Uudecode a binary file. [uudecode] 913 914TOOL_VGRIND Grind nice listings of programs. [vgrind -f] 915 916TOOL_ZIC Time zone compiler. [zic] 917 918For each possible value of MACHINE_CPU, MACHINES.${MACHINE_CPU} contain a 919list of what ports can be built for it. This keeps those definitions in 920centralized place. 921 922<bsd.own.mk> is generally useful when building your own Makefiles so that 923they use the same default owners etc. as the rest of the tree. 924 925 926=-=-=-=-= bsd.clean.mk =-=-=-=-= 927 928The include file <bsd.clean.mk> defines the clean and cleandir 929targets. It uses the following variables: 930 931CLEANFILES Files to remove for both the clean and cleandir targets. 932 933CLEANDIRFILES Files to remove for the cleandir target, but not for 934 the clean target. 935 936MKCLEANSRC Controls whether or not the clean and cleandir targets 937 will delete files from both the object directory, 938 ${.OBJDIR}, and the source directory, ${.CURDIR}. 939 940 If MKCLEANSRC is set to "no", then the file names in 941 CLEANFILES or CLEANDIRFILES are interpreted relative 942 to the object directory, ${.OBJDIR}. This is the 943 traditional behaviour. 944 945 If MKCLEANSRC is set to "yes", then the file deletion 946 is performed relative to both the object directory, 947 ${.OBJDIR}, and the source directory, ${.CURDIR}. (This 948 has no effect if ${.OBJDIR} is the same as ${.CURDIR}.) 949 Deleting files from ${.CURDIR} is intended to remove 950 stray output files that had been left in the source 951 directory by an earlier build that did not use object 952 directories. 953 954 The default is MKCLEANSRC=yes. If you always build with 955 separate object directories, and you are sure that there 956 are no stray files in the source directories, then you 957 may set MKCLEANSRC=no to save some time. 958 959MKCLEANVERIFY Controls whether or not the clean and cleandir targets 960 will verify that files have been deleted. 961 962 If MKCLEANVERIFY is set to "no", then the files will 963 be deleted using a "rm -f" command, and its success or 964 failure will be ignored. 965 966 If MKCLEANVERIFY is set to "yes", then the success of 967 the "rm -f" command will be verified using an "ls" 968 command. 969 970 The default is MKCLEANVERIFY=yes. If you are sure that 971 there will be no problems caused by file permissions, 972 read-only file systems, or the like, then you may set 973 MKCLEANVERIFY=no to save some time. 974 975To use the clean and cleandir targets defined in <bsd.clean.mk>, other 976Makefiles or bsd.*.mk files should append file names to the CLEANFILES 977or CLEANDIRFILES variables. For example: 978 979 CLEANFILES+= a.out 980 CLEANDIRFILES+= .depend 981 982 .include <bsd.clean.mk> 983 984The files listed in CLEANFILES and CLEANDIRFILES must not be 985directories, because the potential risk from running "rm -rf" commands 986in bsd.clean.mk is considered too great. If you want to recursively 987delete a directory as part of "make clean" or "make cleandir" then you 988need to provide your own target. 989 990=-=-=-=-= bsd.dep.mk =-=-=-=-= 991 992The include file <bsd.dep.mk> contains the default targets for building 993.depend files. It creates .d files from entries in SRCS and DPSRCS 994that are C, C++, or Objective C source files, and builds .depend from the 995.d files. All other files in SRCS and all of DPSRCS will be used as 996dependencies for the .d files. In order for this to function correctly, 997it should be .included after all other .mk files and directives that may 998modify SRCS or DPSRCS. It uses the following variables: 999 1000SRCS List of source files to build the program. 1001 1002DPSRCS List of source files which are needed for generating 1003 dependencies, but are not needed in ${SRCS}. 1004 1005 1006=-=-=-=-= bsd.files.mk =-=-=-=-= 1007 1008The include file <bsd.files.mk> handles the FILES variables and is included 1009from <bsd.lib.mk> and <bsd.prog.mk>, and uses the following variables: 1010 1011FILES The list of files to install. 1012 1013CONFIGFILES Similar semantics to FILES, except that the files 1014 are installed by the `configinstall' target, 1015 not the `install' target. 1016 The FILES* variables documented below also apply. 1017 1018FILESOWN File owner. [${BINOWN}] 1019 1020FILESGRP File group. [${BINGRP}] 1021 1022FILESMODE File mode. [${NONBINMODE}] 1023 1024FILESDIR The location to install the files. 1025 1026FILESNAME Optional name to install each file as. 1027 1028FILESOWN_<fn> File owner of the specific file <fn>. 1029 1030FILESGRP_<fn> File group of the specific file <fn>. 1031 1032FILESMODE_<fn> File mode of the specific file <fn>. 1033 1034FILESDIR_<fn> The location to install the specific file <fn>. 1035 1036FILESNAME_<fn> Optional name to install <fn> as. 1037 1038FILESBUILD If this variable is defined, then its value will be 1039 used as the default for all FILESBUILD_<fn> variables. 1040 Otherwise, the default will be "no". 1041 1042FILESBUILD_<fn> A value different from "no" will add the file to the list of 1043 targets to be built by `realall'. Users of that variable 1044 should provide a target to build the file. 1045 1046 1047BUILDSYMLINKS List of two word items: 1048 lnsrc lntgt 1049 For each lnsrc item, create a symlink named lntgt. 1050 The lntgt symlinks are removed by the cleandir target. 1051 1052UUDECODE_FILES List of files which are stored as <file>.uue in the source 1053 tree. Each one will be decoded with ${TOOL_UUDECODE}. 1054 The source files have a `.uue' suffix, the generated files do 1055 not. 1056 1057UUDECODE_FILES_RENAME_<fn> 1058 Rename the output from the decode to the provided name. 1059 1060 *NOTE: These files are simply decoded, with no install or other 1061 rule applying implicitly except being added to the clean 1062 target. 1063 1064=-=-=-=-= bsd.gcc.mk =-=-=-=-= 1065 1066The include file <bsd.gcc.mk> computes various parameters related to GCC 1067support libraries. It defines no targets. <bsd.own.mk> MUST be included 1068before <bsd.gcc.mk>. 1069 1070The primary users of <bsd.gcc.mk> are <bsd.prog.mk> and <bsd.lib.mk>, each 1071of which need to know where to find certain GCC support libraries. 1072 1073The behavior of <bsd.gcc.mk> is influenced by the EXTERNAL_TOOLCHAIN variable, 1074which is generally set by the user. If EXTERNAL_TOOLCHAIN it set, then 1075the compiler is asked where to find the support libraries, otherwise the 1076support libraries are found in ${DESTDIR}/usr/lib. 1077 1078<bsd.gcc.mk> sets the following variables: 1079 1080_GCC_CRTBEGIN The full path name to crtbegin.o. 1081 1082_GCC_CRTBEGINS The full path name to crtbeginS.o. 1083 1084_GCC_CRTEND The full path name to crtend.o. 1085 1086_GCC_CRTENDS The full path name to crtendS.o. 1087 1088_GCC_LIBGCCDIR The directory where libgcc.a is located. 1089 1090 1091=-=-=-=-= bsd.inc.mk =-=-=-=-= 1092 1093The include file <bsd.inc.mk> defines the includes target and uses the 1094variables: 1095 1096INCS The list of include files. 1097 1098INCSDIR The location to install the include files. 1099 1100INCSNAME Target name of the include file, if only one; same as 1101 FILESNAME, but for include files. 1102 1103INCSYMLINKS Similar to SYMLINKS in <bsd.links.mk>, except that these 1104 are installed in the 'includes' target and not the 1105 (much later) 'install' target. 1106 1107INCSNAME_<file> The name file <file> should be installed as, if not <file>, 1108 same as FILESNAME_<file>, but for include files. 1109 1110 1111=-=-=-=-= bsd.info.mk =-=-=-=-= 1112 1113The include file <bsd.info.mk> is used to generate and install GNU Info 1114documentation from respective Texinfo source files. It defines three 1115implicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the 1116following variables: 1117 1118TEXINFO List of Texinfo source files. Info documentation will 1119 consist of single files with the extension replaced by 1120 .info. 1121 1122INFOFLAGS Flags to pass to makeinfo. [] 1123 1124 1125=-=-=-=-= bsd.kernobj.mk =-=-=-=-= 1126 1127The include file <bsd.kernobj.mk> defines variables related to the 1128location of kernel sources and object directories. 1129 1130KERNSRCDIR Is the location of the top of the kernel src. 1131 [${_SRC_TOP_}/sys] 1132 1133KERNARCHDIR Is the location of the machine dependent kernel sources. 1134 [arch/${MACHINE}] 1135 1136KERNCONFDIR Is where the configuration files for kernels are found. 1137 [${KERNSRCDIR}/${KERNARCHDIR}/conf] 1138 1139KERNOBJDIR Is the kernel build directory. The kernel GENERIC for 1140 instance will be compiled in ${KERNOBJDIR}/GENERIC. 1141 The default value is 1142 ${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile 1143 if it exists or the target 'obj' is being made. 1144 Otherwise the default is 1145 ${KERNSRCDIR}/${KERNARCHDIR}/compile. 1146 1147It is important that Makefiles (such as those under src/distrib) that 1148wish to find compiled kernels use <bsd.kernobj.mk> and ${KERNOBJDIR} 1149rather than make assumptions about the location of the compiled kernel. 1150 1151 1152=-=-=-=-= bsd.kinc.mk =-=-=-=-= 1153 1154The include file <bsd.kinc.mk> defines the many targets (includes, 1155subdirectories, etc.), and is used by kernel makefiles to handle 1156include file installation. It is intended to be included alone, by 1157kernel Makefiles. It uses similar variables to <bsd.inc.mk>. 1158Please see <bsd.kinc.mk> for more details, and keep the documentation 1159in that file up to date. 1160 1161=-=-=-=-= bsd.syscall.mk =-=-=-=-= 1162 1163The include file <bsd.syscall.mk> contains the logic to create syscall 1164files for various emulations. It includes <bsd.kinc.mk> to handle the 1165rest of the targets. 1166 1167=-=-=-=-= bsd.lib.mk =-=-=-=-= 1168 1169The include file <bsd.lib.mk> has support for building libraries. It has 1170the same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend, 1171includes, install, lint, and tags. Additionally, it has a checkver target 1172which checks for installed shared object libraries whose version is greater 1173that the version of the source. It has a limited number of suffixes, 1174consistent with the current needs of the BSD tree. <bsd.lib.mk> includes 1175<bsd.shlib.mk> to get shared library parameters. 1176 1177It sets/uses the following variables: 1178 1179LIB The name of the library to build. 1180 1181LIBDIR Target directory for libraries. 1182 1183MKARZERO Normally, ar(1) sets the timestamps, uid, gid and 1184 permissions in files inside its archives to those of 1185 the file it was fed. This leads to non-reproduceable 1186 builds. If MKARZERO is set to "yes" (default is the 1187 same as MKREPRO, or "no" if MKREPRO is not defined), 1188 then the "D" flag is passed to ar, causing the 1189 timestamp, uid and gid to be zeroed and the file 1190 permissions to be set to 644. This allows .a files 1191 from different builds to be bit identical. 1192 1193SHLIBINSTALLDIR Target directory for shared libraries if ${USE_SHLIBDIR} 1194 is not "no". 1195 1196SHLIB_MAJOR 1197SHLIB_MINOR 1198SHLIB_TEENY Major, minor, and teeny version numbers of shared library 1199 1200USE_SHLIBDIR If not "no", use ${SHLIBINSTALLDIR} instead of ${LIBDIR} 1201 as the path to install shared libraries to. 1202 USE_SHLIBDIR must be defined before <bsd.own.mk> is included. 1203 Default: no 1204 1205LIBISMODULE If not "no", install as ${LIB}.so (without the "lib" prefix), 1206 and act as "MKDEBUGLIB=no MKLINT=no MKPICINSTALL=no 1207 MKPROFILE=no MKSTATICLIB=no". 1208 Default: no 1209 1210LIBISPRIVATE If not "no", act as "MKDEBUGLIB=no MKLINT=no MKPIC=no 1211 MKPROFILE=no", and don't install the (.a) library. 1212 This is useful for "build only" helper libraries. 1213 Default: no 1214 1215LIBISCXX If not "no", Use ${CXX} instead of ${CC} to link 1216 shared libraries. 1217 This is useful for C++ libraries. 1218 Default: no 1219 1220LINTLIBDIR Target directory for lint libraries. 1221 1222LIBGRP Library group. 1223 1224LIBOWN Library owner. 1225 1226LIBMODE Library mode. 1227 1228LDADD Additional loader objects. 1229 1230MAN The manual pages to be installed (use a .1 - .9 suffix). 1231 1232NOCHECKVER_<library> 1233NOCHECKVER If set, disables checking for installed shared object 1234 libraries with versions greater than the source. A 1235 particular library name, without the "lib" prefix, may 1236 be appended to the variable name to disable the check for 1237 only that library. 1238 1239SRCS List of source files to build the library. Suffix types 1240 .s, .c, and .f are supported. Note, .s files are preferred 1241 to .c files of the same name. (This is not the default for 1242 versions of make.) 1243 1244LIBDPLIBS A list of the tuples: 1245 libname path-to-srcdir-of-libname 1246 1247 For each tuple; 1248 * LIBDO.libname contains the .OBJDIR of the library 1249 `libname', and if it is not set it is determined 1250 from the srcdir and added to MAKEOVERRIDES (the 1251 latter is to allow for build time optimization). 1252 * LDADD gets -L${LIBDO.libname} -llibname added. 1253 * DPADD gets ${LIBDO.libname}/liblibname.so or 1254 ${LIBDO.libname}/liblibname.a added. 1255 1256 The special value "_external" for LIBDO.lib makes the 1257 build system to assume the library comes from outside 1258 of the NetBSD source tree and only causes -llibname 1259 to be added to LDADD. 1260 1261 This variable may be used for individual libraries, as 1262 well as in parent directories to cache common libraries 1263 as a build-time optimization. 1264 1265The include file <bsd.lib.mk> includes the file named "../Makefile.inc" 1266if it exists, as well as the include file <bsd.man.mk>. 1267 1268It has rules for building profiled objects; profiled libraries are 1269built by default. 1270 1271Libraries are ranlib'd when made. 1272 1273 1274=-=-=-=-= bsd.links.mk =-=-=-=-= 1275 1276The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables 1277and is included from from <bsd.lib.mk> and <bsd.prog.mk>. 1278 1279LINKSOWN, LINKSGRP, and LINKSMODE, are relevant only if a metadata log 1280is used. The defaults may be modified by other bsd.*.mk files which 1281include bsd.links.mk. In the future, these variables may be replaced 1282by a method for explicitly recording hard links in a metadata log. 1283 1284LINKS The list of hard links, consisting of pairs of paths: 1285 source-file target-file 1286 ${DESTDIR} is prepended to both paths before linking. 1287 For example, to link /bin/test and /bin/[, use: 1288 LINKS=/bin/test /bin/[ 1289 1290CONFIGLINKS Similar semantics to LINKS, except that the links 1291 are installed by the `configinstall' target, 1292 not the `install' target. 1293 1294SYMLINKS The list of symbolic links, consisting of pairs of paths: 1295 source-file target-file 1296 ${DESTDIR} is only prepended to target-file before linking. 1297 For example, to symlink /usr/bin/tar to /bin/tar resulting 1298 in ${DESTDIR}/usr/bin/tar -> /bin/tar: 1299 SYMLINKS=/bin/tar /usr/bin/tar 1300 1301CONFIGSYMLINKS Similar semantics to SYMLINKS, except that the symbolic links 1302 are installed by the `configinstall' target, 1303 not the `install' target. 1304 1305LINKSOWN Link owner. [${BINOWN}] 1306 1307LINKSGRP Link group. [${BINGRP}] 1308 1309LINKSMODE Link mode. [${NONBINMODE}] 1310 1311LINKSOWN_<fn> Link owner of the specific file <fn>. 1312 1313LINKSGRP_<fn> Link group of the specific file <fn>. 1314 1315LINKSMODE_<fn> Link mode of the specific file <fn>. 1316 1317 1318=-=-=-=-= bsd.man.mk =-=-=-=-= 1319 1320The include file <bsd.man.mk> handles installing manual pages and their 1321links. 1322 1323It has a three targets: 1324 1325 catinstall: 1326 Install the preformatted manual pages and their links. 1327 htmlinstall: 1328 Install the HTML manual pages and their links. 1329 maninstall: 1330 Install the manual page sources and their links. 1331 1332It sets/uses the following variables: 1333 1334MANDIR Base path for manual installation. 1335 1336MANGRP Manual group. 1337 1338MANOWN Manual owner. 1339 1340MANMODE Manual mode. 1341 1342MANSUBDIR Subdirectory under the manual page section, i.e. "/vax" 1343 or "/tahoe" for machine specific manual pages. 1344 1345MAN The manual pages to be installed (use a .1 - .9 suffix). 1346 1347MLINKS List of manual page links (using a .1 - .9 suffix). The 1348 linked-to file must come first, the linked file second, 1349 and there may be multiple pairs. 1350 1351The include file <bsd.man.mk> includes a file named "../Makefile.inc" if 1352it exists. 1353 1354 1355=-=-=-=-= bsd.obj.mk =-=-=-=-= 1356 1357The include file <bsd.obj.mk> defines targets related to the creation 1358and use of separated object and source directories. 1359 1360If an environment variable named MAKEOBJDIRPREFIX is set, make(1) uses 1361${MAKEOBJDIRPREFIX}${.CURDIR} as the name of the object directory if 1362it exists. Otherwise make(1) looks for the existence of a 1363subdirectory (or a symlink to a directory) of the source directory 1364into which built targets should be placed. If an environment variable 1365named MAKEOBJDIR is set, make(1) uses its value as the name of the 1366object directory; failing that, make first looks for a subdirectory 1367named "obj.${MACHINE}", and if that doesn't exist, it looks for "obj". 1368 1369Object directories are not created automatically by make(1) if they 1370don't exist; you need to run a separate "make obj". (This will happen 1371during a top-level build if "MKOBJDIRS" is set to a value other than 1372"no"). When the source directory is a subdirectory of ${BSDSRCDIR} -- 1373and this is determined by a simple string prefix comparison -- object 1374directories are created in a separate object directory tree, and a 1375symlink to the object directory in that tree is created in the source 1376directory; otherwise, "make obj" assumes that you're not in the main 1377source tree and that it's not safe to use a separate object tree. 1378 1379Several variables used by <bsd.obj.mk> control exactly what 1380directories and links get created during a "make obj": 1381 1382MAKEOBJDIR If set, this is the component name of the object 1383 directory. 1384 1385OBJMACHINE If this is set but MAKEOBJDIR is not set, creates 1386 object directories or links named "obj.${MACHINE}"; 1387 otherwise, just creates ones named "obj". 1388 1389USR_OBJMACHINE If set, and the current directory is a subdirectory of 1390 ${BSDSRCDIR}, create object directory in the 1391 corresponding subdirectory of ${BSDOBJDIR}.${MACHINE}; 1392 otherwise, create it in the corresponding subdirectory 1393 of ${BSDOBJDIR} 1394 1395BUILDID If set, the contents of this variable are appended 1396 to the object directory name. If OBJMACHINE is also 1397 set, ".${BUILDID}" is added after ".${MACHINE}". 1398 1399 1400=-=-=-=-= bsd.prog.mk =-=-=-=-= 1401 1402The include file <bsd.prog.mk> handles building programs from one or 1403more source files, along with their manual pages. It has a limited number 1404of suffixes, consistent with the current needs of the BSD tree. 1405<bsd.prog.mk> includes <bsd.shlib.mk> to get shared library parameters. 1406 1407It has eight targets: 1408 1409 all: 1410 build the program and its manual page. This also 1411 creates a GDB initialization file (.gdbinit) in 1412 the objdir. The .gdbinit file sets the shared library 1413 prefix to ${DESTDIR} to facilitate cross-debugging. 1414 clean: 1415 remove the program, any object files and the files a.out, 1416 Errs, errs, mklog, and ${PROG}.core. 1417 cleandir: 1418 remove all of the files removed by the target clean, as 1419 well as .depend, tags, and any manual pages. 1420 `distclean' is a synonym for `cleandir'. 1421 depend: 1422 make the dependencies for the source files, and store 1423 them in the file .depend. 1424 includes: 1425 install any header files. 1426 install: 1427 install the program and its manual pages; if the Makefile 1428 does not itself define the target install, the targets 1429 beforeinstall and afterinstall may also be used to cause 1430 actions immediately before and after the install target 1431 is executed. 1432 lint: 1433 run lint on the source files 1434 tags: 1435 create a tags file for the source files. 1436 1437It sets/uses the following variables: 1438 1439BINGRP Binary group. 1440 1441BINOWN Binary owner. 1442 1443BINMODE Binary mode. 1444 1445CLEANDIRFILES Additional files to remove for the cleandir target. 1446 1447CLEANFILES Additional files to remove for the clean and cleandir targets. 1448 1449CONFIGOPTS Additional flags to config(1) when building kernels. 1450 1451COPTS Additional flags to the compiler when creating C objects. 1452 1453COPTS.<fn> Additional flags to the compiler when creating the 1454 C objects for <fn>. 1455 For <fn>.[ly], "<fn>.c" must be used. 1456 1457CPUFLAGS Additional flags to the compiler/assembler to select 1458 CPU instruction set options, CPU tuning options, etc. 1459 1460CPUFLAGS.<fn> Additional flags to the compiler/assembler for <fn>. 1461 For <fn>.[ly], "<fn>.c" must be used. 1462 1463CPPFLAGS Additional flags to the C pre-processor. 1464 1465CPPFLAGS.<fn> Additional flags to the C pre-processor for <fn>. 1466 For <fn>.[ly], "<fn>.c" must be used. 1467 1468GDBINIT List of GDB initialization files to add to "source" 1469 directives in the .gdbinit file that is created in the 1470 objdir. 1471 1472LDADD Additional loader objects. Usually used for libraries. 1473 For example, to load with the compatibility and utility 1474 libraries, use: 1475 1476 LDADD+=-lutil -lcompat 1477 1478LDFLAGS Additional linker flags (passed to ${CC} during link). 1479 1480LINKS See <bsd.links.mk> 1481 1482OBJCOPTS Additional flags to the compiler when creating ObjC objects. 1483 1484OBJCOPTS.<fn> Additional flags to the compiler when creating the 1485 ObjC objects for <fn>. 1486 For <fn>.[ly], "<fn>.c" must be used. 1487 1488SYMLINKS See <bsd.links.mk> 1489 1490MAN Manual pages (should end in .1 - .9). If no MAN variable is 1491 defined, "MAN=${PROG}.1" is assumed. 1492 1493PAXCTL_FLAGS If defined, run paxctl(1) on the program binary after link 1494 time, with the value of this variable as args to paxctl(1). 1495 1496PAXCTL_FLAGS.${PROG} Custom override for PAXCTL_FLAGS. 1497 1498PROG The name of the program to build. If not supplied, nothing 1499 is built. 1500 1501PROG_CXX If defined, the name of the program to build. Also 1502 causes <bsd.prog.mk> to link the program with the C++ 1503 compiler rather than the C compiler. PROG_CXX overrides 1504 the value of PROG if PROG is also set. 1505 1506PROGNAME The name that the above program will be installed as, if 1507 different from ${PROG}. 1508 1509SRCS List of source files to build the program. If SRCS is not 1510 defined, it's assumed to be ${PROG}.c. 1511 1512DPSRCS List of source files which are needed for generating 1513 dependencies, but are not needed in ${SRCS}. 1514 1515DPADD Additional dependencies for the program. Usually used for 1516 libraries. For example, to depend on the compatibility and 1517 utility libraries use: 1518 1519 DPADD+=${LIBCOMPAT} ${LIBUTIL} 1520 1521 The following system libraries are predefined for DPADD: 1522 1523 LIBARCHIVE?= ${DESTDIR}/usr/lib/libarchive.a 1524 LIBASN1?= ${DESTDIR}/usr/lib/libasn1.a 1525 LIBATF_C?= ${DESTDIR}/usr/lib/libatf-c.a 1526 LIBATF_CXX?= ${DESTDIR}/usr/lib/libatf-c++.a 1527 LIBBIND9?= ${DESTDIR}/usr/lib/libbind9.a 1528 LIBBLUETOOTH?= ${DESTDIR}/usr/lib/libbluetooth.a 1529 LIBBSDMALLOC?= ${DESTDIR}/usr/lib/libbsdmalloc.a 1530 LIBBZ2?= ${DESTDIR}/usr/lib/libbz2.a 1531 LIBC?= ${DESTDIR}/usr/lib/libc.a 1532 LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a 1533 LIBCOM_ERR?= ${DESTDIR}/usr/lib/libcom_err.a 1534 LIBCRT0?= ${DESTDIR}/usr/lib/crt0.o 1535 LIBCRTI?= ${DESTDIR}/usr/lib/crti.o 1536 LIBCRYPT?= ${DESTDIR}/usr/lib/libcrypt.a 1537 LIBCRYPTO?= ${DESTDIR}/usr/lib/libcrypto.a 1538 LIBCRYPTO_IDEA?=${DESTDIR}/usr/lib/libcrypto_idea.a 1539 LIBCRYPTO_MDC2?=${DESTDIR}/usr/lib/libcrypto_mdc2.a 1540 LIBCRYPTO_RC5?= ${DESTDIR}/usr/lib/libcrypto_rc5.a 1541 LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a 1542 LIBC_PIC?= ${DESTDIR}/usr/lib/libc_pic.a 1543 LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a 1544 LIBDES?= ${DESTDIR}/usr/lib/libdes.a 1545 LIBDNS?= ${DESTDIR}/usr/lib/libdns.a 1546 LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a 1547 LIBEVENT?= ${DESTDIR}/usr/lib/libevent.a 1548 LIBEVENT_OPENSSL?= ${DESTDIR}/usr/lib/libevent_openssl.a 1549 LIBEVENT_PTHREADS?= ${DESTDIR}/usr/lib/libevent_pthreads.a 1550 LIBEXPAT?= ${DESTDIR}/usr/lib/libexpat.a 1551 LIBFETCH?= ${DESTDIR}/usr/lib/libfetch.a 1552 LIBFORM?= ${DESTDIR}/usr/lib/libform.a 1553 LIBFL?= ${DESTDIR}/usr/lib/libfl.a 1554 LIBG2C?= ${DESTDIR}/usr/lib/libg2c.a 1555 LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a 1556 LIBGNUMALLOC?= ${DESTDIR}/usr/lib/libgnumalloc.a 1557 LIBGSSAPI?= ${DESTDIR}/usr/lib/libgssapi.a 1558 LIBHDB?= ${DESTDIR}/usr/lib/libhdb.a 1559 LIBHEIMBASE?= ${DESTDIR}/usr/lib/libheimbase.a 1560 LIBHEIMNTLM?= ${DESTDIR}/usr/lib/libheimntlm.a 1561 LIBHX500?= ${DESTDIR}/usr/lib/libhx500.a 1562 LIBINTL?= ${DESTDIR}/usr/lib/libintl.a 1563 LIBIPSEC?= ${DESTDIR}/usr/lib/libipsec.a 1564 LIBISC?= ${DESTDIR}/usr/lib/libisc.a 1565 LIBISCCC?= ${DESTDIR}/usr/lib/libisccc.a 1566 LIBISCFG?= ${DESTDIR}/usr/lib/libiscfg.a 1567 LIBKADM5CLNT?= ${DESTDIR}/usr/lib/libkadm5clnt.a 1568 LIBKADM5SRV?= ${DESTDIR}/usr/lib/libkadm5srv.a 1569 LIBKAFS?= ${DESTDIR}/usr/lib/libkafs.a 1570 LIBKRB5?= ${DESTDIR}/usr/lib/libkrb5.a 1571 LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a 1572 LIBL?= ${DESTDIR}/usr/lib/libl.a 1573 LIBLBER?= ${DESTDIR}/usr/lib/liblber.a 1574 LIBLDAP?= ${DESTDIR}/usr/lib/libldap.a 1575 LIBLDAP_R?= ${DESTDIR}/usr/lib/libldap_r.a 1576 LIBLUA?= ${DESTDIR}/usr/lib/liblua.a 1577 LIBLUTOK?= ${DESTDIR}/usr/lib/liblutok.a 1578 LIBLWRES?= ${DESTDIR}/usr/lib/liblwres.a 1579 LIBM?= ${DESTDIR}/usr/lib/libm.a 1580 LIBMAGIC?= ${DESTDIR}/usr/lib/libmagic.a 1581 LIBMENU?= ${DESTDIR}/usr/lib/libmenu.a 1582 LIBOBJC?= ${DESTDIR}/usr/lib/libobjc.a 1583 LIBOSSAUDIO?= ${DESTDIR}/usr/lib/libossaudio.a 1584 LIBPAM?= ${DESTDIR}/usr/lib/libpam.a 1585 LIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a 1586 LIBPCI?= ${DESTDIR}/usr/lib/libpci.a 1587 LIBPMC?= ${DESTDIR}/usr/lib/libpmc.a 1588 LIBPOSIX?= ${DESTDIR}/usr/lib/libposix.a 1589 LIBPTHREAD?= ${DESTDIR}/usr/lib/libpthread.a 1590 LIBPTHREAD_DBG?=${DESTDIR}/usr/lib/libpthread_dbg.a 1591 LIBPUFFS?= ${DESTDIR}/usr/lib/libpuffs.a 1592 LIBQUOTA?= ${DESTDIR}/usr/lib/libquota.a 1593 LIBRADIUS?= ${DESTDIR}/usr/lib/libradius.a 1594 LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a 1595 LIBRMT?= ${DESTDIR}/usr/lib/librmt.a 1596 LIBROKEN?= ${DESTDIR}/usr/lib/libroken.a 1597 LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a 1598 LIBRT?= ${DESTDIR}/usr/lib/librt.a 1599 LIBRUMP?= ${DESTDIR}/usr/lib/librump.a 1600 LIBRUMPFS_CD9660FS?=${DESTDIR}/usr/lib/librumpfs_cd9660fs.a 1601 LIBRUMPFS_EFS?= ${DESTDIR}/usr/lib/librumpfs_efs.a 1602 LIBRUMPFS_EXT2FS?=${DESTDIR}/usr/lib/librumpfs_ext2fs.a 1603 LIBRUMPFS_FFS?= ${DESTDIR}/usr/lib/librumpfs_ffs.a 1604 LIBRUMPFS_HFS?= ${DESTDIR}/usr/lib/librumpfs_hfs.a 1605 LIBRUMPFS_LFS?= ${DESTDIR}/usr/lib/librumpfs_lfs.a 1606 LIBRUMPFS_MSDOSFS?=${DESTDIR}/usr/lib/librumpfs_msdosfs.a 1607 LIBRUMPFS_NFS?= ${DESTDIR}/usr/lib/librumpfs_nfs.a 1608 LIBRUMPFS_NTFS?=${DESTDIR}/usr/lib/librumpfs_ntfs.a 1609 LIBRUMPFS_SYSPUFFS?=${DESTDIR}/usr/lib/librumpfs_syspuffs.a 1610 LIBRUMPFS_TMPFS?=${DESTDIR}/usr/lib/librumpfs_tmpfs.a 1611 LIBRUMPFS_UDF?= ${DESTDIR}/usr/lib/librumpfs_udf.a 1612 LIBRUMPFS_UFS?= ${DESTDIR}/usr/lib/librumpfs_ufs.a 1613 LIBRUMPUSER?= ${DESTDIR}/usr/lib/librumpuser.a 1614 LIBSASLC?= ${DESTDIR}/usr/lib/libsaslc.a 1615 LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a 1616 LIBSL?= ${DESTDIR}/usr/lib/libsl.a 1617 LIBSQLITE3?= ${DESTDIR}/usr/lib/libsqlite3.a 1618 LIBSS?= ${DESTDIR}/usr/lib/libss.a 1619 LIBSSH?= ${DESTDIR}/usr/lib/libssh.a 1620 LIBSSL?= ${DESTDIR}/usr/lib/libssl.a 1621 LIBSSP?= ${DESTDIR}/usr/lib/libssp.a 1622 LIBSTDCXX?= ${DESTDIR}/usr/lib/libstdc++.a 1623 LIBSUPCXX?= ${DESTDIR}/usr/lib/libsupc++.a 1624 LIBTERMINFO?= ${DESTDIR}/usr/lib/libterminfo.a 1625 LIBTRE?= ${DESTDIR}/usr/lib/libtre.a 1626 LIBUSBHID?= ${DESTDIR}/usr/lib/libusbhid.a 1627 LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a 1628 LIBWIND?= ${DESTDIR}/usr/lib/libwind.a 1629 LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a 1630 LIBY?= ${DESTDIR}/usr/lib/liby.a 1631 LIBZ?= ${DESTDIR}/usr/lib/libz.a 1632 1633 The following X-Windows libraries are predefined for DPADD: 1634 1635 LIBFS?= ${DESTDIR}/usr/X11R7/lib/libFS.a 1636 LIBGL?= ${DESTDIR}/usr/X11R7/lib/libGL.a 1637 LIBGLU?= ${DESTDIR}/usr/X11R7/lib/libGLU.a 1638 LIBICE?= ${DESTDIR}/usr/X11R7/lib/libICE.a 1639 LIBSM?= ${DESTDIR}/usr/X11R7/lib/libSM.a 1640 LIBX11?= ${DESTDIR}/usr/X11R7/lib/libX11.a 1641 LIBX11_XCB?= ${DESTDIR}/usr/X11R7/lib/libX11-xcb.a 1642 LIBXTRAP?= ${DESTDIR}/usr/X11R7/lib/libXTrap.a 1643 LIBXAU?= ${DESTDIR}/usr/X11R7/lib/libXau.a 1644 LIBXAW?= ${DESTDIR}/usr/X11R7/lib/libXaw.a 1645 LIBXCB?= ${DESTDIR}/usr/X11R7/lib/libxcb.a 1646 LIBXDMCP?= ${DESTDIR}/usr/X11R7/lib/libXdmcp.a 1647 LIBXEXT?= ${DESTDIR}/usr/X11R7/lib/libXext.a 1648 LIBXFONT?= ${DESTDIR}/usr/X11R7/lib/libXfont.a 1649 LIBXFT?= ${DESTDIR}/usr/X11R7/lib/libXft.a 1650 LIBXI?= ${DESTDIR}/usr/X11R7/lib/libXi.a 1651 LIBXINERAMA?= ${DESTDIR}/usr/X11R7/lib/libXinerama.a 1652 LIBXMU?= ${DESTDIR}/usr/X11R7/lib/libXmu.a 1653 LIBXMUU?= ${DESTDIR}/usr/X11R7/lib/libXmuu.a 1654 LIBXPM?= ${DESTDIR}/usr/X11R7/lib/libXpm.a 1655 LIBXRANDR?= ${DESTDIR}/usr/X11R7/lib/libXrandr.a 1656 LIBXRENDER?= ${DESTDIR}/usr/X11R7/lib/libXrender.a 1657 LIBXSS?= ${DESTDIR}/usr/X11R7/lib/libXss.a 1658 LIBXT?= ${DESTDIR}/usr/X11R7/lib/libXt.a 1659 LIBXTST?= ${DESTDIR}/usr/X11R7/lib/libXtst.a 1660 LIBXV?= ${DESTDIR}/usr/X11R7/lib/libXv.a 1661 LIBXXF86DGA?= ${DESTDIR}/usr/X11R7/lib/libXxf86dga.a 1662 LIBXXF86MISC?= ${DESTDIR}/usr/X11R7/lib/libXxf86misc.a 1663 LIBXXF86VM?= ${DESTDIR}/usr/X11R7/lib/libXxf86vm.a 1664 LIBDPS?= ${DESTDIR}/usr/X11R7/lib/libdps.a 1665 LIBFNTSTUBS?= ${DESTDIR}/usr/X11R7/lib/libfntstubs.a 1666 LIBFONTCACHE?= ${DESTDIR}/usr/X11R7/lib/libfontcache.a 1667 LIBFONTCONFIG?= ${DESTDIR}/usr/X11R7/lib/libfontconfig.a 1668 LIBFONTENC?= ${DESTDIR}/usr/X11R7/lib/libfontenc.a 1669 LIBFREETYPE?= ${DESTDIR}/usr/X11R7/lib/libfreetype.a 1670 LIBLBXUTIL?= ${DESTDIR}/usr/X11R7/lib/liblbxutil.a 1671 LIBXKBFILE?= ${DESTDIR}/usr/X11R7/lib/libxkbfile.a 1672 1673SHAREDSTRINGS If defined, a new .c.o rule is used that results in shared 1674 strings, using xstr(1). Note that this will not work with 1675 parallel makes. 1676 1677STRIPFLAG The flag passed to the install program to cause the binary 1678 to be stripped. 1679 1680SUBDIR A list of subdirectories that should be built as well. 1681 Each of the targets will execute the same target in the 1682 subdirectories. 1683 1684SCRIPTS A list of interpreter scripts [file.{sh,csh,pl,awk,...}]. 1685 These are installed exactly like programs. 1686 1687SCRIPTSDIR The location to install the scripts. Each script can be 1688 installed to a separate path by setting SCRIPTSDIR_<script>. 1689 1690SCRIPTSNAME The name that the above program will be installed as, if 1691 different from ${SCRIPTS}. These can be further specialized 1692 by setting SCRIPTSNAME_<script>. 1693 1694FILES See description of <bsd.files.mk>. 1695 1696SHLINKDIR Target directory for shared linker. See description of 1697 <bsd.own.mk> for additional information about this variable. 1698 1699The include file <bsd.prog.mk> includes the file named "../Makefile.inc" 1700if it exists, as well as the include file <bsd.man.mk>. 1701 1702Some simple examples: 1703 1704To build foo from foo.c with a manual page foo.1, use: 1705 1706 PROG= foo 1707 1708 .include <bsd.prog.mk> 1709 1710To build foo from foo.c with a manual page foo.2, add the line: 1711 1712 MAN= foo.2 1713 1714If foo does not have a manual page at all, add the line: 1715 1716 MKMAN= no 1717 1718If foo has multiple source files, add the line: 1719 1720 SRCS= a.c b.c c.c d.c 1721 1722 1723=-=-=-=-= bsd.rpc.mk =-=-=-=-= 1724 1725The include file <bsd.rpc.mk> contains a makefile fragment used to 1726construct source files built by rpcgen. 1727 1728The following macros may be defined in makefiles which include 1729<bsd.rpc.mk> in order to control which files get built and how they 1730are to be built: 1731 1732RPC_INCS: construct .h file from .x file 1733RPC_XDRFILES: construct _xdr.c from .x file 1734 (for marshalling/unmarshalling data types) 1735RPC_SVCFILES: construct _svc.c from .x file 1736 (server-side stubs) 1737RPC_SVCFLAGS: Additional flags passed to builds of RPC_SVCFILES. 1738 1739RPC_XDIR: Directory containing .x/.h files 1740 1741 1742=-=-=-=-= bsd.shlib.mk =-=-=-=-= 1743 1744The include file <bsd.shlib.mk> computes parameters for shared library 1745installation and use. It defines no targets. <bsd.own.mk> MUST be 1746included before <bsd.shlib.mk>. 1747 1748<bsd.own.mk> sets the following variables, if they are not already defined 1749(defaults are in brackets): 1750 1751SHLIBINSTALLDIR If ${USE_SHLIBDIR} is not "no", use ${SHLIBINSTALLDIR} 1752 instead of ${LIBDIR} as the base path for shared library 1753 installation. [/lib] 1754 1755SHLIBDIR The path to USE_SHLIBDIR shared libraries to use when building 1756 a program. [/lib for programs in /bin and /sbin, /usr/lib 1757 for all others.] 1758 1759_LIBSODIR Set to ${SHLIBINSTALLDIR} if ${USE_SHLIBDIR} is not "no", 1760 otherwise set to ${LIBDIR} 1761 1762SHLINKINSTALLDIR Base path for shared linker. [/libexec] 1763 1764SHLINKDIR Path to use for shared linker when building a program. 1765 [/libexec for programs in /bin and /sbin, /usr/libexec for 1766 all others.] 1767 1768 1769=-=-=-=-= bsd.subdir.mk =-=-=-=-= 1770 1771The include file <bsd.subdir.mk> contains the default targets for building 1772subdirectories. It has the same eight targets as <bsd.prog.mk>: all, 1773clean, cleandir, depend, includes, install, lint, and tags. It uses the 1774following variables: 1775 1776NOSUBDIR If this variable is defined, then the SUBDIR variable 1777 will be ignored and subdirectories will not be processed. 1778 1779SUBDIR For all of the directories listed in ${SUBDIR}, the 1780 specified directory will be visited and the target made. 1781 1782 As a special case, the use of a token .WAIT as an 1783 entry in SUBDIR acts as a synchronization barrier 1784 when multiple make jobs are run; subdirs before the 1785 .WAIT must complete before any subdirs after .WAIT are 1786 started. See make(1) for some caveats on use of .WAIT 1787 and other special sources. 1788 1789 1790=-=-=-=-= bsd.x11.mk =-=-=-=-= 1791 1792The include file <bsd.x11.mk> contains parameters and targets for 1793cross-building X11 from ${X11SRCDIR.xc} / ${X11MITSRCDIR.*}. 1794It should be included after the general Makefile contents but before 1795the include files such as <bsd.prog.mk> and <bsd.lib.mk>. 1796 1797It provides the following targets: 1798 .man.1 .man.3 .man.4 .man.5 .man.7: 1799 If ${MAN} or ${PROG} is set and ${MKMAN} != "no", 1800 these rules convert from X11's manual page source 1801 into an mdoc.old source file. 1802 1803It sets the following variables: 1804 1805BINDIR Set to ${X11BINDIR}. 1806 To override, define after including <bsd.x11.mk> 1807 1808LIBDIR Set to ${X11USRLIBDIR}. 1809 To override, define after including <bsd.x11.mk> 1810 1811MANDIR Set to ${X11MANDIR}. 1812 To override, define after including <bsd.x11.mk> 1813 1814CPPFLAGS Appended with definitions to include from 1815 ${DESTDIR}${X11INCDIR} 1816 1817LDFLAGS Appended with definitions to link from 1818 ${DESTDIR}${X11USRLIBDIR} 1819 1820X11FLAGS.CONNECTION Equivalent to X11's CONNECTION_FLAGS. 1821 1822X11FLAGS.EXTENSION Equivalent to X11's EXT_DEFINES. 1823 1824X11FLAGS.LOADABLE Equivalent to X11's LOADABLE. 1825 1826X11FLAGS.OS_DEFINES Equivalent to X11's OS_DEFINES. 1827 1828X11FLAGS.SERVER Equivalent to X11's ServerDefines. 1829 1830X11FLAGS.THREADLIB Equivalent to X11's THREADS_DEFINES for libraries. 1831 1832X11FLAGS.THREADS Equivalent to X11's THREADS_DEFINES. 1833 1834X11FLAGS.VERSION cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION. 1835 1836X11FLAGS.DIX Equivalent to X11's DIX_DEFINES. 1837 1838X11TOOL_UNXCOMM Commandline to convert `XCOMM' comments to `#' 1839 1840It uses the following variables: 1841 1842APPDEFS List of app-default files to install. 1843 1844CPPSCRIPTS List of files/scripts to run through cpp(1) 1845 and then ${X11TOOL_UNXCOMM}. The source files 1846 have a `.cpp' suffix, the generated files do not. 1847 1848CPPSCRIPTFLAGS Additional flags to cpp(1) when building CPPSCRIPTS. 1849 1850CPPSCRIPTFLAGS_<fn> Additional flags to cpp(1) when building CPPSCRIPT <fn>. 1851 1852 1853=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 1854 1855The following files are described here for completion, but they are not 1856supposed to be included directly from other Makefiles; they are used 1857internally by other system files. 1858 1859=-=-=-=-= bsd.sys.mk =-=-=-=-= 1860 1861The include file <bsd.sys.mk> is used by other system mk files and 1862it is not intended to be included standalone. It contains rules and 1863system build variables. It requires bsd.own.mk to be included first. 1864It contains overrides that are used when building the NetBSD source tree. 1865 1866The following variables control how various files are compiled/built. 1867(Note that these may be overridden in <bsd.own.mk> if USETOOLS == "yes"): 1868 1869AR Create, modify, and extract from archives. [ar] 1870 1871ARFLAGS Options to ${AR}. [rl] 1872 1873AS Assembler. [as] 1874 1875AFLAGS Options to ${CC} when compiling or linking .s or .S 1876 assembly source files. [] 1877 1878BUILDSEED GCC uses random numbers when compiling C++ code. 1879 If this option is present, seed the random number 1880 generator based on the value, source file names and 1881 the output file name to make builds more deterministic. 1882 Additional information is available in the GCC 1883 documentation of -frandom-seed. 1884 1885CC C compiler. [cc] 1886 1887CFLAGS Options to ${CC}. [Usually -O or -O2] 1888 1889CPP C Pre-Processor. [cpp] 1890 1891CPPFLAGS Options to ${CPP}. [] 1892 1893CPUFLAGS Optimization flags for ${CC}. [] 1894 1895CXX C++ compiler. [c++] 1896 1897CXXFLAGS Options to ${CXX}. [${CFLAGS}] 1898 1899ELF2ECOFF Convert ELF-format executable to ECOFF. [elf2ecoff] 1900 1901FC Fortran compiler. [f77] 1902 1903FFLAGS Options to {$FC}. [-O] 1904 1905HOST_SH Shell. This must be an absolute path, because it may be 1906 substituted into "#!" lines in scripts. [/bin/sh] 1907 1908INSTALL install(1) command. [install] 1909 1910LEX Lexical analyzer. [lex] 1911 1912LFLAGS Options to ${LEX}. [] 1913 1914LPREFIX Symbol prefix for ${LEX} (see -P option in lex(1)) [yy] 1915 1916LD Linker. [ld] 1917 1918LDFLAGS Options to ${CC} during the link process. [] 1919 1920LINT C program verifier. [lint] 1921 1922LINTFLAGS Options to ${LINT}. [-chapbxzgFS] 1923 1924LORDER List dependencies for object files. [lorder] 1925 1926MAKE make(1). [make] 1927 1928MKDEP Construct Makefile dependency list. [mkdep] 1929 1930MKDEPCXX Construct Makefile dependency list for C++ files. [mkdep] 1931 1932NM List symbols from object files. [nm] 1933 1934PC Pascal compiler. [pc] (Not present) 1935 1936PFLAGS Options to ${PC}. [] 1937 1938OBJC Objective C compiler. [${CC}] 1939 1940OBJCFLAGS Options to ${OBJC}. [${CFLAGS}] 1941 1942OBJCOPY Copy and translate object files. [objcopy] 1943 1944OBJCOPYLIBFLAGS Flags to pass to objcopy when library objects are 1945 being built. [${.TARGET} =~ "*.po" ? -X : -x] 1946 1947OBJDUMP Display information from object files. [objdump] 1948 1949RANLIB Generate index to archive. [ranlib] 1950 1951SIZE List section sizes and total size. [size] 1952 1953STRIP Discard symbols from object files. [strip] 1954 1955TSORT Topological sort of a directed graph. [tsort -q] 1956 1957YACC LALR(1) parser generator. [yacc] 1958 1959YFLAGS Options to ${YACC}. [] 1960 1961YHEADER If defined, add "-d" to YFLAGS, and add dependencies 1962 from <file>.y to <file>.h and <file>.c, and add 1963 <foo>.h to CLEANFILES. 1964 1965YPREFIX If defined, add "-p ${YPREFIX}" to YFLAGS. 1966 1967 1968Other variables of note (incomplete list): 1969 1970NOGCCERROR If defined, prevents passing certain ${CFLAGS} to GCC 1971 that cause warnings to be fatal, such as: 1972 -Werror -Wa,--fatal-warnings 1973 (The latter being for as(1).) 1974 1975NOCLANGERROR If defined and clang is used as C compiler, -Werror is not 1976 passed to it. 1977 1978WARNS Crank up compiler warning options; the distinct levels are: 1979 WARNS=1 1980 WARNS=2 1981 WARNS=3 1982 WARNS=4 1983 WARNS=5 1984 WARNS=6 1985 1986=-=-=-=-= bsd.host.mk =-=-=-=-= 1987 1988This file is automatically included from bsd.own.mk. It contains settings 1989for all the HOST_* variables that are used in host programs and libraries. 1990 1991HOST_AR The host archive processing command 1992 1993HOST_CC The host c compiler 1994 1995HOST_CFLAGS The host c compiler flags 1996 1997HOST_COMPILE.c The host c compiler line with flags 1998 1999HOST_COMPILE.cc The host c++ compiler line with flags 2000 2001HOST_CPP The host c pre-processor 2002 2003HOST_CPPFLAGS The cost c pre-processor flags 2004 2005HOST_CXX The host c++ compiler 2006 2007HOST_CXXFLAGS The host c++ compiler flags 2008 2009HOST_INSTALL_DIR The host command to install a directory 2010 2011HOST_INSTALL_FILE The host command to install a file 2012 2013HOST_INSTALL_SYMLINK The host command to install a symlink 2014 2015HOST_LD The host linker command 2016 2017HOST_LDFLAGS The host linker flags 2018 2019HOST_LINK.c The host c linker line with flags 2020 2021HOST_LINK.cc The host c++ linker line with flags 2022 2023HOST_LN The host command to link two files 2024 2025HOST_MKDEP The host command to create dependencies for c programs 2026 2027HOST_MKDEPCXX The host command to create dependencies for c++ programs 2028 2029HOST_OSTYPE The host OSNAME-RELEASE-ARCH tupple 2030 2031HOST_RANLIB The host command to create random access archives 2032 2033HOST_SH The host Bourne shell interpreter name (absolute path) 2034 2035=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 2036