1# $NetBSD: bsd.README,v 1.154 2004/05/23 01:45:21 lukem Exp $ 2# @(#)bsd.README 8.2 (Berkeley) 4/2/94 3 4This is the README file for the new make "include" files for the BSD 5source tree. The files are installed in /usr/share/mk, and are, by 6convention, 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 ".so" 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 69MKxxx Can be set to "no" to disable functionality, or 70 "yes" to enable it. 71 Usually defaults to "yes", although some variables 72 default to "no". 73 Due to make(1) implementation issues, if a temporary 74 command-line override of a mk.conf or <bsd.own.mk> 75 setting is required whilst still honouring a particular 76 Makefile's setting of MKxxx, use 77 env MKxxx=value make 78 instead of 79 make MKxxx=value 80 81NOxxx If defined, disables a feature. 82 Not intended for users. 83 This is to allow Makefiles to disable functionality 84 that they don't support (such as missing man pages). 85 NOxxx variables must be defined before <bsd.own.mk> 86 is included. 87 88The following variables that control how things are made/installed that 89are not set by default. These should not be set by Makefiles; they're for 90the user to define in MAKECONF (see <bsd.own.mk>, below) or on the make(1) 91command line: 92 93BUILD If defined, 'make install' checks that the targets in the 94 source directories are up-to-date and remakes them if they 95 are out of date, instead of blindly trying to install 96 out of date or non-existent targets. 97 98MAKEVERBOSE Control how "verbose" the standard make(1) rules are. 99 Default: 2 100 Supported values: 101 0 Minimal output ("quiet") 102 1 Describe what is occurring 103 2 Describe what is occurring and echo the actual command 104 105 106MKBFD If "no", don't build libbfd, libiberty, or any of the things 107 that depend on them (binutils/gas/ld, gdb, dbsym, mdsetimage). 108 Default: yes 109 110MKCATPAGES If "no", don't build or install the catman pages. 111 Default: yes 112 113MKCRYPTO If "no", no cryptography support will be built into the system, 114 and also acts as "MKKERBEROS=no MKKERBEROS4=no". 115 Default: yes 116 117MKCRYPTO_IDEA If not "no", IDEA support will be built into libcrypto_idea.a. 118 Default: no 119 120MKCRYPTO_MDC2 If not "no", MDC2 support will be built into libcrypto_mdc2.a 121 Default: no 122 123MKCRYPTO_RC5 If not "no", RC5 support will be built into libcrypto_rc5.a. 124 Default: no 125 126MKCVS If "no", don't build or install cvs(1). 127 Default: yes 128 129MKDOC If "no", don't build or install the documentation. 130 Default: yes 131 132MKDYNAMICROOT If "no", build programs in /bin and /sbin statically, 133 don't install certain libraries in /lib, and don't 134 install the shared linker into /libexec. 135 Default: yes 136 137MKGCC If "no", don't build gcc(1) or any of the gcc-related 138 libraries (libg2c, libgcc, libobjc, libstdc++). 139 Default: yes 140 141MKGCCCMDS If "no", don't build gcc(1). 142 Default: yes 143 144MKGDB If "no", don't build gdb(1). 145 Default: yes 146 147MKHESIOD If "no", disables building of Hesiod infrastructure 148 (libraries and support programs). 149 Default: yes 150 151MKHOSTOBJ If not "no", for programs intended to be run on the compile 152 host, the name, release, and architecture of the host 153 operating system will be suffixed to the name of the object 154 directory created by "make obj". 155 Default: no 156 157MKHTML If "no", don't build or install the html man pages. 158 Default: yes 159 160MKIEEEFP If "no", don't add code for IEEE754/IEC60559 conformance. 161 Has no effect on most platforms. 162 Default: yes 163 164MKINFO If "no", don't build or install Info documentation from 165 Texinfo source files. 166 Default: yes 167 168MKKERBEROS4 If "no", disables building of Kerberos v4 169 infrastructure (libraries and support programs). 170 Default: yes 171 172MKKERBEROS If "no", disables building of Kerberos v5 173 infrastructure (libraries and support programs). 174 Default: yes 175 176MKLINKLIB If "no", act as "MKPICINSTALL=no MKPROFILE=no". 177 Also: 178 - don't install the .a libraries 179 - don't install _pic.a libraries on PIC systems 180 - don't build .a libraries on PIC systems 181 - don't install the .so symlink on ELF systems 182 I.e, only install the shared library (and the .so.major 183 symlink on ELF). 184 Default: yes 185 186MKLINT If "no", don't build or install the lint libraries. 187 Default: yes 188 189MKMAN If "no", don't build or install the man or catman pages, 190 and also acts as "MKCATPAGES=no MKHTML=no". 191 Default: yes 192 193MKMANZ If not "no", compress manual pages at installation time. 194 Default: no 195 196MKNLS If "no", don't build or install the NLS files and locale 197 definition files. 198 Default: yes 199 200MKOBJ If "no", don't enable the rule which creates objdirs, 201 and also acts as "MKOBJDIRS=no". 202 Default: yes 203 204MKOBJDIRS If "no", don't create objdirs during a "make build". 205 Default: no 206 207MKPIC If "no", don't build or install shared libraries, and 208 also acts as "MKPICLIB=no" 209 Default: yes (for MACHINE_ARCHs that support it) 210 211MKPICINSTALL If "no", don't install the *_pic.a libraries. 212 Default: yes 213 214MKPICLIB If "no", don't build *_pic.a libraries, and build the 215 shared object libraries from the .a libraries. 216 A symlink is installed in ${DESTDIR}/usr/lib for the 217 _pic.a library pointing to the .a library. 218 Default: yes 219 220MKPOSTFIX If "no", don't build or install postfix(1). 221 Default: yes 222 223MKPROFILE If "no", don't build or install the profiling (*_p.a) libraries. 224 Default: yes 225 226MKSENDMAIL If "no", don't build or install sendmail(8). 227 Default: yes 228 229MKSHARE If "no", act as "MKCATPAGES=no MKDOC=no MKHTML=no MKINFO=no 230 MKMAN=no MKNLS=no". 231 I.e, don't build catman pages, documentation, Info 232 documentation, man pages, NLS files, ... 233 Default: yes 234 235MKSKEY If "no", disables building of S/key authentication 236 infrastructure (libraries and support programs). 237 Default: yes 238 239MKSOFTFLOAT If not "no", build with options to enable the compiler to 240 generate output containing library calls for floating 241 point and possibly soft-float library support. 242 Default: no 243 244MKSTATICLIB If "no", don't build or install the normal static (*.a) 245 libraries. 246 Default: yes 247 248MKUNPRIVED If not "no", don't set the owner/group/mode when installing 249 files or directories, and keep a metadata log of what 250 the owner/group/mode should be. This allows a 251 non-root "make install". 252 Default: no 253 254MKUPDATE If not "no", 'make install' only installs targets that are 255 more recently modified in the source directories that their 256 installed counterparts. 257 Default: no 258 259MKUUCP If "no", don't build or install uucp(1). 260 Default: yes 261 262MKX11 If not "no", 'make build' also descends into src/x11 263 to cross build X11R6 and automatically enables creation 264 of X sets. 265 Default: no 266 267MKYP If "no", disables building of YP (NIS) 268 infrastructure (libraries and support programs). 269 Default: yes 270 271USE_HESIOD If "no", disables building Hesiod support into 272 various system utilities/libraries that support it. 273 If ${MKHESIOD} is "no", USE_HESIOD will also be 274 forced to "no". 275 276USE_KERBEROS4 If "no", disables building Kerberos v4 277 support into various system utilities/libraries that 278 support it. If ${MKKERBEROS4} is "no", USE_KERBEROS4 279 will also be forced to "no". 280 281USE_KERBEROS If "no", disables building Kerberos v4 or v5) 282 support into various system utilities/libraries that 283 support it. If ${MKKERBEROS} is "no", USE_KERBEROS 284 will also be forced to "no". 285 286USE_SKEY If "no", disables building S/key authentication 287 support into various system utilities/libraries that 288 support it. If ${MKSKEY} is "no", USE_SKEY will 289 also be forced to "no". 290 291USE_YP If "no", disables building YP (NIS) support into 292 various system utilities/libraries that support it. 293 If ${MKYP} is "no", USE_YP will also be forced to "no". 294 295COPTS.lib<lib> 296LDADD.lib<lib> 297CPPFLAGS.lib<lib> 298CXXFLAGS.lib<lib> 299COPTS.<prog> 300LDADD.<prog> 301CPPFLAGS.<prog> 302CXXFLAGS.<prog> These provide a way to specify additions to the associated 303 variables in a way that applies only to a particular library 304 or program. <lib> corresponds to the LIB variable set in 305 the library's makefile. <prog> corresponds to either PROG 306 or PROG_CXX (if set). For example, if COPTS.libcrypto is 307 set to "-g", "-g" will be added to COPTS only when compiling 308 the crypto library. 309 310=-=-=-=-= sys.mk =-=-=-=-= 311 312The include file <sys.mk> has the default rules for all makes, in the BSD 313environment or otherwise. You probably don't want to touch this file. 314 315=-=-=-=-= bsd.own.mk =-=-=-=-= 316 317The include file <bsd.own.mk> contains source tree configuration parameters, 318such as the owners, groups, etc. for both manual pages and binaries, and 319a few global "feature configuration" parameters. 320 321It has no targets. 322 323To get system-specific configuration parameters, <bsd.own.mk> will try to 324include the file specified by the "MAKECONF" variable. If MAKECONF is not 325set, or no such file exists, the system make configuration file, /etc/mk.conf 326is included. These files may define any of the variables described below. 327 328<bsd.own.mk> sets the following variables, if they are not already defined 329(defaults are in brackets): 330 331NETBSDSRCDIR Top of the NetBSD source tree. 332 If _SRC_TOP_ != "", that will be used as the default, 333 otherwise BSDSRCDIR will be used as the default. 334 Various makefiles within the NetBSD source tree will 335 use this to reference the top level of the source tree. 336 337_SRC_TOP_ Top of the system source tree, as determined by <bsd.own.mk> 338 based on the presence of tools/ and build.sh. This variable 339 is "internal" to <bsd.own.mk>, although its value is only 340 determined once and then propagated to all sub-makes. 341 342BSDSRCDIR The real path to the system sources, so that 'make obj' 343 will work correctly. [/usr/src] 344 345BSDOBJDIR The real path to the system 'obj' tree, so that 'make obj' 346 will work correctly. [/usr/obj] 347 348BINGRP Binary group. [wheel] 349 350BINOWN Binary owner. [root] 351 352BINMODE Binary mode. [555] 353 354NONBINMODE Mode for non-executable files. [444] 355 356MANDIR Base path for manual installation. [/usr/share/man/cat] 357 358MANGRP Manual group. [wheel] 359 360MANOWN Manual owner. [root] 361 362MANMODE Manual mode. [${NONBINMODE}] 363 364MANINSTALL Manual installation type: maninstall, catinstall, or both 365 366LDSTATIC Control program linking; if set blank, link everything 367 dynamically. If set to "-static", link everything statically. 368 If not set, programs link according to their makefile. 369 370LIBDIR Base path for library installation. [/usr/lib] 371 372LINTLIBDIR Base path for lint(1) library installation. [/usr/libdata/lint] 373 374LIBGRP Library group. [${BINGRP}] 375 376LIBOWN Library owner. [${BINOWN}] 377 378LIBMODE Library mode. [${NONBINMODE}] 379 380DOCDIR Base path for system documentation (e.g. PSD, USD, etc.) 381 installation. [/usr/share/doc] 382 383HTMLDOCDIR Base path for html system documentation installation. 384 [/usr/share/doc/html] 385 386DOCGRP Documentation group. [wheel] 387 388DOCOWN Documentation owner. [root] 389 390DOCMODE Documentation mode. [${NONBINMODE}] 391 392NLSDIR Base path for Native Language Support files installation. 393 [/usr/share/nls] 394 395NLSGRP Native Language Support files group. [wheel] 396 397NLSOWN Native Language Support files owner. [root] 398 399NLSMODE Native Language Support files mode. [${NONBINMODE}] 400 401X11SRCDIR The path to the xsrc tree. [/usr/xsrc] 402 403X11SRCDIR.xc The path to the X11R6 xc src tree. [${X11SRCDIR}/xfree/xc] 404 405X11SRCDIR.local The path to the local X11R6 src tree. [${X11SRCDIR}/local] 406 407X11ROOTDIR Root directory of the X11 installation. [/usr/X11R6] 408 409X11BINDIR X11 bin directory. [${X11ROOTDIR}/bin] 410 411X11FONTDIR X11 font directory. [${X11ROOTDIR}/lib/X11/fonts] 412 413X11INCDIR X11 include directory. [${X11ROOTDIR}/include] 414 415X11LIBDIR X11 lib/x11 (config) directory. [${X11ROOTDIR}/lib/X11] 416 417X11MANDIR X11 manual directory. [${X11ROOTDIR}/man] 418 419X11USRLIBDIR X11 library directory. [${X11ROOTDIR}/lib] 420 421STRIPFLAG The flag passed to the install program to cause the binary 422 to be stripped. This is to be used when building your 423 own install script so that the entire system can be made 424 stripped/not-stripped using a single knob. [] 425 426COPY The flag passed to the install program to cause the binary 427 to be copied rather than moved. This is to be used when 428 building our own install script so that the entire system 429 can either be installed with copies, or with moves using 430 a single knob. [-c] 431 432MAKEDIRTARGET dir target [params] 433 Runs "cd $${dir} && ${MAKE} [params] $${target}", 434 displaying a "pretty" message whilst doing so. 435 436RELEASEMACHINEDIR 437 Subdirectory used below RELEASEDIR when building 438 a release. [${MACHINE}] 439 440RELEASEMACHINE Subdirectory or path component used for the following 441 paths: 442 distrib/${RELEASEMACHINE} 443 distrib/notes/${RELEASEMACHINE} 444 etc/etc.${RELEASEMACHINE} 445 Used when building a release. [${MACHINE}] 446 447Additionally, the following variables may be set by <bsd.own.mk> or in a 448make configuration file to modify the behaviour of the system build 449process (default values are in brackets along with comments, if set by 450<bsd.own.mk>): 451 452USETOOLS Indicates whether the tools specified by ${TOOLDIR} should 453 be used as part of a build in progress. 454 Supported values: 455 456 yes Use the tools from TOOLDIR. 457 Must be set to this if cross-compiling. 458 459 no Do not use the tools from TOOLDIR, but refuse to 460 build native compilation tool components that are 461 version-specific for that tool. 462 463 never Do not use the tools from TOOLDIR, even when 464 building native tool components. This is similar to 465 the traditional NetBSD build method, but does not 466 verify that the compilation tools in use are 467 up-to-date enough in order to build the tree 468 successfully. This may cause build or runtime 469 problems when building the whole NetBSD source tree. 470 471 Default: "yes" if building all or part of a whole NetBSD 472 source tree (detected automatically); "no" otherwise 473 (to preserve traditional semantics of the <bsd.*.mk> 474 make(1) include files). 475 476OBJECT_FMT Object file format. [set to "ELF" on architectures that 477 use ELF -- currently if ${MACHINE_ARCH} is "alpha", 478 "mipsel", "mipseb", "powerpc", "sparc", "sparc64", 479 "i386" and some m68k machines, or set to "a.out" on 480 other architectures]. 481 482TOOLCHAIN_MISSING 483 If not "no", this indicates that the platform being built 484 does not have a working in-tree toolchain. If the 485 ${MACHINE_ARCH} in question falls into this category, 486 TOOLCHAIN_MISSING is conditionally assigned the value "yes". 487 Otherwise, the variable is unconditionally assigned the 488 value "no". 489 If not "no", ${MKBFD}, ${MKGCC}, and ${MKGDB} are 490 unconditionally assigned the value "no". 491 492EXTERNAL_TOOLCHAIN 493 This variable is not directly set by <bsd.own.mk>, but 494 including <bsd.own.mk> is the canonical way to gain 495 access to this variable. The variable should be defined 496 either in the user's environment or in the user's mk.conf 497 file. If defined, this variable indicates the root of 498 an external toolchain which will be used to build the 499 tree. For example, if a platform is a ${TOOLCHAIN_MISSING} 500 platform, EXTERNAL_TOOLCHAIN can be used to re-enable the 501 cross-compile framework. 502 503 If EXTERNAL_TOOLCHAIN is defined, ${MKGCC} is unconditionally 504 assigned the value "no", since the external version of the 505 compiler may not be able to build the library components of 506 the in-tree compiler. 507 508 NOTE: This variable is not yet used in as many places as 509 it should be. Expect the exact semantics of this variable 510 to change in the short term as parts of the cross-compile 511 framework continue to be cleaned up. 512 513<bsd.own.mk> is generally useful when building your own Makefiles so that 514they use the same default owners etc. as the rest of the tree. 515 516 517=-=-=-=-= bsd.dep.mk =-=-=-=-= 518 519The include file <bsd.dep.mk> contains the default targets for building 520.depend files. It creates .d files from entries in SRCS and DPSRCS 521that are C, C++, or Objective C source files, and builds .depend from the 522.d files. All other files in SRCS and all of DPSRCS will be used as 523dependencies for the .d files. In order for this to function correctly, 524it should be .included after all other .mk files and directives that may 525modify SRCS or DPSRCS. It uses the following variables: 526 527SRCS List of source files to build the program. 528 529DPSRCS List of source files which are needed for generating 530 dependencies, but are not needed in ${SRCS}. 531 532 533=-=-=-=-= bsd.files.mk =-=-=-=-= 534 535The include file <bsd.files.mk> handles the FILES variables and is included 536from <bsd.lib.mk> and <bsd.prog.mk>, and uses the following variables: 537 538FILES The list of files to install. 539 540CONFIGFILES Similar semantics to FILES, except that the files 541 are installed by the `configinstall' target, 542 not the `install' target. 543 The FILES* variables documented below also apply. 544 545FILESOWN File owner. [${BINOWN}] 546 547FILESGRP File group. [${BINGRP}] 548 549FILESMODE File mode. [${BINMODE}] 550 551FILESDIR The location to install the files. 552 553FILESNAME Optional name to install each file as. 554 555FILESOWN_<fn> File owner of the specific file <fn>. 556 557FILESGRP_<fn> File group of the specific file <fn>. 558 559FILESMODE_<fn> File mode of the specific file <fn>. 560 561FILESDIR_<fn> The location to install the specific file <fn>> 562 563FILESNAME_<fn> Optional name to install <fn> as. 564 565 566BUILDSYMLINKS List of two word items: 567 lnsrc lntgt 568 For each lnsrc item, create a symlink named lntgt. 569 The lntgt symlinks are removed by the cleandir target. 570 571UUDECODE_FILES List of files which are stored as <file>.uue in the source 572 tree. Each one will be decoded with ${TOOL_UUDECODE}. 573 The source files have a `.uue' suffix, the generated files do 574 not. 575 576UUDECODE_FILES_RENAME_fn Rename the output from the decode to the provided name. 577 578 *NOTE: These files are simply decoded, with no install or other 579 rule applying implicitly except being added to the clean 580 target. 581 582=-=-=-=-= bsd.gcc.mk =-=-=-=-= 583 584The include file <bsd.gcc.mk> computes various parameters related to GCC 585support libraries. It defines no targets. <bsd.own.mk> MUST be included 586before <bsd.gcc.mk>. 587 588The primary users of <bsd.gcc.mk> are <bsd.prog.mk> and <bsd.lib.mk>, each 589of which need to know where to find certain GCC support libraries. 590 591The behavior of <bsd.gcc.mk> is influenced by the EXTERNAL_TOOLCHAIN variable, 592which is generally set by the user. If EXTERNAL_TOOLCHAIN it set, then 593the compiler is asked where to find the support libraries, otherwise the 594support libraries are found in ${DESTDIR}/usr/lib. 595 596<bsd.gcc.mk> sets the following variables: 597 598_GCC_CRTBEGIN The full path name to crtbegin.o. 599 600_GCC_CRTBEGINS The full path name to crtbeginS.o. 601 602_GCC_CRTEND The full path name to crtend.o. 603 604_GCC_CRTENDS The full path name to crtendS.o. 605 606_GCC_LIBGCCDIR The directory where libgcc.a is located. 607 608 609=-=-=-=-= bsd.inc.mk =-=-=-=-= 610 611The include file <bsd.inc.mk> defines the includes target and uses the 612variables: 613 614INCS The list of include files. 615 616INCSDIR The location to install the include files. 617 618INCSNAME Target name of the include file, if only one; same as 619 FILESNAME, but for include files. 620 621INCSYMLINKS Similar to SYMLINKS in <bsd.links.mk>, except that these 622 are installed in the 'includes' target and not the 623 (much later) 'install' target. 624 625INCSNAME_<file> The name file <file> should be installed as, if not <file>, 626 same as FILESNAME_<file>, but for include files. 627 628 629=-=-=-=-= bsd.info.mk =-=-=-=-= 630 631The include file <bsd.info.mk> is used to generate and install GNU Info 632documentation from respective Texinfo source files. It defines three 633implicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the 634following variables: 635 636TEXINFO List of Texinfo source files. Info documentation will 637 consist of single files with the extension replaced by 638 .info. 639 640INFOFLAGS Flags to pass to makeinfo. [] 641 642 643=-=-=-=-= bsd.kernobj.mk =-=-=-=-= 644 645The include file <bsd.kernobj.mk> defines variables related to the 646location of kernel sources and object directories. 647 648KERNSRCDIR Is the location of the top of the kernel src. 649 [${_SRC_TOP_}/sys] 650 651KERNARCHDIR Is the location of the machine dependent kernel sources. 652 [arch/${MACHINE}] 653 654KERNCONFDIR Is where the configuration files for kernels are found. 655 [${KERNSRCDIR}/${KERNARCHDIR}/conf] 656 657KERNOBJDIR Is the kernel build directory. The kernel GENERIC for 658 instance will be compiled in ${KERNOBJDIR}/GENERIC. 659 The default value is 660 ${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile 661 if it exists or the target 'obj' is being made. 662 Otherwise the default is 663 ${KERNSRCDIR}/${KERNARCHDIR}/compile. 664 665It is important that Makefiles (such as those under src/distrib) that 666wish to find compiled kernels use <bsd.kernobj.mk> and ${KERNOBJDIR} 667rather than make assumptions about the location of the compiled kernel. 668 669 670=-=-=-=-= bsd.kinc.mk =-=-=-=-= 671 672The include file <bsd.kinc.mk> defines the many targets (includes, 673subdirectories, etc.), and is used by kernel makefiles to handle 674include file installation. It is intended to be included alone, by 675kernel Makefiles. It uses similar variables to <bsd.inc.mk>. 676Please see <bsd.kinc.mk> for more details, and keep the documentation 677in that file up to date. 678 679 680=-=-=-=-= bsd.lib.mk =-=-=-=-= 681 682The include file <bsd.lib.mk> has support for building libraries. It has 683the same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend, 684includes, install, lint, and tags. Additionally, it has a checkver target 685which checks for installed shared object libraries whose version is greater 686that the version of the source. It has a limited number of suffixes, 687consistent with the current needs of the BSD tree. <bsd.lib.mk> includes 688<bsd.shlib.mk> to get shared library parameters. 689 690It sets/uses the following variables: 691 692LIB The name of the library to build. 693 694LIBDIR Target directory for libraries. 695 696SHLIBINSTALLDIR Target directory for shared libraries if ${USE_SHLIBDIR} 697 is not "no". 698 699USE_SHLIBDIR If not "no", use ${SHLIBINSTALLDIR} instead of ${LIBDIR} 700 as the path to install shared libraries to. 701 USE_SHLIBDIR must be defined before <bsd.own.mk> is included. 702 Default: no 703 704MKPRIVATELIB If not "no", act as "MKPROFILE=no MKPIC=no MKLINT=no", 705 and don't install the (.a) library. 706 This is useful for "build only" helper libraries. 707 Default: no 708 709LINTLIBDIR Target directory for lint libraries. 710 711LIBGRP Library group. 712 713LIBOWN Library owner. 714 715LIBMODE Library mode. 716 717LDADD Additional loader objects. 718 719MAN The manual pages to be installed (use a .1 - .9 suffix). 720 721NOCHECKVER_<library> 722NOCHECKVER If set, disables checking for installed shared object 723 libraries with versions greater than the source. A 724 particular library name, without the "lib" prefix, may 725 be appended to the variable name to disable the check for 726 only that library. 727 728SRCS List of source files to build the library. Suffix types 729 .s, .c, and .f are supported. Note, .s files are preferred 730 to .c files of the same name. (This is not the default for 731 versions of make.) 732 733The include file <bsd.lib.mk> includes the file named "../Makefile.inc" 734if it exists, as well as the include file <bsd.man.mk>. 735 736It has rules for building profiled objects; profiled libraries are 737built by default. 738 739Libraries are ranlib'd when made. 740 741 742=-=-=-=-= bsd.links.mk =-=-=-=-= 743 744The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables 745and is included from from <bsd.lib.mk> and <bsd.prog.mk>. 746 747LINKS The list of hard links, consisting of pairs of paths: 748 source-file target-file 749 ${DESTDIR} is prepended to both paths before linking. 750 For example, to link /bin/test and /bin/[, use: 751 LINKS=/bin/test /bin/[ 752 753CONFIGLINKS Similar semantics to LINKS, except that the links 754 are installed by the `configinstall' target, 755 not the `install' target. 756 757SYMLINKS The list of symbolic links, consisting of pairs of paths: 758 source-file target-file 759 ${DESTDIR} is only prepended to target-file before linking. 760 For example, to symlink /usr/bin/tar to /bin/tar resulting 761 in ${DESTDIR}/usr/bin/tar -> /bin/tar: 762 SYMLINKS=/bin/tar /usr/bin/tar 763 764CONFIGSYMLINKS Similar semantics to SYMLINKS, except that the symbolic links 765 are installed by the `configinstall' target, 766 not the `install' target. 767 768 769=-=-=-=-= bsd.man.mk =-=-=-=-= 770 771The include file <bsd.man.mk> handles installing manual pages and their 772links. 773 774It has a two targets: 775 776 maninstall: 777 Install the manual page sources and their links. 778 catinstall: 779 Install the preformatted manual pages and their links. 780 781It sets/uses the following variables: 782 783MANDIR Base path for manual installation. 784 785MANGRP Manual group. 786 787MANOWN Manual owner. 788 789MANMODE Manual mode. 790 791MANSUBDIR Subdirectory under the manual page section, i.e. "/vax" 792 or "/tahoe" for machine specific manual pages. 793 794MAN The manual pages to be installed (use a .1 - .9 suffix). 795 796MLINKS List of manual page links (using a .1 - .9 suffix). The 797 linked-to file must come first, the linked file second, 798 and there may be multiple pairs. The files are soft-linked. 799 800The include file <bsd.man.mk> includes a file named "../Makefile.inc" if 801it exists. 802 803 804=-=-=-=-= bsd.obj.mk =-=-=-=-= 805 806The include file <bsd.obj.mk> defines targets related to the creation 807and use of separated object and source directories. 808 809If an environment variable named MAKEOBJDIRPREFIX is set, make(1) uses 810${MAKEOBJDIRPREFIX}${.CURDIR} as the name of the object directory if 811it exists. Otherwise make(1) looks for the existence of a 812subdirectory (or a symlink to a directory) of the source directory 813into which built targets should be placed. If an environment variable 814named MAKEOBJDIR is set, make(1) uses its value as the name of the 815object directory; failing that, make first looks for a subdirectory 816named "obj.${MACHINE}", and if that doesn't exist, it looks for "obj". 817 818Object directories are not created automatically by make(1) if they 819don't exist; you need to run a separate "make obj". (This will happen 820during a top-level build if "MKOBJDIRS" is set to a value other than 821"no"). When the source directory is a subdirectory of ${BSDSRCDIR} -- 822and this is determined by a simple string prefix comparison -- object 823directories are created in a separate object directory tree, and a 824symlink to the object directory in that tree is created in the source 825directory; otherwise, "make obj" assumes that you're not in the main 826source tree and that it's not safe to use a separate object tree. 827 828Several variables used by <bsd.obj.mk> control exactly what 829directories and links get created during a "make obj": 830 831MAKEOBJDIR If set, this is the component name of the object 832 directory. 833 834OBJMACHINE If this is set but MAKEOBJDIR is not set, creates 835 object directories or links named "obj.${MACHINE}"; 836 otherwise, just creates ones named "obj". 837 838USR_OBJMACHINE If set, and the current directory is a subdirectory of 839 ${BSDSRCDIR}, create object directory in the 840 corresponding subdirectory of ${BSDOBJDIR}.${MACHINE}; 841 otherwise, create it in the corresponding subdirectory 842 of ${BSDOBJDIR} 843 844BUILDID If set, the contents of this variable are appended 845 to the object directory name. If OBJMACHINE is also 846 set, ".${BUILDID}" is added after ".${MACHINE}". 847 848 849=-=-=-=-= bsd.prog.mk =-=-=-=-= 850 851The include file <bsd.prog.mk> handles building programs from one or 852more source files, along with their manual pages. It has a limited number 853of suffixes, consistent with the current needs of the BSD tree. 854<bsd.prog.mk> includes <bsd.shlib.mk> to get shared library parameters. 855 856It has eight targets: 857 858 all: 859 build the program and its manual page. This also 860 creates a GDB initialization file (.gdbinit) in 861 the objdir. The .gdbinit file sets the shared library 862 prefix to ${DESTDIR} to facilitate cross-debugging. 863 clean: 864 remove the program, any object files and the files a.out, 865 Errs, errs, mklog, and ${PROG}.core. 866 cleandir: 867 remove all of the files removed by the target clean, as 868 well as .depend, tags, and any manual pages. 869 `distclean' is a synonym for `cleandir'. 870 depend: 871 make the dependencies for the source files, and store 872 them in the file .depend. 873 includes: 874 install any header files. 875 install: 876 install the program and its manual pages; if the Makefile 877 does not itself define the target install, the targets 878 beforeinstall and afterinstall may also be used to cause 879 actions immediately before and after the install target 880 is executed. 881 lint: 882 run lint on the source files 883 tags: 884 create a tags file for the source files. 885 886It sets/uses the following variables: 887 888BINGRP Binary group. 889 890BINOWN Binary owner. 891 892BINMODE Binary mode. 893 894CLEANFILES Additional files to remove for the clean and cleandir targets. 895 896COPTS Additional flags to the compiler when creating C objects. 897 898COPTS.<fn> Additional flags to the compiler when creating the 899 C objects for <fn>. 900 For <fn>.[ly], "<fn>.c" must be used. 901 902CPUFLAGS Additional flags to the compiler/assembler to select 903 CPU instruction set options, CPU tuning options, etc. 904 905CPUFLAGS.<fn> Additional flags to the compiler/assembler for <fn>. 906 For <fn>.[ly], "<fn>.c" must be used. 907 908CPPFLAGS Additional flags to the C pre-processor. 909 910CPPFLAGS.<fn> Additional flags to the C pre-processor for <fn>. 911 For <fn>.[ly], "<fn>.c" must be used. 912 913GDBINIT List of GDB initialization files to add to "source" 914 directives in the .gdbinit file that is created in the 915 objdir. 916 917LDADD Additional loader objects. Usually used for libraries. 918 For example, to load with the compatibility and utility 919 libraries, use: 920 921 LDADD+=-lutil -lcompat 922 923LDFLAGS Additional loader flags. 924 925LINKS See <bsd.links.mk> 926 927SYMLINKS See <bsd.links.mk> 928 929MAN Manual pages (should end in .1 - .9). If no MAN variable is 930 defined, "MAN=${PROG}.1" is assumed. 931 932PROG The name of the program to build. If not supplied, nothing 933 is built. 934 935PROG_CXX If defined, the name of the program to build. Also 936 causes <bsd.prog.mk> to link the program with the C++ 937 compiler rather than the C compiler. PROG_CXX overrides 938 the value of PROG if PROG is also set. 939 940PROGNAME The name that the above program will be installed as, if 941 different from ${PROG}. 942 943SRCS List of source files to build the program. If SRCS is not 944 defined, it's assumed to be ${PROG}.c. 945 946DPSRCS List of source files which are needed for generating 947 dependencies, but are not needed in ${SRCS}. 948 949DPADD Additional dependencies for the program. Usually used for 950 libraries. For example, to depend on the compatibility and 951 utility libraries use: 952 953 DPADD+=${LIBCOMPAT} ${LIBUTIL} 954 955 The following libraries are predefined for DPADD: 956 957 LIBCRT0?= ${DESTDIR}/usr/lib/crt0.o 958 LIBBZ2?= ${DESTDIR}/usr/lib/libbz2.a 959 LIBC?= ${DESTDIR}/usr/lib/libc.a 960 LIBC_PIC?= ${DESTDIR}/usr/lib/libc_pic.a 961 LIBCDK?= ${DESTDIR}/usr/lib/libcdk.a 962 LIBCOM_ERR?= ${DESTDIR}/usr/lib/libcom_err.a 963 LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a 964 LIBCRYPT?= ${DESTDIR}/usr/lib/libcrypt.a 965 LIBCRYPTO?= ${DESTDIR}/usr/lib/libcrypto.a 966 LIBCRYPTO_IDEA?=${DESTDIR}/usr/lib/libcrypto_idea.a 967 LIBCRYPTO_MDC2?=${DESTDIR}/usr/lib/libcrypto_mdc2.a 968 LIBCRYPTO_RC5?= ${DESTDIR}/usr/lib/libcrypto_rc5.a 969 LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a 970 LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a 971 LIBDES?= ${DESTDIR}/usr/lib/libdes.a 972 LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a 973 LIBEVENT?= ${DESTDIR}/usr/lib/libevent.a 974 LIBFORM?= ${DESTDIR}/usr/lib/libform.a 975 LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a 976 LIBGNUMALLOC?= ${DESTDIR}/usr/lib/libgnumalloc.a 977 LIBGSSAPI?= ${DESTDIR}/usr/lib/libgssapi.a 978 LIBHDB?= ${DESTDIR}/usr/lib/libhdb.a 979 LIBINTL?= ${DESTDIR}/usr/lib/libintl.a 980 LIBIPSEC?= ${DESTDIR}/usr/lib/libipsec.a 981 LIBKADM?= ${DESTDIR}/usr/lib/libkadm.a 982 LIBKADM5CLNT?= ${DESTDIR}/usr/lib/libkadm5clnt.a 983 LIBKADM5SRV?= ${DESTDIR}/usr/lib/libkadm5srv.a 984 LIBKAFS?= ${DESTDIR}/usr/lib/libkafs.a 985 LIBKDB?= ${DESTDIR}/usr/lib/libkdb.a 986 LIBKRB?= ${DESTDIR}/usr/lib/libkrb.a 987 LIBKRB5?= ${DESTDIR}/usr/lib/libkrb5.a 988 LIBKSTREAM?= ${DESTDIR}/usr/lib/libkstream.a 989 LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a 990 LIBL?= ${DESTDIR}/usr/lib/libl.a 991 LIBM?= ${DESTDIR}/usr/lib/libm.a 992 LIBMENU?= ${DESTDIR}/usr/lib/libmenu.a 993 LIBOBJC?= ${DESTDIR}/usr/lib/libobjc.a 994 LIBOSSAUDIO?= ${DESTDIR}/usr/lib/libossaudio.a 995 LIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a 996 LIBPCI?= ${DESTDIR}/usr/lib/libpci.a 997 LIBPMC?= ${DESTDIR}/usr/lib/libpmc.a 998 LIBPOSIX?= ${DESTDIR}/usr/lib/libposix.a 999 LIBPTHREAD?= ${DESTDIR}/usr/lib/libpthread.a 1000 LIBPTHREAD_DBG?=${DESTDIR}/usr/lib/libpthread_dbg.a 1001 LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a 1002 LIBRMT?= ${DESTDIR}/usr/lib/librmt.a 1003 LIBROKEN?= ${DESTDIR}/usr/lib/libroken.a 1004 LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a 1005 LIBRT?= ${DESTDIR}/usr/lib/librt.a 1006 LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a 1007 LIBSL?= ${DESTDIR}/usr/lib/libsl.a 1008 LIBSS?= ${DESTDIR}/usr/lib/libss.a 1009 LIBSSL?= ${DESTDIR}/usr/lib/libssl.a 1010 LIBSTDCXX?= ${DESTDIR}/usr/lib/libstdc++.a 1011 LIBTERMCAP?= ${DESTDIR}/usr/lib/libtermcap.a 1012 LIBUSBHID?= ${DESTDIR}/usr/lib/libusbhid.a 1013 LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a 1014 LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a 1015 LIBY?= ${DESTDIR}/usr/lib/liby.a 1016 LIBZ?= ${DESTDIR}/usr/lib/libz.a 1017 1018SHAREDSTRINGS If defined, a new .c.o rule is used that results in shared 1019 strings, using xstr(1). Note that this will not work with 1020 parallel makes. 1021 1022STRIPFLAG The flag passed to the install program to cause the binary 1023 to be stripped. 1024 1025SUBDIR A list of subdirectories that should be built as well. 1026 Each of the targets will execute the same target in the 1027 subdirectories. 1028 1029SCRIPTS A list of interpreter scripts [file.{sh,csh,pl,awk,...}]. 1030 These are installed exactly like programs. 1031 1032SCRIPTSNAME The name that the above program will be installed as, if 1033 different from ${SCRIPTS}. These can be further specialized 1034 by setting SCRIPTSNAME_<script>. 1035 1036FILES See description of <bsd.files.mk>. 1037 1038SHLINKDIR Target directory for shared linker. See description of 1039 <bsd.own.mk> for additional information about this variable. 1040 1041USE_LIBSTDCXX If "no", the support libraries needed for C++ programs 1042 are set to `-lsupc++ -lm', rather than `-lstdc++ -lm'. 1043 Default: yes 1044 1045The include file <bsd.prog.mk> includes the file named "../Makefile.inc" 1046if it exists, as well as the include file <bsd.man.mk>. 1047 1048Some simple examples: 1049 1050To build foo from foo.c with a manual page foo.1, use: 1051 1052 PROG= foo 1053 1054 .include <bsd.prog.mk> 1055 1056To build foo from foo.c with a manual page foo.2, add the line: 1057 1058 MAN= foo.2 1059 1060If foo does not have a manual page at all, add the line: 1061 1062 MKMAN= no 1063 1064If foo has multiple source files, add the line: 1065 1066 SRCS= a.c b.c c.c d.c 1067 1068 1069=-=-=-=-= bsd.rpc.mk =-=-=-=-= 1070 1071The include file <bsd.rpc.mk> contains a makefile fragment used to 1072construct source files built by rpcgen. 1073 1074The following macros may be defined in makefiles which include 1075<bsd.rpc.mk> in order to control which files get built and how they 1076are to be built: 1077 1078RPC_INCS: construct .h file from .x file 1079RPC_XDRFILES: construct _xdr.c from .x file 1080 (for marshalling/unmarshalling data types) 1081RPC_SVCFILES: construct _svc.c from .x file 1082 (server-side stubs) 1083RPC_SVCFLAGS: Additional flags passed to builds of RPC_SVCFILES. 1084 1085RPC_XDIR: Directory containing .x/.h files 1086 1087 1088=-=-=-=-= bsd.shlib.mk =-=-=-=-= 1089 1090The include file <bsd.shlib.mk> computes parameters for shared library 1091installation and use. It defines no targets. <bsd.own.mk> MUST be 1092included before <bsd.shlib.mk>. 1093 1094<bsd.own.mk> sets the following variables, if they are not already defined 1095(defaults are in brackets): 1096 1097SHLIBINSTALLDIR If ${USE_SHLIBDIR} is not "no", use ${SHLIBINSTALLDIR} 1098 instead of ${LIBDIR} as the base path for shared library 1099 installation. [/lib] 1100 1101SHLIBDIR The path to USE_SHLIBDIR shared libraries to use when building 1102 a program. [/lib for programs in /bin and /sbin, /usr/lib 1103 for all others.] 1104 1105_LIBSODIR Set to ${SHLIBINSTALLDIR} if ${USE_SHLIBDIR} is not "no", 1106 otherwise set to ${LIBDIR} 1107 1108SHLINKINSTALLDIR Base path for shared linker. [/libexec] 1109 1110SHLINKDIR Path to use for shared linker when building a program. 1111 [/libexec for programs in /bin and /sbin, /usr/libexec for 1112 all others.] 1113 1114 1115=-=-=-=-= bsd.subdir.mk =-=-=-=-= 1116 1117The include file <bsd.subdir.mk> contains the default targets for building 1118subdirectories. It has the same eight targets as <bsd.prog.mk>: all, 1119clean, cleandir, depend, includes, install, lint, and tags. For all of 1120the directories listed in ${SUBDIR}, the specified directory will be 1121visited and the target made. There is also a default target which allows 1122the command "make subdir" where subdir is any directory listed in ${SUBDIR}. 1123 1124As a special case, the use of a token .WAIT as an entry in SUBDIR acts 1125as a synchronization barrier when multiple make jobs are run; subdirs 1126before the .WAIT must complete before any subdirs after .WAIT are 1127started. See make(1) for some caveats on use of .WAIT and other 1128special sources. 1129 1130 1131=-=-=-=-= bsd.sys.mk =-=-=-=-= 1132 1133The include file <bsd.sys.mk> is used by <bsd.prog.mk> and 1134<bsd.lib.mk>. It contains overrides that are used when building 1135the NetBSD source tree. 1136 1137The following variables control how various files are compiled/built. 1138(Note that these may be overridden in <bsd.own.mk> if USETOOLS == "yes"): 1139 1140AR Create, modify, and extract from archives. [ar] 1141 1142ARFLAGS Options to ${AR}. [rl] 1143 1144AS Assembler. [as] 1145 1146AFLAGS Options to ${AS}. [] 1147 1148CC C compiler. [cc] 1149 1150CFLAGS Options to ${CC}. [Usually -O or -O2] 1151 1152CPP C Pre-Processor. [cpp] 1153 1154CPPFLAGS Options to ${CPP}. [] 1155 1156CPUFLAGS Optimization flags for ${CC}. [] 1157 1158CXX C++ compiler. [c++] 1159 1160CXXFLAGS Options to ${CXX}. [${CFLAGS}] 1161 1162ELF2ECOFF Convert ELF-format executable to ECOFF. [elf2ecoff] 1163 1164FC Fortran compiler. [f77] 1165 1166FFLAGS Options to {$FC}. [-O] 1167 1168INSTALL install(1) command. [install] 1169 1170LEX Lexical analyzer. [lex] 1171 1172LFLAGS Options to ${LEX}. [] 1173 1174LPREFIX Symbol prefix for ${LEX} (see -P option in lex(1)) [yy] 1175 1176LD Linker. [ld] 1177 1178LDFLAGS Options to ${LD}. [] 1179 1180LINT C program verifier. [lint] 1181 1182LINTFLAGS Options to ${LINT}. [-chapbxzF] 1183 1184LORDER List dependencies for object files. [lorder] 1185 1186MAKE make(1). [make] 1187 1188MKDEP Construct Makefile dependency list. [mkdep] 1189 1190NM List symbols from object files. [nm] 1191 1192PC Pascal compiler. [pc] (Not present) 1193 1194PFLAGS Options to ${PC}. [] 1195 1196OBJC Objective C compiler. [${CC}] 1197 1198OBJCFLAGS Options to ${OBJC}. [${CFLAGS}] 1199 1200OBJCOPY Copy and translate object files. [objcopy] 1201 1202RANLIB Generate index to archive. [ranlib] 1203 1204SHELL Shell. [sh] 1205 1206SIZE List section sizes and total size. [size] 1207 1208STRIP Discard symbols from object files. [strip] 1209 1210TSORT Topological sort of a directed graph. [tsort -q] 1211 1212YACC LALR(1) parser generator. [yacc] 1213 1214YFLAGS Options to ${YACC}. [] 1215 1216YHEADER If defined, add "-d" to YFLAGS, and add dependencies 1217 from <file>.y to <file>.h and <file>.c, and add 1218 <foo>.h to CLEANFILES. 1219 1220YPREFIX If defined, add "-p ${YPREFIX}" to YFLAGS. 1221 1222 1223The following variables are defined to commands to perform the 1224appropriate operation, with the default in [brackets]. 1225(Note that these are overridden in <bsd.own.mk> if USETOOLS == "yes"): 1226 1227TOOL_ASN1_COMPILE ASN1 compiler. [asn1_compile] 1228 1229TOOL_CAP_MKDB Create capability database. [cap_mkdb] 1230 1231TOOL_CAT Concatenate and print files. [cat] 1232 1233TOOL_CKSUM Display file checksums. [cksum] 1234 1235TOOL_COMPILE_ET Error table compiler. [compile_et] 1236 1237TOOL_CONFIG Build kernel compilation directories. [config] 1238 1239TOOL_CRUNCHGEN Generate crunched binary build environment. [crunchgen] 1240 1241TOOL_CTAGS Create a tags file. [ctags] 1242 1243TOOL_DB Manipulate db(3) databases. [db] 1244 1245TOOL_EQN Format equations for groff. [eqn] 1246 1247TOOL_FGEN IEEE 1275 Open Firmware FCode Tokenizer. [fgen] 1248 1249TOOL_GENCAT Generate NLS message catalogs. [gencat] 1250 1251TOOL_GROFF Front end for groff document formatting system. [groff] 1252 1253TOOL_HEXDUMP Ascii, decimal, hexadecimal, octal dump. [hexdump] 1254 1255TOOL_INDXBIB Make bibliographic database's inverted index. [indxbib] 1256 1257TOOL_INSTALLBOOT Install disk bootstrap software. [installboot] 1258 1259TOOL_INSTALL_INFO Update info/dir entries. [install-info] 1260 1261TOOL_M4 M4 macro language processor. [m4] 1262 1263TOOL_MAKEFS Create file system image from directory tree. [makefs] 1264 1265TOOL_MAKEINFO Translate Texinfo documents. [makeinfo] 1266 1267TOOL_MAKEWHATIS Create a whatis.db database. [makewhatis] 1268 1269TOOL_MDSETIMAGE Set kernel RAM disk image. [mdsetimage] 1270 1271TOOL_MENUC Menu compiler. [menuc] 1272 1273TOOL_MKCSMAPPER Make charset mapping table. [mkcsmapper] 1274 1275TOOL_MKESDB Make encoding scheme database. [mkesdb] 1276 1277TOOL_MKLOCALE Make LC_CTYPE locale files. [mklocale] 1278 1279TOOL_MKMAGIC Create database for file(1). [file] 1280 1281TOOL_MKTEMP Make (unique) temporary file name. [mktemp] 1282 1283TOOL_MSGC Simple message list compiler. [msgc] 1284 1285TOOL_MTREE Map a directory hierarchy. [mtree] 1286 1287TOOL_PAX Manipulate file archives and copy directories. [pax] 1288 1289TOOL_PIC Compile pictures for groff. [pic] 1290 1291TOOL_PREPMKBOOTIMAGE prep-mkbootimage (XXXBUILDSH). [prep-mkbootimage] 1292 1293TOOL_PWD_MKDB Generate the password databases. [pwd_mkdb] 1294 1295TOOL_REFER Preprocess bibliographic references for groff. [refer] 1296 1297TOOL_ROFF_ASCII Generate ASCII groff output. [nroff] 1298 1299TOOL_ROFF_DVI Generate DVI groff output. [${TOOL_GROFF} -Tdvi] 1300 1301TOOL_ROFF_HTML Generate HTML groff output. 1302 [${TOOL_GROFF} -Tlatin1 -mdoc2html] 1303 1304TOOL_ROFF_PS Generate PS groff output. [${TOOL_GROFF} -Tps] 1305 1306TOOL_ROFF_RAW Generate "raw" groff output. [${TOOL_GROFF} -Z] 1307 1308TOOL_RPCGEN Remote Procedure Call (RPC) protocol compiler. [rpcgen] 1309 1310TOOL_SOELIM Eliminate .so's from groff input. [soelim] 1311 1312TOOL_STAT Display file status. [stat] 1313 1314TOOL_SUNLABEL Read or modify a SunOS disk label. [sunlabel] 1315 1316TOOL_TBL Format tables for groff. [tbl] 1317 1318TOOL_UUDECODE Uudecode a binary file. [uudecode] 1319 1320TOOL_VGRIND Grind nice listings of programs. [vgrind -f] 1321 1322TOOL_ZIC Time zone compiler. [zic] 1323 1324 1325Other variables of note (incomplete list): 1326 1327WARNS Crank up gcc warning options; the distinct levels are: 1328 WARNS=1 1329 WARNS=2 1330 WARNS=3 1331 1332FORMAT_AUDIT If FORMAT_AUDIT is set, and WFORMAT is set and > 1, turn on 1333WFORMAT -Wnetbsd-format-audit for extra-stringent format checking. 1334 WFORMAT belongs in individual makefiles and/or 1335 Makefile.inc files. (set WFORMAT=1 in individual 1336 makefiles if a program is not security critical and is 1337 doing bizarre things with format strings which would 1338 be even uglier if rewritten) FORMAT_AUDIT should go in 1339 mk.conf if you're doing format-string auditing. 1340 FORMAT_AUDIT may go away in time. 1341 1342 1343=-=-=-=-= bsd.x11.mk =-=-=-=-= 1344 1345The include file <bsd.x11.mk> contains parameters and targets for 1346cross-building X11R6 from ${X11SRCDIR.xc}. 1347It should be included after the general Makefile contents but before 1348the include files such as <bsd.prog.mk> and <bsd.lib.mk>. 1349 1350It provides the following targets: 1351 .man.1 .man.3 .man.4 .man.5 .man.7: 1352 If ${MAN} or ${PROG} is set and ${MKMAN} != "no", 1353 these rules convert from X11R6's manual page source 1354 into an mdoc.old source file. 1355 cleanx11man: 1356 Clean up the mdoc.old files generated by the above. 1357 1358It sets the following variables: 1359 1360BINDIR Set to ${X11BINDIR}. 1361 To override, define after including <bsd.x11.mk> 1362 1363LIBDIR Set to ${X11USRLIBDIR}. 1364 To override, define after including <bsd.x11.mk> 1365 1366MANDIR Set to ${X11MANDIR}. 1367 To override, define after including <bsd.x11.mk> 1368 1369CPPFLAGS Appended with definitions to include from 1370 ${DESTDIR}${X11INCDIR} 1371 1372LDFLAGS Appended with definitions to link from 1373 ${DESTDIR}${X11USRLIBDIR} 1374 1375X11FLAGS.CONNECTION Equivalent to X11R6's CONNECTION_FLAGS. 1376 1377X11FLAGS.EXTENSION Equivalent to X11R6's EXT_DEFINES. 1378 1379X11FLAGS.LOADABLE Equivalent to X11R6's LOADABLE. 1380 1381X11FLAGS.OS_DEFINES Equivalent to X11R6's OS_DEFINES. 1382 1383X11FLAGS.SERVER Equivalent to X11R6's ServerDefines. 1384 1385X11FLAGS.THREADLIB Equivalent to X11R6's THREADS_DEFINES for libraries. 1386 1387X11FLAGS.THREADS Equivalent to X11R6's THREADS_DEFINES. 1388 1389X11FLAGS.VERSION cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION. 1390 1391X11TOOL_UNXCOMM Commandline to convert `XCOMM' comments to `#' 1392 1393It uses the following variables: 1394 1395APPDEFS List of app-default files to install. 1396 1397CPPSCRIPTS List of files/scripts to run through cpp(1) 1398 and then ${X11TOOL_UNXCOMM}. The source files 1399 have a `.cpp' suffix, the generated files do not. 1400 1401CPPSCRIPTFLAGS Additional flags to cpp(1) when building CPPSCRIPTS. 1402 1403CPPSCRIPTFLAGS_<fn> Additional flags to cpp(1) when building CPPSCRIPT <fn>. 1404 1405 1406=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 1407