1*0a6a1f1dSLionel Sambuc# $NetBSD: bsd.README,v 1.346 2015/07/23 08:03:26 mrg Exp $ 2e415d488SLionel Sambuc# @(#)bsd.README 8.2 (Berkeley) 4/2/94 3e415d488SLionel Sambuc 4e415d488SLionel SambucThis is the README file for the make "include" files for the NetBSD 5e415d488SLionel Sambucsource tree. The files are installed in /usr/share/mk, and are, 6e415d488SLionel Sambucby convention, named with the suffix ".mk". 7e415d488SLionel Sambuc 8e415d488SLionel SambucNote, this file is not intended to replace reading through the .mk 9e415d488SLionel Sambucfiles for anything tricky. 10e415d488SLionel Sambuc 11e415d488SLionel Sambuc=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 12e415d488SLionel Sambuc 13e415d488SLionel SambucRANDOM THINGS WORTH KNOWING: 14e415d488SLionel Sambuc 15e415d488SLionel SambucThe files are simply C-style #include files, and pretty much behave like 16e415d488SLionel Sambucyou'd expect. The syntax is slightly different in that a single '.' is 17e415d488SLionel Sambucused instead of the hash mark, i.e. ".include <bsd.prog.mk>". 18e415d488SLionel Sambuc 19e415d488SLionel SambucOne difference that will save you lots of debugging time is that inclusion 20e415d488SLionel Sambucof the file is normally done at the *end* of the Makefile. The reason for 21e415d488SLionel Sambucthis is because .mk files often modify variables and behavior based on the 22e415d488SLionel Sambucvalues of variables set in the Makefile. To make this work, remember that 23e415d488SLionel Sambucthe FIRST target found is the target that is used, i.e. if the Makefile has: 24e415d488SLionel Sambuc 25e415d488SLionel Sambuc a: 26e415d488SLionel Sambuc echo a 27e415d488SLionel Sambuc a: 28e415d488SLionel Sambuc echo a number two 29e415d488SLionel Sambuc 30e415d488SLionel Sambucthe command "make a" will echo "a". To make things confusing, the SECOND 31e415d488SLionel Sambucvariable assignment is the overriding one, i.e. if the Makefile has: 32e415d488SLionel Sambuc 33e415d488SLionel Sambuc a= foo 34e415d488SLionel Sambuc a= bar 35e415d488SLionel Sambuc 36e415d488SLionel Sambuc b: 37e415d488SLionel Sambuc echo ${a} 38e415d488SLionel Sambuc 39e415d488SLionel Sambucthe command "make b" will echo "bar". This is for compatibility with the 40e415d488SLionel Sambucway the V7 make behaved. 41e415d488SLionel Sambuc 42e415d488SLionel SambucIt's fairly difficult to make the BSD .mk files work when you're building 43e415d488SLionel Sambucmultiple programs in a single directory. It's a lot easier to split up the 44e415d488SLionel Sambucprograms than to deal with the problem. Most of the agony comes from making 45e415d488SLionel Sambucthe "obj" directory stuff work right, not because we switched to a new version 46e415d488SLionel Sambucof make. So, don't get mad at us, figure out a better way to handle multiple 47e415d488SLionel Sambucarchitectures so we can quit using the symbolic link stuff. (Imake doesn't 48e415d488SLionel Sambuccount.) 49e415d488SLionel Sambuc 50e415d488SLionel SambucThe file .depend in the source directory is expected to contain dependencies 51e415d488SLionel Sambucfor the source files. This file is read automatically by make after reading 52e415d488SLionel Sambucthe Makefile. 53e415d488SLionel Sambuc 54e415d488SLionel SambucThe variable DESTDIR works as before. It's not set anywhere but will change 55e415d488SLionel Sambucthe tree where the file gets installed. 56e415d488SLionel Sambuc 57e415d488SLionel SambucThe profiled libraries are no longer built in a different directory than 58e415d488SLionel Sambucthe regular libraries. A new suffix, ".po", is used to denote a profiled 59e415d488SLionel Sambucobject, and ".pico" denotes a shared (position-independent) object. 60e415d488SLionel Sambuc 61e415d488SLionel SambucThere are various make variables used during the build. 62e415d488SLionel Sambuc 63e415d488SLionel SambucMany variables support a (case sensitive) value of "no" or "yes", 64e415d488SLionel Sambucand are tested with ${VAR} == "no" and ${VAR} != "no" . 65e415d488SLionel Sambuc 66e415d488SLionel Sambuc 67e415d488SLionel SambucThe basic rule for the variable naming scheme is as follows: 68e415d488SLionel Sambuc 69e415d488SLionel SambucHOST_xxx A command that runs on the host machine regardless of 70e415d488SLionel Sambuc whether or not the system is being cross compiled, or 71e415d488SLionel Sambuc flags for such a command. 72e415d488SLionel Sambuc 73e415d488SLionel SambucMKxxx Can be set to "no" to disable functionality, or 74e415d488SLionel Sambuc "yes" to enable it. 75e415d488SLionel Sambuc Usually defaults to "yes", although some variables 76e415d488SLionel Sambuc default to "no". 77e415d488SLionel Sambuc Due to make(1) implementation issues, if a temporary 78e415d488SLionel Sambuc command-line override of a mk.conf(5) or <bsd.own.mk> 79e415d488SLionel Sambuc setting is required whilst still honoring a particular 80e415d488SLionel Sambuc Makefile's setting of MKxxx, use 81e415d488SLionel Sambuc env MKxxx=value make 82e415d488SLionel Sambuc instead of 83e415d488SLionel Sambuc make MKxxx=value 84e415d488SLionel Sambuc 85e415d488SLionel SambucNOxxx If defined, disables a feature. 86e415d488SLionel Sambuc Not intended for users. 87e415d488SLionel Sambuc This is to allow Makefiles to disable functionality 88e415d488SLionel Sambuc that they don't support (such as missing man pages). 89e415d488SLionel Sambuc NOxxx variables must be defined before <bsd.own.mk> 90e415d488SLionel Sambuc is included. 91e415d488SLionel Sambuc 92e415d488SLionel SambucTOOL_xxx A tool that is provided as part of the USETOOLS 93e415d488SLionel Sambuc framework. When not using the USETOOLS framework, 94e415d488SLionel Sambuc TOOL_xxx variables should refer to tools that are 95e415d488SLionel Sambuc already installed on the host system. 96e415d488SLionel Sambuc 97e415d488SLionel SambucThe following variables that control how things are made/installed that 98e415d488SLionel Sambucare not set by default. These should not be set by Makefiles; they're for 99e415d488SLionel Sambucthe user to define in MAKECONF (see <bsd.own.mk>, below, or mk.conf(5)) 100e415d488SLionel Sambucor on the make(1) command line: 101e415d488SLionel Sambuc 102e415d488SLionel SambucBUILD If defined, 'make install' checks that the targets in the 103e415d488SLionel Sambuc source directories are up-to-date and remakes them if they 104e415d488SLionel Sambuc are out of date, instead of blindly trying to install 105e415d488SLionel Sambuc out of date or non-existent targets. 106e415d488SLionel Sambuc 107e415d488SLionel SambucMAKEVERBOSE Control how "verbose" the standard make(1) rules are. 108e415d488SLionel Sambuc Default: 2 109e415d488SLionel Sambuc Supported values: 110e415d488SLionel Sambuc 0 Minimal output ("quiet") 111e415d488SLionel Sambuc 1 Describe what is occurring 112e415d488SLionel Sambuc 2 Describe what is occurring and echo the actual command 113e415d488SLionel Sambuc 3 Ignore the effect of the "@" prefix in make commands 114e415d488SLionel Sambuc 4 Trace shell commands using the shell's -x flag 115e415d488SLionel Sambuc 11611be35a1SLionel SambucMKATF If "no", don't build the Automated Testing Framework (ATF), 11711be35a1SLionel Sambuc which includes the libatf-c, libatf-c++ and libatf-sh libraries 11811be35a1SLionel Sambuc and the various command line tools. Also, because the build of 11911be35a1SLionel Sambuc the libraries is disabled, don't build the NetBSD test suite 12011be35a1SLionel Sambuc either. 121e415d488SLionel Sambuc Default: yes 122e415d488SLionel Sambuc 123e415d488SLionel SambucMKBFD Obsolete, use MKBINUTILS 124e415d488SLionel Sambuc 125e415d488SLionel SambucMKBINUTILS If "no", don't build binutils (gas, ld, etc and libbfd, 126e415d488SLionel Sambuc libopcodes) 127e415d488SLionel Sambuc Default: yes 128e415d488SLionel Sambuc 129e415d488SLionel SambucMKBSDTAR If "yes", use the libarchive based cpio and tar instead of 130e415d488SLionel Sambuc the pax frontends. 131e415d488SLionel Sambuc Default: no 132e415d488SLionel Sambuc 133e415d488SLionel SambucMKCATPAGES If "no", don't build or install the catman pages. 134e415d488SLionel Sambuc Default: no 135e415d488SLionel Sambuc 136e415d488SLionel SambucMKCOMPAT If "no", don't build or install the src/compat. 137d19d7d58SLionel Sambuc Default: yes on amd64/mips64/sparc64, no elsewhere. 138e415d488SLionel Sambuc 139*0a6a1f1dSLionel SambucMKCOMPATTESTS If "yes", build and install the NetBSD test suite when 140*0a6a1f1dSLionel Sambuc building and installing src/compat. 141*0a6a1f1dSLionel Sambuc Default: no 142*0a6a1f1dSLionel Sambuc 143*0a6a1f1dSLionel SambucMKCOMPATX11 If "yes", build and install the X11 libraries when 144*0a6a1f1dSLionel Sambuc building and installing src/compat. 145*0a6a1f1dSLionel Sambuc Default: no 146*0a6a1f1dSLionel Sambuc 147e415d488SLionel SambucMKCOMPLEX If "no", don't build libm support for <complex.h> 148e415d488SLionel Sambuc Default: yes 149e415d488SLionel Sambuc 150e415d488SLionel SambucMKCRYPTO If "no", no cryptography support will be built into the system, 151e415d488SLionel Sambuc and also acts as "MKKERBEROS=no". 152e415d488SLionel Sambuc Default: yes 153e415d488SLionel Sambuc 154e415d488SLionel SambucMKCRYPTO_RC5 If not "no", RC5 support will be built into libcrypto_rc5 155e415d488SLionel Sambuc Default: no 156e415d488SLionel Sambuc 157*0a6a1f1dSLionel SambucMKCTF If "no", do not build and install CTF tools, and also 158*0a6a1f1dSLionel Sambuc don't generate and manipulate CTF data of ELF binaries 159*0a6a1f1dSLionel Sambuc during build. 160*0a6a1f1dSLionel Sambuc Default: no 161*0a6a1f1dSLionel Sambuc 162e415d488SLionel SambucMKCVS If "no", don't build or install cvs(1). 163e415d488SLionel Sambuc Default: yes 164e415d488SLionel Sambuc 165e415d488SLionel SambucMKDEBUG If "no", don't build and install separate debugging symbols 166e415d488SLionel Sambuc into /usr/libdata/debug. 167e415d488SLionel Sambuc Default: no 168e415d488SLionel Sambuc 169e415d488SLionel SambucMKDEBUGLIB Build *_g.a debugging libraries, which are compiled 170e415d488SLionel Sambuc with -DDEBUG. 171e415d488SLionel Sambuc Default: no 172e415d488SLionel Sambuc 17311be35a1SLionel SambucMKDEPINCLUDES If "yes" issue .include statements in the .depend file 17411be35a1SLionel Sambuc instead of inlining the contents of the .d files. Useful 17511be35a1SLionel Sambuc when stale dependencies are present, to list the exact 17611be35a1SLionel Sambuc files that need refreshing. It is off by default because 17711be35a1SLionel Sambuc it is possibly slower. 17811be35a1SLionel Sambuc Default "no" 17911be35a1SLionel Sambuc 180e415d488SLionel SambucMKDOC If "no", don't build or install the documentation. 181e415d488SLionel Sambuc Default: yes 182e415d488SLionel Sambuc 183d19d7d58SLionel SambucMKDTRACE If "no", do not build and install the kernel modules, 184d19d7d58SLionel Sambuc utilities and libraries used to implement the dtrace(1) 185d19d7d58SLionel Sambuc facility. 186d19d7d58SLionel Sambuc Default: no 187d19d7d58SLionel Sambuc 188e415d488SLionel SambucMKDYNAMICROOT If "no", build programs in /bin and /sbin statically, 189e415d488SLionel Sambuc don't install certain libraries in /lib, and don't 190e415d488SLionel Sambuc install the shared linker into /libexec. 191e415d488SLionel Sambuc Default: yes 192e415d488SLionel Sambuc 193e415d488SLionel SambucMKEXTSRC If not "no", 'make build' also descends into either src/extsrc 194e415d488SLionel Sambuc to cross-build programs and libraries externally added by 195e415d488SLionel Sambuc users, and automatically enables creation of those sets. 196e415d488SLionel Sambuc Default: no 197e415d488SLionel Sambuc 198e415d488SLionel SambucMKGCC If "no", don't build gcc(1) or any of the GCC-related 199e415d488SLionel Sambuc libraries (libgcc, libobjc, libstdc++). 200e415d488SLionel Sambuc Default: yes 201e415d488SLionel Sambuc 202e415d488SLionel SambucMKGCCCMDS If "no", don't build gcc(1), but do build the GCC-related 203e415d488SLionel Sambuc libraries (libgcc, libobjc, libstdc++). 204e415d488SLionel Sambuc Default: yes 205e415d488SLionel Sambuc 206e415d488SLionel SambucMKGDB If "no", don't build gdb(1). 207e415d488SLionel Sambuc Default: yes 208e415d488SLionel Sambuc 209*0a6a1f1dSLionel SambucMKGROFFHTMLDOC If "no", avoid trying to use groff to generate html for 210*0a6a1f1dSLionel Sambuc miscellaneous articles, as this seems to sometimes want 211*0a6a1f1dSLionel Sambuc to run software not in base. Does not affect html man 212*0a6a1f1dSLionel Sambuc pages. 213*0a6a1f1dSLionel Sambuc Default: no 214*0a6a1f1dSLionel Sambuc 215e415d488SLionel SambucMKHESIOD If "no", disables building of Hesiod infrastructure 216e415d488SLionel Sambuc (libraries and support programs). 217e415d488SLionel Sambuc Default: yes 218e415d488SLionel Sambuc 219e415d488SLionel SambucMKHOSTOBJ If not "no", for programs intended to be run on the compile 220e415d488SLionel Sambuc host, the name, release, and architecture of the host 221e415d488SLionel Sambuc operating system will be suffixed to the name of the object 222e415d488SLionel Sambuc directory created by "make obj". 223e415d488SLionel Sambuc Default: no 224e415d488SLionel Sambuc 225e415d488SLionel SambucMKHTML If "no", don't build or install the HTML man pages. 226e415d488SLionel Sambuc Default: yes 227e415d488SLionel Sambuc 228e415d488SLionel SambucMKIEEEFP If "no", don't add code for IEEE754/IEC60559 conformance. 229e415d488SLionel Sambuc Has no effect on most platforms. 230e415d488SLionel Sambuc Default: yes 231e415d488SLionel Sambuc 232e415d488SLionel SambucMKSTRIPIDENT Strip the RCS IDs from program binaries and shared libraries. 233e415d488SLionel Sambuc Default: no 234e415d488SLionel Sambuc 235e415d488SLionel SambucMKINET6 If "no", disables building of INET6 (IPv6) infrastructure 236e415d488SLionel Sambuc (libraries and support programs). This option must not be 237e415d488SLionel Sambuc set to "no" if MKX11 is not "no". 238e415d488SLionel Sambuc Default: yes 239e415d488SLionel Sambuc 240e415d488SLionel SambucMKINFO If "no", don't build or install Info documentation from 241e415d488SLionel Sambuc Texinfo source files. 242e415d488SLionel Sambuc Default: yes 243e415d488SLionel Sambuc 244e415d488SLionel SambucMKIPFILTER If "no", don't build or install the IP Filter programs and LKM. 245e415d488SLionel Sambuc Default: yes 246e415d488SLionel Sambuc 247e415d488SLionel SambucMKISCSI If "no", don't build or install iSCSI library or applications 248e415d488SLionel Sambuc (depends on libpthread.) 249e415d488SLionel Sambuc Default: yes 250e415d488SLionel Sambuc 251*0a6a1f1dSLionel SambucMKKDEBUG If "yes", force building of kernel symbol info and creation 252*0a6a1f1dSLionel Sambuc of netbsd.gdb in all kernel builds, independently of the 253*0a6a1f1dSLionel Sambuc settings for "makeoptions DEBUG" in the kernel config file. 254*0a6a1f1dSLionel Sambuc 255e415d488SLionel SambucMKKERBEROS If "no", disables building of Kerberos v5 256e415d488SLionel Sambuc infrastructure (libraries and support programs). 257e415d488SLionel Sambuc Default: yes 258e415d488SLionel Sambuc 259d19d7d58SLionel SambucMKKMOD If "no", disables building of kernel modules. 260d19d7d58SLionel Sambuc Default: yes 261d19d7d58SLionel Sambuc 26211be35a1SLionel SambucMKKYUA If "no", don't build Kyua nor its dependent library Lutok. 26311be35a1SLionel Sambuc Note that setting this to "no" does not disable the build of 26411be35a1SLionel Sambuc the NetBSD test suite itself; the build of the tests is 26511be35a1SLionel Sambuc controlled by the MKATF knob. 26611be35a1SLionel Sambuc Default: no (until the import is done and validated) 26711be35a1SLionel Sambuc 268e415d488SLionel SambucMKLDAP If "no", disables building of LDAP infrastructure 269e415d488SLionel Sambuc (libraries and support programs). 270e415d488SLionel Sambuc Default: yes 271e415d488SLionel Sambuc 27211be35a1SLionel SambucMKLIBCXX If not "no", build and install libc++. 27311be35a1SLionel Sambuc Default: no 27411be35a1SLionel Sambuc 27511be35a1SLionel SambucMKLIBSTDCXX If not "no", build and install libstdc++. 27611be35a1SLionel Sambuc Default: yes 27711be35a1SLionel Sambuc 278e415d488SLionel SambucMKLINKLIB If "no", act as "MKLINT=no MKPICINSTALL=no MKPROFILE=no". 279e415d488SLionel Sambuc Also: 280e415d488SLionel Sambuc - don't install the .a libraries 281e415d488SLionel Sambuc - don't install _pic.a libraries on PIC systems 282e415d488SLionel Sambuc - don't build .a libraries on PIC systems 283e415d488SLionel Sambuc - don't install the .so symlink on ELF systems 284e415d488SLionel Sambuc I.e, only install the shared library (and the .so.major 285e415d488SLionel Sambuc symlink on ELF). 286e415d488SLionel Sambuc Default: yes 287e415d488SLionel Sambuc 288e415d488SLionel SambucMKLINT If "no", don't build or install the lint libraries. 289e415d488SLionel Sambuc Default: yes 290e415d488SLionel Sambuc 291e415d488SLionel SambucMKLVM If "no", don't build or install the logical volume manager 292e415d488SLionel Sambuc and device mapper tools and libraries 293e415d488SLionel Sambuc Default: yes 294e415d488SLionel Sambuc 295e415d488SLionel SambucMKMAN If "no", don't build or install the man or catman pages, 296e415d488SLionel Sambuc and also acts as "MKCATPAGES=no MKHTML=no". 297e415d488SLionel Sambuc Default: yes 298e415d488SLionel Sambuc 299e415d488SLionel SambucMKMANDOC If "yes", mandoc is built as tool and used to compile 300e415d488SLionel Sambuc catman or html pages. A directory can be exempted by 301e415d488SLionel Sambuc defining NOMANDOC. Individual man pages are exempted 302e415d488SLionel Sambuc if NOMANDOC.${target} is set to "yes". 303e415d488SLionel Sambuc Default: yes 304e415d488SLionel Sambuc 305e415d488SLionel SambucMKMANZ If not "no", compress manual pages at installation time. 306e415d488SLionel Sambuc Default: no 307e415d488SLionel Sambuc 308e415d488SLionel SambucMKMDNS If "no", disables building of mDNS infrastructure 309e415d488SLionel Sambuc (libraries and support programs). 310e415d488SLionel Sambuc Default: yes 311e415d488SLionel Sambuc 312e415d488SLionel SambucMKNLS If "no", don't build or install the NLS files and locale 313e415d488SLionel Sambuc definition files. 314e415d488SLionel Sambuc Default: yes 315e415d488SLionel Sambuc 316e415d488SLionel SambucMKNPF If "no", don't build or install the NPF and its modules. 317e415d488SLionel Sambuc Default: yes 318e415d488SLionel Sambuc 319e415d488SLionel SambucMKOBJ If "no", don't enable the rule which creates objdirs, 320e415d488SLionel Sambuc and also acts as "MKOBJDIRS=no". 321e415d488SLionel Sambuc Default: yes 322e415d488SLionel Sambuc 323e415d488SLionel SambucMKOBJDIRS If "no", don't create objdirs during a "make build". 324e415d488SLionel Sambuc Default: no 325e415d488SLionel Sambuc 326e415d488SLionel SambucMKPAM If "no", disables building of PAM authentication 327e415d488SLionel Sambuc infrastructure (libraries and support programs). 328e415d488SLionel Sambuc Default: yes 329e415d488SLionel Sambuc 330e415d488SLionel SambucMKPCC If "no", don't build pcc(1) or any of the PCC-related 331e415d488SLionel Sambuc libraries (libpcc, libpccsoftfloat). 332e415d488SLionel Sambuc Default: no 333e415d488SLionel Sambuc 334e415d488SLionel SambucMKPF If "no", don't build or install the pf programs and LKM. 335e415d488SLionel Sambuc Default: yes 336e415d488SLionel Sambuc 337e415d488SLionel SambucMKPIC If "no", don't build or install shared libraries, and 338e415d488SLionel Sambuc also acts as "MKPICLIB=no" 339e415d488SLionel Sambuc Default: yes (for MACHINE_ARCHs that support it) 340e415d488SLionel Sambuc 341e415d488SLionel SambucMKPICINSTALL If "no", don't install the *_pic.a libraries. 342e415d488SLionel Sambuc Default: yes 343e415d488SLionel Sambuc 344e415d488SLionel SambucMKPICLIB If "no", don't build *_pic.a libraries, and build the 345e415d488SLionel Sambuc shared object libraries from the .a libraries. 346e415d488SLionel Sambuc A symlink is installed in ${DESTDIR}/usr/lib for the 347e415d488SLionel Sambuc _pic.a library pointing to the .a library. 348e415d488SLionel Sambuc Default: yes 349e415d488SLionel Sambuc 350e415d488SLionel SambucMKPIE If "no", create regular executables. Otherwise create 351e415d488SLionel Sambuc PIE (Position Independent Executables). 352e415d488SLionel Sambuc Default: no 353e415d488SLionel Sambuc 354e415d488SLionel SambucMKPIGZGZIP If "no", only install pigz as pigz, not gzip. 355e415d488SLionel Sambuc Default: no 356e415d488SLionel Sambuc 357e415d488SLionel SambucMKPOSTFIX If "no", don't build or install postfix(1). 358e415d488SLionel Sambuc Default: yes 359e415d488SLionel Sambuc 360e415d488SLionel SambucMKPROFILE If "no", don't build or install the profiling (*_p.a) libraries. 361e415d488SLionel Sambuc Default: yes 362e415d488SLionel Sambuc 363e415d488SLionel SambucMKREPRO If "yes", create reproducable builds. This enables 364e415d488SLionel Sambuc different switches to make two builds from the same source tree 365e415d488SLionel Sambuc result in the same build results. 366e415d488SLionel Sambuc Default: no 367e415d488SLionel Sambuc 368e415d488SLionel SambucMKSHARE If "no", act as "MKCATPAGES=no MKDOC=no MKHTML=no MKINFO=no 369e415d488SLionel Sambuc MKMAN=no MKNLS=no". 370e415d488SLionel Sambuc I.e, don't build catman pages, documentation, Info 371e415d488SLionel Sambuc documentation, man pages, NLS files, ... 372e415d488SLionel Sambuc Default: yes 373e415d488SLionel Sambuc 374e415d488SLionel SambucMKSKEY If "no", disables building of S/key authentication 375e415d488SLionel Sambuc infrastructure (libraries and support programs). 376e415d488SLionel Sambuc Default: yes 377e415d488SLionel Sambuc 37884d9c625SLionel SambucMKSLJIT If "no", disables building of sljit (stack-less platform 37911be35a1SLionel Sambuc independent JIT compiler) private library and tests. 38011be35a1SLionel Sambuc Default: yes on amd64, i386 and sparc, no elsewhere. 38111be35a1SLionel Sambuc 382e415d488SLionel SambucMKSOFTFLOAT If not "no", build with options to enable the compiler to 383e415d488SLionel Sambuc generate output containing library calls for floating 384e415d488SLionel Sambuc point and possibly soft-float library support. 385e415d488SLionel Sambuc Default: no 386e415d488SLionel Sambuc 387e415d488SLionel SambucMKSTATICLIB If "no", don't build or install the normal static (*.a) 388e415d488SLionel Sambuc libraries. 389e415d488SLionel Sambuc Default: yes 390e415d488SLionel Sambuc 39111be35a1SLionel SambucMKTPM If "no" then don't build the Trusted Platform Module 39211be35a1SLionel Sambuc infrastructure. 39311be35a1SLionel Sambuc Default: no 39411be35a1SLionel Sambuc 395e415d488SLionel SambucMKUNPRIVED If not "no", don't set the owner/group/mode when installing 396e415d488SLionel Sambuc files or directories, and keep a metadata log of what 397e415d488SLionel Sambuc the owner/group/mode should be. This allows a 398e415d488SLionel Sambuc non-root "make install". 399e415d488SLionel Sambuc Default: no 400e415d488SLionel Sambuc 401e415d488SLionel SambucMKUPDATE If not "no", 'make install' only installs targets that are 402e415d488SLionel Sambuc more recently modified in the source directories that their 403e415d488SLionel Sambuc installed counterparts. 404e415d488SLionel Sambuc Default: no 405e415d488SLionel Sambuc 406*0a6a1f1dSLionel SambucMKX11 If not "no", 'make build' also descends into 407*0a6a1f1dSLionel Sambuc src/external/mit/xorg to cross-build X11 and automatically 408*0a6a1f1dSLionel Sambuc enables creation of X sets. 409e415d488SLionel Sambuc Default: no 410e415d488SLionel Sambuc 411*0a6a1f1dSLionel SambucMKX11FONTS If not "no", do not build or install the X fonts. The xfont 412*0a6a1f1dSLionel Sambuc set is still created but will be empty. 413e415d488SLionel Sambuc Default: yes 414e415d488SLionel Sambuc 415*0a6a1f1dSLionel SambucMKX11MOTIF: If "yes", build the native X11 libGLw with Motif stubs. If 416*0a6a1f1dSLionel Sambuc Motif is not installed in the default location /usr/pkg, the 417*0a6a1f1dSLionel Sambuc location can be specified using the X11MOTIFPATH variable. 41811be35a1SLionel Sambuc Default: no 41911be35a1SLionel Sambuc 420*0a6a1f1dSLionel SambucMKRADEONFIRMWARE If "no", install the /libdata/firmware/radeon directory, 421*0a6a1f1dSLionel Sambuc which is necessary for the radeon DRM driver. 422*0a6a1f1dSLionel Sambuc Default: yes on i386 and amd64, no elsewhere. 423*0a6a1f1dSLionel Sambuc 424e415d488SLionel SambucMKYP If "no", disables building of YP (NIS) 425e415d488SLionel Sambuc infrastructure (libraries and support programs). 426e415d488SLionel Sambuc Default: yes 427e415d488SLionel Sambuc 428e415d488SLionel SambucMKZFS If "no", do not build and install utilities and libraries 429e415d488SLionel Sambuc used to manage ZFS file system. Do not build zfs and solaris 430*0a6a1f1dSLionel Sambuc compatibility kernel modules. Note: ZFS requires 64bit 431*0a6a1f1dSLionel Sambuc atomic operations. 432*0a6a1f1dSLionel Sambuc Default: yes on amd64, no elsewhere. 433e415d488SLionel Sambuc 434e415d488SLionel SambucMKRUMP If "no", do not build and install rump related headers, 435e415d488SLionel Sambuc libraries, and programs. 436e415d488SLionel Sambuc Default: yes 437e415d488SLionel Sambuc 438e415d488SLionel SambucUSE_HESIOD If "no", disables building Hesiod support into 439e415d488SLionel Sambuc various system utilities/libraries that support it. 440e415d488SLionel Sambuc If ${MKHESIOD} is "no", USE_HESIOD will also be 441e415d488SLionel Sambuc forced to "no". 442e415d488SLionel Sambuc 443e415d488SLionel SambucUSE_INET6 If "no", disables building INET6 (IPv6) support into 444e415d488SLionel Sambuc various system utilities/libraries that support it. 445e415d488SLionel Sambuc If ${MKINET6} is "no", USE_INET6 will also be 446e415d488SLionel Sambuc forced to "no". 447e415d488SLionel Sambuc 448e415d488SLionel SambucUSE_JEMALLOC If "no", disables building the "jemalloc" allocator 449e415d488SLionel Sambuc designed for improved performance with threaded 450e415d488SLionel Sambuc applications. The "phkmalloc" allocator as used up 451e415d488SLionel Sambuc before NetBSD-5.0 will be substituted. 452e415d488SLionel Sambuc 453e415d488SLionel SambucUSE_KERBEROS If "no", disables building Kerberos v5 454e415d488SLionel Sambuc support into various system utilities/libraries that 455e415d488SLionel Sambuc support it. If ${MKKERBEROS} is "no", USE_KERBEROS 456e415d488SLionel Sambuc will also be forced to "no". 457e415d488SLionel Sambuc 458e415d488SLionel SambucUSE_LDAP If "no", disables building LDAP support into various 459e415d488SLionel Sambuc system utilities/libraries that support it. 460e415d488SLionel Sambuc If ${MKLDAP} is "no", USE_LDAP will also be forced to "no". 461e415d488SLionel Sambuc 462e415d488SLionel SambucUSE_PAM If "no", disables building PAM authentication support 463e415d488SLionel Sambuc into various system utilities/libraries that support it. 464e415d488SLionel Sambuc If ${MKPAM} is "no", USE_PAM will also be forced to "no". 465e415d488SLionel Sambuc 466e415d488SLionel SambucUSE_SKEY If "no", disables building S/key authentication 467e415d488SLionel Sambuc support into various system utilities/libraries that 468e415d488SLionel Sambuc support it. If ${MKSKEY} is "no", USE_SKEY will 469e415d488SLionel Sambuc also be forced to "no". 470e415d488SLionel Sambuc Default: no 471e415d488SLionel Sambuc 472e415d488SLionel SambucUSE_SSP If "no", disables GCC stack protection code, which 473e415d488SLionel Sambuc detects stack overflows and aborts the program. The 474e415d488SLionel Sambuc stack protection code imposes a performance penalty 475e415d488SLionel Sambuc of about 5%. 476e415d488SLionel Sambuc Default: "no", unless "USE_FORT" is set to "yes" 477e415d488SLionel Sambuc 478e415d488SLionel SambucUSE_FORT If "yes" turns on substitute wrappers for commonly used 479e415d488SLionel Sambuc functions that do not do bounds checking regularly, but 480e415d488SLionel Sambuc they could in some cases by using the gcc 481e415d488SLionel Sambuc __builtin_object_size() function to determine the buffer 482e415d488SLionel Sambuc size where it is known and detect buffer overflows. 483e415d488SLionel Sambuc These substitute functions are in /usr/include/ssp. 484e415d488SLionel Sambuc Default: depends on the part of the source tree 485e415d488SLionel Sambuc 486e415d488SLionel SambucUSE_YP If "no", disables building YP (NIS) support into 487e415d488SLionel Sambuc various system utilities/libraries that support it. 488e415d488SLionel Sambuc If ${MKYP} is "no", USE_YP will also be forced to "no". 489e415d488SLionel Sambuc 490e415d488SLionel SambucUSE_PIGZGZIP If "no", use the host "gzip" program to compress things. 491*0a6a1f1dSLionel Sambuc Otherwise, build tools/pigz, set TOOL_GZIP=${TOOL_PIGZ}, 492*0a6a1f1dSLionel Sambuc and use nbpigz to compress things. 493e415d488SLionel Sambuc Default: "no". 494e415d488SLionel Sambuc 495e415d488SLionel SambucCOPTS.lib<lib> 496e415d488SLionel SambucOBJCOPTS.lib<lib> 497e415d488SLionel SambucLDADD.lib<lib> 498e415d488SLionel SambucCPPFLAGS.lib<lib> 499e415d488SLionel SambucCXXFLAGS.lib<lib> 500e415d488SLionel SambucCOPTS.<prog> 501e415d488SLionel SambucOBJCCOPTS.<prog> 502e415d488SLionel SambucLDADD.<prog> 503e415d488SLionel SambucCPPFLAGS.<prog> 504e415d488SLionel SambucCXXFLAGS.<prog> These provide a way to specify additions to the associated 505e415d488SLionel Sambuc variables in a way that applies only to a particular library 506e415d488SLionel Sambuc or program. <lib> corresponds to the LIB variable set in 507e415d488SLionel Sambuc the library's makefile. <prog> corresponds to either PROG 508e415d488SLionel Sambuc or PROG_CXX (if set). For example, if COPTS.libcrypto is 509e415d488SLionel Sambuc set to "-g", "-g" will be added to COPTS only when compiling 510e415d488SLionel Sambuc the crypto library. 511e415d488SLionel Sambuc 512e415d488SLionel SambucThe active compiler is selected using the following variables: 513e415d488SLionel SambucAVAILABLE_COMPILER 514e415d488SLionel Sambuc List of available compiler suites. Processed in order 515e415d488SLionel Sambuc for selecting the active compiler for each frontend. 516e415d488SLionel SambucHAVE_PCC If defined, PCC is present and enabled. 517e415d488SLionel SambucHAVE_LLVM If defined, LLVM/Clang is present and enabled. 518e415d488SLionel SambucUNSUPPORTED_COMPILER.xxx 519e415d488SLionel Sambuc If defined, the support for compiler "xxx" is disabled. 520e415d488SLionel Sambuc 521e415d488SLionel SambucFor the frontends (CC, CPP, CXX, FC and OBJC) the following variables exist: 522e415d488SLionel SambucACTIVE_CC Active compile suite for the CC frontend. 523e415d488SLionel SambucSUPPORTED_CC Compile suite with support for the CC frontend. 524e415d488SLionel SambucTOOL_CC.xxx Path to the CC frontend for compiler "xxx" 525e415d488SLionel Sambuc 526e415d488SLionel Sambuc=-=-=-=-= sys.mk =-=-=-=-= 527e415d488SLionel Sambuc 528e415d488SLionel SambucThe include file <sys.mk> has the default rules for all makes, in the BSD 529e415d488SLionel Sambucenvironment or otherwise. You probably don't want to touch this file. 530e415d488SLionel Sambuc 531e415d488SLionel Sambuc=-=-=-=-= bsd.own.mk =-=-=-=-= 532e415d488SLionel Sambuc 533e415d488SLionel SambucThe include file <bsd.own.mk> contains source tree configuration parameters, 534e415d488SLionel Sambucsuch as the owners, groups, etc. for both manual pages and binaries, and 535e415d488SLionel Sambuca few global "feature configuration" parameters. 536e415d488SLionel Sambuc 537e415d488SLionel SambucIt has no targets. 538e415d488SLionel Sambuc 539e415d488SLionel SambucTo get system-specific configuration parameters, <bsd.own.mk> will try to 540e415d488SLionel Sambucinclude the file specified by the "MAKECONF" variable. If MAKECONF is not 541e415d488SLionel Sambucset, or no such file exists, the system make configuration file, /etc/mk.conf 542e415d488SLionel Sambucis included. These files may define any of the variables described below. 543e415d488SLionel Sambuc 544e415d488SLionel Sambuc<bsd.own.mk> sets the following variables, if they are not already defined 545e415d488SLionel Sambuc(defaults are in brackets): 546e415d488SLionel Sambuc 547e415d488SLionel SambucNETBSDSRCDIR Top of the NetBSD source tree. 548e415d488SLionel Sambuc If _SRC_TOP_ != "", that will be used as the default, 549e415d488SLionel Sambuc otherwise BSDSRCDIR will be used as the default. 550e415d488SLionel Sambuc Various makefiles within the NetBSD source tree will 551e415d488SLionel Sambuc use this to reference the top level of the source tree. 552e415d488SLionel Sambuc 553e415d488SLionel Sambuc_SRC_TOP_ Top of the system source tree, as determined by <bsd.own.mk> 554e415d488SLionel Sambuc based on the presence of tools/ and build.sh. This variable 555e415d488SLionel Sambuc is "internal" to <bsd.own.mk>, although its value is only 556e415d488SLionel Sambuc determined once and then propagated to all sub-makes. 557e415d488SLionel Sambuc 55811be35a1SLionel Sambuc_NETBSD_VERSION_DEPENDS 55911be35a1SLionel Sambuc A list of files which contain information about 56011be35a1SLionel Sambuc the version of the NetBSD being built. This is 56111be35a1SLionel Sambuc defined only if the current directory appears 56211be35a1SLionel Sambuc to be inside a NetBSD source tree. The list of 56311be35a1SLionel Sambuc files includes ${NETBSDSRCDIR}/sys/sys/param.h 56411be35a1SLionel Sambuc (which contains the kernel version number), 56511be35a1SLionel Sambuc ${NETBSDSRCDIR}/sys/conf/newvers.sh and 56611be35a1SLionel Sambuc ${NETBSDSRCDIR}/sys/conf/osrelease.sh (which 56711be35a1SLionel Sambuc interpret the information in sys/sys/param.h), and 56811be35a1SLionel Sambuc ${_SRC_TOP_OBJ_}/params (which is an optional file, 56911be35a1SLionel Sambuc created by "make build" in ${_SRC_TOP_}/Makefile, 57011be35a1SLionel Sambuc containing all the variables that may influence the 57111be35a1SLionel Sambuc build). 57211be35a1SLionel Sambuc 57311be35a1SLionel Sambuc Targets that depend on the NetBSD version, or on 57411be35a1SLionel Sambuc variables defined at build time, can declare a 57511be35a1SLionel Sambuc dependency on ${_NETBSD_VERSION_DEPENDS}, like this: 57611be35a1SLionel Sambuc 57711be35a1SLionel Sambuc version.c: ${_NETBSD_VERSION_DEPENDS} 57811be35a1SLionel Sambuc commands to create version.c 57911be35a1SLionel Sambuc 580e415d488SLionel SambucBSDSRCDIR The real path to the system sources, so that 'make obj' 581e415d488SLionel Sambuc will work correctly. [/usr/src] 582e415d488SLionel Sambuc 583e415d488SLionel SambucBSDOBJDIR The real path to the system 'obj' tree, so that 'make obj' 584e415d488SLionel Sambuc will work correctly. [/usr/obj] 585e415d488SLionel Sambuc 586e415d488SLionel SambucBINGRP Binary group. [wheel] 587e415d488SLionel Sambuc 588e415d488SLionel SambucBINOWN Binary owner. [root] 589e415d488SLionel Sambuc 590e415d488SLionel SambucBINMODE Binary mode. [555] 591e415d488SLionel Sambuc 592e415d488SLionel SambucNONBINMODE Mode for non-executable files. [444] 593e415d488SLionel Sambuc 594e415d488SLionel SambucMANDIR Base path for manual installation. [/usr/share/man/cat] 595e415d488SLionel Sambuc 596e415d488SLionel SambucMANGRP Manual group. [wheel] 597e415d488SLionel Sambuc 598e415d488SLionel SambucMANOWN Manual owner. [root] 599e415d488SLionel Sambuc 600e415d488SLionel SambucMANMODE Manual mode. [${NONBINMODE}] 601e415d488SLionel Sambuc 602e415d488SLionel SambucMANINSTALL Manual installation type. Space separated list: 603e415d488SLionel Sambuc catinstall, htmlinstall, maninstall 604e415d488SLionel Sambuc Default value derived from MKCATPAGES and MKHTML. 605e415d488SLionel Sambuc 606e415d488SLionel SambucLDSTATIC Control program linking; if set blank, link everything 607e415d488SLionel Sambuc dynamically. If set to "-static", link everything statically. 608e415d488SLionel Sambuc If not set, programs link according to their makefile. 609e415d488SLionel Sambuc 610e415d488SLionel SambucLIBDIR Base path for library installation. [/usr/lib] 611e415d488SLionel Sambuc 612e415d488SLionel SambucLINTLIBDIR Base path for lint(1) library installation. [/usr/libdata/lint] 613e415d488SLionel Sambuc 614e415d488SLionel SambucLIBGRP Library group. [${BINGRP}] 615e415d488SLionel Sambuc 616e415d488SLionel SambucLIBOWN Library owner. [${BINOWN}] 617e415d488SLionel Sambuc 618e415d488SLionel SambucLIBMODE Library mode. [${NONBINMODE}] 619e415d488SLionel Sambuc 620e415d488SLionel SambucDOCDIR Base path for system documentation (e.g. PSD, USD, etc.) 621e415d488SLionel Sambuc installation. [/usr/share/doc] 622e415d488SLionel Sambuc 623e415d488SLionel SambucDOCGRP Documentation group. [wheel] 624e415d488SLionel Sambuc 625e415d488SLionel SambucDOCOWN Documentation owner. [root] 626e415d488SLionel Sambuc 627e415d488SLionel SambucDOCMODE Documentation mode. [${NONBINMODE}] 628e415d488SLionel Sambuc 629*0a6a1f1dSLionel SambucGZIP_N_FLAG Flags to pass to TOOL_GZIP to prevent it from inserting 630*0a6a1f1dSLionel Sambuc file names or timestamps in the compressed output. 631*0a6a1f1dSLionel Sambuc [-n, or -nT when TOOL_GZIP is really TOOL_PIGZ] 632*0a6a1f1dSLionel Sambuc 633e415d488SLionel SambucNLSDIR Base path for Native Language Support files installation. 634e415d488SLionel Sambuc [/usr/share/nls] 635e415d488SLionel Sambuc 636e415d488SLionel SambucNLSGRP Native Language Support files group. [wheel] 637e415d488SLionel Sambuc 638e415d488SLionel SambucNLSOWN Native Language Support files owner. [root] 639e415d488SLionel Sambuc 640e415d488SLionel SambucNLSMODE Native Language Support files mode. [${NONBINMODE}] 641e415d488SLionel Sambuc 642e415d488SLionel SambucX11SRCDIR The path to the xsrc tree. [${NETBSDSRCDIR}/../xsrc, 643e415d488SLionel Sambuc if that exists; otherwise /usr/xsrc] 644e415d488SLionel Sambuc 645e415d488SLionel SambucX11SRCDIR.local The path to the local X11 src tree. [${X11SRCDIR}/local] 646e415d488SLionel Sambuc 647e415d488SLionel SambucX11SRCDIR.lib<package> 648e415d488SLionel SambucX11SRCDIR.<package> 649e415d488SLionel Sambuc The path to the xorg src tree for the specificed package>. 650e415d488SLionel Sambuc [${X11SRCDIR}/external/mit/xorg/<package>/dist] 651e415d488SLionel Sambuc 652e415d488SLionel SambucX11ROOTDIR Root directory of the X11 installation. [/usr/X11R6 or 653e415d488SLionel Sambuc [/usr/X11R7] 654e415d488SLionel Sambuc 655e415d488SLionel SambucX11BINDIR X11 bin directory. [${X11ROOTDIR}/bin] 656e415d488SLionel Sambuc 657e415d488SLionel SambucX11FONTDIR X11 font directory. [${X11ROOTDIR}/lib/X11/fonts] 658e415d488SLionel Sambuc 659e415d488SLionel SambucX11INCDIR X11 include directory. [${X11ROOTDIR}/include] 660e415d488SLionel Sambuc 661e415d488SLionel SambucX11LIBDIR X11 lib/x11 (config) directory. [${X11ROOTDIR}/lib/X11] 662e415d488SLionel Sambuc 663e415d488SLionel SambucX11MANDIR X11 manual directory. [${X11ROOTDIR}/man] 664e415d488SLionel Sambuc 665e415d488SLionel SambucX11USRLIBDIR X11 library directory. [${X11ROOTDIR}/lib] 666e415d488SLionel Sambuc 667e415d488SLionel SambucSTRIPFLAG The flag passed to the install program to cause the binary 668e415d488SLionel Sambuc to be stripped. This is to be used when building your 669e415d488SLionel Sambuc own install script so that the entire system can be made 670e415d488SLionel Sambuc stripped/not-stripped using a single knob. [] 671e415d488SLionel Sambuc 672e415d488SLionel SambucCOPY The flag passed to the install program to cause the binary 673e415d488SLionel Sambuc to be copied rather than moved. This is to be used when 674e415d488SLionel Sambuc building our own install script so that the entire system 675e415d488SLionel Sambuc can either be installed with copies, or with moves using 676e415d488SLionel Sambuc a single knob. [-c] 677e415d488SLionel Sambuc 67811be35a1SLionel SambucMAKEDIRTARGETENV 67911be35a1SLionel Sambuc Environment variables passed to the child make process 68011be35a1SLionel Sambuc invoked by MAKEDIRTARGET. 68111be35a1SLionel Sambuc 682e415d488SLionel SambucMAKEDIRTARGET dir target [params] 683e415d488SLionel Sambuc Runs "cd $${dir} && ${MAKE} [params] $${target}", 684e415d488SLionel Sambuc displaying a "pretty" message whilst doing so. 685e415d488SLionel Sambuc 686e415d488SLionel SambucRELEASEMACHINEDIR 687e415d488SLionel Sambuc Subdirectory used below RELEASEDIR when building 688e415d488SLionel Sambuc a release. [${MACHINE}] 689e415d488SLionel Sambuc 690e415d488SLionel SambucRELEASEMACHINE Subdirectory or path component used for the following 691e415d488SLionel Sambuc paths: 692e415d488SLionel Sambuc distrib/${RELEASEMACHINE} 693e415d488SLionel Sambuc distrib/notes/${RELEASEMACHINE} 694e415d488SLionel Sambuc etc/etc.${RELEASEMACHINE} 695e415d488SLionel Sambuc Used when building a release. [${MACHINE}] 696e415d488SLionel Sambuc 697e415d488SLionel SambucAdditionally, the following variables may be set by <bsd.own.mk> or in a 698e415d488SLionel Sambucmake configuration file to modify the behavior of the system build 699e415d488SLionel Sambucprocess (default values are in brackets along with comments, if set by 700e415d488SLionel Sambuc<bsd.own.mk>): 701e415d488SLionel Sambuc 702e415d488SLionel SambucUSETOOLS Indicates whether the tools specified by ${TOOLDIR} should 703e415d488SLionel Sambuc be used as part of a build in progress. 704e415d488SLionel Sambuc Supported values: 705e415d488SLionel Sambuc 706e415d488SLionel Sambuc yes Use the tools from TOOLDIR. 707e415d488SLionel Sambuc Must be set to this if cross-compiling. 708e415d488SLionel Sambuc 709e415d488SLionel Sambuc no Do not use the tools from TOOLDIR, but refuse to 710e415d488SLionel Sambuc build native compilation tool components that are 711e415d488SLionel Sambuc version-specific for that tool. 712e415d488SLionel Sambuc 713e415d488SLionel Sambuc never Do not use the tools from TOOLDIR, even when 714e415d488SLionel Sambuc building native tool components. This is similar to 715e415d488SLionel Sambuc the traditional NetBSD build method, but does not 716e415d488SLionel Sambuc verify that the compilation tools in use are 717e415d488SLionel Sambuc up-to-date enough in order to build the tree 718e415d488SLionel Sambuc successfully. This may cause build or runtime 719e415d488SLionel Sambuc problems when building the whole NetBSD source tree. 720e415d488SLionel Sambuc 721e415d488SLionel Sambuc Default: "yes" if building all or part of a whole NetBSD 722e415d488SLionel Sambuc source tree (detected automatically); "no" otherwise 723e415d488SLionel Sambuc (to preserve traditional semantics of the <bsd.*.mk> 724e415d488SLionel Sambuc make(1) include files). 725e415d488SLionel Sambuc 726e415d488SLionel SambucOBJECT_FMT Object file format. [set to "ELF" on architectures that 727e415d488SLionel Sambuc use ELF -- currently all architectures]. 728e415d488SLionel Sambuc 729e415d488SLionel SambucTOOLCHAIN_MISSING 730e415d488SLionel Sambuc If not "no", this indicates that the platform being built 731e415d488SLionel Sambuc does not have a working in-tree toolchain. If the 732e415d488SLionel Sambuc ${MACHINE_ARCH} in question falls into this category, 733e415d488SLionel Sambuc TOOLCHAIN_MISSING is conditionally assigned the value "yes". 734e415d488SLionel Sambuc Otherwise, the variable is unconditionally assigned the 735e415d488SLionel Sambuc value "no". 736e415d488SLionel Sambuc If not "no", ${MKBINUTILS}, ${MKGCC}, and ${MKGDB} are 737e415d488SLionel Sambuc unconditionally assigned the value "no". 738e415d488SLionel Sambuc 739e415d488SLionel SambucEXTERNAL_TOOLCHAIN 740e415d488SLionel Sambuc This variable is not directly set by <bsd.own.mk>, but 741e415d488SLionel Sambuc including <bsd.own.mk> is the canonical way to gain 742e415d488SLionel Sambuc access to this variable. The variable should be defined 743e415d488SLionel Sambuc either in the user's environment or in the user's mk.conf 744e415d488SLionel Sambuc file. If defined, this variable indicates the root of 745e415d488SLionel Sambuc an external toolchain which will be used to build the 746e415d488SLionel Sambuc tree. For example, if a platform is a ${TOOLCHAIN_MISSING} 747e415d488SLionel Sambuc platform, EXTERNAL_TOOLCHAIN can be used to re-enable the 748e415d488SLionel Sambuc cross-compile framework. 749e415d488SLionel Sambuc 750e415d488SLionel Sambuc If EXTERNAL_TOOLCHAIN is defined, ${MKGCC} is unconditionally 751e415d488SLionel Sambuc assigned the value "no", since the external version of the 752e415d488SLionel Sambuc compiler may not be able to build the library components of 753e415d488SLionel Sambuc the in-tree compiler. 754e415d488SLionel Sambuc 755e415d488SLionel Sambuc NOTE: This variable is not yet used in as many places as 756e415d488SLionel Sambuc it should be. Expect the exact semantics of this variable 757e415d488SLionel Sambuc to change in the short term as parts of the cross-compile 758e415d488SLionel Sambuc framework continue to be cleaned up. 759e415d488SLionel Sambuc 760e415d488SLionel SambucThe following variables are defined to commands to perform the 761e415d488SLionel Sambucappropriate operation, with the default in [brackets]. Note that 762e415d488SLionel Sambucthe defaults change if USETOOLS == "yes": 763e415d488SLionel Sambuc 764e415d488SLionel SambucTOOL_AMIGAAOUT2BB aout to Amiga bootblock converter. [amiga-aout2bb] 765e415d488SLionel Sambuc 766e415d488SLionel SambucTOOL_AMIGAELF2BB ELF to Amiga bootblock converter. [amiga-elf2bb] 767e415d488SLionel Sambuc 768e415d488SLionel SambucTOOL_AMIGATXLT Amige assembly language format translator. [amiga-txlt] 769e415d488SLionel Sambuc 770e415d488SLionel SambucTOOL_ASN1_COMPILE ASN1 compiler. [asn1_compile] 771e415d488SLionel Sambuc 772e415d488SLionel SambucTOOL_AWK Pattern-directed scanning/processing language. [awk] 773e415d488SLionel Sambuc 774e415d488SLionel SambucTOOL_CAP_MKDB Create capability database. [cap_mkdb] 775e415d488SLionel Sambuc 776e415d488SLionel SambucTOOL_CAT Concatenate and print files. [cat] 777e415d488SLionel Sambuc 778e415d488SLionel SambucTOOL_CKSUM Display file checksums. [cksum] 779e415d488SLionel Sambuc 780e415d488SLionel SambucTOOL_COMPILE_ET Error table compiler. [compile_et] 781e415d488SLionel Sambuc 782e415d488SLionel SambucTOOL_CONFIG Build kernel compilation directories. [config] 783e415d488SLionel Sambuc 784e415d488SLionel SambucTOOL_CRUNCHGEN Generate crunched binary build environment. [crunchgen] 785e415d488SLionel Sambuc 786e415d488SLionel SambucTOOL_CTAGS Create a tags file. [ctags] 787e415d488SLionel Sambuc 788e415d488SLionel SambucTOOL_DB Manipulate db(3) databases. [db] 789e415d488SLionel Sambuc 790e415d488SLionel SambucTOOL_DISKLABEL Read and write disk pack label. [disklabel] 791e415d488SLionel Sambuc 792e415d488SLionel SambucTOOL_EQN Format equations for groff. [eqn] 793e415d488SLionel Sambuc 794e415d488SLionel SambucTOOL_FDISK MS-DOS partition maintenance program. [fdisk] 795e415d488SLionel Sambuc 796e415d488SLionel SambucTOOL_FGEN IEEE 1275 Open Firmware FCode Tokenizer. [fgen] 797e415d488SLionel Sambuc 798e415d488SLionel SambucTOOL_GENASSYM Generate constants for assembly files. [genassym] 799e415d488SLionel Sambuc 800e415d488SLionel SambucTOOL_GENCAT Generate NLS message catalogs. [gencat] 801e415d488SLionel Sambuc 802e415d488SLionel SambucTOOL_GMAKE GNU make utility. [gmake] 803e415d488SLionel Sambuc 804e415d488SLionel SambucTOOL_GREP Print lines matching a pattern. [grep] 805e415d488SLionel Sambuc 806e415d488SLionel SambucTOOL_GROFF Front end for groff document formatting system. [groff] 807e415d488SLionel Sambuc 808*0a6a1f1dSLionel SambucTOOL_GZIP Compression/decompression tool. [gzip] 809*0a6a1f1dSLionel Sambuc 810*0a6a1f1dSLionel SambucTOOL_GZIP_N Same as TOOL_GZIP, plus a command line option to 811*0a6a1f1dSLionel Sambuc prevent it from inserting file names or timestamps 812*0a6a1f1dSLionel Sambuc into the compressed output. 813*0a6a1f1dSLionel Sambuc [${TOOL_GZIP} ${GZIP_N_FLAG}] 814*0a6a1f1dSLionel Sambuc 815e415d488SLionel SambucTOOL_HEXDUMP Ascii, decimal, hexadecimal, octal dump. [hexdump] 816e415d488SLionel Sambuc 817e415d488SLionel SambucTOOL_HP300MKBOOT Make bootable image for hp300. [hp300-mkboot] 818e415d488SLionel Sambuc 819*0a6a1f1dSLionel SambucTOOL_HPPAMKBOOT Make bootable image for hppa. [hppa-mkboot] 820e415d488SLionel Sambuc 821e415d488SLionel SambucTOOL_INDXBIB Make bibliographic database's inverted index. [indxbib] 822e415d488SLionel Sambuc 823e415d488SLionel SambucTOOL_INSTALLBOOT Install disk bootstrap software. [installboot] 824e415d488SLionel Sambuc 825e415d488SLionel SambucTOOL_INSTALL_INFO Update info/dir entries. [install-info] 826e415d488SLionel Sambuc 827e415d488SLionel SambucTOOL_JOIN Relational database operator. [join] 828e415d488SLionel Sambuc 829e415d488SLionel SambucTOOL_M4 M4 macro language processor. [m4] 830e415d488SLionel Sambuc 831e415d488SLionel SambucTOOL_MACPPCFIXCOFF Fix up xcoff headers for macppc. [macppc-fixcoff] 832e415d488SLionel Sambuc 833e415d488SLionel SambucTOOL_MAKEFS Create file system image from directory tree. [makefs] 834e415d488SLionel Sambuc 835e415d488SLionel SambucTOOL_MAKEINFO Translate Texinfo documents. [makeinfo] 836e415d488SLionel Sambuc 837e415d488SLionel SambucTOOL_MAKEWHATIS Create a whatis.db database. [makewhatis] 838e415d488SLionel Sambuc 839e415d488SLionel SambucTOOL_MDSETIMAGE Set kernel RAM disk image. [mdsetimage] 840e415d488SLionel Sambuc 841e415d488SLionel SambucTOOL_MENUC Menu compiler. [menuc] 842e415d488SLionel Sambuc 843e415d488SLionel SambucTOOL_MIPSELF2ECOFF Convert ELF-format executable to ECOFF for mips. 844e415d488SLionel Sambuc [mips-elf2ecoff] 845e415d488SLionel Sambuc 846e415d488SLionel SambucTOOL_MKCSMAPPER Make charset mapping table. [mkcsmapper] 847e415d488SLionel Sambuc 848e415d488SLionel SambucTOOL_MKESDB Make encoding scheme database. [mkesdb] 849e415d488SLionel Sambuc 850e415d488SLionel SambucTOOL_MKLOCALE Make LC_CTYPE locale files. [mklocale] 851e415d488SLionel Sambuc 852e415d488SLionel SambucTOOL_MKMAGIC Create database for file(1). [file] 853e415d488SLionel Sambuc 85411be35a1SLionel SambucTOOL_MKNOD Make device special file. [mknod] 85511be35a1SLionel Sambuc 856e415d488SLionel SambucTOOL_MKTEMP Make (unique) temporary file name. [mktemp] 857e415d488SLionel Sambuc 858e415d488SLionel SambucTOOL_MSGC Simple message list compiler. [msgc] 859e415d488SLionel Sambuc 860e415d488SLionel SambucTOOL_MTREE Map a directory hierarchy. [mtree] 861e415d488SLionel Sambuc 862*0a6a1f1dSLionel SambucTOOL_NCDCS Turn ELF kernel into a NCD firmware image. [ncdcs] 863*0a6a1f1dSLionel Sambuc 864e415d488SLionel SambucTOOL_PAX Manipulate file archives and copy directories. [pax] 865e415d488SLionel Sambuc 866e415d488SLionel SambucTOOL_PIC Compile pictures for groff. [pic] 867e415d488SLionel Sambuc 868e415d488SLionel SambucTOOL_PIGZ Parallel compressor. [pigz] 869e415d488SLionel Sambuc 870e415d488SLionel SambucTOOL_POWERPCMKBOOTIMAGE Make bootable image for powerpc. [powerpc-mkbootimage] 871e415d488SLionel Sambuc 872e415d488SLionel SambucTOOL_PWD_MKDB Generate the password databases. [pwd_mkdb] 873e415d488SLionel Sambuc 874e415d488SLionel SambucTOOL_REFER Preprocess bibliographic references for groff. [refer] 875e415d488SLionel Sambuc 876e415d488SLionel SambucTOOL_ROFF_ASCII Generate ASCII groff output. [nroff] 877e415d488SLionel Sambuc 878e415d488SLionel SambucTOOL_ROFF_DVI Generate DVI groff output. [${TOOL_GROFF} -Tdvi] 879e415d488SLionel Sambuc 880e415d488SLionel SambucTOOL_ROFF_HTML Generate HTML groff output. 881e415d488SLionel Sambuc [${TOOL_GROFF} -Tlatin1 -mdoc2html] 882e415d488SLionel Sambuc 883e415d488SLionel SambucTOOL_ROFF_PS Generate PS groff output. [${TOOL_GROFF} -Tps] 884e415d488SLionel Sambuc 885e415d488SLionel SambucTOOL_ROFF_RAW Generate "raw" groff output. [${TOOL_GROFF} -Z] 886e415d488SLionel Sambuc 887e415d488SLionel SambucTOOL_RPCGEN Remote Procedure Call (RPC) protocol compiler. [rpcgen] 888e415d488SLionel Sambuc 889e415d488SLionel SambucTOOL_SED Stream editor. [sed] 890e415d488SLionel Sambuc 891e415d488SLionel SambucTOOL_SOELIM Eliminate .so's from groff input. [soelim] 892e415d488SLionel Sambuc 893e415d488SLionel SambucTOOL_SPARKCRC Generate a crc suitable for use in a sparkive file. 894e415d488SLionel Sambuc [sparkcrc] 895e415d488SLionel Sambuc 896e415d488SLionel SambucTOOL_STAT Display file status. [stat] 897e415d488SLionel Sambuc 898e415d488SLionel SambucTOOL_STRFILE Create a random access file for storing strings. 899e415d488SLionel Sambuc [strfile] 900e415d488SLionel Sambuc 901e415d488SLionel SambucTOOL_SUNLABEL Read or modify a SunOS disk label. [sunlabel] 902e415d488SLionel Sambuc 903e415d488SLionel SambucTOOL_TBL Format tables for groff. [tbl] 904e415d488SLionel Sambuc 905e415d488SLionel SambucTOOL_UUDECODE Uudecode a binary file. [uudecode] 906e415d488SLionel Sambuc 907e415d488SLionel SambucTOOL_VGRIND Grind nice listings of programs. [vgrind -f] 908e415d488SLionel Sambuc 909e415d488SLionel SambucTOOL_ZIC Time zone compiler. [zic] 910e415d488SLionel Sambuc 911*0a6a1f1dSLionel SambucFor each possible value of MACHINE_CPU, MACHINES.${MACHINE_CPU} contain a 912*0a6a1f1dSLionel Sambuclist of what ports can be built for it. This keeps those definitions in 913*0a6a1f1dSLionel Sambuccentralized place. 914*0a6a1f1dSLionel Sambuc 915e415d488SLionel Sambuc<bsd.own.mk> is generally useful when building your own Makefiles so that 916e415d488SLionel Sambucthey use the same default owners etc. as the rest of the tree. 917e415d488SLionel Sambuc 918e415d488SLionel Sambuc 919e415d488SLionel Sambuc=-=-=-=-= bsd.clean.mk =-=-=-=-= 920e415d488SLionel Sambuc 921e415d488SLionel SambucThe include file <bsd.clean.mk> defines the clean and cleandir 922e415d488SLionel Sambuctargets. It uses the following variables: 923e415d488SLionel Sambuc 924e415d488SLionel SambucCLEANFILES Files to remove for both the clean and cleandir targets. 925e415d488SLionel Sambuc 926e415d488SLionel SambucCLEANDIRFILES Files to remove for the cleandir target, but not for 927e415d488SLionel Sambuc the clean target. 928e415d488SLionel Sambuc 929e415d488SLionel SambucMKCLEANSRC Controls whether or not the clean and cleandir targets 930e415d488SLionel Sambuc will delete files from both the object directory, 931e415d488SLionel Sambuc ${.OBJDIR}, and the source directory, ${.CURDIR}. 932e415d488SLionel Sambuc 933e415d488SLionel Sambuc If MKCLEANSRC is set to "no", then the file names in 934e415d488SLionel Sambuc CLEANFILES or CLEANDIRFILES are interpreted relative 935e415d488SLionel Sambuc to the object directory, ${.OBJDIR}. This is the 936e415d488SLionel Sambuc traditional behaviour. 937e415d488SLionel Sambuc 938e415d488SLionel Sambuc If MKCLEANSRC is set to "yes", then the file deletion 939e415d488SLionel Sambuc is performed relative to both the object directory, 940e415d488SLionel Sambuc ${.OBJDIR}, and the source directory, ${.CURDIR}. (This 941e415d488SLionel Sambuc has no effect if ${.OBJDIR} is the same as ${.CURDIR}.) 942e415d488SLionel Sambuc Deleting files from ${.CURDIR} is intended to remove 943e415d488SLionel Sambuc stray output files that had been left in the source 944e415d488SLionel Sambuc directory by an earlier build that did not use object 945e415d488SLionel Sambuc directories. 946e415d488SLionel Sambuc 947e415d488SLionel Sambuc The default is MKCLEANSRC=yes. If you always build with 948e415d488SLionel Sambuc separate object directories, and you are sure that there 949e415d488SLionel Sambuc are no stray files in the source directories, then you 950e415d488SLionel Sambuc may set MKCLEANSRC=no to save some time. 951e415d488SLionel Sambuc 952e415d488SLionel SambucMKCLEANVERIFY Controls whether or not the clean and cleandir targets 953e415d488SLionel Sambuc will verify that files have been deleted. 954e415d488SLionel Sambuc 955e415d488SLionel Sambuc If MKCLEANVERIFY is set to "no", then the files will 956e415d488SLionel Sambuc be deleted using a "rm -f" command, and its success or 957e415d488SLionel Sambuc failure will be ignored. 958e415d488SLionel Sambuc 959e415d488SLionel Sambuc If MKCLEANVERIFY is set to "yes", then the success of 960e415d488SLionel Sambuc the "rm -f" command will be verified using an "ls" 961e415d488SLionel Sambuc command. 962e415d488SLionel Sambuc 963e415d488SLionel Sambuc The default is MKCLEANVERIFY=yes. If you are sure that 964e415d488SLionel Sambuc there will be no problems caused by file permissions, 965e415d488SLionel Sambuc read-only file systems, or the like, then you may set 966e415d488SLionel Sambuc MKCLEANVERIFY=no to save some time. 967e415d488SLionel Sambuc 968e415d488SLionel SambucTo use the clean and cleandir targets defined in <bsd.clean.mk>, other 969e415d488SLionel SambucMakefiles or bsd.*.mk files should append file names to the CLEANFILES 970e415d488SLionel Sambucor CLEANDIRFILES variables. For example: 971e415d488SLionel Sambuc 972e415d488SLionel Sambuc CLEANFILES+= a.out 973e415d488SLionel Sambuc CLEANDIRFILES+= .depend 974e415d488SLionel Sambuc 975e415d488SLionel Sambuc .include <bsd.clean.mk> 976e415d488SLionel Sambuc 97711be35a1SLionel SambucThe files listed in CLEANFILES and CLEANDIRFILES must not be 97811be35a1SLionel Sambucdirectories, because the potential risk from running "rm -rf" commands 97911be35a1SLionel Sambucin bsd.clean.mk is considered too great. If you want to recursively 98011be35a1SLionel Sambucdelete a directory as part of "make clean" or "make cleandir" then you 98111be35a1SLionel Sambucneed to provide your own target. 982e415d488SLionel Sambuc 983e415d488SLionel Sambuc=-=-=-=-= bsd.dep.mk =-=-=-=-= 984e415d488SLionel Sambuc 985e415d488SLionel SambucThe include file <bsd.dep.mk> contains the default targets for building 986e415d488SLionel Sambuc.depend files. It creates .d files from entries in SRCS and DPSRCS 987e415d488SLionel Sambucthat are C, C++, or Objective C source files, and builds .depend from the 988e415d488SLionel Sambuc.d files. All other files in SRCS and all of DPSRCS will be used as 989e415d488SLionel Sambucdependencies for the .d files. In order for this to function correctly, 990e415d488SLionel Sambucit should be .included after all other .mk files and directives that may 991e415d488SLionel Sambucmodify SRCS or DPSRCS. It uses the following variables: 992e415d488SLionel Sambuc 993e415d488SLionel SambucSRCS List of source files to build the program. 994e415d488SLionel Sambuc 995e415d488SLionel SambucDPSRCS List of source files which are needed for generating 996e415d488SLionel Sambuc dependencies, but are not needed in ${SRCS}. 997e415d488SLionel Sambuc 998e415d488SLionel Sambuc 999e415d488SLionel Sambuc=-=-=-=-= bsd.files.mk =-=-=-=-= 1000e415d488SLionel Sambuc 1001e415d488SLionel SambucThe include file <bsd.files.mk> handles the FILES variables and is included 1002e415d488SLionel Sambucfrom <bsd.lib.mk> and <bsd.prog.mk>, and uses the following variables: 1003e415d488SLionel Sambuc 1004e415d488SLionel SambucFILES The list of files to install. 1005e415d488SLionel Sambuc 1006e415d488SLionel SambucCONFIGFILES Similar semantics to FILES, except that the files 1007e415d488SLionel Sambuc are installed by the `configinstall' target, 1008e415d488SLionel Sambuc not the `install' target. 1009e415d488SLionel Sambuc The FILES* variables documented below also apply. 1010e415d488SLionel Sambuc 1011e415d488SLionel SambucFILESOWN File owner. [${BINOWN}] 1012e415d488SLionel Sambuc 1013e415d488SLionel SambucFILESGRP File group. [${BINGRP}] 1014e415d488SLionel Sambuc 1015e415d488SLionel SambucFILESMODE File mode. [${NONBINMODE}] 1016e415d488SLionel Sambuc 1017e415d488SLionel SambucFILESDIR The location to install the files. 1018e415d488SLionel Sambuc 1019e415d488SLionel SambucFILESNAME Optional name to install each file as. 1020e415d488SLionel Sambuc 1021e415d488SLionel SambucFILESOWN_<fn> File owner of the specific file <fn>. 1022e415d488SLionel Sambuc 1023e415d488SLionel SambucFILESGRP_<fn> File group of the specific file <fn>. 1024e415d488SLionel Sambuc 1025e415d488SLionel SambucFILESMODE_<fn> File mode of the specific file <fn>. 1026e415d488SLionel Sambuc 1027e415d488SLionel SambucFILESDIR_<fn> The location to install the specific file <fn>. 1028e415d488SLionel Sambuc 1029e415d488SLionel SambucFILESNAME_<fn> Optional name to install <fn> as. 1030e415d488SLionel Sambuc 1031e415d488SLionel SambucFILESBUILD If this variable is defined, then its value will be 1032e415d488SLionel Sambuc used as the default for all FILESBUILD_<fn> variables. 1033e415d488SLionel Sambuc Otherwise, the default will be "no". 1034e415d488SLionel Sambuc 1035e415d488SLionel SambucFILESBUILD_<fn> A value different from "no" will add the file to the list of 1036e415d488SLionel Sambuc targets to be built by `realall'. Users of that variable 1037e415d488SLionel Sambuc should provide a target to build the file. 1038e415d488SLionel Sambuc 1039e415d488SLionel Sambuc 1040e415d488SLionel SambucBUILDSYMLINKS List of two word items: 1041e415d488SLionel Sambuc lnsrc lntgt 1042e415d488SLionel Sambuc For each lnsrc item, create a symlink named lntgt. 1043e415d488SLionel Sambuc The lntgt symlinks are removed by the cleandir target. 1044e415d488SLionel Sambuc 1045e415d488SLionel SambucUUDECODE_FILES List of files which are stored as <file>.uue in the source 1046e415d488SLionel Sambuc tree. Each one will be decoded with ${TOOL_UUDECODE}. 1047e415d488SLionel Sambuc The source files have a `.uue' suffix, the generated files do 1048e415d488SLionel Sambuc not. 1049e415d488SLionel Sambuc 1050e415d488SLionel SambucUUDECODE_FILES_RENAME_<fn> 1051e415d488SLionel Sambuc Rename the output from the decode to the provided name. 1052e415d488SLionel Sambuc 1053e415d488SLionel Sambuc *NOTE: These files are simply decoded, with no install or other 1054e415d488SLionel Sambuc rule applying implicitly except being added to the clean 1055e415d488SLionel Sambuc target. 1056e415d488SLionel Sambuc 1057e415d488SLionel Sambuc=-=-=-=-= bsd.gcc.mk =-=-=-=-= 1058e415d488SLionel Sambuc 1059e415d488SLionel SambucThe include file <bsd.gcc.mk> computes various parameters related to GCC 1060e415d488SLionel Sambucsupport libraries. It defines no targets. <bsd.own.mk> MUST be included 1061e415d488SLionel Sambucbefore <bsd.gcc.mk>. 1062e415d488SLionel Sambuc 1063e415d488SLionel SambucThe primary users of <bsd.gcc.mk> are <bsd.prog.mk> and <bsd.lib.mk>, each 1064e415d488SLionel Sambucof which need to know where to find certain GCC support libraries. 1065e415d488SLionel Sambuc 1066e415d488SLionel SambucThe behavior of <bsd.gcc.mk> is influenced by the EXTERNAL_TOOLCHAIN variable, 1067e415d488SLionel Sambucwhich is generally set by the user. If EXTERNAL_TOOLCHAIN it set, then 1068e415d488SLionel Sambucthe compiler is asked where to find the support libraries, otherwise the 1069e415d488SLionel Sambucsupport libraries are found in ${DESTDIR}/usr/lib. 1070e415d488SLionel Sambuc 1071e415d488SLionel Sambuc<bsd.gcc.mk> sets the following variables: 1072e415d488SLionel Sambuc 1073e415d488SLionel Sambuc_GCC_CRTBEGIN The full path name to crtbegin.o. 1074e415d488SLionel Sambuc 1075e415d488SLionel Sambuc_GCC_CRTBEGINS The full path name to crtbeginS.o. 1076e415d488SLionel Sambuc 1077e415d488SLionel Sambuc_GCC_CRTEND The full path name to crtend.o. 1078e415d488SLionel Sambuc 1079e415d488SLionel Sambuc_GCC_CRTENDS The full path name to crtendS.o. 1080e415d488SLionel Sambuc 1081e415d488SLionel Sambuc_GCC_LIBGCCDIR The directory where libgcc.a is located. 1082e415d488SLionel Sambuc 1083e415d488SLionel Sambuc 1084e415d488SLionel Sambuc=-=-=-=-= bsd.inc.mk =-=-=-=-= 1085e415d488SLionel Sambuc 1086e415d488SLionel SambucThe include file <bsd.inc.mk> defines the includes target and uses the 1087e415d488SLionel Sambucvariables: 1088e415d488SLionel Sambuc 1089e415d488SLionel SambucINCS The list of include files. 1090e415d488SLionel Sambuc 1091e415d488SLionel SambucINCSDIR The location to install the include files. 1092e415d488SLionel Sambuc 1093e415d488SLionel SambucINCSNAME Target name of the include file, if only one; same as 1094e415d488SLionel Sambuc FILESNAME, but for include files. 1095e415d488SLionel Sambuc 1096e415d488SLionel SambucINCSYMLINKS Similar to SYMLINKS in <bsd.links.mk>, except that these 1097e415d488SLionel Sambuc are installed in the 'includes' target and not the 1098e415d488SLionel Sambuc (much later) 'install' target. 1099e415d488SLionel Sambuc 1100e415d488SLionel SambucINCSNAME_<file> The name file <file> should be installed as, if not <file>, 1101e415d488SLionel Sambuc same as FILESNAME_<file>, but for include files. 1102e415d488SLionel Sambuc 1103e415d488SLionel Sambuc 1104e415d488SLionel Sambuc=-=-=-=-= bsd.info.mk =-=-=-=-= 1105e415d488SLionel Sambuc 1106e415d488SLionel SambucThe include file <bsd.info.mk> is used to generate and install GNU Info 1107e415d488SLionel Sambucdocumentation from respective Texinfo source files. It defines three 1108e415d488SLionel Sambucimplicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the 1109e415d488SLionel Sambucfollowing variables: 1110e415d488SLionel Sambuc 1111e415d488SLionel SambucTEXINFO List of Texinfo source files. Info documentation will 1112e415d488SLionel Sambuc consist of single files with the extension replaced by 1113e415d488SLionel Sambuc .info. 1114e415d488SLionel Sambuc 1115e415d488SLionel SambucINFOFLAGS Flags to pass to makeinfo. [] 1116e415d488SLionel Sambuc 1117e415d488SLionel Sambuc 1118e415d488SLionel Sambuc=-=-=-=-= bsd.kernobj.mk =-=-=-=-= 1119e415d488SLionel Sambuc 1120e415d488SLionel SambucThe include file <bsd.kernobj.mk> defines variables related to the 1121e415d488SLionel Sambuclocation of kernel sources and object directories. 1122e415d488SLionel Sambuc 1123e415d488SLionel SambucKERNSRCDIR Is the location of the top of the kernel src. 1124e415d488SLionel Sambuc [${_SRC_TOP_}/sys] 1125e415d488SLionel Sambuc 1126e415d488SLionel SambucKERNARCHDIR Is the location of the machine dependent kernel sources. 1127e415d488SLionel Sambuc [arch/${MACHINE}] 1128e415d488SLionel Sambuc 1129e415d488SLionel SambucKERNCONFDIR Is where the configuration files for kernels are found. 1130e415d488SLionel Sambuc [${KERNSRCDIR}/${KERNARCHDIR}/conf] 1131e415d488SLionel Sambuc 1132e415d488SLionel SambucKERNOBJDIR Is the kernel build directory. The kernel GENERIC for 1133e415d488SLionel Sambuc instance will be compiled in ${KERNOBJDIR}/GENERIC. 1134e415d488SLionel Sambuc The default value is 1135e415d488SLionel Sambuc ${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile 1136e415d488SLionel Sambuc if it exists or the target 'obj' is being made. 1137e415d488SLionel Sambuc Otherwise the default is 1138e415d488SLionel Sambuc ${KERNSRCDIR}/${KERNARCHDIR}/compile. 1139e415d488SLionel Sambuc 1140e415d488SLionel SambucIt is important that Makefiles (such as those under src/distrib) that 1141e415d488SLionel Sambucwish to find compiled kernels use <bsd.kernobj.mk> and ${KERNOBJDIR} 1142e415d488SLionel Sambucrather than make assumptions about the location of the compiled kernel. 1143e415d488SLionel Sambuc 1144e415d488SLionel Sambuc 1145e415d488SLionel Sambuc=-=-=-=-= bsd.kinc.mk =-=-=-=-= 1146e415d488SLionel Sambuc 1147e415d488SLionel SambucThe include file <bsd.kinc.mk> defines the many targets (includes, 1148e415d488SLionel Sambucsubdirectories, etc.), and is used by kernel makefiles to handle 1149e415d488SLionel Sambucinclude file installation. It is intended to be included alone, by 1150e415d488SLionel Sambuckernel Makefiles. It uses similar variables to <bsd.inc.mk>. 1151e415d488SLionel SambucPlease see <bsd.kinc.mk> for more details, and keep the documentation 1152e415d488SLionel Sambucin that file up to date. 1153e415d488SLionel Sambuc 1154*0a6a1f1dSLionel Sambuc=-=-=-=-= bsd.syscall.mk =-=-=-=-= 1155*0a6a1f1dSLionel Sambuc 1156*0a6a1f1dSLionel SambucThe include file <bsd.syscall.mk> contains the logic to create syscall 1157*0a6a1f1dSLionel Sambucfiles for various emulations. It includes <bsd.kinc.mk> to handle the 1158*0a6a1f1dSLionel Sambucrest of the targets. 1159e415d488SLionel Sambuc 1160e415d488SLionel Sambuc=-=-=-=-= bsd.lib.mk =-=-=-=-= 1161e415d488SLionel Sambuc 1162e415d488SLionel SambucThe include file <bsd.lib.mk> has support for building libraries. It has 1163e415d488SLionel Sambucthe same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend, 1164e415d488SLionel Sambucincludes, install, lint, and tags. Additionally, it has a checkver target 1165e415d488SLionel Sambucwhich checks for installed shared object libraries whose version is greater 1166e415d488SLionel Sambucthat the version of the source. It has a limited number of suffixes, 1167e415d488SLionel Sambucconsistent with the current needs of the BSD tree. <bsd.lib.mk> includes 1168e415d488SLionel Sambuc<bsd.shlib.mk> to get shared library parameters. 1169e415d488SLionel Sambuc 1170e415d488SLionel SambucIt sets/uses the following variables: 1171e415d488SLionel Sambuc 1172e415d488SLionel SambucLIB The name of the library to build. 1173e415d488SLionel Sambuc 1174e415d488SLionel SambucLIBDIR Target directory for libraries. 1175e415d488SLionel Sambuc 1176e415d488SLionel SambucMKARZERO Normally, ar(1) sets the timestamps, uid, gid and 1177e415d488SLionel Sambuc permissions in files inside its archives to those of 1178e415d488SLionel Sambuc the file it was fed. This leads to non-reproduceable 1179*0a6a1f1dSLionel Sambuc builds. If MKARZERO is set to "yes" (default is the 1180*0a6a1f1dSLionel Sambuc same as MKREPRO, or "no" if MKREPRO is not defined), 1181e415d488SLionel Sambuc then the "D" flag is passed to ar, causing the 1182e415d488SLionel Sambuc timestamp, uid and gid to be zeroed and the file 1183e415d488SLionel Sambuc permissions to be set to 644. This allows .a files 1184e415d488SLionel Sambuc from different builds to be bit identical. 1185e415d488SLionel Sambuc 1186e415d488SLionel SambucSHLIBINSTALLDIR Target directory for shared libraries if ${USE_SHLIBDIR} 1187e415d488SLionel Sambuc is not "no". 1188e415d488SLionel Sambuc 1189e415d488SLionel SambucSHLIB_MAJOR 1190e415d488SLionel SambucSHLIB_MINOR 1191e415d488SLionel SambucSHLIB_TEENY Major, minor, and teeny version numbers of shared library 1192e415d488SLionel Sambuc 1193e415d488SLionel SambucUSE_SHLIBDIR If not "no", use ${SHLIBINSTALLDIR} instead of ${LIBDIR} 1194e415d488SLionel Sambuc as the path to install shared libraries to. 1195e415d488SLionel Sambuc USE_SHLIBDIR must be defined before <bsd.own.mk> is included. 1196e415d488SLionel Sambuc Default: no 1197e415d488SLionel Sambuc 1198e415d488SLionel SambucLIBISMODULE If not "no", install as ${LIB}.so (without the "lib" prefix), 1199e415d488SLionel Sambuc and act as "MKDEBUGLIB=no MKLINT=no MKPICINSTALL=no 1200e415d488SLionel Sambuc MKPROFILE=no MKSTATICLIB=no". 1201e415d488SLionel Sambuc Default: no 1202e415d488SLionel Sambuc 1203e415d488SLionel SambucLIBISPRIVATE If not "no", act as "MKDEBUGLIB=no MKLINT=no MKPIC=no 1204e415d488SLionel Sambuc MKPROFILE=no", and don't install the (.a) library. 1205e415d488SLionel Sambuc This is useful for "build only" helper libraries. 1206e415d488SLionel Sambuc Default: no 1207e415d488SLionel Sambuc 1208e415d488SLionel SambucLIBISCXX If not "no", Use ${CXX} instead of ${CC} to link 1209e415d488SLionel Sambuc shared libraries. 1210e415d488SLionel Sambuc This is useful for C++ libraries. 1211e415d488SLionel Sambuc Default: no 1212e415d488SLionel Sambuc 1213e415d488SLionel SambucLINTLIBDIR Target directory for lint libraries. 1214e415d488SLionel Sambuc 1215e415d488SLionel SambucLIBGRP Library group. 1216e415d488SLionel Sambuc 1217e415d488SLionel SambucLIBOWN Library owner. 1218e415d488SLionel Sambuc 1219e415d488SLionel SambucLIBMODE Library mode. 1220e415d488SLionel Sambuc 1221e415d488SLionel SambucLDADD Additional loader objects. 1222e415d488SLionel Sambuc 1223e415d488SLionel SambucMAN The manual pages to be installed (use a .1 - .9 suffix). 1224e415d488SLionel Sambuc 1225e415d488SLionel SambucNOCHECKVER_<library> 1226e415d488SLionel SambucNOCHECKVER If set, disables checking for installed shared object 1227e415d488SLionel Sambuc libraries with versions greater than the source. A 1228e415d488SLionel Sambuc particular library name, without the "lib" prefix, may 1229e415d488SLionel Sambuc be appended to the variable name to disable the check for 1230e415d488SLionel Sambuc only that library. 1231e415d488SLionel Sambuc 1232e415d488SLionel SambucSRCS List of source files to build the library. Suffix types 1233e415d488SLionel Sambuc .s, .c, and .f are supported. Note, .s files are preferred 1234e415d488SLionel Sambuc to .c files of the same name. (This is not the default for 1235e415d488SLionel Sambuc versions of make.) 1236e415d488SLionel Sambuc 1237e415d488SLionel SambucLIBDPLIBS A list of the tuples: 1238e415d488SLionel Sambuc libname path-to-srcdir-of-libname 1239e415d488SLionel Sambuc 1240e415d488SLionel Sambuc For each tuple; 1241e415d488SLionel Sambuc * LIBDO.libname contains the .OBJDIR of the library 1242e415d488SLionel Sambuc `libname', and if it is not set it is determined 1243e415d488SLionel Sambuc from the srcdir and added to MAKEOVERRIDES (the 1244e415d488SLionel Sambuc latter is to allow for build time optimization). 1245e415d488SLionel Sambuc * LDADD gets -L${LIBDO.libname} -llibname added. 1246e415d488SLionel Sambuc * DPADD gets ${LIBDO.libname}/liblibname.so or 1247e415d488SLionel Sambuc ${LIBDO.libname}/liblibname.a added. 1248e415d488SLionel Sambuc 124911be35a1SLionel Sambuc The special value "_external" for LIBDO.lib makes the 125011be35a1SLionel Sambuc build system to assume the library comes from outside 125111be35a1SLionel Sambuc of the NetBSD source tree and only causes -llibname 125211be35a1SLionel Sambuc to be added to LDADD. 125311be35a1SLionel Sambuc 1254e415d488SLionel Sambuc This variable may be used for individual libraries, as 1255e415d488SLionel Sambuc well as in parent directories to cache common libraries 1256e415d488SLionel Sambuc as a build-time optimization. 1257e415d488SLionel Sambuc 1258e415d488SLionel SambucThe include file <bsd.lib.mk> includes the file named "../Makefile.inc" 1259e415d488SLionel Sambucif it exists, as well as the include file <bsd.man.mk>. 1260e415d488SLionel Sambuc 1261e415d488SLionel SambucIt has rules for building profiled objects; profiled libraries are 1262e415d488SLionel Sambucbuilt by default. 1263e415d488SLionel Sambuc 1264e415d488SLionel SambucLibraries are ranlib'd when made. 1265e415d488SLionel Sambuc 1266e415d488SLionel Sambuc 1267e415d488SLionel Sambuc=-=-=-=-= bsd.links.mk =-=-=-=-= 1268e415d488SLionel Sambuc 1269e415d488SLionel SambucThe include file <bsd.links.mk> handles the LINKS and SYMLINKS variables 1270e415d488SLionel Sambucand is included from from <bsd.lib.mk> and <bsd.prog.mk>. 1271e415d488SLionel Sambuc 1272e415d488SLionel SambucLINKSOWN, LINKSGRP, and LINKSMODE, are relevant only if a metadata log 1273e415d488SLionel Sambucis used. The defaults may be modified by other bsd.*.mk files which 1274e415d488SLionel Sambucinclude bsd.links.mk. In the future, these variables may be replaced 1275e415d488SLionel Sambucby a method for explicitly recording hard links in a metadata log. 1276e415d488SLionel Sambuc 1277e415d488SLionel SambucLINKS The list of hard links, consisting of pairs of paths: 1278e415d488SLionel Sambuc source-file target-file 1279e415d488SLionel Sambuc ${DESTDIR} is prepended to both paths before linking. 1280e415d488SLionel Sambuc For example, to link /bin/test and /bin/[, use: 1281e415d488SLionel Sambuc LINKS=/bin/test /bin/[ 1282e415d488SLionel Sambuc 1283e415d488SLionel SambucCONFIGLINKS Similar semantics to LINKS, except that the links 1284e415d488SLionel Sambuc are installed by the `configinstall' target, 1285e415d488SLionel Sambuc not the `install' target. 1286e415d488SLionel Sambuc 1287e415d488SLionel SambucSYMLINKS The list of symbolic links, consisting of pairs of paths: 1288e415d488SLionel Sambuc source-file target-file 1289e415d488SLionel Sambuc ${DESTDIR} is only prepended to target-file before linking. 1290e415d488SLionel Sambuc For example, to symlink /usr/bin/tar to /bin/tar resulting 1291e415d488SLionel Sambuc in ${DESTDIR}/usr/bin/tar -> /bin/tar: 1292e415d488SLionel Sambuc SYMLINKS=/bin/tar /usr/bin/tar 1293e415d488SLionel Sambuc 1294e415d488SLionel SambucCONFIGSYMLINKS Similar semantics to SYMLINKS, except that the symbolic links 1295e415d488SLionel Sambuc are installed by the `configinstall' target, 1296e415d488SLionel Sambuc not the `install' target. 1297e415d488SLionel Sambuc 1298e415d488SLionel SambucLINKSOWN Link owner. [${BINOWN}] 1299e415d488SLionel Sambuc 1300e415d488SLionel SambucLINKSGRP Link group. [${BINGRP}] 1301e415d488SLionel Sambuc 1302e415d488SLionel SambucLINKSMODE Link mode. [${NONBINMODE}] 1303e415d488SLionel Sambuc 1304e415d488SLionel SambucLINKSOWN_<fn> Link owner of the specific file <fn>. 1305e415d488SLionel Sambuc 1306e415d488SLionel SambucLINKSGRP_<fn> Link group of the specific file <fn>. 1307e415d488SLionel Sambuc 1308e415d488SLionel SambucLINKSMODE_<fn> Link mode of the specific file <fn>. 1309e415d488SLionel Sambuc 1310e415d488SLionel Sambuc 1311e415d488SLionel Sambuc=-=-=-=-= bsd.man.mk =-=-=-=-= 1312e415d488SLionel Sambuc 1313e415d488SLionel SambucThe include file <bsd.man.mk> handles installing manual pages and their 1314e415d488SLionel Sambuclinks. 1315e415d488SLionel Sambuc 1316e415d488SLionel SambucIt has a three targets: 1317e415d488SLionel Sambuc 1318e415d488SLionel Sambuc catinstall: 1319e415d488SLionel Sambuc Install the preformatted manual pages and their links. 1320e415d488SLionel Sambuc htmlinstall: 1321e415d488SLionel Sambuc Install the HTML manual pages and their links. 1322e415d488SLionel Sambuc maninstall: 1323e415d488SLionel Sambuc Install the manual page sources and their links. 1324e415d488SLionel Sambuc 1325e415d488SLionel SambucIt sets/uses the following variables: 1326e415d488SLionel Sambuc 1327e415d488SLionel SambucMANDIR Base path for manual installation. 1328e415d488SLionel Sambuc 1329e415d488SLionel SambucMANGRP Manual group. 1330e415d488SLionel Sambuc 1331e415d488SLionel SambucMANOWN Manual owner. 1332e415d488SLionel Sambuc 1333e415d488SLionel SambucMANMODE Manual mode. 1334e415d488SLionel Sambuc 1335e415d488SLionel SambucMANSUBDIR Subdirectory under the manual page section, i.e. "/vax" 1336e415d488SLionel Sambuc or "/tahoe" for machine specific manual pages. 1337e415d488SLionel Sambuc 1338e415d488SLionel SambucMAN The manual pages to be installed (use a .1 - .9 suffix). 1339e415d488SLionel Sambuc 1340e415d488SLionel SambucMLINKS List of manual page links (using a .1 - .9 suffix). The 1341e415d488SLionel Sambuc linked-to file must come first, the linked file second, 1342e415d488SLionel Sambuc and there may be multiple pairs. 1343e415d488SLionel Sambuc 1344e415d488SLionel SambucThe include file <bsd.man.mk> includes a file named "../Makefile.inc" if 1345e415d488SLionel Sambucit exists. 1346e415d488SLionel Sambuc 1347e415d488SLionel Sambuc 1348e415d488SLionel Sambuc=-=-=-=-= bsd.obj.mk =-=-=-=-= 1349e415d488SLionel Sambuc 1350e415d488SLionel SambucThe include file <bsd.obj.mk> defines targets related to the creation 1351e415d488SLionel Sambucand use of separated object and source directories. 1352e415d488SLionel Sambuc 1353e415d488SLionel SambucIf an environment variable named MAKEOBJDIRPREFIX is set, make(1) uses 1354e415d488SLionel Sambuc${MAKEOBJDIRPREFIX}${.CURDIR} as the name of the object directory if 1355e415d488SLionel Sambucit exists. Otherwise make(1) looks for the existence of a 1356e415d488SLionel Sambucsubdirectory (or a symlink to a directory) of the source directory 1357e415d488SLionel Sambucinto which built targets should be placed. If an environment variable 1358e415d488SLionel Sambucnamed MAKEOBJDIR is set, make(1) uses its value as the name of the 1359e415d488SLionel Sambucobject directory; failing that, make first looks for a subdirectory 1360e415d488SLionel Sambucnamed "obj.${MACHINE}", and if that doesn't exist, it looks for "obj". 1361e415d488SLionel Sambuc 1362e415d488SLionel SambucObject directories are not created automatically by make(1) if they 1363e415d488SLionel Sambucdon't exist; you need to run a separate "make obj". (This will happen 1364e415d488SLionel Sambucduring a top-level build if "MKOBJDIRS" is set to a value other than 1365e415d488SLionel Sambuc"no"). When the source directory is a subdirectory of ${BSDSRCDIR} -- 1366e415d488SLionel Sambucand this is determined by a simple string prefix comparison -- object 1367e415d488SLionel Sambucdirectories are created in a separate object directory tree, and a 1368e415d488SLionel Sambucsymlink to the object directory in that tree is created in the source 1369e415d488SLionel Sambucdirectory; otherwise, "make obj" assumes that you're not in the main 1370e415d488SLionel Sambucsource tree and that it's not safe to use a separate object tree. 1371e415d488SLionel Sambuc 1372e415d488SLionel SambucSeveral variables used by <bsd.obj.mk> control exactly what 1373e415d488SLionel Sambucdirectories and links get created during a "make obj": 1374e415d488SLionel Sambuc 1375e415d488SLionel SambucMAKEOBJDIR If set, this is the component name of the object 1376e415d488SLionel Sambuc directory. 1377e415d488SLionel Sambuc 1378e415d488SLionel SambucOBJMACHINE If this is set but MAKEOBJDIR is not set, creates 1379e415d488SLionel Sambuc object directories or links named "obj.${MACHINE}"; 1380e415d488SLionel Sambuc otherwise, just creates ones named "obj". 1381e415d488SLionel Sambuc 1382e415d488SLionel SambucUSR_OBJMACHINE If set, and the current directory is a subdirectory of 1383e415d488SLionel Sambuc ${BSDSRCDIR}, create object directory in the 1384e415d488SLionel Sambuc corresponding subdirectory of ${BSDOBJDIR}.${MACHINE}; 1385e415d488SLionel Sambuc otherwise, create it in the corresponding subdirectory 1386e415d488SLionel Sambuc of ${BSDOBJDIR} 1387e415d488SLionel Sambuc 1388e415d488SLionel SambucBUILDID If set, the contents of this variable are appended 1389e415d488SLionel Sambuc to the object directory name. If OBJMACHINE is also 1390e415d488SLionel Sambuc set, ".${BUILDID}" is added after ".${MACHINE}". 1391e415d488SLionel Sambuc 1392e415d488SLionel Sambuc 1393e415d488SLionel Sambuc=-=-=-=-= bsd.prog.mk =-=-=-=-= 1394e415d488SLionel Sambuc 1395e415d488SLionel SambucThe include file <bsd.prog.mk> handles building programs from one or 1396e415d488SLionel Sambucmore source files, along with their manual pages. It has a limited number 1397e415d488SLionel Sambucof suffixes, consistent with the current needs of the BSD tree. 1398e415d488SLionel Sambuc<bsd.prog.mk> includes <bsd.shlib.mk> to get shared library parameters. 1399e415d488SLionel Sambuc 1400e415d488SLionel SambucIt has eight targets: 1401e415d488SLionel Sambuc 1402e415d488SLionel Sambuc all: 1403e415d488SLionel Sambuc build the program and its manual page. This also 1404e415d488SLionel Sambuc creates a GDB initialization file (.gdbinit) in 1405e415d488SLionel Sambuc the objdir. The .gdbinit file sets the shared library 1406e415d488SLionel Sambuc prefix to ${DESTDIR} to facilitate cross-debugging. 1407e415d488SLionel Sambuc clean: 1408e415d488SLionel Sambuc remove the program, any object files and the files a.out, 1409e415d488SLionel Sambuc Errs, errs, mklog, and ${PROG}.core. 1410e415d488SLionel Sambuc cleandir: 1411e415d488SLionel Sambuc remove all of the files removed by the target clean, as 1412e415d488SLionel Sambuc well as .depend, tags, and any manual pages. 1413e415d488SLionel Sambuc `distclean' is a synonym for `cleandir'. 1414e415d488SLionel Sambuc depend: 1415e415d488SLionel Sambuc make the dependencies for the source files, and store 1416e415d488SLionel Sambuc them in the file .depend. 1417e415d488SLionel Sambuc includes: 1418e415d488SLionel Sambuc install any header files. 1419e415d488SLionel Sambuc install: 1420e415d488SLionel Sambuc install the program and its manual pages; if the Makefile 1421e415d488SLionel Sambuc does not itself define the target install, the targets 1422e415d488SLionel Sambuc beforeinstall and afterinstall may also be used to cause 1423e415d488SLionel Sambuc actions immediately before and after the install target 1424e415d488SLionel Sambuc is executed. 1425e415d488SLionel Sambuc lint: 1426e415d488SLionel Sambuc run lint on the source files 1427e415d488SLionel Sambuc tags: 1428e415d488SLionel Sambuc create a tags file for the source files. 1429e415d488SLionel Sambuc 1430e415d488SLionel SambucIt sets/uses the following variables: 1431e415d488SLionel Sambuc 1432e415d488SLionel SambucBINGRP Binary group. 1433e415d488SLionel Sambuc 1434e415d488SLionel SambucBINOWN Binary owner. 1435e415d488SLionel Sambuc 1436e415d488SLionel SambucBINMODE Binary mode. 1437e415d488SLionel Sambuc 1438e415d488SLionel SambucCLEANDIRFILES Additional files to remove for the cleandir target. 1439e415d488SLionel Sambuc 1440e415d488SLionel SambucCLEANFILES Additional files to remove for the clean and cleandir targets. 1441e415d488SLionel Sambuc 1442*0a6a1f1dSLionel SambucCONFIGOPTS Additional flags to config(1) when building kernels. 1443*0a6a1f1dSLionel Sambuc 1444e415d488SLionel SambucCOPTS Additional flags to the compiler when creating C objects. 1445e415d488SLionel Sambuc 1446e415d488SLionel SambucCOPTS.<fn> Additional flags to the compiler when creating the 1447e415d488SLionel Sambuc C objects for <fn>. 1448e415d488SLionel Sambuc For <fn>.[ly], "<fn>.c" must be used. 1449e415d488SLionel Sambuc 1450e415d488SLionel SambucCPUFLAGS Additional flags to the compiler/assembler to select 1451e415d488SLionel Sambuc CPU instruction set options, CPU tuning options, etc. 1452e415d488SLionel Sambuc 1453e415d488SLionel SambucCPUFLAGS.<fn> Additional flags to the compiler/assembler for <fn>. 1454e415d488SLionel Sambuc For <fn>.[ly], "<fn>.c" must be used. 1455e415d488SLionel Sambuc 1456e415d488SLionel SambucCPPFLAGS Additional flags to the C pre-processor. 1457e415d488SLionel Sambuc 1458e415d488SLionel SambucCPPFLAGS.<fn> Additional flags to the C pre-processor for <fn>. 1459e415d488SLionel Sambuc For <fn>.[ly], "<fn>.c" must be used. 1460e415d488SLionel Sambuc 1461e415d488SLionel SambucGDBINIT List of GDB initialization files to add to "source" 1462e415d488SLionel Sambuc directives in the .gdbinit file that is created in the 1463e415d488SLionel Sambuc objdir. 1464e415d488SLionel Sambuc 1465e415d488SLionel SambucLDADD Additional loader objects. Usually used for libraries. 1466e415d488SLionel Sambuc For example, to load with the compatibility and utility 1467e415d488SLionel Sambuc libraries, use: 1468e415d488SLionel Sambuc 1469e415d488SLionel Sambuc LDADD+=-lutil -lcompat 1470e415d488SLionel Sambuc 1471e415d488SLionel SambucLDFLAGS Additional linker flags (passed to ${CC} during link). 1472e415d488SLionel Sambuc 1473e415d488SLionel SambucLINKS See <bsd.links.mk> 1474e415d488SLionel Sambuc 1475e415d488SLionel SambucOBJCOPTS Additional flags to the compiler when creating ObjC objects. 1476e415d488SLionel Sambuc 1477e415d488SLionel SambucOBJCOPTS.<fn> Additional flags to the compiler when creating the 1478e415d488SLionel Sambuc ObjC objects for <fn>. 1479e415d488SLionel Sambuc For <fn>.[ly], "<fn>.c" must be used. 1480e415d488SLionel Sambuc 1481e415d488SLionel SambucSYMLINKS See <bsd.links.mk> 1482e415d488SLionel Sambuc 1483e415d488SLionel SambucMAN Manual pages (should end in .1 - .9). If no MAN variable is 1484e415d488SLionel Sambuc defined, "MAN=${PROG}.1" is assumed. 1485e415d488SLionel Sambuc 1486e415d488SLionel SambucPAXCTL_FLAGS If defined, run paxctl(1) on the program binary after link 1487e415d488SLionel Sambuc time, with the value of this variable as args to paxctl(1). 1488e415d488SLionel Sambuc 1489e415d488SLionel SambucPAXCTL_FLAGS.${PROG} Custom override for PAXCTL_FLAGS. 1490e415d488SLionel Sambuc 1491e415d488SLionel SambucPROG The name of the program to build. If not supplied, nothing 1492e415d488SLionel Sambuc is built. 1493e415d488SLionel Sambuc 1494e415d488SLionel SambucPROG_CXX If defined, the name of the program to build. Also 1495e415d488SLionel Sambuc causes <bsd.prog.mk> to link the program with the C++ 1496e415d488SLionel Sambuc compiler rather than the C compiler. PROG_CXX overrides 1497e415d488SLionel Sambuc the value of PROG if PROG is also set. 1498e415d488SLionel Sambuc 1499e415d488SLionel SambucPROGNAME The name that the above program will be installed as, if 1500e415d488SLionel Sambuc different from ${PROG}. 1501e415d488SLionel Sambuc 1502e415d488SLionel SambucSRCS List of source files to build the program. If SRCS is not 1503e415d488SLionel Sambuc defined, it's assumed to be ${PROG}.c. 1504e415d488SLionel Sambuc 1505e415d488SLionel SambucDPSRCS List of source files which are needed for generating 1506e415d488SLionel Sambuc dependencies, but are not needed in ${SRCS}. 1507e415d488SLionel Sambuc 1508e415d488SLionel SambucDPADD Additional dependencies for the program. Usually used for 1509e415d488SLionel Sambuc libraries. For example, to depend on the compatibility and 1510e415d488SLionel Sambuc utility libraries use: 1511e415d488SLionel Sambuc 1512e415d488SLionel Sambuc DPADD+=${LIBCOMPAT} ${LIBUTIL} 1513e415d488SLionel Sambuc 1514e415d488SLionel Sambuc The following system libraries are predefined for DPADD: 1515e415d488SLionel Sambuc 1516e415d488SLionel Sambuc LIBARCHIVE?= ${DESTDIR}/usr/lib/libarchive.a 1517e415d488SLionel Sambuc LIBASN1?= ${DESTDIR}/usr/lib/libasn1.a 1518e415d488SLionel Sambuc LIBATF_C?= ${DESTDIR}/usr/lib/libatf-c.a 1519e415d488SLionel Sambuc LIBATF_CXX?= ${DESTDIR}/usr/lib/libatf-c++.a 1520e415d488SLionel Sambuc LIBBIND9?= ${DESTDIR}/usr/lib/libbind9.a 1521e415d488SLionel Sambuc LIBBLUETOOTH?= ${DESTDIR}/usr/lib/libbluetooth.a 1522e415d488SLionel Sambuc LIBBSDMALLOC?= ${DESTDIR}/usr/lib/libbsdmalloc.a 1523e415d488SLionel Sambuc LIBBZ2?= ${DESTDIR}/usr/lib/libbz2.a 1524e415d488SLionel Sambuc LIBC?= ${DESTDIR}/usr/lib/libc.a 1525e415d488SLionel Sambuc LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a 1526e415d488SLionel Sambuc LIBCOM_ERR?= ${DESTDIR}/usr/lib/libcom_err.a 1527e415d488SLionel Sambuc LIBCRT0?= ${DESTDIR}/usr/lib/crt0.o 152884d9c625SLionel Sambuc LIBCRTI?= ${DESTDIR}/usr/lib/crti.o 1529e415d488SLionel Sambuc LIBCRYPT?= ${DESTDIR}/usr/lib/libcrypt.a 1530e415d488SLionel Sambuc LIBCRYPTO?= ${DESTDIR}/usr/lib/libcrypto.a 1531e415d488SLionel Sambuc LIBCRYPTO_IDEA?=${DESTDIR}/usr/lib/libcrypto_idea.a 1532e415d488SLionel Sambuc LIBCRYPTO_MDC2?=${DESTDIR}/usr/lib/libcrypto_mdc2.a 1533e415d488SLionel Sambuc LIBCRYPTO_RC5?= ${DESTDIR}/usr/lib/libcrypto_rc5.a 1534e415d488SLionel Sambuc LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a 1535e415d488SLionel Sambuc LIBC_PIC?= ${DESTDIR}/usr/lib/libc_pic.a 1536e415d488SLionel Sambuc LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a 1537e415d488SLionel Sambuc LIBDES?= ${DESTDIR}/usr/lib/libdes.a 1538e415d488SLionel Sambuc LIBDNS?= ${DESTDIR}/usr/lib/libdns.a 1539e415d488SLionel Sambuc LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a 1540e415d488SLionel Sambuc LIBEVENT?= ${DESTDIR}/usr/lib/libevent.a 154111be35a1SLionel Sambuc LIBEVENT_OPENSSL?= ${DESTDIR}/usr/lib/libevent_openssl.a 154211be35a1SLionel Sambuc LIBEVENT_PTHREADS?= ${DESTDIR}/usr/lib/libevent_pthreads.a 1543e415d488SLionel Sambuc LIBEXPAT?= ${DESTDIR}/usr/lib/libexpat.a 1544e415d488SLionel Sambuc LIBFETCH?= ${DESTDIR}/usr/lib/libfetch.a 1545e415d488SLionel Sambuc LIBFORM?= ${DESTDIR}/usr/lib/libform.a 1546e415d488SLionel Sambuc LIBFL?= ${DESTDIR}/usr/lib/libfl.a 1547e415d488SLionel Sambuc LIBG2C?= ${DESTDIR}/usr/lib/libg2c.a 1548e415d488SLionel Sambuc LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a 1549e415d488SLionel Sambuc LIBGNUMALLOC?= ${DESTDIR}/usr/lib/libgnumalloc.a 1550e415d488SLionel Sambuc LIBGSSAPI?= ${DESTDIR}/usr/lib/libgssapi.a 1551e415d488SLionel Sambuc LIBHDB?= ${DESTDIR}/usr/lib/libhdb.a 1552e415d488SLionel Sambuc LIBHEIMBASE?= ${DESTDIR}/usr/lib/libheimbase.a 1553e415d488SLionel Sambuc LIBHEIMNTLM?= ${DESTDIR}/usr/lib/libheimntlm.a 1554e415d488SLionel Sambuc LIBHX500?= ${DESTDIR}/usr/lib/libhx500.a 1555e415d488SLionel Sambuc LIBINTL?= ${DESTDIR}/usr/lib/libintl.a 1556e415d488SLionel Sambuc LIBIPSEC?= ${DESTDIR}/usr/lib/libipsec.a 1557e415d488SLionel Sambuc LIBISC?= ${DESTDIR}/usr/lib/libisc.a 1558e415d488SLionel Sambuc LIBISCCC?= ${DESTDIR}/usr/lib/libisccc.a 1559e415d488SLionel Sambuc LIBISCFG?= ${DESTDIR}/usr/lib/libiscfg.a 1560e415d488SLionel Sambuc LIBKADM5CLNT?= ${DESTDIR}/usr/lib/libkadm5clnt.a 1561e415d488SLionel Sambuc LIBKADM5SRV?= ${DESTDIR}/usr/lib/libkadm5srv.a 1562e415d488SLionel Sambuc LIBKAFS?= ${DESTDIR}/usr/lib/libkafs.a 1563e415d488SLionel Sambuc LIBKRB5?= ${DESTDIR}/usr/lib/libkrb5.a 1564e415d488SLionel Sambuc LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a 1565e415d488SLionel Sambuc LIBL?= ${DESTDIR}/usr/lib/libl.a 1566e415d488SLionel Sambuc LIBLBER?= ${DESTDIR}/usr/lib/liblber.a 1567e415d488SLionel Sambuc LIBLDAP?= ${DESTDIR}/usr/lib/libldap.a 1568e415d488SLionel Sambuc LIBLDAP_R?= ${DESTDIR}/usr/lib/libldap_r.a 1569e415d488SLionel Sambuc LIBLUA?= ${DESTDIR}/usr/lib/liblua.a 157011be35a1SLionel Sambuc LIBLUTOK?= ${DESTDIR}/usr/lib/liblutok.a 1571e415d488SLionel Sambuc LIBLWRES?= ${DESTDIR}/usr/lib/liblwres.a 1572e415d488SLionel Sambuc LIBM?= ${DESTDIR}/usr/lib/libm.a 1573e415d488SLionel Sambuc LIBMAGIC?= ${DESTDIR}/usr/lib/libmagic.a 1574e415d488SLionel Sambuc LIBMENU?= ${DESTDIR}/usr/lib/libmenu.a 1575e415d488SLionel Sambuc LIBOBJC?= ${DESTDIR}/usr/lib/libobjc.a 1576e415d488SLionel Sambuc LIBOSSAUDIO?= ${DESTDIR}/usr/lib/libossaudio.a 1577e415d488SLionel Sambuc LIBPAM?= ${DESTDIR}/usr/lib/libpam.a 1578e415d488SLionel Sambuc LIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a 1579e415d488SLionel Sambuc LIBPCI?= ${DESTDIR}/usr/lib/libpci.a 1580e415d488SLionel Sambuc LIBPMC?= ${DESTDIR}/usr/lib/libpmc.a 1581e415d488SLionel Sambuc LIBPOSIX?= ${DESTDIR}/usr/lib/libposix.a 1582e415d488SLionel Sambuc LIBPTHREAD?= ${DESTDIR}/usr/lib/libpthread.a 1583e415d488SLionel Sambuc LIBPTHREAD_DBG?=${DESTDIR}/usr/lib/libpthread_dbg.a 1584e415d488SLionel Sambuc LIBPUFFS?= ${DESTDIR}/usr/lib/libpuffs.a 1585e415d488SLionel Sambuc LIBQUOTA?= ${DESTDIR}/usr/lib/libquota.a 1586e415d488SLionel Sambuc LIBRADIUS?= ${DESTDIR}/usr/lib/libradius.a 1587e415d488SLionel Sambuc LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a 1588e415d488SLionel Sambuc LIBRMT?= ${DESTDIR}/usr/lib/librmt.a 1589e415d488SLionel Sambuc LIBROKEN?= ${DESTDIR}/usr/lib/libroken.a 1590e415d488SLionel Sambuc LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a 1591e415d488SLionel Sambuc LIBRT?= ${DESTDIR}/usr/lib/librt.a 1592e415d488SLionel Sambuc LIBRUMP?= ${DESTDIR}/usr/lib/librump.a 1593e415d488SLionel Sambuc LIBRUMPFS_CD9660FS?=${DESTDIR}/usr/lib/librumpfs_cd9660fs.a 1594e415d488SLionel Sambuc LIBRUMPFS_EFS?= ${DESTDIR}/usr/lib/librumpfs_efs.a 1595e415d488SLionel Sambuc LIBRUMPFS_EXT2FS?=${DESTDIR}/usr/lib/librumpfs_ext2fs.a 1596e415d488SLionel Sambuc LIBRUMPFS_FFS?= ${DESTDIR}/usr/lib/librumpfs_ffs.a 1597e415d488SLionel Sambuc LIBRUMPFS_HFS?= ${DESTDIR}/usr/lib/librumpfs_hfs.a 1598e415d488SLionel Sambuc LIBRUMPFS_LFS?= ${DESTDIR}/usr/lib/librumpfs_lfs.a 1599e415d488SLionel Sambuc LIBRUMPFS_MSDOSFS?=${DESTDIR}/usr/lib/librumpfs_msdosfs.a 1600e415d488SLionel Sambuc LIBRUMPFS_NFS?= ${DESTDIR}/usr/lib/librumpfs_nfs.a 1601e415d488SLionel Sambuc LIBRUMPFS_NTFS?=${DESTDIR}/usr/lib/librumpfs_ntfs.a 1602e415d488SLionel Sambuc LIBRUMPFS_SYSPUFFS?=${DESTDIR}/usr/lib/librumpfs_syspuffs.a 1603e415d488SLionel Sambuc LIBRUMPFS_TMPFS?=${DESTDIR}/usr/lib/librumpfs_tmpfs.a 1604e415d488SLionel Sambuc LIBRUMPFS_UDF?= ${DESTDIR}/usr/lib/librumpfs_udf.a 1605e415d488SLionel Sambuc LIBRUMPFS_UFS?= ${DESTDIR}/usr/lib/librumpfs_ufs.a 1606e415d488SLionel Sambuc LIBRUMPUSER?= ${DESTDIR}/usr/lib/librumpuser.a 1607e415d488SLionel Sambuc LIBSASLC?= ${DESTDIR}/usr/lib/libsaslc.a 1608e415d488SLionel Sambuc LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a 1609e415d488SLionel Sambuc LIBSL?= ${DESTDIR}/usr/lib/libsl.a 1610e415d488SLionel Sambuc LIBSQLITE3?= ${DESTDIR}/usr/lib/libsqlite3.a 1611e415d488SLionel Sambuc LIBSS?= ${DESTDIR}/usr/lib/libss.a 1612e415d488SLionel Sambuc LIBSSH?= ${DESTDIR}/usr/lib/libssh.a 1613e415d488SLionel Sambuc LIBSSL?= ${DESTDIR}/usr/lib/libssl.a 1614e415d488SLionel Sambuc LIBSSP?= ${DESTDIR}/usr/lib/libssp.a 1615e415d488SLionel Sambuc LIBSTDCXX?= ${DESTDIR}/usr/lib/libstdc++.a 1616e415d488SLionel Sambuc LIBSUPCXX?= ${DESTDIR}/usr/lib/libsupc++.a 1617e415d488SLionel Sambuc LIBTERMINFO?= ${DESTDIR}/usr/lib/libterminfo.a 1618e415d488SLionel Sambuc LIBTRE?= ${DESTDIR}/usr/lib/libtre.a 1619e415d488SLionel Sambuc LIBUSBHID?= ${DESTDIR}/usr/lib/libusbhid.a 1620e415d488SLionel Sambuc LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a 1621e415d488SLionel Sambuc LIBWIND?= ${DESTDIR}/usr/lib/libwind.a 1622e415d488SLionel Sambuc LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a 1623e415d488SLionel Sambuc LIBY?= ${DESTDIR}/usr/lib/liby.a 1624e415d488SLionel Sambuc LIBZ?= ${DESTDIR}/usr/lib/libz.a 1625e415d488SLionel Sambuc 1626e415d488SLionel Sambuc The following X-Windows libraries are predefined for DPADD: 1627e415d488SLionel Sambuc 1628e415d488SLionel Sambuc LIBFS?= ${DESTDIR}/usr/X11R7/lib/libFS.a 1629e415d488SLionel Sambuc LIBGL?= ${DESTDIR}/usr/X11R7/lib/libGL.a 1630e415d488SLionel Sambuc LIBGLU?= ${DESTDIR}/usr/X11R7/lib/libGLU.a 1631e415d488SLionel Sambuc LIBICE?= ${DESTDIR}/usr/X11R7/lib/libICE.a 1632e415d488SLionel Sambuc LIBSM?= ${DESTDIR}/usr/X11R7/lib/libSM.a 1633e415d488SLionel Sambuc LIBX11?= ${DESTDIR}/usr/X11R7/lib/libX11.a 163411be35a1SLionel Sambuc LIBX11_XCB?= ${DESTDIR}/usr/X11R7/lib/libX11-xcb.a 1635e415d488SLionel Sambuc LIBXTRAP?= ${DESTDIR}/usr/X11R7/lib/libXTrap.a 1636e415d488SLionel Sambuc LIBXAU?= ${DESTDIR}/usr/X11R7/lib/libXau.a 1637e415d488SLionel Sambuc LIBXAW?= ${DESTDIR}/usr/X11R7/lib/libXaw.a 163884d9c625SLionel Sambuc LIBXCB?= ${DESTDIR}/usr/X11R7/lib/libxcb.a 1639e415d488SLionel Sambuc LIBXDMCP?= ${DESTDIR}/usr/X11R7/lib/libXdmcp.a 1640e415d488SLionel Sambuc LIBXEXT?= ${DESTDIR}/usr/X11R7/lib/libXext.a 1641e415d488SLionel Sambuc LIBXFONT?= ${DESTDIR}/usr/X11R7/lib/libXfont.a 1642e415d488SLionel Sambuc LIBXFT?= ${DESTDIR}/usr/X11R7/lib/libXft.a 1643e415d488SLionel Sambuc LIBXI?= ${DESTDIR}/usr/X11R7/lib/libXi.a 1644e415d488SLionel Sambuc LIBXINERAMA?= ${DESTDIR}/usr/X11R7/lib/libXinerama.a 1645e415d488SLionel Sambuc LIBXMU?= ${DESTDIR}/usr/X11R7/lib/libXmu.a 1646e415d488SLionel Sambuc LIBXMUU?= ${DESTDIR}/usr/X11R7/lib/libXmuu.a 1647e415d488SLionel Sambuc LIBXPM?= ${DESTDIR}/usr/X11R7/lib/libXpm.a 1648e415d488SLionel Sambuc LIBXRANDR?= ${DESTDIR}/usr/X11R7/lib/libXrandr.a 1649e415d488SLionel Sambuc LIBXRENDER?= ${DESTDIR}/usr/X11R7/lib/libXrender.a 1650e415d488SLionel Sambuc LIBXSS?= ${DESTDIR}/usr/X11R7/lib/libXss.a 1651e415d488SLionel Sambuc LIBXT?= ${DESTDIR}/usr/X11R7/lib/libXt.a 1652e415d488SLionel Sambuc LIBXTST?= ${DESTDIR}/usr/X11R7/lib/libXtst.a 1653e415d488SLionel Sambuc LIBXV?= ${DESTDIR}/usr/X11R7/lib/libXv.a 1654e415d488SLionel Sambuc LIBXXF86DGA?= ${DESTDIR}/usr/X11R7/lib/libXxf86dga.a 1655e415d488SLionel Sambuc LIBXXF86MISC?= ${DESTDIR}/usr/X11R7/lib/libXxf86misc.a 1656e415d488SLionel Sambuc LIBXXF86VM?= ${DESTDIR}/usr/X11R7/lib/libXxf86vm.a 1657e415d488SLionel Sambuc LIBDPS?= ${DESTDIR}/usr/X11R7/lib/libdps.a 1658e415d488SLionel Sambuc LIBFNTSTUBS?= ${DESTDIR}/usr/X11R7/lib/libfntstubs.a 1659e415d488SLionel Sambuc LIBFONTCACHE?= ${DESTDIR}/usr/X11R7/lib/libfontcache.a 1660e415d488SLionel Sambuc LIBFONTCONFIG?= ${DESTDIR}/usr/X11R7/lib/libfontconfig.a 1661e415d488SLionel Sambuc LIBFONTENC?= ${DESTDIR}/usr/X11R7/lib/libfontenc.a 1662e415d488SLionel Sambuc LIBFREETYPE?= ${DESTDIR}/usr/X11R7/lib/libfreetype.a 1663e415d488SLionel Sambuc LIBLBXUTIL?= ${DESTDIR}/usr/X11R7/lib/liblbxutil.a 1664e415d488SLionel Sambuc LIBXKBFILE?= ${DESTDIR}/usr/X11R7/lib/libxkbfile.a 1665e415d488SLionel Sambuc 1666e415d488SLionel SambucSHAREDSTRINGS If defined, a new .c.o rule is used that results in shared 1667e415d488SLionel Sambuc strings, using xstr(1). Note that this will not work with 1668e415d488SLionel Sambuc parallel makes. 1669e415d488SLionel Sambuc 1670e415d488SLionel SambucSTRIPFLAG The flag passed to the install program to cause the binary 1671e415d488SLionel Sambuc to be stripped. 1672e415d488SLionel Sambuc 1673e415d488SLionel SambucSUBDIR A list of subdirectories that should be built as well. 1674e415d488SLionel Sambuc Each of the targets will execute the same target in the 1675e415d488SLionel Sambuc subdirectories. 1676e415d488SLionel Sambuc 1677e415d488SLionel SambucSCRIPTS A list of interpreter scripts [file.{sh,csh,pl,awk,...}]. 1678e415d488SLionel Sambuc These are installed exactly like programs. 1679e415d488SLionel Sambuc 1680e415d488SLionel SambucSCRIPTSDIR The location to install the scripts. Each script can be 1681e415d488SLionel Sambuc installed to a separate path by setting SCRIPTSDIR_<script>. 1682e415d488SLionel Sambuc 1683e415d488SLionel SambucSCRIPTSNAME The name that the above program will be installed as, if 1684e415d488SLionel Sambuc different from ${SCRIPTS}. These can be further specialized 1685e415d488SLionel Sambuc by setting SCRIPTSNAME_<script>. 1686e415d488SLionel Sambuc 1687e415d488SLionel SambucFILES See description of <bsd.files.mk>. 1688e415d488SLionel Sambuc 1689e415d488SLionel SambucSHLINKDIR Target directory for shared linker. See description of 1690e415d488SLionel Sambuc <bsd.own.mk> for additional information about this variable. 1691e415d488SLionel Sambuc 1692e415d488SLionel SambucThe include file <bsd.prog.mk> includes the file named "../Makefile.inc" 1693e415d488SLionel Sambucif it exists, as well as the include file <bsd.man.mk>. 1694e415d488SLionel Sambuc 1695e415d488SLionel SambucSome simple examples: 1696e415d488SLionel Sambuc 1697e415d488SLionel SambucTo build foo from foo.c with a manual page foo.1, use: 1698e415d488SLionel Sambuc 1699e415d488SLionel Sambuc PROG= foo 1700e415d488SLionel Sambuc 1701e415d488SLionel Sambuc .include <bsd.prog.mk> 1702e415d488SLionel Sambuc 1703e415d488SLionel SambucTo build foo from foo.c with a manual page foo.2, add the line: 1704e415d488SLionel Sambuc 1705e415d488SLionel Sambuc MAN= foo.2 1706e415d488SLionel Sambuc 1707e415d488SLionel SambucIf foo does not have a manual page at all, add the line: 1708e415d488SLionel Sambuc 1709e415d488SLionel Sambuc MKMAN= no 1710e415d488SLionel Sambuc 1711e415d488SLionel SambucIf foo has multiple source files, add the line: 1712e415d488SLionel Sambuc 1713e415d488SLionel Sambuc SRCS= a.c b.c c.c d.c 1714e415d488SLionel Sambuc 1715e415d488SLionel Sambuc 1716e415d488SLionel Sambuc=-=-=-=-= bsd.rpc.mk =-=-=-=-= 1717e415d488SLionel Sambuc 1718e415d488SLionel SambucThe include file <bsd.rpc.mk> contains a makefile fragment used to 1719e415d488SLionel Sambucconstruct source files built by rpcgen. 1720e415d488SLionel Sambuc 1721e415d488SLionel SambucThe following macros may be defined in makefiles which include 1722e415d488SLionel Sambuc<bsd.rpc.mk> in order to control which files get built and how they 1723e415d488SLionel Sambucare to be built: 1724e415d488SLionel Sambuc 1725e415d488SLionel SambucRPC_INCS: construct .h file from .x file 1726e415d488SLionel SambucRPC_XDRFILES: construct _xdr.c from .x file 1727e415d488SLionel Sambuc (for marshalling/unmarshalling data types) 1728e415d488SLionel SambucRPC_SVCFILES: construct _svc.c from .x file 1729e415d488SLionel Sambuc (server-side stubs) 1730e415d488SLionel SambucRPC_SVCFLAGS: Additional flags passed to builds of RPC_SVCFILES. 1731e415d488SLionel Sambuc 1732e415d488SLionel SambucRPC_XDIR: Directory containing .x/.h files 1733e415d488SLionel Sambuc 1734e415d488SLionel Sambuc 1735e415d488SLionel Sambuc=-=-=-=-= bsd.shlib.mk =-=-=-=-= 1736e415d488SLionel Sambuc 1737e415d488SLionel SambucThe include file <bsd.shlib.mk> computes parameters for shared library 1738e415d488SLionel Sambucinstallation and use. It defines no targets. <bsd.own.mk> MUST be 1739e415d488SLionel Sambucincluded before <bsd.shlib.mk>. 1740e415d488SLionel Sambuc 1741e415d488SLionel Sambuc<bsd.own.mk> sets the following variables, if they are not already defined 1742e415d488SLionel Sambuc(defaults are in brackets): 1743e415d488SLionel Sambuc 1744e415d488SLionel SambucSHLIBINSTALLDIR If ${USE_SHLIBDIR} is not "no", use ${SHLIBINSTALLDIR} 1745e415d488SLionel Sambuc instead of ${LIBDIR} as the base path for shared library 1746e415d488SLionel Sambuc installation. [/lib] 1747e415d488SLionel Sambuc 1748e415d488SLionel SambucSHLIBDIR The path to USE_SHLIBDIR shared libraries to use when building 1749e415d488SLionel Sambuc a program. [/lib for programs in /bin and /sbin, /usr/lib 1750e415d488SLionel Sambuc for all others.] 1751e415d488SLionel Sambuc 1752e415d488SLionel Sambuc_LIBSODIR Set to ${SHLIBINSTALLDIR} if ${USE_SHLIBDIR} is not "no", 1753e415d488SLionel Sambuc otherwise set to ${LIBDIR} 1754e415d488SLionel Sambuc 1755e415d488SLionel SambucSHLINKINSTALLDIR Base path for shared linker. [/libexec] 1756e415d488SLionel Sambuc 1757e415d488SLionel SambucSHLINKDIR Path to use for shared linker when building a program. 1758e415d488SLionel Sambuc [/libexec for programs in /bin and /sbin, /usr/libexec for 1759e415d488SLionel Sambuc all others.] 1760e415d488SLionel Sambuc 1761e415d488SLionel Sambuc 1762e415d488SLionel Sambuc=-=-=-=-= bsd.subdir.mk =-=-=-=-= 1763e415d488SLionel Sambuc 1764e415d488SLionel SambucThe include file <bsd.subdir.mk> contains the default targets for building 1765e415d488SLionel Sambucsubdirectories. It has the same eight targets as <bsd.prog.mk>: all, 1766e415d488SLionel Sambucclean, cleandir, depend, includes, install, lint, and tags. It uses the 1767e415d488SLionel Sambucfollowing variables: 1768e415d488SLionel Sambuc 1769e415d488SLionel SambucNOSUBDIR If this variable is defined, then the SUBDIR variable 1770e415d488SLionel Sambuc will be ignored and subdirectories will not be processed. 1771e415d488SLionel Sambuc 1772e415d488SLionel SambucSUBDIR For all of the directories listed in ${SUBDIR}, the 1773e415d488SLionel Sambuc specified directory will be visited and the target made. 1774e415d488SLionel Sambuc 1775e415d488SLionel Sambuc As a special case, the use of a token .WAIT as an 1776e415d488SLionel Sambuc entry in SUBDIR acts as a synchronization barrier 1777e415d488SLionel Sambuc when multiple make jobs are run; subdirs before the 1778e415d488SLionel Sambuc .WAIT must complete before any subdirs after .WAIT are 1779e415d488SLionel Sambuc started. See make(1) for some caveats on use of .WAIT 1780e415d488SLionel Sambuc and other special sources. 1781e415d488SLionel Sambuc 1782e415d488SLionel Sambuc 1783*0a6a1f1dSLionel Sambuc=-=-=-=-= bsd.x11.mk =-=-=-=-= 1784*0a6a1f1dSLionel Sambuc 1785*0a6a1f1dSLionel SambucThe include file <bsd.x11.mk> contains parameters and targets for 1786*0a6a1f1dSLionel Sambuccross-building X11 from ${X11SRCDIR.<package>}. It should be included 1787*0a6a1f1dSLionel Sambucafter the general Makefile contents but before the include files such as 1788*0a6a1f1dSLionel Sambuc<bsd.prog.mk> and <bsd.lib.mk>. 1789*0a6a1f1dSLionel Sambuc 1790*0a6a1f1dSLionel SambucIt provides the following targets: 1791*0a6a1f1dSLionel Sambuc .man.1 .man.3 .man.4 .man.5 .man.7: 1792*0a6a1f1dSLionel Sambuc If ${MAN} or ${PROG} is set and ${MKMAN} != "no", 1793*0a6a1f1dSLionel Sambuc these rules convert from X11's manual page source 1794*0a6a1f1dSLionel Sambuc into an mdoc.old source file. 1795*0a6a1f1dSLionel Sambuc 1796*0a6a1f1dSLionel SambucIt sets the following variables: 1797*0a6a1f1dSLionel Sambuc 1798*0a6a1f1dSLionel SambucBINDIR Set to ${X11BINDIR}. 1799*0a6a1f1dSLionel Sambuc To override, define after including <bsd.x11.mk> 1800*0a6a1f1dSLionel Sambuc 1801*0a6a1f1dSLionel SambucLIBDIR Set to ${X11USRLIBDIR}. 1802*0a6a1f1dSLionel Sambuc To override, define after including <bsd.x11.mk> 1803*0a6a1f1dSLionel Sambuc 1804*0a6a1f1dSLionel SambucMANDIR Set to ${X11MANDIR}. 1805*0a6a1f1dSLionel Sambuc To override, define after including <bsd.x11.mk> 1806*0a6a1f1dSLionel Sambuc 1807*0a6a1f1dSLionel SambucCPPFLAGS Appended with definitions to include from 1808*0a6a1f1dSLionel Sambuc ${DESTDIR}${X11INCDIR} 1809*0a6a1f1dSLionel Sambuc 1810*0a6a1f1dSLionel SambucLDFLAGS Appended with definitions to link from 1811*0a6a1f1dSLionel Sambuc ${DESTDIR}${X11USRLIBDIR} 1812*0a6a1f1dSLionel Sambuc 1813*0a6a1f1dSLionel SambucX11FLAGS.CONNECTION Equivalent to X11's CONNECTION_FLAGS. 1814*0a6a1f1dSLionel Sambuc 1815*0a6a1f1dSLionel SambucX11FLAGS.EXTENSION Equivalent to X11's EXT_DEFINES. 1816*0a6a1f1dSLionel Sambuc 1817*0a6a1f1dSLionel SambucX11FLAGS.LOADABLE Equivalent to X11's LOADABLE. 1818*0a6a1f1dSLionel Sambuc 1819*0a6a1f1dSLionel SambucX11FLAGS.OS_DEFINES Equivalent to X11's OS_DEFINES. 1820*0a6a1f1dSLionel Sambuc 1821*0a6a1f1dSLionel SambucX11FLAGS.SERVER Equivalent to X11's ServerDefines. 1822*0a6a1f1dSLionel Sambuc 1823*0a6a1f1dSLionel SambucX11FLAGS.THREADLIB Equivalent to X11's THREADS_DEFINES for libraries. 1824*0a6a1f1dSLionel Sambuc 1825*0a6a1f1dSLionel SambucX11FLAGS.THREADS Equivalent to X11's THREADS_DEFINES. 1826*0a6a1f1dSLionel Sambuc 1827*0a6a1f1dSLionel SambucX11FLAGS.VERSION cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION. 1828*0a6a1f1dSLionel Sambuc 1829*0a6a1f1dSLionel SambucX11FLAGS.DIX Equivalent to X11's DIX_DEFINES. 1830*0a6a1f1dSLionel Sambuc 1831*0a6a1f1dSLionel SambucX11TOOL_UNXCOMM Commandline to convert `XCOMM' comments to `#' 1832*0a6a1f1dSLionel Sambuc 1833*0a6a1f1dSLionel SambucIt uses the following variables: 1834*0a6a1f1dSLionel Sambuc 1835*0a6a1f1dSLionel SambucAPPDEFS List of app-default files to install. 1836*0a6a1f1dSLionel Sambuc 1837*0a6a1f1dSLionel SambucCPPSCRIPTS List of files/scripts to run through cpp(1) 1838*0a6a1f1dSLionel Sambuc and then ${X11TOOL_UNXCOMM}. The source files 1839*0a6a1f1dSLionel Sambuc have a `.cpp' suffix, the generated files do not. 1840*0a6a1f1dSLionel Sambuc 1841*0a6a1f1dSLionel SambucCPPSCRIPTFLAGS Additional flags to cpp(1) when building CPPSCRIPTS. 1842*0a6a1f1dSLionel Sambuc 1843*0a6a1f1dSLionel SambucCPPSCRIPTFLAGS_<fn> Additional flags to cpp(1) when building CPPSCRIPT <fn>. 1844*0a6a1f1dSLionel Sambuc 1845*0a6a1f1dSLionel Sambuc 1846*0a6a1f1dSLionel Sambuc=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 1847*0a6a1f1dSLionel Sambuc 1848*0a6a1f1dSLionel SambucThe following files are described here for completion, but they are not 1849*0a6a1f1dSLionel Sambucsupposed to be included directly from other Makefiles; they are used 1850*0a6a1f1dSLionel Sambucinternally by other system files. 1851*0a6a1f1dSLionel Sambuc 1852e415d488SLionel Sambuc=-=-=-=-= bsd.sys.mk =-=-=-=-= 1853e415d488SLionel Sambuc 1854*0a6a1f1dSLionel SambucThe include file <bsd.sys.mk> is used by other system mk files and 1855*0a6a1f1dSLionel Sambucit is not intended to be included standalone. It contains rules and 1856*0a6a1f1dSLionel Sambucsystem build variables. It requires bsd.own.mk to be included first. 1857*0a6a1f1dSLionel SambucIt contains overrides that are used when building the NetBSD source tree. 1858e415d488SLionel Sambuc 1859e415d488SLionel SambucThe following variables control how various files are compiled/built. 1860e415d488SLionel Sambuc(Note that these may be overridden in <bsd.own.mk> if USETOOLS == "yes"): 1861e415d488SLionel Sambuc 1862e415d488SLionel SambucAR Create, modify, and extract from archives. [ar] 1863e415d488SLionel Sambuc 1864e415d488SLionel SambucARFLAGS Options to ${AR}. [rl] 1865e415d488SLionel Sambuc 1866e415d488SLionel SambucAS Assembler. [as] 1867e415d488SLionel Sambuc 1868e415d488SLionel SambucAFLAGS Options to ${CC} when compiling or linking .s or .S 1869e415d488SLionel Sambuc assembly source files. [] 1870e415d488SLionel Sambuc 1871e415d488SLionel SambucBUILDSEED GCC uses random numbers when compiling C++ code. 1872e415d488SLionel Sambuc If this option is present, seed the random number 1873e415d488SLionel Sambuc generator based on the value, source file names and 1874e415d488SLionel Sambuc the output file name to make builds more deterministic. 1875e415d488SLionel Sambuc Additional information is available in the GCC 1876e415d488SLionel Sambuc documentation of -frandom-seed. 1877e415d488SLionel Sambuc 1878e415d488SLionel SambucCC C compiler. [cc] 1879e415d488SLionel Sambuc 1880e415d488SLionel SambucCFLAGS Options to ${CC}. [Usually -O or -O2] 1881e415d488SLionel Sambuc 1882e415d488SLionel SambucCPP C Pre-Processor. [cpp] 1883e415d488SLionel Sambuc 1884e415d488SLionel SambucCPPFLAGS Options to ${CPP}. [] 1885e415d488SLionel Sambuc 1886e415d488SLionel SambucCPUFLAGS Optimization flags for ${CC}. [] 1887e415d488SLionel Sambuc 1888e415d488SLionel SambucCXX C++ compiler. [c++] 1889e415d488SLionel Sambuc 1890e415d488SLionel SambucCXXFLAGS Options to ${CXX}. [${CFLAGS}] 1891e415d488SLionel Sambuc 1892e415d488SLionel SambucELF2ECOFF Convert ELF-format executable to ECOFF. [elf2ecoff] 1893e415d488SLionel Sambuc 1894e415d488SLionel SambucFC Fortran compiler. [f77] 1895e415d488SLionel Sambuc 1896e415d488SLionel SambucFFLAGS Options to {$FC}. [-O] 1897e415d488SLionel Sambuc 1898e415d488SLionel SambucHOST_SH Shell. This must be an absolute path, because it may be 1899e415d488SLionel Sambuc substituted into "#!" lines in scripts. [/bin/sh] 1900e415d488SLionel Sambuc 1901e415d488SLionel SambucINSTALL install(1) command. [install] 1902e415d488SLionel Sambuc 1903e415d488SLionel SambucLEX Lexical analyzer. [lex] 1904e415d488SLionel Sambuc 1905e415d488SLionel SambucLFLAGS Options to ${LEX}. [] 1906e415d488SLionel Sambuc 1907e415d488SLionel SambucLPREFIX Symbol prefix for ${LEX} (see -P option in lex(1)) [yy] 1908e415d488SLionel Sambuc 1909e415d488SLionel SambucLD Linker. [ld] 1910e415d488SLionel Sambuc 1911e415d488SLionel SambucLDFLAGS Options to ${CC} during the link process. [] 1912e415d488SLionel Sambuc 1913e415d488SLionel SambucLINT C program verifier. [lint] 1914e415d488SLionel Sambuc 1915*0a6a1f1dSLionel SambucLINTFLAGS Options to ${LINT}. [-chapbxzgFS] 1916e415d488SLionel Sambuc 1917e415d488SLionel SambucLORDER List dependencies for object files. [lorder] 1918e415d488SLionel Sambuc 1919e415d488SLionel SambucMAKE make(1). [make] 1920e415d488SLionel Sambuc 1921e415d488SLionel SambucMKDEP Construct Makefile dependency list. [mkdep] 1922e415d488SLionel Sambuc 192384d9c625SLionel SambucMKDEPCXX Construct Makefile dependency list for C++ files. [mkdep] 192484d9c625SLionel Sambuc 1925e415d488SLionel SambucNM List symbols from object files. [nm] 1926e415d488SLionel Sambuc 1927e415d488SLionel SambucPC Pascal compiler. [pc] (Not present) 1928e415d488SLionel Sambuc 1929e415d488SLionel SambucPFLAGS Options to ${PC}. [] 1930e415d488SLionel Sambuc 1931e415d488SLionel SambucOBJC Objective C compiler. [${CC}] 1932e415d488SLionel Sambuc 1933e415d488SLionel SambucOBJCFLAGS Options to ${OBJC}. [${CFLAGS}] 1934e415d488SLionel Sambuc 1935e415d488SLionel SambucOBJCOPY Copy and translate object files. [objcopy] 1936e415d488SLionel Sambuc 1937e415d488SLionel SambucOBJCOPYLIBFLAGS Flags to pass to objcopy when library objects are 1938e415d488SLionel Sambuc being built. [${.TARGET} =~ "*.po" ? -X : -x] 1939e415d488SLionel Sambuc 1940e415d488SLionel SambucOBJDUMP Display information from object files. [objdump] 1941e415d488SLionel Sambuc 1942e415d488SLionel SambucRANLIB Generate index to archive. [ranlib] 1943e415d488SLionel Sambuc 1944*0a6a1f1dSLionel SambucREADELF Display information from ELF object files. [readelf] 1945*0a6a1f1dSLionel Sambuc 1946e415d488SLionel SambucSIZE List section sizes and total size. [size] 1947e415d488SLionel Sambuc 1948*0a6a1f1dSLionel SambucSTRINGS Display printable character sequences in files. [strings] 1949*0a6a1f1dSLionel Sambuc 1950e415d488SLionel SambucSTRIP Discard symbols from object files. [strip] 1951e415d488SLionel Sambuc 1952e415d488SLionel SambucTSORT Topological sort of a directed graph. [tsort -q] 1953e415d488SLionel Sambuc 1954e415d488SLionel SambucYACC LALR(1) parser generator. [yacc] 1955e415d488SLionel Sambuc 1956e415d488SLionel SambucYFLAGS Options to ${YACC}. [] 1957e415d488SLionel Sambuc 1958e415d488SLionel SambucYHEADER If defined, add "-d" to YFLAGS, and add dependencies 1959e415d488SLionel Sambuc from <file>.y to <file>.h and <file>.c, and add 1960e415d488SLionel Sambuc <foo>.h to CLEANFILES. 1961e415d488SLionel Sambuc 1962e415d488SLionel SambucYPREFIX If defined, add "-p ${YPREFIX}" to YFLAGS. 1963e415d488SLionel Sambuc 1964e415d488SLionel Sambuc 1965e415d488SLionel SambucOther variables of note (incomplete list): 1966e415d488SLionel Sambuc 1967e415d488SLionel SambucNOGCCERROR If defined, prevents passing certain ${CFLAGS} to GCC 1968e415d488SLionel Sambuc that cause warnings to be fatal, such as: 1969e415d488SLionel Sambuc -Werror -Wa,--fatal-warnings 1970e415d488SLionel Sambuc (The latter being for as(1).) 1971e415d488SLionel Sambuc 1972e415d488SLionel SambucNOCLANGERROR If defined and clang is used as C compiler, -Werror is not 1973e415d488SLionel Sambuc passed to it. 1974e415d488SLionel Sambuc 1975e415d488SLionel SambucWARNS Crank up compiler warning options; the distinct levels are: 1976e415d488SLionel Sambuc WARNS=1 1977e415d488SLionel Sambuc WARNS=2 1978e415d488SLionel Sambuc WARNS=3 1979e415d488SLionel Sambuc WARNS=4 1980e415d488SLionel Sambuc WARNS=5 1981*0a6a1f1dSLionel Sambuc WARNS=6 1982e415d488SLionel Sambuc 1983*0a6a1f1dSLionel Sambuc=-=-=-=-= bsd.host.mk =-=-=-=-= 1984e415d488SLionel Sambuc 1985*0a6a1f1dSLionel SambucThis file is automatically included from bsd.own.mk. It contains settings 1986*0a6a1f1dSLionel Sambucfor all the HOST_* variables that are used in host programs and libraries. 1987e415d488SLionel Sambuc 1988*0a6a1f1dSLionel SambucHOST_AR The host archive processing command 1989e415d488SLionel Sambuc 1990*0a6a1f1dSLionel SambucHOST_CC The host c compiler 1991e415d488SLionel Sambuc 1992*0a6a1f1dSLionel SambucHOST_CFLAGS The host c compiler flags 1993e415d488SLionel Sambuc 1994*0a6a1f1dSLionel SambucHOST_COMPILE.c The host c compiler line with flags 1995e415d488SLionel Sambuc 1996*0a6a1f1dSLionel SambucHOST_COMPILE.cc The host c++ compiler line with flags 1997e415d488SLionel Sambuc 1998*0a6a1f1dSLionel SambucHOST_CPP The host c pre-processor 1999e415d488SLionel Sambuc 2000*0a6a1f1dSLionel SambucHOST_CPPFLAGS The cost c pre-processor flags 2001e415d488SLionel Sambuc 2002*0a6a1f1dSLionel SambucHOST_CXX The host c++ compiler 2003e415d488SLionel Sambuc 2004*0a6a1f1dSLionel SambucHOST_CXXFLAGS The host c++ compiler flags 2005e415d488SLionel Sambuc 2006*0a6a1f1dSLionel SambucHOST_INSTALL_DIR The host command to install a directory 2007e415d488SLionel Sambuc 2008*0a6a1f1dSLionel SambucHOST_INSTALL_FILE The host command to install a file 2009e415d488SLionel Sambuc 2010*0a6a1f1dSLionel SambucHOST_INSTALL_SYMLINK The host command to install a symlink 2011e415d488SLionel Sambuc 2012*0a6a1f1dSLionel SambucHOST_LD The host linker command 2013e415d488SLionel Sambuc 2014*0a6a1f1dSLionel SambucHOST_LDFLAGS The host linker flags 2015e415d488SLionel Sambuc 2016*0a6a1f1dSLionel SambucHOST_LINK.c The host c linker line with flags 2017e415d488SLionel Sambuc 2018*0a6a1f1dSLionel SambucHOST_LINK.cc The host c++ linker line with flags 2019e415d488SLionel Sambuc 2020*0a6a1f1dSLionel SambucHOST_LN The host command to link two files 2021e415d488SLionel Sambuc 2022*0a6a1f1dSLionel SambucHOST_MKDEP The host command to create dependencies for c programs 2023e415d488SLionel Sambuc 2024*0a6a1f1dSLionel SambucHOST_MKDEPCXX The host command to create dependencies for c++ programs 2025e415d488SLionel Sambuc 2026*0a6a1f1dSLionel SambucHOST_OSTYPE The host OSNAME-RELEASE-ARCH tupple 2027e415d488SLionel Sambuc 2028*0a6a1f1dSLionel SambucHOST_RANLIB The host command to create random access archives 2029e415d488SLionel Sambuc 2030*0a6a1f1dSLionel SambucHOST_SH The host Bourne shell interpreter name (absolute path) 2031e415d488SLionel Sambuc 2032e415d488SLionel Sambuc=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 2033