1# $MidnightBSD: mports/Mk/docs/bsd.mport.mk.pod,v 1.15 2010/12/30 02:12:13 laffer1 Exp $ 2 3=head1 NAME 4 5bsd.mport.mk - Ports Tree Master Makefile 6 7=head1 SYNOPSIS 8 9.include <bsd.mport.mk> 10 11bsd.mport.mk is the master makefile for the ports tree. This man pages 12documents the public targets and variables used by users and individual 13ports. 14 15=head1 TARGETS 16 17Default targets and their behaviors: 18 19=over 4 20 21=item fetch - 22 23Retrieves ${DISTFILES} (and ${PATCHFILES} if defined) into ${DISTDIR} as 24necessary. 25 26=item fetch-list 27 28Show list of files that would be retrieved by fetch. 29 30=item fetch-recursive 31 32Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), for port and 33dependencies into ${DISTDIR} as necessary. 34 35=item fetch-recursive-list 36 37Show list of files that would be retrieved by fetch-recursive. 38 39=item fetch-required-list 40 41Show list of files that would be retrieved by fetch-required. 42 43=item fetch-required 44 45Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), for port and 46dependencies that are not already installed into ${DISTDIR}. 47 48=item all-depends-list 49 50Show all directories which are dependencies for this port. 51 52=item build-depends-list 53 54Show all directories which are build-dependencies for this port. 55 56=item package-depends-list 57 58Show all directories which are package-dependencies for this port. 59 60=item run-depends-list 61 62Show all directories which are run-dependencies for this port. 63 64=item extract 65 66Unpacks ${DISTFILES} into ${WRKDIR}. 67 68=item patch 69 70Apply any provided patches to the source. 71 72=item configure 73 74Runs either GNU configure, one or more local configure scripts or nothing, 75depending on what's available. 76 77=item build 78 79Actually compile the sources. 80 81=item fake 82 83Install the results of the build into a temporary directory. 84 85=item refake 86 87Delete the temporary directory and run make fake again. 88 89=item check-fake 90 91Run basic tests to see if the files were installed in the right location, 92and do not include the fake temporary directory. 93 94=item package 95 96Create a package from the contents of the temporary directory. 97 98=item install 99 100Install the package. 101 102=item reinstall 103 104Install the results of a build, ignoring "already installed" flag. 105 106=item deinstall 107 108Remove the installation. 109 110=item deinstall-all 111 112Remove all installations with the same PKGORIGIN. 113 114=item describe 115 116Generate a one-line description for each port for use in INDEX files and the 117like. 118 119=item describe-yaml 120 121Generate a description for the port in the YAML markup language. 122 123=item checkpatch 124 125Do a "patch -C" instead of a "patch". Note that it may give incorrect 126results if multiple patches deal with the same file. 127 128=item checksum 129 130Use distinfo to ensure that your distfiles are valid. 131 132=item checksum-recursive 133 134Run checksum in this port and all dependencies. 135 136=item makesum 137 138Generate distinfo (only do this for your own ports!). 139 140=item clean 141 142Remove ${WRKDIR} and other temporary files used for building for this 143port and its dependencies. 144 145=item config 146 147Configure options for this port (using ${DIALOG}). Automatically run prior 148to extract, patch, configure, build, install, and package. 149 150=item config-recursive 151 152Configure options for this port for this port and all dependencies. 153 154=item showconfig 155 156Display options config for this port. 157 158=item rmconfig 159 160Remove the options config for this port. 161 162=item rmconfig-recursive 163 164Remove the options config for this port and all dependencies. 165 166=item makeplist 167 168Attempt to construct a plist from the contents of a faked install. This 169generated plist will need editing before it can be used. 170 171=back 172 173Default sequence for "all" is: 174 175 check-sanity fetch checksum extract patch configure build 176 177Please read the comments in the targets section below; you 178should be able to use the pre-* or post-* targets/scripts 179(which are available for every stage except checksum) or 180override the do-* targets to do pretty much anything you want. 181 182Many of the do-* targets are wrappers around run-* targets. 183run-* targets cannot be overridden, they are the default action for the given 184do-* target. This way, you can override do-foo, twiddle some variables 185and then call 'make run-foo'. 186 187B<NEVER> override the "regular" targets unless you want to open 188a major can of worms. 189 190=head1 VARIABLES 191 192=head2 Global Knobs 193 194The following change globals behavoirs for the mports system. 195 196=over 4 197 198=item PACKAGE_BUILDING 199 200If set, the mport system goes into package building mode. The options 201framework is disabled, and the defaults for OPTIONS are used instead. Some 202ports may define extra depends in order to create a complete install. 203Probing of the system for versions of installed software (such as apache or 204perl) is disabled. 205 206=item USE_MPORT_TOOLS 207 208If set, the mport system will use libmport to make and install mport 209archives. The mport binary system will also be used as the package 210database. 211 212=item MPORT_MAINTAINER_MODE 213 214If set, the mports system will perform checks to see if several steps are 215successfully completed. 216 217=back 218 219=head2 Meta Variables 220 221These are meta-variables that are automatically set to the system 222you are running on. These are provided in case you need to take 223different actions for different values. 224 225=over 4 226 227=item ARCH 228 229The architecture of the target machine, such as would be returned by "uname 230-p". (Note: Ports should test against ARCH, and not the host machine's 231architecture which is MACHINE_ARCH, to enable ports to be cross-built.) 232 233=item OPSYS 234 235Portability clause. This is the operating system the makefile is being used 236on. Automatically set to "MidnightBSD", "FreeBSD," "NetBSD," or "OpenBSD" 237as appropriate. 238 239=item OSREL 240 241The release version (numeric) of the operating system. 242 243=item OSVERSION 244 245The value of __MidnightBSD_version. 246 247=item PORTOBJFORMAT 248 249The object format ("aout" or "elf"). 250 251=back 252 253=head2 Fundemental Variables 254 255This is the beginning of the list of all variables that need to be 256defined in a port, listed in order that they should be included 257to fit in with existing conventions. (Exception: MAINTAINER actually 258should appear after EXTRACT_ONLY and before MASTER_SITE_BACKUP). 259 260These variables are used to identify your port. 261 262=over 4 263 264=item PORTNAME 265 266Name of software. Mandatory. 267 268=item PORTVERSION 269 270Version of software. Mandatory when no DISTVERSION is given. 271 272=item PORTREVISION 273 274Version of port. Optional. Commonly used to indicate that an update has 275happened that affects the port framework itself, but not the distributed 276software (e.g., local patches or Makefile changes). 277 278=item PORTEPOCH 279 280Optional. In certain odd cases, the PORTREVISION logic can be fooled by 281ports that appear to go backwards numerically (e.g. if port-0.3 is newer 282than port-1998). In this case, incrementing PORTEPOCH forces the revision. 283 284Default: 0 (no effect). 285 286=item PKGBASE 287 288Defined as ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} 289 290Do not define this in your Makefile. 291 292=item PKGNAME 293 294Defined as ${PKGSUBNAME}-${PORTVERSION} 295 296Do not define this or PKGSUBNAME in your Makefile. 297 298=item PKGNAMEPREFIX 299 300Prefix to specify that port is language-specific, etc. Optional. 301 302=item PKGNAMESUFFIX 303 304Suffix to specify compilation options. Optional. 305 306=item PKGVERSION 307 308Always defined as ${PORTVERSION}[_${PKGREVISION}][,${PORTEPOCH}] 309 310Do not define this in your Makefile. 311 312=item UNIQUENAME 313 314A name for your port that is globally unique. 315 316Default: ${LATEST_LINK} when LATEST_LINK is set, ${PKGNAMEPREFIX}${PORTNAME} 317otherwise. 318 319=item DISTVERSION 320 321Vendor version of the distribution. 322 323Default: ${PORTVERSION} 324 325=item DISTNAME 326 327Name of port or distribution used in generating WRKSRC and DISTFILES below. 328 329Default: ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} 330 331=item CATEGORIES 332 333A list of descriptive categories into which this port falls. Mandatory. 334 335=back 336 337=head2 Path Variables 338 339Various directory definitions and variables to control them. 340You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR. 341 342=over 4 343 344=item DESTDIR 345 346The path to the environment we are installing to. This is only used during 347the final package install, at which point mport.install is run chroot'ed 348into the DESTDIR. 349 350=item LOCALBASE 351 352Where almost all ports install things. 353 354Default: /usr/local 355 356=item LINUXBASE 357 358Where Linux ports install things. 359 360Default: /compat/linux 361 362=item PREFIX 363 364Where B<this> port installs its files. 365 366Default: ${LINUXBASE} if USE_LINUX_PREFIX is set, otherwise ${LOCALBASE} 367 368=item IGNORE_PATH_CHECKS 369 370There are some sanity checks against PREFIX and DESTDIR. You can diasble 371these checks with defining this variable, but this is not recommended! Only 372do this if you really know what you are doing. These sanity checks are the 373following: 374 375=over 8 376 377=item DESTDIR can't be /. 378 379Just leave it undefined if you want to install to /. 380 381=item DESTDIR has to be an absolute path. 382 383=item DESTDIR can't have a trailing slash. 384 385=item PREFIX has to be an absolute path. 386 387=item PREFIX can't have a trailing slash. 388 389=back 390 391=item MASTERDIR 392 393Where the port finds patches, package files, etc. Define this is you have 394two or more ports that share most of the files. 395 396Default: ${.CURDIR} 397 398=item PORTSDIR 399 400The root of the ports tree. 401 402Default: /usr/mports 403 404=item DISTDIR 405 406Where to search for and store copies of original sources 407 408Default: ${PORTSDIR}/Distfiles 409 410=item PACKAGES 411 412A top level directory where all packages go (rather than going locally to 413each port). Default: ${PORTSDIR}/Packages/${ARCH} 414 415=item WRKDIRPREFIX 416 417The place to root the temporary working directory hierarchy. 418 419Default: none 420 421=item WRKDIR 422 423A temporary working directory that gets B<clobbered> on clean 424 425Default: ${WRKDIRPREFIX}${.CURDIR}/work 426 427=item WRKSRC 428 429A subdirectory of ${WRKDIR} where the distribution actually unpacks to. 430 431Default: ${WRKDIR}/${DISTNAME} unless NO_WRKSUBDIR is set, in which case 432simply ${WRKDIR} 433 434=item NO_WRKSUBDIR 435 436Assume port unpacks directly into ${WRKDIR}. 437 438=item PATCHDIR 439 440A directory containing any additional patches you made to port this software 441to MidnightBSD. 442 443Default: ${MASTERDIR}/files 444 445=item SCRIPTDIR 446 447A directory containing any auxiliary scripts 448 449Default: ${MASTERDIR}/scripts 450 451=item FILESDIR 452 453A directory containing any miscellaneous additional files. 454 455Default: ${MASTERDIR}/files 456 457=item PKGDIR 458 459A directory containing any package creation files. 460 461Default: ${MASTERDIR} 462 463=back 464 465=head2 Distfile Variables 466 467These variable describe how to fetch files required for building the port. 468 469=over 4 470 471=item DISTFILES 472 473Name(s) of archive file(s) containing distribution. Set this to an empty 474string if the port doesn't require it. 475 476Default: ${DISTNAME}${EXTRACT_SUFX} 477 478=item EXTRACT_SUFX 479 480Suffix for archive names. You never have to set both DISTFILES and 481EXTRACT_SUFX. 482 483Default: .tar.bz2 if USE_BZIP2 is set, .zip if USE_ZIP is set, 484.tar.xz if USE_XZ is set, .tar.gz otherwise. 485 486=item MASTER_SITES 487 488Primary location(s) for distribution files if not found locally. See 489sites.mk for common choices for MASTER_SITES. 490 491=item MASTER_SITE_SUBDIR 492 493Subdirectory of MASTER_SITES. Will sometimes need to be set to ${PORTNAME} 494for (e.g.) MASTER_SITE_SOURCEFORGE. Only guaranteed to work for choices of 495${MASTER_SITES} defined in sites.mk. 496 497Default: not set. 498 499=item PATCHFILES 500 501Name(s) of additional files that contain distribution patches. Make will 502look for them at PATCH_SITES (see below). They will automatically be 503uncompressed before patching if the names end with ".gz", ".bz2" or ".Z". 504 505Default: not set. 506 507=item PATCH_SITES 508 509Primary location(s) for distribution patch files if not found locally. 510 511=item DIST_SUBDIR 512 513Suffix to ${DISTDIR}. If set, all ${DISTFILES} and ${PATCHFILES} will be 514put in this subdirectory of ${DISTDIR} (see below). Also they will be 515fetched in this subdirectory from FreeBSD mirror sites. 516 517=item ALLFILES 518 519All of ${DISTFILES} and ${PATCHFILES}. 520 521=item IGNOREFILES 522 523If set, don't perform checksum checks on these files. 524 525=item NOFETCHFILES 526 527If set, don't download these files from the ${MASTER_SITES} or 528${MASTER_SITE_BACKUP} (but do from ${MASTER_SITE_OVERRIDE}) 529 530=item EXTRACT_ONLY 531 532If set, a subset of ${DISTFILES} you want to actually extract. 533 534=item ALWAYS_KEEP_DISTFILES 535 536If set, the package building cluster will save the distfiles along with the 537packages. This may be required to comply with some licenses, e.g. GPL in 538some cases. 539 540Default: not set. 541 542=back 543 544(NOTE: by convention, the MAINTAINER entry (see above) should go here.) 545 546These variables are typically set in /etc/make.conf to indicate 547the user's preferred location to fetch files from. You should 548rarely need to set these. 549 550=over 4 551 552=item MASTER_SITE_BACKUP 553 554Backup location(s) for distribution files and patch files if not found 555locally and ${MASTER_SITES}/${PATCH_SITES} 556 557Default: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ 558 559=item MASTER_SITE_OVERRIDE 560 561If set, override the MASTER_SITES setting with this value. 562 563=item MASTER_SITE_FREEBSD 564 565If set, only use ${MASTER_SITE_BACKUP} for MASTER_SITES. 566 567=item CD_MOUNTPTS 568 569List of CDROM mountpoints to look for distfiles under. This variable 570supercedes CD_MOUNTPT, which is obsolete. 571 572=item DISABLE_SECURITY_CHECK 573 574Speed up port installation on old hardware by not running security checks. 575Not recommended. 576 577=back 578 579=head2 Licenses And Restrictions 580 581Set these if your port should not be built under certain circumstances. 582These are string variables; you should set them to the reason why 583they are necessary. Over time, many of the variables will be replaced 584by the LICENSE variable. 585 586=over 4 587 588=item LICENSE 589 590The license of the third-party software. This variable is required. Run 591'make license-list' to see the list of valid licenses. 592 593=item RESTRICTED 594 595Prevent the distribution of distfiles and packages to the FTP sites or on 596CDROM (e.g. forbidden by license considerations). 597 598=item NO_CDROM 599 600Packages and distfiles may not go on CDROM (e.g. must not be re-sold) but 601can go on FTP sites. 602 603=item NO_PACKAGE 604 605Port should not be packaged for ftp sites or CDROMs, but distfiles can be 606put on ftp sites and CDROMs. 607 608=item FORBIDDEN 609 610Package build should not be attempted because of security vulnerabilities. 611 612=item IGNORE 613 614Package build should be skipped entirely (e.g. because of serious unfixable 615problems in the build, because it cannot be manually fetched, etc). Minimal 616error logs will appear on magus, so this should be used sparingly. 617 618=item BROKEN 619 620Port is believed to be broken. Packaage builds will still be attempted on 621the magus build cluster to test this assumption. 622 623=item DEPRECATED 624 625Port is deprecated to install. Advisory only. 626 627=item EXPIRATION_DATE 628 629If DEPRECATED is set, determines a date when the port is planed to remove. 630The date format is ISO 8601 (YYYY-MM-DD). 631 632=item DISABLE_VULNERABILITIES 633 634If set, do not check if the port is listed in the vulnerabilities database. 635 636=back 637 638In addition to RESTRICTED or NO_CDROM, if only a subset of distfiles or 639patchfiles have redistribution restrictions, set the following to the list 640of such files. 641 642=over 4 643 644=item RESTRICTED_FILES 645 646List of files that cannot be redistributed. Default: "${DISTFILES} 647${PATCHFILES}" if RESTRICTED or NO_CDROM is set, empty otherwise. 648 649These variables are booleans, so you don't need to set them to the reason. 650 651=item IS_INTERACTIVE 652 653Set this if your port needs to interact with the user during any step in a 654package build. User can then decide to skip this port by setting ${BATCH}, 655or compiling only the interactive ports by setting ${INTERACTIVE}. 656 657Default: not set. 658 659=back 660 661Set these if your port only makes sense to certain architectures. 662They are lists containing names for them (e.g., "amd64 i386"). 663(Defaults: not set.) 664 665=over 4 666 667=item ONLY_FOR_ARCHS 668 669Only build ports if ${ARCH} matches one of these. 670 671=item NOT_FOR_ARCHS 672 673Only build ports if ${ARCH} doesn't match one of these. 674 675=item ONLY_FOR_ARCHS_REASON 676=item ONLY_FOR_ARCHS_REASON_${ARCH} 677 678Reason why it's only for ${ONLY_FOR_ARCHS}s. 679 680=item NOT_FOR_ARCHS_REASON 681=item NOT_FOR_ARCHS_REASON_${ARCH} 682 683Reason why it's not for ${NOT_FOR_ARCHS}s. 684 685=item IA32_BINARY_PORT 686 687Set this instead of ONLY_FOR_ARCHS if the given port fetches and installs 688compiled i386 binaries. 689 690=back 691 692=head2 Dependency Variables 693 694Dependency checking. Use these if your port requires another port 695not in the list below. (Default: empty.) 696 697=over 4 698 699=item EXTRACT_DEPENDS 700 701A list of "path:dir[:target]" tuples of other ports this package depends on 702in the "extract" stage. "path" is the name of a file if it starts with a 703slash (/), an executable otherwise. make will test for the existence (if it 704is a full pathname) or search for it in your $PATH (if it is an executable) 705and go into "dir" to do a "make all install" if it's not found. If the 706third field ("target") exists, it will be used instead of ${DEPENDS_TARGET}. 707 708=item PATCH_DEPENDS 709 710A list of "path:dir[:target]" tuples of other ports this package depends on 711in the "patch" stage. "path" is the name of a file if it starts with a 712slash (/), an executable otherwise. make will test for the existence (if it 713is a full pathname) or search for it in your $PATH (if it is an executable) 714and go into "dir" to do a "make all install" if it's not found. If the 715third field ("target") exists, it will be used instead of ${DEPENDS_TARGET}. 716 717=item FETCH_DEPENDS 718 719A list of "path:dir[:target]" tuples of other ports this package depends in 720the "fetch" stage. "path" is the name of a file if it starts with a slash 721(/), an executable otherwise. make will test for the existence (if it is a 722full pathname) or search for it in your $PATH (if it is an executable) and 723go into "dir" to do a "make all install" if it's not found. If the third 724field ("target") exists, it will be used instead of ${DEPENDS_TARGET}. 725 726=item BUILD_DEPENDS 727 728A list of "path:dir[:target]" tuples of other ports this package depends to 729build (between the "extract" and "build" stages, inclusive). The test done 730to determine the existence of the dependency is the same as FETCH_DEPENDS. 731If the third field ("target") exists, it will be used instead of 732${DEPENDS_TARGET}. 733 734=item RUN_DEPENDS 735 736A list of "path:dir[:target]" tuples of other ports this package depends to 737run. The test done to determine the existence of the dependency is the same 738as FETCH_DEPENDS. This will be checked during the "install" stage and the 739name of the dependency will be put into the package as well. If the third 740field ("target") exists, it will be used instead of ${DEPENDS_TARGET}. 741 742=item LIB_DEPENDS 743 744A list of "lib:dir[:target]" tuples of other ports this package depends on. 745"lib" is the name of a shared library. make will use "ldconfig -r" to search 746for the library. lib can contain extended regular expressions. 747 748=item DEPENDS 749 750A list of "dir[:target]" tuples of other ports this package depends on being 751made first. Use this only for things that don't fall into the above four 752categories. If the second field ("target") exists, it will be used instead 753of ${DEPENDS_TARGET}. 754 755=item DEPENDS_TARGET 756 757The default target to execute when a port is calling a dependency. 758 759Default: cached-install 760 761=item NO_DEPENDS 762 763Don't verify build of dependencies. 764 765=item USE_PACKAGE_DEPENDS 766 767Install dependencies from existing packages instead of building the port 768from scratch. 769 770 771=back 772 773=head2 Built-In Depends 774 775These variables control options about how a port gets built and/or 776are shorthand notations for common sets of dependencies. 777Use these if your port uses some of the common software packages. By 778convention these should be set to 'yes', although they only need to be 779defined. Defaults: not set, unless explicitly indicated below. 780 781This approach to built-in dependencies is going away in the future. Soon a 782declaration like: 783 784 USE_GHOSTSCRIPT_RUN=yes 785 786will be replaced by 787 788RUN_DEPENDS += @ghostscript 789 790However, some of these so called "depends" actually change the behavoir of 791the mports system. For example, USE_GMAKE not only add a dependcy for gmake, 792but it uses gmake instead of make to build and install the software. Options 793like USE_GMAKE will remain; as USE_* variable will be variables that add 794functionality to the system. See extensions for more information. 795 796B<NOTE>: These ideas are still in maturation. Changes expected! 797 798Note: the distinction between the USE_* and WANT_* variables, and the 799WITH_* and WITHOUT_* variables, are that the former are restricted to 800usage inside the ports framework, and the latter are reserved for user- 801settable options. (Setting USE_* in /etc/make.conf is always wrong). 802 803=over 4 804 805=item USE_ICONV 806 807If set, this port uses libiconv. 808 809=item USES=gettext 810 811If set, this port uses GNU gettext (libintl). 812 813=item USE_GHOSTSCRIPT 814 815If set, this port needs ghostscript to both build and run. 816 817=item USE_GHOSTSCRIPT_BUILD 818 819If set, this port needs ghostscript to build. 820 821=item USE_GHOSTSCRIPT_RUN 822 823If set, this port needs ghostscript to run. 824 825=item GHOSTSCRIPT_PORT 826 827The port that provides postscript functionality. Some installations may wish 828to override the default to specify a version without X11 and/or localized 829versions for their nationality. 830 831=item WITH_GHOSTSCRIPT_GPL 832 833If set, this port uses the GPL version of the ghostscript software instead 834of the GNU version, which is used otherwise. 835 836=item WITH_GHOSTSCRIPT_AFPL 837 838If set, this port uses the AFPL version of the ghostscript software instead 839of the GNU version, which is used otherwise. 840 841=item USE_BISON 842 843If set to build, adds a build dependancy on bison. run implies a run 844depends, both adds a build and run depends. The legacy option yes is 845deprecated (but implies build for now). 846 847=item USE_XLIB 848 849If set, this port uses the X libraries. In the USE_LINUX 850case the linux X libraries are referenced. In general this is deprecated 851in favor of USE_XORG. 852 853=item USE_FREETYPE 854 855If set, this port uses the freetype print libraries. 856 857=item USE_GL 858 859If set, this port uses libGL. 860 861=item USE_MOTIF 862 863If set, this port uses a Motif toolkit. 864 865=item NO_OPENMOTIF 866 867If set, this port uses a custom Motif toolkit instead of Openmotif. Used 868only when USE_MOTIF is set. 869 870=item WANT_LESSTIF 871 872If set, this port uses Lesstif as Motif toolkit. Used only when USE_MOTIF 873is set. Implies NO_OPENMOTIF. 874 875=item USE_CSTD 876 877If set, overrides the -std= c standard in effect for the mport. This 878might be useful if we have multiple system compilers to force a 879version like c89 or c99 always with a port. 880 881=back 882 883=head2 Extension Variables 884 885Extensions are additional logic that some ports need to function. Some 886extensions are in the mport system core, while others are in the extensions 887directory. 888 889For the larger extensions, the code is located in the extentions 890directory. See the extension files sectio for details. 891 892=over 4 893 894=item EXTENSIONS 895 896A list of extension files to pull in. These files are in 897${PORTSDIR}/Mk/extension, and are named in a format like L<lt>extL<gt>.mk. 898Loading an extension in this manner should not cause the extension to 899perform any actions. 900 901Example: 902 903 EXTENSIONS+= perl5 python 904 905This would load perl5.mk and python.mk from the extensions directory. 906 907=item USE_BZIP2 908 909If set, this port tarballs use bzip2, not gzip, for compression. 910 911=item USE_XZ 912 913If set, this port tarballs use xz (lzma), not gzip, for compression. 914 915=item USE_ZIP 916 917If set, this port distfile uses zip, not tar w/[bg]zip for compression. 918 919=item USE_DOS2UNIX 920 921If set to "YES", remove the ^M from all files under ${WRKSRC}. If set to a 922string, remove in all files under ${WRKSRC} with one of these names the ^Ms. 923 924=item USE_GCC 925 926If set, this port requires this version of gcc, either in the system or 927installed from a port. Loads gcc.mk from the extensions directory. 928 929=item USE_GCPIO 930 931If set, uses GNU cpio. Changes the value of ${CPIO}. 932 933=item USE_GMAKE 934 935If set, this port uses gmake. 936 937=item GMAKE 938 939Set to path of GNU make if not in $PATH. 940 941Default: gmake 942 943=item USE_IMAKE 944 945If set, this port uses imake. Implies USE_X_PREFIX 946 947=item XMKMF 948 949Set to path of `xmkmf' if not in $PATH 950 951Default: xmkmf -a 952 953=item USE_SDL 954 955If set, this port uses the sdl libraries. Loads the sdl extension. See 956sdl.mk for more information. 957 958=item USE_XFCE 959 960If set, this port uses the XFCE libraries. Loads the xfce extension. See 961xfce.mk for more information. 962 963=item USE_OPENSSL 964 965If set, this port relies on the OpenSSL package. Loads the openssl 966extension. See openssl.mk for more information. 967 968=item USE_OPENLDAP 969 970If set, this port uses the OpenLDAP libraries. 971 972Implies: WANT_OPENLDAP_VER?=23 973 974=item WANT_OPENLDAP_VER 975 976Legal values are: 22, 23, 24 977 978If set to an unkown value, the port is marked BROKEN. 979 980=item WANT_OPENLDAP_SASL 981 982If set, the system should use OpenLDAP libraries with SASL support. 983 984=item USE_FAM 985 986If set, this port uses the File Alteration Monitor. 987 988=item WANT_FAM_SYSTEM 989 990Legal values are: gamin (default),fam 991 992If set to an unknown value, the port is marked IGNORE. 993 994=item USE_SCONS 995 996If set, this port uses the Python-based SCons build system. Loads the scons 997extension. See scons.mk for more details. 998 999=item USE_JAVA 1000 1001If set, this port relies on the Java language. Implies inclusion of 1002java.mk. (Also see that file for more information on USE_JAVA_*). 1003 1004=item USE_PYTHON 1005 1006If set, this port relies on the Python language. Implies inclusion of 1007python.mk. (Also see that file for more information on USE_PYTHON_* and 1008USE_PYDISTUTILS). 1009 1010=item USE_RUBY 1011 1012If set, this port relies on the Ruby language. Implies inclusion of 1013ruby.mk. (Also see that file for more information on USE_RUBY_*). 1014 1015=item USE_GNUSTEP 1016 1017If set, this port relies on the GNUstep system. Implies the inclusion of 1018bsd.gnustep.mk. (Also see that file for more information on USE_GNUSTEP_*). 1019 1020=item USE_GNOME 1021 1022A list of the Gnome dependencies the port has (e.g., glib12, gtk12). Implies 1023that the port needs Gnome. Implies inclusion of gnome.mk. See gnome.mk or 1024http://www.FreeBSD.org/gnome/docs/porting.html for more details. 1025 1026=item USE_WX 1027 1028If set, this port uses the WxWidgets library and related components. See 1029wx.mk for more details. 1030 1031=item USE_KDEBASE_VER 1032 1033Set to 3 to use the KDE windowing system. Implies inclusion of kde.mk. 1034 1035=item USE_KDELIBS_VER 1036 1037Set to 3 to use the KDE libraries. Implies inclusion of bsd.kde.mk. 1038 1039=item USE_QT_VER 1040 1041Set to 3 to use the QT3 libraries which implies kde.mk. 1042 1043Set to 4 to use QT4 which implies qt.mk. 1044 1045=item USE_LINUX 1046 1047Set to yes to say the port needs the default linux base port. Set to value 1048E<lt>XE<gt>, if the port needs emulators/linux_base-<X>. If set to "7", a dependency 1049is registered to emulators/linux_base. Implies appropriate settings for 1050STRIP and STRIP_CMD. 1051 1052=item USE_LINUX_PREFIX 1053 1054Controls the action of PREFIX (see below). Only use this if the port is a 1055linux infrastructure port (e.g. contains libs or a sound server which 1056supports the FreeBSD native one), use the default or the X11 prefix if it's 1057a leaf port (e.g. a game or program). 1058 1059Implies NO_MTREE=yes, and if INSTALLS_SHLIB is defined then USE_LINUX=yes 1060and an appropriate invocation of the Linux ldconfig is also implied. 1061 1062=item USE_LINUX_RPM 1063 1064Set to yes to pull in variables and targets useful to Linux RPM ports. 1065Implies inclusion of linux-rpm.mk. 1066 1067=item AUTOMATIC_PLIST 1068 1069Set to yes to enable automatic packing list generation. Currently has no 1070effect unless USE_LINUX_RPM is set. 1071 1072=item OVERRIDE_LINUX_BASE_PORT 1073 1074This specifies the default linux base to use, for valid values have a look 1075at the description of USE_LINUX. This is an user-only variable. Don't use it 1076in any port, it's meant to be used in make.conf. 1077 1078=item LINUX_BASE_PORT 1079 1080This is a read-only variable, it gets set to a value which is usable in 1081*_DEPENDS (e.g. BUILD_DEPENDS=${LINUX_BASE_PORT}). It honors USE_LINUX=foo 1082and OVERRIDE_LINUX_BASE_PORT. 1083 1084=item USE_XORG 1085 1086Set to a list of xorg module dependancies. Implies includsion of xorg.mk 1087 1088=item USE_RC_SUBR 1089 1090If set, the ports startup/shutdown script uses the common routines found in 1091etc/rc.subr and may need to depend on the sysutils/rc_subr port. If this is 1092set to a list of files, these files will be automatically added to 1093${SUB_FILES}, some %%VAR%%'s will automatically be expanded, they will be 1094installed in ${PREFIX}/etc/rc.d and added to the packing list. 1095 1096=item USE_RCORDER 1097 1098 List of rc.d startup scripts to be called early in the boot process. This 1099acts exactly like USE_RC_SUBR except that scripts are installed in 1100/etc/rc.d. 1101 1102=item RC_SUBR 1103 1104Set to path of rc.subr. 1105 1106Default: ${LOCALBASE}/etc/rc.subr. 1107 1108=item USE_APACHE 1109 1110If set, this port relies on an apache webserver. Loads the apache 1111extension. See apache.mk for more information. 1112 1113=back 1114 1115=head2 Conflict checking. 1116 1117Use if your port cannot be installed at the same time as 1118another package. 1119 1120=over 4 1121 1122=item CONFLICTS 1123 1124A list of package name patterns that the port conflicts with, separated by 1125blanks. The names may include shell pattern meta-characters "*", "?", "[", 1126"]", and "!". Example: apache*-1.2* apache*-1.3.[012345] apache-*+ssl_* 1127 1128=back 1129 1130=head2 Fake System 1131 1132The following are used by the fake system. The fake system installs a dist's files into 1133a temporary directory before final installatioin. 1134 1135=over 4 1136 1137=item FAKE_OPTS 1138 1139Set options for fake. Available options: 1140 1141=over 8 1142 1143=item libs 1144 1145Fake targets need access to the port's shared libs. 1146 1147=item bin 1148 1149Fake targets need the port's binaries in $PATH 1150 1151=item trueprefix 1152 1153Set this when the dist's makefile correctly honors PREFIX and DESTDIR. (Note 1154case) 1155 1156=item prefixhack 1157 1158overide prefix, mandir and infodir at fake time. 1159 1160=back 1161 1162=item FAKE_INSTALLDIR 1163 1164A relative directory used to by fake. An install is "faked" into this dir. 1165 1166Default: "fake-inst-${ARCH}" 1167 1168=item FAKE_DESTDIR 1169 1170The absolute fake directory. Thou shalt not set this, but it can 1171be useful for targets like do-install or post-install. 1172 1173Default: ${WRKDIR}/${FAKE_INSTALLDIR} 1174 1175=item FAKE_MAKEARGS 1176 1177Arguments passed to the dist's makefile by the default fake target. 1178 1179Default: ${DESTDIRNAME}=${FAKE_DESTDIR} 1180 1181=item FAKE_TARGET 1182 1183When fake runs the dist's makefile, this is the target used. 1184 1185Default: ${INSTALL_TARGET} 1186 1187=item FAKE_SETUP 1188 1189A list of environment variables used to create the fake environment, 1190suitable for use with env. This variable should be considered read- only. 1191It is documented because often it is useful for calling make in 1192{pre,post}-install. 1193 1194=item SKIP_FAKE_CHECK 1195 1196If MPORT_MAINTAINER_MODE is set, then each file in the plist will checked to 1197see if it contains ${FAKE_DESTDIR}. Sometimes this produces false positives 1198(a file contains the fake destdir, but its presence is harmless). This 1199variable is a list of files that will not be checked. 1200 1201=back 1202 1203=head2 Install Programs 1204 1205Variables that serve as convenient "aliases" for your *-install targets. 1206Use these like: "${INSTALL_PROGRAM} ${WRKSRC}/prog ${PREFIX}/bin". 1207 1208=over 4 1209 1210=item INSTALL_PROGRAM 1211 1212A command to install binary executables. (By default, also strips them, 1213unless ${STRIP} is overridden to be the empty string). 1214 1215=item INSTALL_KLD 1216 1217Same as INSTALL_PROGRAM, but without the STRIP. 1218 1219=item INSTALL_SCRIPT 1220 1221A command to install executable scripts. 1222 1223=item INSTALL_DATA 1224 1225A command to install sharable data. 1226 1227=item INSTALL_MAN 1228 1229A command to install manpages. May or not compress, depending on the value 1230of MANCOMPRESSED (see below). 1231 1232=back 1233 1234=head2 Port Docs 1235 1236=over 4 1237 1238=item NO_INSTALL_MANPAGES 1239 1240If set, this port doesn't want to install any manpages. 1241Default: not set, i.e. manpages are installed by default. 1242 1243=back 1244 1245Set the following to specify all manpages that your port installs. 1246These manpages will be automatically listed in ${PLIST}. Depending 1247on the setting of NOMANCOMPRESS, the make rules will compress the 1248manpages for you. 1249 1250=over 4 1251 1252=item MANE<lt>sectE<gt> 1253 1254A list of manpages, categorized by section. For example, if your port has 1255"man/man1/foo.1" and "man/mann/bar.n", set "MAN1=foo.1" and "MANN=bar.n". 1256The available sections chars are "123456789LN". 1257 1258=item MLINKS 1259 1260A list of E<lt>source, targetE<gt> tuples for creating links for manpages. 1261For example, "MLINKS= a.1 b.1 c.3 d.3" will do an "ln -sf a.1 b.1" and "ln 1262-sf c.3 d.3" in appropriate directories. (Use this even if the port 1263installs its own manpage links so they will show up correctly in ${PLIST}.) 1264 1265 1266=item MANE<lt>sectE<gt>PREFIX 1267 1268=item MANCOMPRESSED 1269 1270This variable can take values "yes", "no" or "maybe". "yes" means manpages 1271are installed compressed; "no" means they are not; "maybe" means it changes 1272depending on the value of NOMANCOMPRESS. Default: "yes" if USE_IMAKE is set 1273and NO_INSTALL_MANPAGES is not set, and "no" otherwise. 1274 1275=item INFO 1276 1277A list of .info files (omitting the trailing ".info"); only one entry per 1278document! 1279 1280=item INFO_PATH 1281 1282Path, where all .info files will be installed by your port, relative to 1283${PREFIX} 1284 1285Default: "share/info" if ${PREFIX} is equal to /usr and "info" otherwise. 1286 1287=item PORTDOCS 1288 1289A list of files and directories relative to DOCSDIR. Shell glob patterns can 1290be used, directories include the entire subtree of contained files and 1291directories. Should not be set when no documentation files are installed 1292(for example because NOPORTDOCS is defined). Useful for dynamically 1293generated documentation. 1294 1295=back 1296 1297=head2 Skipping Steps 1298 1299Set these variables if your port doesn't need some of the steps. 1300Note that there are no NO_PATCH or NO_CONFIGURE variables because 1301those steps are empty by default. NO_EXTRACT is not allowed anymore 1302since we need to at least create ${WRKDIR}. Also, NO_CHECKSUM is a user 1303variable and is not to be set in a port's Makefile. See above for NO_PACKAGE. 1304 1305=over 4 1306 1307=item NO_BUILD 1308 1309Use a dummy (do-nothing) build target. 1310 1311=item NO_INSTALL 1312 1313Use a dummy (do-nothing) fake target. This may sound confusing, but 1314typically this will do what you want. 1315 1316=back 1317 1318=head2 Target Specific Variables 1319 1320=head3 config 1321 1322=over 4 1323 1324=item OPTIONS 1325 1326List of what WITH_<option> options this port accept. The 1327format is <option> "<description>" [on|off] 1328 1329Example: 1330 FLEXRESP "Flexible response to events" off 1331 1332Which tells that an option WITH_FLEXRESP exists for this port, that by 1333default it is not defined, and that the description to show to a user in the 1334config dialog is "Flexible response to events". If you have more than one 1335option, just chain them into a single variable. NOTE: To make options work, 1336you need to include bsd.port.pre.mk or bsd.mport.options.mk before you start 1337testing the WITH_xyz and WITHOUT_xyz variables. 1338 1339=item PORT_DBDIR 1340 1341Where port configuration options are recorded. 1342 1343Default: ${DESTDIR}/var/db/ports 1344 1345=back 1346 1347=head3 fetch 1348 1349=over 4 1350 1351=item FETCH_CMD 1352 1353Full path to ftp/http fetch command if not in $PATH. 1354 1355Default: "/usr/bin/fetch -ARr" 1356 1357=item FETCH_BEFORE_ARGS 1358 1359Arguments to ${FETCH_CMD} before filename. 1360 1361Default: none 1362 1363=item FETCH_AFTER_ARGS 1364 1365Arguments to ${FETCH_CMD} following filename. 1366 1367Default: none 1368 1369=item FETCH_ENV 1370 1371Environment to pass to ${FETCH_CMD}. 1372 1373Default: none 1374 1375=item FETCH_REGET 1376 1377Times to retry fetching of files on checksum errors. 1378 1379Default: 1 1380 1381=item DISABLE_SIZE 1382 1383Do not check the size of a distfile even if the SIZE field has been 1384specified in distinfo. This is useful when using an alternate FETCH_CMD. 1385 1386=item CHECKSUM_ALGORITHMS 1387 1388Different checksum algorithms to check for verifying the integrity of the 1389distfiles. The absence of the algorithm in distinfo doesn't make it fail. 1390 1391Default: md5 sha256 rmd160 1392 1393=item NO_CHECKSUM 1394 1395Don't verify the checksum. Typically used when when you noticed the 1396distfile you just fetched has a different checksum and you intend to verify 1397if the port still works with it. 1398 1399 1400=back 1401 1402=head3 extract 1403 1404=over 4 1405 1406=item EXTRACT_CMD 1407 1408Command for extracting archive: "bzip2" if USE_BZIP2 is set, "unzip" if 1409USE_ZIP is set, "gzip" otherwise. 1410 1411=item EXTRACT_BEFORE_ARGS 1412 1413Arguments to ${EXTRACT_CMD} before filename. 1414 1415Default: "-dc" 1416 1417=item EXTRACT_AFTER_ARGS 1418 1419Arguments to ${EXTRACT_CMD} following filename. 1420 1421Default: "| tar -xf -" 1422 1423=back 1424 1425=head3 makesum 1426 1427=over 4 1428 1429=item NO_SIZE 1430 1431Don't record size data in distinfo, needed when the master site does not 1432report file sizes, or when multiple valid versions of a distfile, having 1433different sizes, exist. 1434 1435=back 1436 1437=head3 patch 1438 1439=over 4 1440 1441=item EXTRA_PATCHES 1442 1443Define this variable if you have patches not in ${PATCHDIR}. This usually 1444happens when you need to do some pre-processing before some distribution 1445patches can be applied. In that case, fetch them as extra distfiles, put 1446the processed results in ${WRKDIR}, then point EXTRA_PATCHES to them. The 1447patches specified by this variable will be applied after the normal 1448distribution patches but before those in ${PATCHDIR}. 1449 1450=item PATCH_WRKSRC 1451 1452Directory to apply patches in. 1453 1454Default: ${WRKSRC} 1455 1456=item PATCH_DEBUG 1457 1458If set, print out more information about the patches as it attempts to apply 1459them. 1460 1461=back 1462 1463=head3 configure 1464 1465=over 4 1466 1467=item HAS_CONFIGURE 1468 1469If set, this port has its own configure script. The configure stage will 1470not do anything if this is not set. 1471 1472=item GNU_CONFIGURE 1473 1474If set, you are using GNU configure (optional). Implies HAS_CONFIGURE. 1475 1476=item PERL_CONFIGURE 1477 1478Configure using Perl's MakeMaker. Implies USE_PERL5. 1479 1480=item CONFIGURE_WRKSRC 1481 1482Directory to run configure in. 1483 1484Default: ${WRKSRC} 1485 1486=item CONFIGURE_SCRIPT 1487 1488Name of configure script, relative to ${CONFIGURE_WRKSRC}. 1489 1490Default: configure 1491 1492=item CONFIGURE_TARGET 1493 1494The name of target to call when GNU_CONFIGURE is defined. 1495 1496Default: ${ARCH}-portbld-freebsd${OSREL} 1497 1498=item CONFIGURE_ARGS 1499 1500Pass these args to configure if ${HAS_CONFIGURE} is set. Default if 1501GNU_CONFIGURE is set: 1502 1503 "--prefix=${PREFIX} ${CONFIGURE_TARGET}" 1504 1505If supported by the configure script, the following will also be in the 1506default: 1507 1508 "--mandir=${PREFIX}/share/man --infodir=${PREFIX}/${INFO_PATH}" 1509 1510If GNU_CONFIGURE is not set, CONFIGURE_ARGS defaults to empty. 1511 1512=item CONFIGURE_ENV 1513 1514Pass these env (shell-like) to configure if ${HAS_CONFIGURE} is set. 1515 1516=item CONFIGURE_LOG 1517 1518The name of configure log file. It will be printed to the screen if 1519configure fails. 1520 1521Default: config.log 1522 1523=item CONFIGURE_FAIL_MESSAGE 1524 1525A message displayed to users when configure fails (note: this assumes the 1526do-configure target has not been overwritten). This message will be passed 1527through /usr/bin/fmt before being shown to the user. 1528 1529=back 1530 1531=head3 build 1532 1533=over 4 1534 1535=item MAKEFILE 1536 1537Name of the makefile. 1538 1539Default: Makefile 1540 1541=item ALL_TARGET 1542 1543Default target for dist's makefile in build stage. 1544 1545Default: all 1546 1547=item BUILD_WRKSRC 1548 1549Directory to do build in (default: ${WRKSRC}). 1550 1551=item MAKE_ENV 1552 1553Additional environment vars passed to make process in build 1554and fake stages. 1555 1556=item MAKE_ARGS 1557 1558Any extra arguments to sub-make in build and install stages. 1559 1560Default: none 1561 1562=item MAKE_JOBS_SAFE 1563 1564This port can be built on multiple CPUs in parallel. Make will 1565be invoked with -jX parameter where X is the MAKE_JOBS_NUMBER 1566set. 1567 1568=item MAKE_JOBS_UNSAFE 1569 1570Disallow multiple jobs even when a global override is in affect 1571to work around broken ports. 1572 1573=item DISABLE_MAKE_JOBS 1574 1575Set to disable multiple jobs feature. This is a user defined 1576setting. 1577 1578=item FORCE_MAKE_JOBS 1579 1580Set to enable multiple jobs for all ports except those marked 1581unsafe with MAKE_JOBS_UNSAFE 1582 1583=item MAKE_JOBS_NUMBER 1584 1585The number of make jobs to be used; the make -jX setting that 1586defaults to the number of CPU cores present from 1587the sysctl kern.smp.cpus 1588 1589=back 1590 1591=head3 fake 1592 1593=over 4 1594 1595=item INSTALL_WRKSRC 1596 1597Directory to install from. 1598 1599Default: ${WRKSRC} 1600 1601=item NO_MTREE 1602 1603If set, will not invoke mtree from bsd.mport.mk for the "fake" target. 1604 1605=item MTREE_FILE 1606 1607The name of the mtree file. 1608 1609Default: /etc/mtree/BSD.local.dist 1610 1611=item PLIST_DIRS 1612 1613Directories to be added to packing list 1614 1615=item PLIST_FILES 1616 1617Files and symbolic links to be added to packing list 1618 1619=item PLIST 1620 1621Name of the `packing list' file. Change this to ${WRKDIR}/PLIST or something 1622if you need to write to it. (It is not a good idea for a port to write to 1623any file outside ${WRKDIR} during a normal build.) 1624 1625Default: ${PKGDIR}/pkg-plist 1626 1627=item TMPPLIST 1628 1629Name of the `packing list' file after processing 1630 1631Default: ${WRKDIR}/.PLIST.mktmp 1632 1633=item PLIST_SUB 1634 1635List of "variable=value" pair for substitution in ${PLIST} 1636 1637=item SUB_FILES 1638 1639Files that should be passed through sed and redirected to ${WRKDIR}. 1640 1641=over 8 1642 1643=item * 1644 1645For each file specified in SUB_FILES, there must be a corresponding file in 1646${FILESDIR} whose suffix is ".in". For instance, if the Makefile specifies 1647"SUB_FILES= pkg-message" then there must be a file called pkg-message.in in 1648${FILESDIR}. 1649 1650=item * 1651 1652The substitution process is the same as PLIST_FILES, as described below 1653except that any line beginning with @comment is deleted. 1654 1655=back 1656 1657=item SUB_LIST 1658 1659List of "variable=value" pair for substitution in ${SUB_FILES} 1660 1661Some pairs are added by default: eg. PREFIX=${PREFIX} 1662 1663=item INSTALLS_SHLIB 1664 1665B<deprecated>. Use USE_LDCONFIG instead. 1666 1667If set, bsd.mport.mk will automatically run ldconfig commands 1668from post-install and also add appropriate @exec/@unexec 1669directives to directories listed in LDCONFIG_DIRS. 1670 1671If USE_LINUX_PREFIX is defined, the Linux version of ldconfig 1672will be used instead of the native FreeBSD version (in such 1673case, LDCONFIG_DIRS is ignored). 1674 1675=item LDCONFIG_DIRS 1676 1677List of directories to run ldconfig if INSTALLS_SHLIB is set. Note that this 1678is passed through sed just like the rest of PLIST, so ${PLIST_SUB} 1679substitutions also apply here. It is recommended that you use 1680%%PREFIX%% for ${PREFIX}, %%LOCALBASE%% for 1681${LOCALBASE_REL} and %%X11BASE%% for ${X11BASE_REL}. 1682Default: %%PREFIX%%/lib 1683 1684=item USE_LDCONFIG 1685 1686If set to "yes", it replaces the old variable INSTALLS_SHLIB. Otherwise, it 1687can be set to a list of directories to be added to 1688${PREFIX}/libdata/ldconfig/${UNIQUENAME}. Note that this directory is used 1689by ldconfig startup script, it is meant to replace ldconfig scripts 1690installed by some ports as (sometimes) 000.${UNQUENAME}.sh. If 1691USE_LINUX_PREFIX is defined, then the Linux version of ldconfig will be used 1692instead (and LDCONFIG_DIRS is ignored). 1693 1694=item USE_LDCONFIG32 1695 1696Same as USE_LDCONFIG but the target file is 1697${PREFIX}/libdata/ldconfig32/${UNIQUENAME} instead. 1698 1699Note: that should only be used on 64-bit architectures. 1700 1701=item DOCSDIR 1702 1703Name of the directory to install the packages docs in. 1704 1705Default: ${PREFIX}/share/doc/${PORTNAME} 1706 1707=item EXAMPLESDIR 1708 1709Name of the directory to install the packages examples in. 1710 1711Default: ${PREFIX}/share/examples/${PORTNAME} 1712 1713=item DATADIR 1714 1715Name of the directory to install the packages shared data in. 1716 1717Default: ${PREFIX}/share/${PORTNAME} 1718 1719=item WWWDIR 1720 1721Name of the directory to install the packages www data in. 1722 1723Default: ${PREFIX}/www/${PORTNAME} 1724 1725=item ETCDIR 1726 1727Name of the directory to install the packages etc data in. 1728 1729Default: ${PREFIX}/etc/${PORTNAME} 1730 1731=item DESKTOPDIR 1732 1733Name of the directory to install ${DESKTOP_ENTRIES} in. 1734 1735Default: ${PREFIX}/share/applications 1736 1737=item DESKTOP_ENTRIES 1738 1739List of desktop entry files to generate and install in ${DESKTOPDIR}. The 1740format is"Name" "Comment" "Icon" "Exec" "Categories" StartupNotify 1741 1742Rules: 1743 1744=over 8 1745 1746=item * 1747 1748Only add desktop entries for applications which do not require a terminal 1749(ie. X applications). 1750 1751=item * 1752 1753If the upstream distribution already installs .desktop files, you do not 1754need to use this. 1755 1756=item * 1757 1758If you require a more elaborate .desktop file than this variable permits, 1759write it yourself and install it in ${DESKTOPDIR}. 1760 1761=back 1762 1763Notes: 1764 1765=over 8 1766 1767=item * 1768 1769Comment and Icon may be empty strings (""). Categories may be an empty 1770string in some cases (see below). The other fields are mandatory. 1771 1772=item * 1773 1774If Categories is an empty string, bsd.port.mk will try to deduce a default 1775value using the CATEGORIES variable. If the deduction fails, you will have 1776to set Categories manually. You should check the generated value using "make 1777desktop-categories", and override it if necessary. 1778 1779=item * 1780 1781Exec will also be used to name the .desktop file. 1782 1783=item * 1784 1785The files will be automatically added to ${PLIST}. 1786 1787Example: 1788 "X Window Information" \ 1789 "Get information about X windows" \ 1790 "wininfo.png" \ 1791 "wininfo" \ 1792 "Application;System;" \ 1793 true 1794 1795See http://standards.freedesktop.org/desktop-entry-spec/ for an explanation 1796of the fields. If you need to create more than one file, just chain them 1797into a single variable. 1798 1799=back 1800 1801=back 1802 1803Note that the fake target will automatically add manpages (see above) and 1804also substitute special sequences of characters (delimited by "%%") as 1805defined in PLIST_SUB to generate ${TMPPLIST}. For instance, 1806"OSREL=${OSREL}" in PLIST_SUB causes all occurrences of "%%OSREL%%" in 1807${PLIST} to be substituted by the value of OSREL. ${TMPPLIST} is generated 1808before the do-install stage. If you are generating the packing list 1809on-the-fly, make sure it's generated before do-install is called! 1810 1811=head3 package 1812 1813=over 4 1814 1815=item NO_LATEST_LINK 1816 1817Do not install the "Latest" link for package. Define this if this port is a 1818beta version of another stable port which is also in the tree. 1819 1820=item LATEST_LINK 1821 1822Install the "Latest" link for the package as ___. Define this if the 1823"Latest" link name will be incorrectly determined. 1824 1825=back 1826 1827=head2 Miscellaneous Variables 1828 1829=over 4 1830 1831=item SCRIPTS_ENV 1832 1833Additional environment vars passed to scripts in ${SCRIPTDIR} executed by 1834bsd.mport.mk. 1835 1836Default: see below 1837 1838=item ECHO_MSG 1839 1840Used to print all the '===>' style prompts - override this to turn them off. 1841 1842Default: ${ECHO_CMD} 1843 1844 1845=item USE_SUBMAKE 1846 1847Set this if you want that each of the port's main 6 targets (extract, patch, 1848configure, build, install and package) to be executed in a separate make(1) 1849process. Useful when one of the stages needs to influence make(1) variables 1850of the later stages using ${WRKDIR}/Makefile.inc generated on the fly. 1851 1852Default: not set. 1853 1854 1855=item WITH_DEBUG 1856 1857If set, debugging flags are added to CFLAGS and the binaries don't get 1858stripped by INSTALL_PROGRAM. Besides, individual ports might add their 1859specific to produce binaries for debugging purposes. You can override the 1860debug flags that are passed to the compiler by setting DEBUG_FLAGS. It is 1861set to "-g" at default. 1862 1863=back 1864 1865=head1 HISTORY 1866 1867bsd.mport.mk is based on bsd.port.mk from FreeBSD 6.0. It diverged when the fake 1868framework was introduced. The fake framekwork was greatly influenced by OpenBSD's 1869port system. 1870 1871After the fake framework was introduced work has concentrated on standardizing 1872the behavoirs of the various extensions and reorganizing the makefiles that 1873comprise the mports framework. 1874 1875=head1 SEE ALSO 1876 1877L<pkg_add(1)>, L<pkg_create(1)> 1878 1879=head1 BUGS 1880 1881Many. 1882 1883