2002-11-25 19:43:16 +00:00
#-*- mode: makefile; tab-width: 4; -*-
1996-11-03 07:51:59 +00:00
# ex:ts=4
1994-09-11 12:01:05 +00:00
#
1999-08-25 04:40:22 +00:00
# $FreeBSD$
1996-11-01 07:22:37 +00:00
# $NetBSD: $
#
1994-08-21 13:12:57 +00:00
# bsd.port.mk - 940820 Jordan K. Hubbard.
# This file is in the public domain.
#
1994-09-10 22:26:47 +00:00
# Please view me with 4 column tabs!
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# This is the master file for the most common elements to all port
# Makefile in the ports system. For a more general overview of its
# use and importance, see the Porter's Handbook.
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
# There are two different types of "maintainers" in the ports framework.
# The maintainer alias of the bsd.port.mk file is listed below in the
# FreeBSD_MAINTAINER entry. You should consult them if you have any
# questions/suggestions regarding this file.
1999-04-28 06:20:23 +00:00
#
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
# DO NOT COMMIT CHANGES TO THIS FILE BY YOURSELF, EVEN IF YOU DID NOT GET
# A RESPONSE FROM THE MAINTAINER(S) WITHIN A REASONABLE TIMEFRAME! ALL
2001-06-28 19:54:45 +00:00
# UNAUTHORISED CHANGES WILL BE UNCONDITIONALLY REVERTED!
1997-01-12 12:37:48 +00:00
2001-03-24 21:35:22 +00:00
FreeBSD_MAINTAINER = portmgr@FreeBSD.org
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
1997-04-21 00:24:51 +00:00
# For each port, the MAINTAINER variable is what you should consult for
# contact information on the person(s) to contact if you have questions/
# suggestions about that specific port. By default (if no MAINTAINER
1999-07-23 09:36:55 +00:00
# is listed), a port is maintained by the subscribers of the ports@FreeBSD.org
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
# mailing list, and any correspondence should be directed there.
1997-04-21 00:24:51 +00:00
#
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# MAINTAINER - The e-mail address of the contact person for this port
1999-07-23 09:36:55 +00:00
# (default: ports@FreeBSD.org).
1994-08-21 13:12:57 +00:00
#
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# These are meta-variables that are automatically set to the system
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# you are running on. These are provided in case you need to take
# different actions for different values.
1994-08-28 14:41:34 +00:00
#
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
# ARCH - The architecture, as returned by "uname -p".
1996-11-01 07:22:37 +00:00
# OPSYS - Portability clause. This is the operating system the
# makefile is being used on. Automatically set to
1997-01-12 12:37:48 +00:00
# "FreeBSD," "NetBSD," or "OpenBSD" as appropriate.
1998-08-05 09:29:13 +00:00
# OSREL - The release version (numeric) of the operating system.
1998-11-11 05:21:29 +00:00
# OSVERSION - The value of __FreeBSD_version.
1998-09-10 06:38:02 +00:00
# PORTOBJFORMAT - The object format ("aout" or "elf").
1995-01-04 08:30:33 +00:00
#
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# This is the beginning of the list of all variables that need to be
# defined in a port, listed in order that they should be included
# to fit in with existing conventions. (Exception: MAINTAINER actually
# should appear after EXTRACT_ONLY and before MASTER_SITE_BACKUP).
#
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# These variables are used to identify your port.
#
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# PORTNAME - Name of software. Mandatory.
# PORTVERSION - Version of software. Mandatory.
# PORTREVISION - Version of port. Optional. Commonly used to indicate
# that an update has happened that affects the port
# framework itself, but not the distributed software
# (e.g., local patches or Makefile changes).
# PORTEPOCH - Optional. In certain odd cases, the PORTREVISION logic
# can be fooled by ports that appear to go backwards
# numerically (e.g. if port-0.3 is newer than port-1998).
# In this case, incrementing PORTEPOCH forces the revision.
# Default: 0 (no effect).
2000-04-10 12:31:02 +00:00
# PKGNAMEPREFIX - Prefix to specify that port is language-specific, etc.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# Optional.
# PKGNAMESUFFIX - Suffix to specify compilation options. Optional.
2000-04-10 12:31:02 +00:00
# PKGNAME - Always defined as
# ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}.
# Do not define this in your Makefile.
2000-04-04 07:05:36 +00:00
# DISTNAME - Name of port or distribution used in generating
# WRKSRC and DISTFILES below (default:
# ${PORTNAME}-${PORTVERSION}).
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
# CATEGORIES - A list of descriptive categories into which this port falls.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# Mandatory.
1994-08-28 14:41:34 +00:00
#
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# These variable describe how to fetch files required for building the port.
1994-08-28 14:41:34 +00:00
#
1994-09-10 22:26:47 +00:00
# DISTFILES - Name(s) of archive file(s) containing distribution
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# (default: ${DISTNAME}${EXTRACT_SUFX}). Set this to
# an empty string if the port doesn't require it.
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
# EXTRACT_SUFX - Suffix for archive names (default: .tar.bz2 if USE_BZIP2
1999-04-28 06:20:23 +00:00
# is set, .zip if USE_ZIP is set, .tar.gz otherwise).
# You never have to set both DISTFILES and EXTRACT_SUFX.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# MASTER_SITES - Primary location(s) for distribution files if not found
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# locally. See bsd.sites.mk for common choices for
# MASTER_SITES.
# MASTER_SITE_SUBDIR - Subdirectory of MASTER_SITES (default: empty).
# Will sometimes need to be set to ${PORTNAME} for (e.g.)
# MASTER_SITE_SOURCEFORGE. Only guaranteed to work for
# choices of ${MASTER_SITES} defined in bsd.sites.mk.
1996-02-08 00:44:33 +00:00
# PATCHFILES - Name(s) of additional files that contain distribution
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
# patches (default: none). make will look for them at
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# PATCH_SITES (see below). They will automatically be
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
# uncompressed before patching if the names end with
2001-11-17 21:23:09 +00:00
# ".gz", ".bz2" or ".Z".
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# PATCH_SITES - Primary location(s) for distribution patch files
# if not found locally.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# DIST_SUBDIR - Suffix to ${DISTDIR} (default: none). If set, all
# ${DISTFILES} and ${PATCHFILES} will be put in this
# subdirectory of ${DISTDIR} (see below). Also they will
# be fetched in this subdirectory from FreeBSD mirror sites.
1996-12-17 12:20:53 +00:00
# ALLFILES - All of ${DISTFILES} and ${PATCHFILES}.
# IGNOREFILES - If some of the ${ALLFILES} are not checksum-able, set
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# this variable to their names (default: empty).
1994-12-10 18:07:38 +00:00
# EXTRACT_ONLY - If defined, a subset of ${DISTFILES} you want to
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# actually extract (default: none).
#
# (NOTE: by convention, the MAINTAINER entry (see above) should go here.)
1994-08-21 13:12:57 +00:00
#
2002-01-23 03:48:44 +00:00
# These variables are typically set in /etc/make.conf to indicate
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# the user's preferred location to fetch files from. You should
# rarely need to set these.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# MASTER_SITE_BACKUP - Backup location(s) for distribution files and patch
# files if not found locally and ${MASTER_SITES}/${PATCH_SITES}
# (default:
1999-07-23 09:36:55 +00:00
# ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/)
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# MASTER_SITE_OVERRIDE - If set, override the MASTER_SITES setting with this
# value.
# MASTER_SITE_FREEBSD - If set, only use ${MASTER_SITE_BACKUP} for
# MASTER_SITES.
2002-01-23 03:48:44 +00:00
# CD_MOUNTPTS - List of CDROM mountpoints to look for distfiles under.
# This variable supercedes CD_MOUNTPT, which is
# obsolete.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# Set these if your port should not be built under certain circumstances.
# These are string variables; you should set them to the reason why
# they are necessary.
#
2003-02-16 21:22:15 +00:00
# RESTRICTED - Prevent the distribution of distfiles and packages to
# the FTP sites or on CDROM (e.g. forbidden by license
# considerations).
# NO_CDROM - Packages and distfiles may not go on CDROM (e.g. must
# not be re-sold) but can go on FTP sites.
# NO_PACKAGE - Port should not be packaged for ftp sites or CDROMs,
# but distfiles can be put on ftp sites and CDROMs.
# FORBIDDEN - Package build should not be attempted because of
# security vulnerabilities.
# IGNORE - Package build should be skipped entirely (e.g.
# because of serious unfixable problems in the build,
# because it cannot be manually fetched, etc). Error
# logs will not appear on bento, so this should be
# used sparingly.
1998-09-22 23:58:49 +00:00
# BROKEN_ELF - Port doesn't build on ELF machines.
2003-02-16 21:22:15 +00:00
# BROKEN - Port is believed to be broken. Package builds will
# still be attempted on the bento package cluster to
# test this assumption.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
2000-10-01 17:27:40 +00:00
# In addition to RESTRICTED or NO_CDROM, if only a subset of distfiles
# or patchfiles have redistribution restrictions, set the following
# to the list of such files.
#
# RESTRICTED_FILES - List of files that cannot be redistributed
# (default: "${DISTFILES} ${PATCHFILES}" if RESTRICTED
# or NO_CDROM is set, empty otherwise).
#
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# These variables are booleans, so you don't need to set them to the reason.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# IS_INTERACTIVE - Set this if your port needs to interact with the user
1999-04-23 02:20:45 +00:00
# during any step in a package build. User can then decide
# to skip this port by setting ${BATCH}, or compiling only
# the interactive ports by setting ${INTERACTIVE}.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# (Default: not set.)
2002-03-25 08:48:47 +00:00
# USE_SUBMAKE - Set this if you want that each of the port's main 6 targets
# (extract, patch, configure, build, install and package) to be
# executed in a separate make(1) process. Useful when one of
# the stages needs to influence make(1) variables of the later
# stages using ${WRKDIR}/Makefile.inc generated on the fly.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# (Default: not set.)
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
# Set these if your port only makes sense to certain architectures.
1999-01-11 13:04:18 +00:00
# They are lists containing names for them (e.g., "alpha i386").
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# (Defaults: not set.)
1999-01-11 13:04:18 +00:00
#
# ONLY_FOR_ARCHS - Only build ports if ${ARCH} matches one of these.
# NOT_FOR_ARCHS - Only build ports if ${ARCH} doesn't match one of these.
#
2000-06-14 02:14:49 +00:00
# Use these if your port uses some of the common software packages. By
# convention these should be set to 'yes', although they only need to be
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# defined. (Defaults: not set, unless explicitly indicated below.)
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
# USE_BZIP2 - Says that the port tarballs use bzip2, not gzip, for
# compression.
1999-04-28 06:20:23 +00:00
# USE_ZIP - Says that the port distfile uses zip, not tar w/[bg]zip
# for compression.
2002-06-04 21:34:43 +00:00
# USE_GCC - Says that the port requires this version of gcc, either in
1999-08-22 11:20:25 +00:00
# the system or installed from a port.
1994-09-10 22:26:47 +00:00
# USE_GMAKE - Says that the port uses gmake.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# GMAKE - Set to path of GNU make if not in $PATH (default: gmake).
2002-11-27 16:40:36 +00:00
##
# USE_AUTOMAKE_VER (PORT MAY SET THIS VALUE)
# - Implies USE_AUTOMAKE.
# - Implies WANT_AUTOMAKE_VER=(value)
2002-11-25 19:43:16 +00:00
# USE_AUTOMAKE (PORT MAY SET THIS VALUE)
2002-11-27 16:40:36 +00:00
# - Implies USE_AUTOCONF.
# - Implies WANT_AUTOMAKE_VER?=14.
2002-11-25 19:43:16 +00:00
# - Causes automake execution prior to configure step.
2002-11-27 16:40:36 +00:00
# WANT_AUTOMAKE_VER (PORT MAY SET THIS VALUE)
# - Implies GNU_CONFIGURE=yes.
# - Says that the port wants automake; legal values
2002-11-25 19:43:16 +00:00
# are: 14, 15, 17.
# - Each specify a version of automake to use
# and appropriatly set both AUTOMAKE{,_DIR}
# and ACLOCAL{,_DIR} variables.
# - If set with an unknown value, the port is marked BROKEN.
2002-11-27 16:40:36 +00:00
# - Implies WANT_AUTOCONF_VER=(appropriate version)
2002-11-25 19:43:16 +00:00
# AUTOMAKE_ARGS (PORT MAY ALTER THIS VALUE)
# - Pass these args to ${AUTOMAKE} if ${USE_AUTOMAKE_VER}
# is set. If an application sets this value, it should
# use the += form of assignment to append, not overwrite.
2002-11-27 16:40:36 +00:00
##
# USE_AUTOCONF_VER (PORT MAY SET THIS VALUE)
# - Implies USE_AUTOCONF.
# - Implies WANT_AUTOCONF_VER=(value)
2002-11-25 19:43:16 +00:00
# USE_AUTOCONF (PORT MAY SET THIS VALUE)
2002-11-27 16:40:36 +00:00
# - Implies WANT_AUTOCONF_VER?=213.
2002-11-25 19:43:16 +00:00
# - Causes autoconf execution prior to configure step.
2002-11-27 16:40:36 +00:00
# WANT_AUTOCONF_VER (PORT MAY SET THIS VALUE)
# - Implies GNU_CONFIGURE=yes.
# - Says that the port wants autoconf; legal values
2002-11-25 19:43:16 +00:00
# are: 213, 253, 254.
# - Each specify a version of autoconf to use
# and appropriatly set AUTOCONF{,_DIR} and other
# autoconf-related program paths.
# - If set with an unknown value, the port is marked BROKEN.
# AUTOCONF_ARGS (PORT MAY ALTER THIS VALUE)
# - Pass these args to ${AUTOCONF} if ${USE_AUTOCONF_VER}
# is set. If an application sets this value, it should
# use the += form of assignment to append, not overwrite.
2002-11-27 16:40:36 +00:00
##
2002-11-25 19:43:16 +00:00
# AUTOMAKE (READ-ONLY)
# - Set to path of GNU automake (default:
# according to USE_AUTOMAKE_VER value)
# AUTOMAKE_ENV (READ-ONLY)
# - Pass these env var=value pairs (shell-like)
# to ${AUTOMAKE} if ${USE_AUTOMAKE_VER} is set.
# ACLOCAL (READ-ONLY)
# - Set to path of GNU automake aclocal (default:
# according to USE_AUTOMAKE_VER value)
# ACLOCAL_DIR (READ-ONLY)
# - Set to path of GNU automake aclocal shared directory
# (default: according to USE_AUTOMAKE_VER value)
# AUTOMAKE_DIR (READ-ONLY)
# - Set to path of GNU automake shared directory (default:
# according to USE_AUTOMAKE_VER value)
2002-11-27 16:40:36 +00:00
##
2002-11-25 19:43:16 +00:00
# AUTOCONF (READ-ONLY)
# - Set to path of GNU autoconf (default:
# according to USE_AUTOCONF_VER value)
# AUTOCONF_ENV (READ-ONLY)
# - Pass these env var=value pairs (shell-like)
# to ${AUTOCONF} if ${USE_AUTOCONF_VER} is set.
# AUTOHEADER (READ-ONLY)
# - Set to path of GNU autoconf autoheader
# (default: according to USE_AUTOCONF_VER value)
# AUTORECONF (READ-ONLY)
# - Set to path of GNU autoconf autoreconf
# (default: according to USE_AUTOCONF_VER value)
# AUTOSCAN (READ-ONLY)
# - Set to path of GNU autoconf autoscan
# (default: according to USE_AUTOCONF_VER value)
# AUTOIFNAMES (READ-ONLY)
# - Set to path of GNU autoconf autoifnames
# (default: according to USE_AUTOCONF_VER value)
# AUTOCONF_DIR (READ-ONLY)
# - Set to path of GNU autoconf shared directory (default:
# according to USE_AUTOCONF_VER value)
2002-11-27 16:40:36 +00:00
##
1999-05-06 12:07:57 +00:00
# USE_LIBTOOL - Says that the port uses Libtool. Implies GNU_CONFIGURE.
# LIBTOOL - Set to path of libtool (default: libtool).
# LIBTOOLFILES - Files to patch for libtool (defaults: "aclocal.m4" if
# USE_AUTOCONF is set, "configure" otherwise).
2000-06-14 02:14:49 +00:00
# LIBTOOLFLAGS - Additional flags to pass to ltconfig
# (default: --disable-ltlibs)
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
##
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
# USE_GETOPT_LONG - Says that the port uses getopt_long. If OSVERSION
# less than 500041, automatically adds devel/libgnugeopt
# to LIB_DEPENDS, and pass adjusted values of
# CPPFLAGS and LDFLAGS in CONFIGURE_ENV.
# Default: not set.
##
1997-06-24 07:16:21 +00:00
# USE_PERL5 - Says that the port uses perl5 for building and running.
2002-11-17 05:16:16 +00:00
# USE_PERL5_BUILD - Says that the port uses perl5 for building.
# USE_PERL5_RUN - Says that the port uses perl5 for running.
1998-09-16 12:04:38 +00:00
# PERL5 - Set to full path of perl5, either in the system or
# installed from a port.
1998-10-06 21:12:14 +00:00
# PERL - Set to full path of perl5, either in the system or
# installed from a port, but without the version number.
# Use this if you need to replace "#!" lines in scripts.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# PERL_VERSION - Full version of perl5 (see below for current value).
# PERL_VER - Short version of perl5 (see below for current value).
2002-11-25 19:43:16 +00:00
# PERL_LEVEL - Perl version as an integer of the form MNNNPP, where
# M is major version, N is minor version, and P is
# the patch level. E.g., PERL_VERSION=5.6.1 would give
# a PERL_LEVEL of 500601. This can be used in comparisons
# to determine if the version of perl is high enough,
# whether a particular dependency is needed, etc.
1999-01-11 13:04:18 +00:00
# PERL_ARCH - Directory name of architecture dependent libraries
# (value: ${ARCH}-freebsd).
2002-11-25 19:43:16 +00:00
# SITE_PERL - Directory name where site specific perl packages go.
# This value is added to PLIST_SUB.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
##
2000-01-21 11:08:23 +00:00
# USE_BISON - Says that the port uses bison for building.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
##
1998-08-05 09:29:13 +00:00
# USE_IMAKE - Says that the port uses imake. Implies USE_X_PREFIX.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# XMKMF - Set to path of `xmkmf' if not in $PATH (default: xmkmf -a ).
# USE_X_PREFIX - Says that the port installs in ${X11BASE}. Implies USE_XLIB.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# USE_XLIB - Says that the port uses the X libraries.
#
# USE_DGS - Says that the port uses the dgs X11 libraries.
# USE_FREETYPE - Says that the port uses the freetype print libraries.
# USE_MESA - Says that the port uses the Mesa libraries.
2000-11-07 23:28:20 +00:00
# USE_MOTIF - Says that the port uses the Motif toolkit. Implies USE_XPM.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# USE_XPM - Says that the port uses the xpm graphics libraries.
##
# USE_OPENSSL - Says that the port relies on the OpenSSL package.
# Default: not set.
##
# USE_JAVA - Says that the port relies on the Java language.
# Implies inclusion of bsd.java.mk. (Also see
# that file for more information on USE_JAVA_*).
# Default: not set.
# USE_PYTHON - Says that the port relies on the Python language.
# Implies inclusion of bsd.python.mk. (Also see
# that file for more information on USE_PYTHON_*
# and USE_PYDISTUTILS).
# Default: not set.
# USE_RUBY - Says that the port relies on the Ruby language.
# Implies inclusion of bsd.ruby.mk. (Also see
# that file for more information on USE_RUBY_*).
# Default: not set.
##
# USE_GNOME - A list of the Gnome dependencies the port has (e.g.,
# glib12, gtk12). Implies that the port needs Gnome.
2003-04-06 22:14:38 +00:00
# Implies inclusion of bsd.gnome.mk. See bsd.gnome.mk
# or http://www.FreeBSD.org/gnome/docs/porting.html
# for more details.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# Default: not set.
#
# USE_KDEBASE_VER - Set to either 2 or 3 to use the KDE windowing system.
# (Only 3 is currently supported). Implies inclusion
# of bsd.kde.mk. Default: not set.
# USE_KDELIBS_VER - Set to either 2 or 3 to use the KDE libraries.
# (Only 3 is currently supported). Implies inclusion
# of bsd.kde.mk. Default: not set.
# USE_QT_VER - Set to either 2 or 3 to use the QT libraries.
# (Only 3 is currently supported). Implies inclusion
# of bsd.kde.mk. Default: not set.
#
# USE_LINUX - Set to yes to say the port needs emulators/linux_base.
# Default: not set.
# USE_LINUX_PREFIX - controls the action of PREFIX (see above).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# Dependency checking. Use these if your port requires another port
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# not in the list above. (Default: empty.)
#
# EXTRACT_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
# package depends on in the "extract" stage. "path" is
# the name of a file if it starts with a slash (/), an
# executable otherwise. make will test for the existence
# (if it is a full pathname) or search for it in your
# $PATH (if it is an executable) and go into "dir" to do
# a "make all install" if it's not found. If the third
# field ("target") exists, it will be used instead of
# ${DEPENDS_TARGET}.
# PATCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
# package depends on in the "patch" stage. "path" is the
# name of a file if it starts with a slash (/), an
# executable otherwise. make will test for the existence
# (if it is a full pathname) or search for it in your
# $PATH (if it is an executable) and go into "dir" to do
# a "make all install" if it's not found. If the third
# field ("target") exists, it will be used instead of
# ${DEPENDS_TARGET}.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# FETCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
1996-08-20 10:00:33 +00:00
# package depends in the "fetch" stage. "path" is the
# name of a file if it starts with a slash (/), an
# executable otherwise. make will test for the
# existence (if it is a full pathname) or search for
# it in your $PATH (if it is an executable) and go
# into "dir" to do a "make all install" if it's not
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# found. If the third field ("target") exists, it will
# be used instead of ${DEPENDS_TARGET}.
# BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
1996-08-20 10:00:33 +00:00
# package depends to build (between the "extract" and
# "build" stages, inclusive). The test done to
# determine the existence of the dependency is the
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# same as FETCH_DEPENDS. If the third field ("target")
# exists, it will be used instead of ${DEPENDS_TARGET}.
# RUN_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
1996-08-20 10:00:33 +00:00
# package depends to run. The test done to determine
# the existence of the dependency is the same as
# FETCH_DEPENDS. This will be checked during the
# "install" stage and the name of the dependency will
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# be put into the package as well. If the third field
# ("target") exists, it will be used instead of
# ${DEPENDS_TARGET}.
# LIB_DEPENDS - A list of "lib:dir[:target]" tuples of other ports this
# package depends on. "lib" is the name of a shared library.
2003-02-12 05:15:03 +00:00
# make will use "ldconfig -r" to search for the library.
# lib can contain extended regular expressions.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# DEPENDS - A list of "dir[:target]" tuples of other ports this
# package depends on being made first. Use this only for
# things that don't fall into the above four categories.
# If the second field ("target") exists, it will be used
# instead of ${DEPENDS_TARGET}.
# DEPENDS_TARGET - The default target to execute when a port is calling a
# dependency (default: "install").
1994-09-09 06:21:43 +00:00
#
2003-05-06 05:15:18 +00:00
# Conflict checking. Use if your port cannot be installed at the same time as
# another package.
#
# CONFLICTS - A list of package name patterns that the port conflicts with.
# It's possible to use any shell meta-characters for pattern
# matching.
# E.g. apache*-1.2* apache*-1.3.[012345] apache-*+ssl_*
#
#
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# Various directory definitions and variables to control them.
# You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR.
#
# X11BASE - Where X11 ports install things (default: /usr/X11R6).
# LOCALBASE - Where non-X11 ports install things (default: /usr/local).
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
# LINUXBASE - Where Linux ports install things (default: /compat/linux).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# PREFIX - Where *this* port installs its files (default: ${X11BASE}
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
# if USE_X_PREFIX is set, ${LINUXBASE} if USE_LINUX_PREFIX
# is set, otherwise ${LOCALBASE}).
1998-11-20 04:00:38 +00:00
# MASTERDIR - Where the port finds patches, package files, etc. Define
# this is you have two or more ports that share most of the
# files (default: ${.CURDIR}).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# PORTSDIR - The root of the ports tree. Defaults:
# FreeBSD/OpenBSD: /usr/ports
# NetBSD: /usr/opt
# DISTDIR - Where to get gzip'd, tarballed copies of original sources
# (default: ${PORTSDIR}/distfiles).
# PACKAGES - A top level directory where all packages go (rather than
# going locally to each port). (default: ${PORTSDIR}/packages).
1998-10-06 21:12:14 +00:00
# WRKDIRPREFIX - The place to root the temporary working directory
# hierarchy (default: none).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# WRKDIR - A temporary working directory that gets *clobbered* on clean
1998-10-06 21:12:14 +00:00
# (default: ${WRKDIRPREFIX}${.CURDIR}/work).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# WRKSRC - A subdirectory of ${WRKDIR} where the distribution actually
# unpacks to. (Default: ${WRKDIR}/${DISTNAME} unless
# NO_WRKSUBDIR is set, in which case simply ${WRKDIR}).
# NO_WRKSUBDIR - Assume port unpacks directly into ${WRKDIR}.
# PATCHDIR - A directory containing any additional patches you made
# to port this software to FreeBSD (default:
2001-11-17 21:35:39 +00:00
# ${MASTERDIR}/files)
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# SCRIPTDIR - A directory containing any auxiliary scripts
1998-11-20 04:00:38 +00:00
# (default: ${MASTERDIR}/scripts)
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# FILESDIR - A directory containing any miscellaneous additional files.
1998-11-20 04:00:38 +00:00
# (default: ${MASTERDIR}/files)
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# PKGDIR - A direction containing any package creation files.
2001-04-22 16:47:55 +00:00
# (default: ${MASTERDIR})
1994-09-09 06:21:43 +00:00
#
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
# Variables that serve as convenient "aliases" for your *-install targets.
1996-08-15 05:55:33 +00:00
# Use these like: "${INSTALL_PROGRAM} ${WRKSRC}/prog ${PREFIX}/bin".
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
#
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# INSTALL_PROGRAM - A command to install binary executables. (By
# default, also strips them, unless ${STRIP} is
# overridden to be the empty string).
# INSTALL_SCRIPT - A command to install executable scripts.
# INSTALL_DATA - A command to install sharable data.
# INSTALL_MAN - A command to install manpages. May or not compress,
# depending on the value of MANCOMPRESSED (see below).
#
# Boolean to control whether manpages are installed.
#
# NO_INSTALL_MANPAGES - Says that the port doesn't want to install any
# manpages (default: not set, i.e. manpages
# are installed by default).
1996-08-15 05:55:33 +00:00
#
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# Set the following to specify all manpages that your port installs.
# These manpages will be automatically listed in ${PLIST}. Depending
# on the setting of NOMANCOMPRESS, the make rules will compress the
# manpages for you.
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
#
# MAN<sect> - A list of manpages, categorized by section. For
# example, if your port has "man/man1/foo.1" and
# "man/mann/bar.n", set "MAN1=foo.1" and "MANN=bar.n".
# The available sections chars are "123456789LN".
2002-01-23 03:48:44 +00:00
# MLINKS - A list of <source, target> tuples for creating links
1998-09-10 06:38:02 +00:00
# for manpages. For example, "MLINKS= a.1 b.1 c.3 d.3"
2002-11-03 05:43:49 +00:00
# will do an "ln -sf a.1 b.1" and "ln -sf c.3 d.3" in
1998-09-10 06:38:02 +00:00
# appropriate directories. (Use this even if the port
# installs its own manpage links so they will show up
# correctly in ${PLIST}.)
# MANPREFIX - The directory prefix for ${MAN<sect>} and ${MLINKS}
# (default: ${PREFIX}).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# MAN<sect>PREFIX - If manual pages of some sections install in different
# locations than others, use these (default: ${MANPREFIX}).
# MANCOMPRESSED - This variable can take values "yes", "no" or
# "maybe". "yes" means manpages are installed
# compressed; "no" means they are not; "maybe" means
# it changes depending on the value of
# NOMANCOMPRESS. The default is "yes" if USE_IMAKE
# is set and NO_INSTALL_MANPAGES is not set, and
# "no" otherwise.
1996-11-01 07:22:37 +00:00
#
1994-08-21 13:12:57 +00:00
# Default targets and their behaviors:
#
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
# fetch - Retrieves ${DISTFILES} (and ${PATCHFILES} if defined)
# into ${DISTDIR} as necessary.
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
# fetch-list - Show list of files that would be retrieved by fetch.
# fetch-recursive - Retrieves ${DISTFILES} (and ${PATCHFILES} if defined),
# for port and dependencies into ${DISTDIR} as necessary.
# fetch-recursive-list - Show list of files that would be retrieved by
# fetch-recursive.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# fetch-required-list - Show list of files that would be retrieved by
# fetch-required.
# fetch-required - Retrieves ${DISTFILES} (and ${PATCHFILES} if defined),
# for port and dependencies that are not already installed
# into ${DISTDIR}.
1994-09-10 22:26:47 +00:00
# extract - Unpacks ${DISTFILES} into ${WRKDIR}.
1994-11-17 00:18:28 +00:00
# patch - Apply any provided patches to the source.
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
# configure - Runs either GNU configure, one or more local configure
# scripts or nothing, depending on what's available.
1994-09-10 22:26:47 +00:00
# build - Actually compile the sources.
# install - Install the results of a build.
1994-11-03 19:14:08 +00:00
# reinstall - Install the results of a build, ignoring "already installed"
# flag.
1998-01-02 10:37:14 +00:00
# deinstall - Remove the installation.
1995-01-23 18:22:36 +00:00
# package - Create a package from an _installed_ port.
1995-01-04 07:35:46 +00:00
# describe - Try to generate a one-line description for each port for
# use in INDEX files and the like.
1995-06-24 10:27:23 +00:00
# checkpatch - Do a "patch -C" instead of a "patch". Note that it may
# give incorrect results if multiple patches deal with
# the same file.
2000-11-03 10:26:32 +00:00
# checksum - Use distinfo to ensure that your distfiles are valid.
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
# checksum-recursive - Run checksum in this port and all dependencies.
2000-10-17 10:11:16 +00:00
# makesum - Generate distinfo (only do this for your own ports!).
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
# clean - Remove ${WRKDIR} and other temporary files used for building.
# clean-depends - Do a "make clean" for all dependencies.
1994-09-09 06:21:43 +00:00
#
1995-04-20 18:03:02 +00:00
# Default sequence for "all" is: fetch checksum extract patch configure build
#
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# Please read the comments in the targets section below; you
1995-04-20 18:03:02 +00:00
# should be able to use the pre-* or post-* targets/scripts
# (which are available for every stage except checksum) or
# override the do-* targets to do pretty much anything you want.
#
# NEVER override the "regular" targets unless you want to open
# a major can of worms.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# Set these variables if your port doesn't need some of the steps.
2001-07-25 18:10:16 +00:00
# Note that there are no NO_PATCH or NO_CONFIGURE variables because
1998-12-12 07:39:30 +00:00
# those steps are empty by default. NO_EXTRACT is not allowed anymore
# since we need to at least create ${WRKDIR}. Also, NO_CHECKSUM is a user
# variable and is not to be set in a port's Makefile. See above for NO_PACKAGE.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# NO_BUILD - Use a dummy (do-nothing) build target.
# NO_INSTALL - Use a dummy (do-nothing) install target.
#
# Here are some variables used in various stages.
#
# For fetch:
#
1999-03-08 07:23:10 +00:00
# FETCH_CMD - Full path to ftp/http fetch command if not in $PATH
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
# (default: "/usr/bin/fetch -ARr").
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# FETCH_BEFORE_ARGS -
# Arguments to ${FETCH_CMD} before filename (default: none).
# FETCH_AFTER_ARGS -
# Arguments to ${FETCH_CMD} following filename (default: none).
1999-03-08 07:23:10 +00:00
# FETCH_ENV - Environment to pass to ${FETCH_CMD} (default: none).
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
# FETCH_REGET - Times to retry fetching of files on checksum errors (default: 1).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# For extract:
#
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
# EXTRACT_CMD - Command for extracting archive (default: "bzip2" if
1999-04-28 06:20:23 +00:00
# USE_BZIP2 is set, "unzip" if USE_ZIP is set, "gzip"
# otherwise).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# EXTRACT_BEFORE_ARGS -
# Arguments to ${EXTRACT_CMD} before filename
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
# (default: "-dc").
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# EXTRACT_AFTER_ARGS -
# Arguments to ${EXTRACT_CMD} following filename
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
# (default: "| tar -xf -").
1999-08-22 11:20:25 +00:00
# EXTRACT_PRESERVE_OWNERSHIP -
# Normally, when run as "root", the extract stage will
# change the owner and group of all files under ${WRKDIR}
# to 0:0. Set this variable if you want to turn off this
# feature.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
1999-11-11 02:36:15 +00:00
# For patch:
#
# EXTRA_PATCHES - Define this variable if you have patches not in
# ${PATCHDIR}. This usually happens when you need to
# do some pre-processing before some distribution
# patches can be applied. In that case, fetch them as
# extra distfiles, put the processed results in
# ${WRKDIR}, then point EXTRA_PATCHES to them.
#
# The patches specified by this variable will be
# applied after the normal distribution patches but
# before those in ${PATCHDIR}.
2000-10-17 10:11:16 +00:00
# PATCH_WRKSRC - Directory to apply patches in (default: ${WRKSRC}).
1999-11-11 02:36:15 +00:00
#
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# For configure:
#
# HAS_CONFIGURE - Says that the port has its own configure script. The
# configure stage will not do anything if this is not set.
# GNU_CONFIGURE - Set if you are using GNU configure (optional). Implies
# HAS_CONFIGURE.
2000-09-13 07:16:49 +00:00
# PERL_CONFIGURE - Configure using Perl's MakeMaker. Implies USE_PERL5.
2000-05-06 10:45:35 +00:00
# CONFIGURE_WRKSRC - Directory to run configure in (default: ${WRKSRC}).
2000-10-17 10:11:16 +00:00
# CONFIGURE_SCRIPT - Name of configure script, relative to ${CONFIGURE_WRKSRC}
# (default: "Makefile.PL" if PERL_CONFIGURE is set,
# "configure" otherwise).
1999-03-08 07:23:10 +00:00
# CONFIGURE_TARGET - The name of target to call when GNU_CONFIGURE is
2002-02-21 18:24:20 +00:00
# defined (default: ${MACHINE_ARCH}-portbld-freebsd${OSREL}).
1999-03-08 07:23:10 +00:00
# CONFIGURE_ARGS - Pass these args to configure if ${HAS_CONFIGURE} is set
# (default: "--prefix=${PREFIX} ${CONFIGURE_TARGET}" if
2000-09-13 07:16:49 +00:00
# GNU_CONFIGURE is set, "CC=${CC} CCFLAGS=${CFLAGS}
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
# PREFIX=${PREFIX} INSTALLPRIVLIB=${PREFIX}/lib
# INSTALLARCHLIB=${PREFIX}/lib" if PERL_CONFIGURE is set,
# empty otherwise).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# CONFIGURE_ENV - Pass these env (shell-like) to configure if
# ${HAS_CONFIGURE} is set.
1999-06-11 11:59:10 +00:00
# CONFIGURE_LOG - The name of configure log file (default: config.log).
# It will be printed to the screen if configure fails.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# For build and install:
#
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# MAKEFILE - Name of the makefile (default: Makefile).
2000-04-02 08:32:26 +00:00
# ALL_TARGET - Default target for sub-make in build stage (default: all).
2000-10-17 10:11:16 +00:00
# BUILD_WRKSRC - Directory to do build in (default: ${WRKSRC}).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# MAKE_ENV - Additional environment vars passed to sub-make in build
# and install stages (default: see below).
1998-11-08 10:29:53 +00:00
# MAKE_ARGS - Any extra arguments to sub-make in build and install
# stages (default: none).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# For install:
#
2000-04-02 08:32:26 +00:00
# INSTALL_TARGET - Default target for sub-make in install stage
# (default: install).
2000-10-17 10:11:16 +00:00
# INSTALL_WRKSRC - Directory to install from (default: ${WRKSRC}).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# NO_MTREE - If set, will not invoke mtree from bsd.port.mk from
# the "install" target.
# MTREE_FILE - The name of the mtree file (default: /etc/mtree/BSD.x11.dist
# if USE_X_PREFIX is set, /etc/mtree/BSD.local.dist
# otherwise.)
2001-04-22 16:47:55 +00:00
# PLIST - Name of the `packing list' file (default: ${PKGDIR}/pkg-plist).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# Change this to ${WRKDIR}/PLIST or something if you
# need to write to it. (It is not a good idea for a port
# to write to any file outside ${WRKDIR} during a normal
# build.)
# TMPPLIST - Name of the `packing list' file after processing
# (default: ${WRKDIR}/.PLIST.mktmp).
# PLIST_SUB - List of "variable=value" pair for substitution in ${PLIST}
# (default: see below).
2000-06-16 21:52:40 +00:00
# INSTALLS_SHLIB - If set, bsd.port.mk will automatically run ldconfig commands
2000-06-14 02:14:49 +00:00
# from post-install and also add appropriate @exec/@unexec
# directives to directories listed in LDCONFIG_DIRS.
# LDCONFIG_DIRS - List of directories to run ldconfig if
2000-06-16 21:52:40 +00:00
# INSTALLS_SHLIB is set (default: %%PREFIX%%/lib).
2000-06-14 02:14:49 +00:00
# Note that this is passed through sed just like the
# rest of PLIST, so ${PLIST_SUB} substitutions also
# apply here. It is recommended that you use
# %%PREFIX%% for ${PREFIX}, %%LOCALBASE%% for
# ${LOCALBASE} and %%X11BASE%% for ${X11BASE}.
2001-07-10 07:50:17 +00:00
# DOCSDIR - Name of the directory to install the packages docs in
# (default: ${PREFIX}/share/doc/${PORTNAME}).
2001-11-17 20:08:05 +00:00
# EXAMPLESDIR - Name of the directory to install the packages examples in
# (default: ${PREFIX}/share/examples/${PORTNAME}).
2001-07-10 07:50:17 +00:00
# DATADIR - Name of the directory to install the packages shared data
# in (default: ${PREFIX}/share/${PORTNAME}).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# Note that the install target will automatically add manpages (see
# above) and also substitute special sequences of characters (delimited
# by "%%") as defined in PLIST_SUB to generate ${TMPPLIST}. For
# instance, "OSREL=${OSREL}" in PLIST_SUB causes all occurrences of
# "%%OSREL%%" in ${PLIST} to be substituted by the value of OSREL.
# ${TMPPLIST} is generated between the do-install and post-install
# stages. If you are generating the packing list on-the-fly, make
# sure it's generated by the end of do-install!
#
# For package:
#
# NO_LATEST_LINK - Do not install the "Latest" link for package. Define this
# if this port is a beta version of another stable port
# which is also in the tree.
2001-09-28 16:45:15 +00:00
# LATEST_LINK - Install the "Latest" link for the package as ___. Define
# this if the "Latest" link name will be incorrectly determined.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
#
# This is used in all stages:
#
# SCRIPTS_ENV - Additional environment vars passed to scripts in
# ${SCRIPTDIR} executed by bsd.port.mk (default: see below).
#
# Finally, variables to change if you want a special behavior. These
# are for debugging purposes. Don't set them in your Makefile.
#
# ECHO_MSG - Used to print all the '===>' style prompts - override this
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
# to turn them off (default: ${ECHO_CMD}).
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# PATCH_DEBUG - If set, print out more information about the patches as
# it attempts to apply them.
# PKG_DBDIR - Where package installation is recorded (default: /var/db/pkg)
2000-06-14 02:14:49 +00:00
# NO_PKG_REGISTER - Don't register a port installation as a package.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# FORCE_PKG_REGISTER - If set, it will overwrite any existing package
# registration information in ${PKG_DBDIR}/${PKGNAME}.
# NO_DEPENDS - Don't verify build of dependencies.
# NO_CHECKSUM - Don't verify the checksum. Typically used when
# when you noticed the distfile you just fetched has
# a different checksum and you intend to verify if
# the port still works with it.
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
# USE_PACKAGE_DEPENDS - Install dependencies from existing packages instead
# of building the port from scratch.
#
# End of the list of all variables that need to be defined in a port.
# Most port authors should not need to understand anything after this point.
#
1994-08-21 13:12:57 +00:00
1998-11-11 05:21:29 +00:00
# Start of pre-makefile section.
. i f ! d e f i n e d ( A F T E R P O R T M K )
2000-01-17 12:43:10 +00:00
. i f d e f i n e d ( _ P R E M K I N C L U D E D )
.BEGIN :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " ${ PKGNAME } : You cannot include bsd.port[.pre].mk twice "
2000-01-17 12:43:10 +00:00
@${ FALSE }
. e n d i f
_PREMKINCLUDED = yes
2000-11-03 10:26:32 +00:00
AWK ?= /usr/bin/awk
BASENAME ?= /usr/bin/basename
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
. i f e x i s t s ( / u s r / b i n / b z i p 2 )
BZCAT ?= /usr/bin/bzcat
BZIP2_CMD ?= /usr/bin/bzip2
. e l s e
BZCAT ?= ${ LOCALBASE } /bin/bzcat
BZIP2_CMD ?= ${ LOCALBASE } /bin/bzip2
2003-03-19 06:26:14 +00:00
BZIP2DEPENDS = yes
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
. e n d i f
2000-11-03 10:26:32 +00:00
CAT ?= /bin/cat
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
CHGRP ?= /usr/bin/chgrp
2000-11-03 10:26:32 +00:00
CHMOD ?= /bin/chmod
CHOWN ?= /usr/sbin/chown
CP ?= /bin/cp
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
CUT ?= /usr/bin/cut
DC ?= /usr/bin/dc
EGREP ?= /usr/bin/egrep
2000-11-03 10:26:32 +00:00
EXPR ?= /bin/expr
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
FALSE ?= false # Shell builtin
FILE ?= /usr/bin/file
FIND ?= /usr/bin/find
2000-11-03 10:26:32 +00:00
GREP ?= /usr/bin/grep
GUNZIP_CMD ?= /usr/bin/gunzip -f
GZCAT ?= /usr/bin/gzcat
GZIP ?= -9
GZIP_CMD ?= /usr/bin/gzip -nf ${ GZIP }
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
HEAD ?= /usr/bin/head
ID ?= /usr/bin/id
IDENT ?= /usr/bin/ident
2000-11-03 10:26:32 +00:00
LDCONFIG ?= /sbin/ldconfig
LN ?= /bin/ln
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
LS ?= /bin/ls
2000-11-03 10:26:32 +00:00
MKDIR ?= /bin/mkdir -p
MV ?= /bin/mv
2003-03-19 06:26:14 +00:00
REALPATH ?= /bin/realpath
2000-11-03 10:26:32 +00:00
RM ?= /bin/rm
RMDIR ?= /bin/rmdir
SED ?= /usr/bin/sed
SETENV ?= /usr/bin/env
SH ?= /bin/sh
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
STRIP_CMD ?= /usr/bin/strip
SU ?= /usr/bin/su
TAIL ?= /usr/bin/tail
TEST ?= test # Shell builtin
2000-11-03 10:26:32 +00:00
TR ?= /usr/bin/tr
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
TRUE ?= true # Shell builtin
2000-11-03 10:26:32 +00:00
UNAME ?= /usr/bin/uname
WHICH ?= /usr/bin/which
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
XARGS ?= /usr/bin/xargs
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
YACC ?= /usr/bin/yacc
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
# ECHO is defined in /usr/share/mk/sys.mk, which can either be "echo",
# or "true" if the make flag -s is given. Use ECHO_CMD where you mean
# the echo command.
ECHO_CMD ?= echo # Shell builtin
2000-11-03 10:26:32 +00:00
# Used to print all the '===>' style prompts - override this to turn them off.
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
ECHO_MSG ?= ${ ECHO_CMD }
2000-11-03 10:26:32 +00:00
1997-07-10 02:29:51 +00:00
# Get the architecture
1998-12-12 07:39:30 +00:00
. i f ! d e f i n e d ( A R C H )
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
ARCH != ${ UNAME } -p
1998-12-12 07:39:30 +00:00
. e n d i f
1997-07-10 02:29:51 +00:00
1999-03-08 07:23:10 +00:00
# Kludge for pre-3.0 systems
MACHINE_ARCH ?= i386
1996-11-01 07:22:37 +00:00
# Get the operating system type
1998-12-12 07:39:30 +00:00
. i f ! d e f i n e d ( O P S Y S )
2000-11-03 10:26:32 +00:00
OPSYS != ${ UNAME } -s
1998-12-12 07:39:30 +00:00
. e n d i f
1996-11-01 07:22:37 +00:00
1998-08-05 09:29:13 +00:00
# Get the operating system revision
1998-12-12 07:39:30 +00:00
. i f ! d e f i n e d ( O S R E L )
2000-11-03 10:26:32 +00:00
OSREL != ${ UNAME } -r | ${ SED } -e 's/[-(].*//'
1998-12-12 07:39:30 +00:00
. e n d i f
1998-11-11 05:21:29 +00:00
# Get __FreeBSD_version
1998-12-12 07:39:30 +00:00
. i f ! d e f i n e d ( O S V E R S I O N )
. i f e x i s t s ( / s b i n / s y s c t l )
OSVERSION != /sbin/sysctl -n kern.osreldate
. e l s e
OSVERSION != /usr/sbin/sysctl -n kern.osreldate
. e n d i f
. e n d i f
1998-08-05 09:29:13 +00:00
1998-09-10 06:38:02 +00:00
# Get the object format.
1998-12-12 07:39:30 +00:00
. i f ! d e f i n e d ( P O R T O B J F O R M A T )
1998-09-10 06:38:02 +00:00
PORTOBJFORMAT != test -x /usr/bin/objformat && /usr/bin/objformat || echo aout
1998-12-12 07:39:30 +00:00
. e n d i f
1998-09-10 06:38:02 +00:00
1998-11-20 04:00:38 +00:00
MASTERDIR ?= ${ .CURDIR }
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# If they exist, include Makefile.inc, then architecture/operating
# system specific Makefiles, then local Makefile.local.
2000-04-11 21:38:02 +00:00
. i f ${MASTERDIR} != ${ .CURDIR } && exists( ${ .CURDIR } /../Makefile.inc)
. i n c l u d e "${.CURDIR}/../Makefile.inc"
. e n d i f
1998-11-20 04:00:38 +00:00
. i f e x i s t s ( $ { M A S T E R D I R } / . . / M a k e f i l e . i n c )
. i n c l u d e "${MASTERDIR}/../Makefile.inc"
1994-08-21 13:12:57 +00:00
. e n d i f
1998-11-20 04:00:38 +00:00
. i f e x i s t s ( $ { M A S T E R D I R } / M a k e f i l e . $ { A R C H } - $ { O P S Y S } )
. i n c l u d e "${MASTERDIR}/Makefile.${ARCH}-${OPSYS}"
. e l i f e x i s t s ( $ { M A S T E R D I R } / M a k e f i l e . $ { O P S Y S } )
. i n c l u d e "${MASTERDIR}/Makefile.${OPSYS}"
. e l i f e x i s t s ( $ { M A S T E R D I R } / M a k e f i l e . $ { A R C H } )
. i n c l u d e "${MASTERDIR}/Makefile.${ARCH}"
1997-07-10 02:29:51 +00:00
. e n d i f
1996-06-19 01:04:23 +00:00
1998-11-20 04:00:38 +00:00
. i f e x i s t s ( $ { M A S T E R D I R } / M a k e f i l e . l o c a l )
. i n c l u d e "${MASTERDIR}/Makefile.local"
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. e n d i f
2000-04-16 11:35:52 +00:00
. i f ! d e f i n e d ( P O R T N A M E ) | | ! d e f i n e d ( P O R T V E R S I O N ) | | d e f i n e d ( P K G N A M E )
2000-04-11 21:38:02 +00:00
.BEGIN :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " ${ PKGNAME } : You need to define PORTNAME and PORTVERSION instead of PKGNAME. "
@${ ECHO_CMD } "(This port is too old for your bsd.port.mk, please update it to match"
@${ ECHO_CMD } " your bsd.port.mk.)"
2000-04-11 21:38:02 +00:00
@${ FALSE }
. e n d i f
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
PORTREVISION ?= 0
. i f ${PORTREVISION} != 0
_SUF1 = _${ PORTREVISION }
. e n d i f
PORTEPOCH ?= 0
. i f ${PORTEPOCH} != 0
_SUF2 = ,${ PORTEPOCH }
. e n d i f
PKGNAME = ${ PKGNAMEPREFIX } ${ PORTNAME } ${ PKGNAMESUFFIX } -${ PORTVERSION } ${ _SUF1 } ${ _SUF2 }
2000-04-11 21:38:02 +00:00
DISTNAME ?= ${ PORTNAME } -${ PORTVERSION }
1994-08-21 16:37:09 +00:00
# These need to be absolute since we don't know how deep in the ports
1994-08-28 14:41:34 +00:00
# tree we are and thus can't go relative. They can, of course, be overridden
1996-11-01 07:22:37 +00:00
# by individual Makefiles or local system make configuration.
. i f (${OPSYS} = = "NetBSD" )
1997-01-25 02:45:09 +00:00
PORTSDIR ?= /usr/opt
1996-11-01 07:22:37 +00:00
. e l s e
1997-01-25 02:45:09 +00:00
PORTSDIR ?= /usr/ports
1996-11-01 07:22:37 +00:00
. e n d i f
1997-01-25 02:45:09 +00:00
LOCALBASE ?= ${ DESTDIR } /usr/local
X11BASE ?= ${ DESTDIR } /usr/X11R6
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
LINUXBASE ?= ${ DESTDIR } /compat/linux
1996-11-30 10:31:50 +00:00
DISTDIR ?= ${ PORTSDIR } /distfiles
_DISTDIR ?= ${ DISTDIR } /${ DIST_SUBDIR }
2002-12-04 17:17:48 +00:00
. i f $ { O S V E R S I O N } > = 5 0 0 0 3 6
INDEXFILE ?= INDEX-5
. e l s e
INDEXFILE ?= INDEX
. e n d i f
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
. i f d e f i n e d ( U S E _ B Z I P 2 )
EXTRACT_SUFX ?= .tar.bz2
1999-04-28 06:20:23 +00:00
. e l i f d e f i n e d ( U S E _ Z I P )
EXTRACT_SUFX ?= .zip
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
. e l s e
EXTRACT_SUFX ?= .tar.gz
. e n d i f
1994-09-10 22:26:47 +00:00
PACKAGES ?= ${ PORTSDIR } /packages
1999-01-26 03:58:58 +00:00
TEMPLATES ?= ${ PORTSDIR } /Templates
1997-07-10 02:29:51 +00:00
2000-10-01 17:27:40 +00:00
. i f ( ! d e f i n e d ( P A T C H D I R ) & & e x i s t s ( $ { M A S T E R D I R } / p a t c h e s ) ) | | \
( !defined( PKGDIR) && exists( ${ MASTERDIR } /pkg) ) || \
( !defined( MD5_FILE) && exists( ${ MASTERDIR } /files/md5) )
pre-everything ::
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } "Error: your port uses an old layout. Please update it to match this bsd.port.mk. If you have updated your ports collection via cvsup and are still getting this error, see Q12 and Q13 in the cvsup FAQ on http://www.polstra.com for further information."
2000-10-01 17:27:40 +00:00
@${ FALSE }
. e n d i f
PATCHDIR ?= ${ MASTERDIR } /files
FILESDIR ?= ${ MASTERDIR } /files
SCRIPTDIR ?= ${ MASTERDIR } /scripts
PKGDIR ?= ${ MASTERDIR }
1997-07-10 02:29:51 +00:00
2001-07-25 18:10:16 +00:00
. i f d e f i n e d ( U S E _ I M A K E ) & & ! d e f i n e d ( U S E _ X _ P R E F I X )
1998-11-11 05:21:29 +00:00
USE_X_PREFIX = yes
. e n d i f
2001-07-25 18:10:16 +00:00
. i f d e f i n e d ( U S E _ X _ P R E F I X ) & & ${USE_X_PREFIX} = = "no"
. u n d e f U S E _ X _ P R E F I X
. e n d i f
1998-11-11 05:21:29 +00:00
. i f d e f i n e d ( U S E _ X _ P R E F I X )
USE_XLIB = yes
. e n d i f
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. i f d e f i n e d ( U S E _ L I N U X _ P R E F I X )
USE_LINUX = yes
. e n d i f
1998-11-11 05:21:29 +00:00
. i f d e f i n e d ( U S E _ X _ P R E F I X )
PREFIX ?= ${ X11BASE }
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. e l i f d e f i n e d ( U S E _ L I N U X _ P R E F I X )
PREFIX ?= ${ LINUXBASE }
NO_MTREE = yes
1998-11-11 05:21:29 +00:00
. e l s e
PREFIX ?= ${ LOCALBASE }
. e n d i f
2002-11-26 20:05:56 +00:00
. i f ! d e f i n e d ( P E R L _ L E V E L ) & & d e f i n e d ( P E R L _ V E R S I O N )
perl_major = ${ PERL_VERSION : C |^([1-9]+).*| \1 | }
_perl_minor = 00${ PERL_VERSION : C |^([1-9]+) \. ([0-9]+).*| \2 | }
perl_minor = ${ _perl_minor : C |^.*(...)| \1 | }
. i f $ { p e r l _ m i n o r } > = 1 0 0
perl_minor = ${ PERL_VERSION : C |^([1-9]+) \. ([0-9][0-9][0-9]).*| \2 | }
perl_patch = ${ PERL_VERSION : C |^.*(..)| \1 | }
. e l s e # ${perl_minor} < 100
_perl_patch = 0${ PERL_VERSION : C |^([1-9]+) \. ([0-9]+) \. *|0| }
perl_patch = ${ _perl_patch : C |^.*(..)| \1 | }
. e n d i f # ${perl_minor} < 100
PERL_LEVEL = ${ perl_major } ${ perl_minor } ${ perl_patch }
. e l s e
PERL_LEVEL = 0
. e n d i f # !defined(PERL_LEVEL) && defined(PERL_VERSION)
2000-02-06 16:27:38 +00:00
. i f d e f i n e d ( U S E _ O P E N S S L )
. i f $ { O S V E R S I O N } > = 4 0 0 0 1 4
2000-03-03 01:23:49 +00:00
. i f ! e x i s t s ( / u s r / l i b / l i b c r y p t o . s o )
.BEGIN :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } "This port requires the OpenSSL library, which is part of"
@${ ECHO_CMD } "the FreeBSD crypto distribution but not installed on your"
@${ ECHO_CMD } "machine. Please see the \"OpenSSL\" section in the handbook"
2002-08-04 09:04:12 +00:00
@${ ECHO_CMD } "(at \"http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/openssl.html\", for instance)"
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } "for instructions on how to obtain and install the FreeBSD"
@${ ECHO_CMD } "OpenSSL distribution."
2000-02-06 16:27:38 +00:00
@${ FALSE }
. e l s e
OPENSSLBASE = /usr
OPENSSLDIR = /etc/ssl
2000-09-22 01:17:17 +00:00
# OpenSSL in the base system may not include IDEA for patent licensing reasons.
2000-09-22 07:21:24 +00:00
. i f d e f i n e d ( M A K E _ I D E A ) & & ! d e f i n e d ( O P E N S S L _ I D E A )
OPENSSL_IDEA = ${ MAKE_IDEA }
. e l s e
2000-09-22 01:17:17 +00:00
OPENSSL_IDEA ?= NO
2000-09-22 07:21:24 +00:00
. e n d i f
2000-09-22 01:17:17 +00:00
. i f ${OPENSSL_IDEA} = = "NO"
2000-02-06 16:27:38 +00:00
# XXX This is a hack to work around the fact that /etc/make.conf clobbers
# our CFLAGS. It might not be enough for all future ports.
. i f d e f i n e d ( H A S _ C O N F I G U R E )
CFLAGS += -DNO_IDEA
. e l s e
OPENSSL_CFLAGS += -DNO_IDEA
2000-09-22 01:17:17 +00:00
. e n d i f
2000-02-06 16:27:38 +00:00
MAKE_ARGS += OPENSSL_CFLAGS = " ${ OPENSSL_CFLAGS } "
. e n d i f
. e n d i f
. e l s e
2001-05-23 02:47:02 +00:00
LIB_DEPENDS += crypto.2:${ PORTSDIR } /security/openssl
2000-02-06 16:27:38 +00:00
OPENSSLBASE ?= ${ LOCALBASE }
OPENSSLDIR ?= ${ OPENSSLBASE } /openssl
. e n d i f
OPENSSLLIB = ${ OPENSSLBASE } /lib
OPENSSLINC = ${ OPENSSLBASE } /include
MAKE_ENV += OPENSSLLIB = ${ OPENSSLLIB } OPENSSLINC = ${ OPENSSLINC } \
OPENSSLBASE = ${ OPENSSLBASE } OPENSSLDIR = ${ OPENSSLDIR }
. e n d i f
2000-05-06 10:45:35 +00:00
. i f d e f i n e d ( E M A C S _ P O R T _ N A M E )
. i n c l u d e "${PORTSDIR}/Mk/bsd.emacs.mk"
. e n d i f
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
. i f d e f i n e d ( U S E _ P Y T H O N )
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. i n c l u d e "${PORTSDIR}/Mk/bsd.python.mk"
. e n d i f
2002-03-28 11:24:43 +00:00
. i f d e f i n e d ( U S E _ J A V A )
. i n c l u d e "${PORTSDIR}/Mk/bsd.java.mk"
. e n d i f
2000-09-22 01:17:17 +00:00
. i f d e f i n e d ( U S E _ R U B Y ) | | d e f i n e d ( U S E _ L I B R U B Y )
. i n c l u d e "${PORTSDIR}/Mk/bsd.ruby.mk"
. e n d i f
2001-04-16 10:28:15 +00:00
. i f d e f i n e d ( U S E _ Q T ) | | d e f i n e d ( U S E _ Q T 2 ) | | d e f i n e d ( U S E _ Q T _ V E R ) | | d e f i n e d ( U S E _ K D E L I B S _ V E R ) | | d e f i n e d ( U S E _ K D E B A S E _ V E R )
. i n c l u d e "${PORTSDIR}/Mk/bsd.kde.mk"
. e n d i f
2000-10-05 01:32:21 +00:00
. i n c l u d e "${PORTSDIR}/Mk/bsd.gnome.mk"
2002-04-27 11:22:59 +00:00
# defaults to 4.x for 5.0-CURRENT and 4.5-STABLE; and 3.3.6 for all other branches
. i f $ { O S V E R S I O N } > 5 0 0 0 2 5 | | ( $ { O S V E R S I O N } > = 4 5 0 0 0 5 & & $ { O S V E R S I O N } < 5 0 0 0 0 0 )
2001-10-09 07:37:34 +00:00
XFREE86_VERSION ?= 4
. e l s e
2000-08-25 10:17:39 +00:00
XFREE86_VERSION ?= 3
2001-10-09 07:37:34 +00:00
. e n d i f
2000-08-25 10:17:39 +00:00
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
# Location of mounted CDROM(s) to search for files
CD_MOUNTPTS ?= /cdrom ${ CD_MOUNTPT }
1998-11-11 05:21:29 +00:00
. e n d i f
# End of pre-makefile section.
# Start of post-makefile section.
. i f ! d e f i n e d ( B E F O R E P O R T M K )
2000-01-17 12:43:10 +00:00
. i f d e f i n e d ( _ P O S T M K I N C L U D E D )
.BEGIN :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " ${ PKGNAME } : You cannot include bsd.port[.post].mk twice "
2000-01-17 12:43:10 +00:00
@${ FALSE }
. e n d i f
_POSTMKINCLUDED = yes
1998-11-11 05:21:29 +00:00
WRKDIR ?= ${ WRKDIRPREFIX } ${ .CURDIR } /work
. i f d e f i n e d ( N O _ W R K S U B D I R )
WRKSRC ?= ${ WRKDIR }
. e l s e
WRKSRC ?= ${ WRKDIR } /${ DISTNAME }
. e n d i f
2000-10-17 10:11:16 +00:00
PATCH_WRKSRC ?= ${ WRKSRC }
CONFIGURE_WRKSRC ?= ${ WRKSRC }
BUILD_WRKSRC ?= ${ WRKSRC }
INSTALL_WRKSRC ?= ${ WRKSRC }
2000-07-04 08:47:50 +00:00
PLIST_SUB += OSREL = ${ OSREL } PREFIX = %D LOCALBASE = ${ LOCALBASE } X11BASE = ${ X11BASE }
1998-11-11 05:21:29 +00:00
2001-01-16 09:25:16 +00:00
. i f d e f i n e d ( N O P O R T D O C S )
PLIST_SUB += PORTDOCS = "@comment "
. e l s e
PLIST_SUB += PORTDOCS = ""
. e n d i f
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
CONFIGURE_SHELL ?= ${ SH }
MAKE_SHELL ?= ${ SH }
CONFIGURE_ENV += SHELL = ${ SH } CONFIG_SHELL = ${ SH } PORTOBJFORMAT = ${ PORTOBJFORMAT }
1998-11-11 05:21:29 +00:00
SCRIPTS_ENV += PORTOBJFORMAT = ${ PORTOBJFORMAT }
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
MAKE_ENV += SHELL = ${ SH } PORTOBJFORMAT = ${ PORTOBJFORMAT }
1998-11-11 05:21:29 +00:00
PLIST_SUB += PORTOBJFORMAT = ${ PORTOBJFORMAT }
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. i f d e f i n e d ( M A N C O M P R E S S E D )
. i f ${MANCOMPRESSED} != yes && ${ MANCOMPRESSED } != no && \
${ MANCOMPRESSED } != maybe
.BEGIN :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " ${ PKGNAME } : Value of MANCOMPRESSED (is \" ${ MANCOMPRESSED } \") can only be \"yes\", \"no\" or \"maybe\" " .
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
@${ FALSE }
. e n d i f
. e n d i f
. i f d e f i n e d ( U S E _ I M A K E ) & & ${OPSYS} != OpenBSD && !defined( NO_INSTALL_MANPAGES)
MANCOMPRESSED ?= yes
. e l s e
MANCOMPRESSED ?= no
. e n d i f
2001-11-17 21:23:09 +00:00
. i f d e f i n e d ( P A T C H F I L E S )
2003-03-19 06:26:14 +00:00
.if ${PATCHFILES : M *.bz 2}x != x && defined (BZIP 2DEPENDS )
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
PATCH_DEPENDS += bzip2:${ PORTSDIR } /archivers/bzip2
. e n d i f
.if ${PATCHFILES : M *.zip }x != x
PATCH_DEPENDS += unzip:${ PORTSDIR } /archivers/unzip
2001-11-17 21:23:09 +00:00
. e n d i f
. e n d i f
2003-03-19 06:26:14 +00:00
. i f d e f i n e d ( U S E _ B Z I P 2 ) & & d e f i n e d ( B Z I P 2 D E P E N D S )
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
EXTRACT_DEPENDS += bzip2:${ PORTSDIR } /archivers/bzip2
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
. e n d i f
1999-04-28 06:20:23 +00:00
. i f d e f i n e d ( U S E _ Z I P )
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
EXTRACT_DEPENDS += unzip:${ PORTSDIR } /archivers/unzip
1999-04-28 06:20:23 +00:00
. e n d i f
1994-12-17 02:37:26 +00:00
. i f d e f i n e d ( U S E _ G M A K E )
1997-06-24 07:16:21 +00:00
BUILD_DEPENDS += gmake:${ PORTSDIR } /devel/gmake
2000-10-05 01:32:21 +00:00
CONFIGURE_ENV += MAKE = ${ GMAKE }
1997-06-24 07:16:21 +00:00
. e n d i f
Add USE_AUTO{CONF,MAKE}_VER following original idea from bsd.kde.mk
by will
1) Make selection of AUTO{CONF,MAKE} flexible depending on *_VER
variables.
2) This is backward compatible with previous behavior. For example,
{ACLOCAL,AUTO{CONF,HEADER,MAKE,RECONF,SCAN,UPDATE,IFNAMES}} are
set with default values even if USE_AUTO* are not set.
3) Have the defaults be devel/autoconf213 and devel/automake14 ports
(just set the USE_*VER?= to the latest values, or a bogus value).
If the user sets a bogus value, we use the default values.
4) Furthermore, add variables in the same sense of the
PTHREAD_* vars. We must be able to automagically patch the ports
based on the correct
{ACLOCAL,AUTO{CONF,HEADER,MAKE,RECONF,SCAN,UPDATE,IFNAMES}}
values.
5) Moreover, add {ACLOCAL,AUTO{MAKE,CONF}}_DIR variables pointing
to the right locations based on the *_VER variables, this is
useful if a port needs to grab files from those. This might seem
too much but if we want automagical, we should go this extra
mile.
Requested by: too many
Reviewed by: portmgr, ports
Approved by: portmgr (will), ports (silence)
2001-11-28 05:00:36 +00:00
2002-11-25 19:43:16 +00:00
######################################################################
# AUTOMAKE/AUTOCONF
# current => non-renamed, non-relocated version
2002-11-11 21:14:21 +00:00
2002-11-25 19:43:16 +00:00
########## private variables
# old_{am,ac}ver ==> numeric version of "old" port[*]
# cur_{am,ac}ver ==> numeric version of "current" port
# dev_{am,ac}ver ==> numeric version of "devel" port
# use_{am,ac}path ==> numeric version we are using here
# {am,ac}path ==> path to non-suffixed binary, if any
# autotools_path ==> string to prepend to PATH, if any
#
# [*] "default" version in case of USE_AUTOMAKE or USE_AUTOCONF w/o version
Add USE_AUTO{CONF,MAKE}_VER following original idea from bsd.kde.mk
by will
1) Make selection of AUTO{CONF,MAKE} flexible depending on *_VER
variables.
2) This is backward compatible with previous behavior. For example,
{ACLOCAL,AUTO{CONF,HEADER,MAKE,RECONF,SCAN,UPDATE,IFNAMES}} are
set with default values even if USE_AUTO* are not set.
3) Have the defaults be devel/autoconf213 and devel/automake14 ports
(just set the USE_*VER?= to the latest values, or a bogus value).
If the user sets a bogus value, we use the default values.
4) Furthermore, add variables in the same sense of the
PTHREAD_* vars. We must be able to automagically patch the ports
based on the correct
{ACLOCAL,AUTO{CONF,HEADER,MAKE,RECONF,SCAN,UPDATE,IFNAMES}}
values.
5) Moreover, add {ACLOCAL,AUTO{MAKE,CONF}}_DIR variables pointing
to the right locations based on the *_VER variables, this is
useful if a port needs to grab files from those. This might seem
too much but if we want automagical, we should go this extra
mile.
Requested by: too many
Reviewed by: portmgr, ports
Approved by: portmgr (will), ports (silence)
2001-11-28 05:00:36 +00:00
2002-11-25 19:43:16 +00:00
##########
#.if defined(AUTOMAKE) || defined(AUTOCONF)
#BROKEN="AUTOMAKE and AUTOCONF are read-only values. \
# You may not assign to them"
#.endif # defined(AUTOMAKE) || defined(AUTOCONF)
########## versions
old_amver = 14
cur_amver = 15
dev_amver = 17
old_acver = 213
cur_acver = 253
dev_acver = 254
Add USE_AUTO{CONF,MAKE}_VER following original idea from bsd.kde.mk
by will
1) Make selection of AUTO{CONF,MAKE} flexible depending on *_VER
variables.
2) This is backward compatible with previous behavior. For example,
{ACLOCAL,AUTO{CONF,HEADER,MAKE,RECONF,SCAN,UPDATE,IFNAMES}} are
set with default values even if USE_AUTO* are not set.
3) Have the defaults be devel/autoconf213 and devel/automake14 ports
(just set the USE_*VER?= to the latest values, or a bogus value).
If the user sets a bogus value, we use the default values.
4) Furthermore, add variables in the same sense of the
PTHREAD_* vars. We must be able to automagically patch the ports
based on the correct
{ACLOCAL,AUTO{CONF,HEADER,MAKE,RECONF,SCAN,UPDATE,IFNAMES}}
values.
5) Moreover, add {ACLOCAL,AUTO{MAKE,CONF}}_DIR variables pointing
to the right locations based on the *_VER variables, this is
useful if a port needs to grab files from those. This might seem
too much but if we want automagical, we should go this extra
mile.
Requested by: too many
Reviewed by: portmgr, ports
Approved by: portmgr (will), ports (silence)
2001-11-28 05:00:36 +00:00
2002-11-25 19:43:16 +00:00
########## automake setup
2002-11-27 16:40:36 +00:00
. i f d e f i n e d ( U S E _ A U T O M A K E _ V E R )
2002-11-25 19:43:16 +00:00
USE_AUTOMAKE ?= yes
2002-11-27 16:40:36 +00:00
WANT_AUTOMAKE_VER ?= ${ USE_AUTOMAKE_VER }
. e n d i f # defined(USE_AUTOMAKE_VER)
. i f d e f i n e d ( U S E _ A U T O M A K E )
USE_AUTOCONF ?= yes
WANT_AUTOMAKE_VER ?= ${ old_amver }
. e n d i f # defined(USE_AUTOMAKE)
. i f d e f i n e d ( W A N T _ A U T O M A K E _ V E R )
GNU_CONFIGURE ?= yes
use_amver = ${ WANT_AUTOMAKE_VER : L }
2002-11-25 19:43:16 +00:00
. i f ${use_amver} = = ${ cur_amver }
ACLOCAL_DIR = ${ LOCALBASE } /share/aclocal
AUTOMAKE_DIR = ${ LOCALBASE } /share/automake
2002-12-05 22:43:22 +00:00
BUILD_DEPENDS += ${ LOCALBASE } /bin/automake:${ PORTSDIR } /devel/automake
2002-11-27 16:40:36 +00:00
WANT_AUTOCONF_VER ?= ${ cur_acver }
2002-11-25 19:43:16 +00:00
. e l i f ${use_amver} = = ${ old_amver } || ${ use_amver } = = ${ dev_amver }
ACLOCAL_DIR = ${ LOCALBASE } /share/aclocal${ use_amver }
AUTOMAKE_DIR = ${ LOCALBASE } /share/automake${ use_amver }
ampath = ${ LOCALBASE } /libexec/automake${ use_amver } :
2002-12-05 22:43:22 +00:00
BUILD_DEPENDS += ${ ampath : S / : // } /automake:${ PORTSDIR } /devel/automake${ use_amver }
2002-11-25 19:43:16 +00:00
. i f ${use_amver} = = ${ old_amver }
AUTOMAKE_ARGS += -i
2002-11-27 16:40:36 +00:00
WANT_AUTOCONF_VER ?= ${ old_acver }
2002-11-25 19:43:16 +00:00
. e l s e
2002-11-27 16:40:36 +00:00
WANT_AUTOCONF_VER ?= ${ dev_acver }
2002-11-25 19:43:16 +00:00
. e n d i f # ${use_amver} == ${old_amver}
. e l s e # bad automake version
BROKEN = " unknown AUTOMAKE version: ${ USE_AUTOMAKE_VER } "
. e n d i f # ${use_amver} == ${cur_amver}
2002-11-27 16:40:36 +00:00
. e n d i f # defined(WANT_AUTOMAKE_VER)
2002-11-25 19:43:16 +00:00
########## autoconf setup
2002-11-27 16:40:36 +00:00
. i f d e f i n e d ( U S E _ A U T O C O N F _ V E R )
2002-11-25 19:43:16 +00:00
USE_AUTOCONF ?= yes
2002-11-27 16:40:36 +00:00
WANT_AUTOCONF_VER ?= ${ USE_AUTOCONF_VER }
. e n d i f # defined(USE_AUTOCONF_VER)
. i f d e f i n e d ( U S E _ A U T O C O N F )
WANT_AUTOCONF_VER ?= ${ old_acver }
. e n d i f # defined(USE_AUTOCONF)
. i f d e f i n e d ( W A N T _ A U T O C O N F _ V E R )
GNU_CONFIGURE ?= yes
use_acver = ${ WANT_AUTOCONF_VER : L }
2002-11-25 19:43:16 +00:00
. i f ${use_acver} = = ${ cur_acver }
AUTOCONF_DIR = ${ LOCALBASE } /share/autoconf
2002-12-05 22:43:22 +00:00
BUILD_DEPENDS += ${ LOCALBASE } /bin/autoconf:${ PORTSDIR } /devel/autoconf
2002-11-25 19:43:16 +00:00
. e l i f ${use_acver} = = ${ old_acver } || ${ use_acver } = = ${ dev_acver }
AUTOCONF_DIR = ${ LOCALBASE } /share/autoconf${ use_acver }
acpath = ${ LOCALBASE } /libexec/autoconf${ use_acver }
2002-12-05 22:43:22 +00:00
BUILD_DEPENDS += ${ acpath } /autoconf:${ PORTSDIR } /devel/autoconf${ use_acver }
2002-11-25 19:43:16 +00:00
. e l s e # bad autoconf version
BROKEN = " unknown AUTOCONF version: ${ USE_AUTOCONF_VER } "
. e n d i f # ${use_acver} == ${cur_acver}
2002-11-27 16:40:36 +00:00
. e n d i f # defined(WANT_AUTOCONF_VER)
2002-11-25 19:43:16 +00:00
########## set up paths to tools
. i f d e f i n e d ( a m p a t h )
autotools_path = ${ ampath } ${ acpath }
. e l i f d e f i n e d ( a c p a t h )
autotools_path = ${ acpath }
. e n d i f # defined(ampath)
########## prefix to path, add to env vars
. i f d e f i n e d ( a u t o t o o l s _ p a t h )
MAKE_ENV += PATH = ${ autotools_path } :${ PATH }
CONFIGURE_ENV += PATH = ${ autotools_path } :${ PATH }
SCRIPTS_ENV += PATH = ${ autotools_path } :${ PATH }
AUTOCONF_ENV += PATH = ${ autotools_path } :${ PATH }
AUTOMAKE_ENV += PATH = ${ autotools_path } :${ PATH }
AUTOTOOLS_ENV += PATH = ${ autotools_path } :${ PATH }
. e n d i f # defined(autotools_path)
########## set up automake "names"
. i f d e f i n e d ( u s e _ a m v e r )
. i f ! d e f i n e d ( a m p a t h )
ACLOCAL ?= aclocal
AUTOMAKE ?= automake
. e l s e # defined(ampath)
ACLOCAL ?= ${ ampath : S / : // } /aclocal
AUTOMAKE ?= ${ ampath : S / : // } /automake
. e n d i f # !defined(ampath)
. e n d i f # defined(use_amver)
########## set up autoconf "names"
. i f d e f i n e d ( u s e _ a c v e r )
. i f ! d e f i n e d ( a c p a t h )
AUTOCONF ?= autoconf
AUTOHEADER ?= autoheader
AUTOIFNAMES ?= ifnames
AUTORECONF ?= autoreconf
AUTOSCAN ?= autoscan
AUTOUPDATE ?= autoupdate
. e l s e # defined(acpath)
AUTOCONF ?= ${ acpath } /autoconf
AUTOHEADER ?= ${ acpath } /autoheader
AUTOIFNAMES ?= ${ acpath } /ifnames
AUTORECONF ?= ${ acpath } /autoreconf
AUTOSCAN ?= ${ acpath } /autoscan
AUTOUPDATE ?= ${ acpath } /autoupdate
. e n d i f # !defined(acpath)
. e n d i f # defined(use_acver)
########## stupid port error checking
# Set all unset vars for the programs to ${FALSE}. This way
# we can catch a certain class of port Makefile errors quickly.
ACLOCAL ?= ${ FALSE }
AUTOMAKE ?= ${ FALSE }
AUTOCONF ?= ${ FALSE }
AUTOHEADER ?= ${ FALSE }
AUTOIFNAMES ?= ${ FALSE }
AUTORECONF ?= ${ FALSE }
AUTOSCAN ?= ${ FALSE }
AUTOUPDATE ?= ${ FALSE }
2002-11-27 16:40:36 +00:00
ACLOCAL_DIR ?= ${ NONEXISTENT }
AUTOMAKE_DIR ?= ${ NONEXISTENT }
AUTOCONF_DIR ?= ${ NONEXISTENT }
2002-11-25 19:43:16 +00:00
# END AUTOMAKE/AUTOCONF
######################################################################
1999-05-06 12:07:57 +00:00
. i f d e f i n e d ( U S E _ L I B T O O L )
GNU_CONFIGURE = yes
BUILD_DEPENDS += libtool:${ PORTSDIR } /devel/libtool
. i f d e f i n e d ( U S E _ A U T O C O N F )
LIBTOOLFILES ?= aclocal.m4
. e l s e
LIBTOOLFILES ?= configure
. e n d i f
1999-09-11 01:11:21 +00:00
LIBTOOLFLAGS ?= --disable-ltlibs
1999-05-06 12:07:57 +00:00
. e n d i f
2002-06-04 21:34:43 +00:00
. i f d e f i n e d ( U S E _ G C C ) & & ${USE_GCC} = = 2.95 && ( ${ OSVERSION } < 400012 || ${ OSVERSION } > 500034 )
1999-08-22 11:20:25 +00:00
CC = gcc295
CXX = g++295
2001-02-17 00:46:26 +00:00
BUILD_DEPENDS += gcc295:${ PORTSDIR } /lang/gcc295
1999-09-08 06:04:43 +00:00
MAKE_ENV += CC = ${ CC } CXX = ${ CXX }
1999-08-22 11:20:25 +00:00
. e n d i f
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
. i f d e f i n e d ( U S E _ G C C ) & & ${USE_GCC} = = 3.1 && ( ${ OSVERSION } < 500035 || ${ OSVERSION } > 500038 )
2002-06-04 21:34:43 +00:00
CC = gcc31
CXX = g++31
BUILD_DEPENDS += gcc31:${ PORTSDIR } /lang/gcc31
2001-09-23 00:33:58 +00:00
MAKE_ENV += CC = ${ CC } CXX = ${ CXX }
. e n d i f
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
. i f d e f i n e d ( U S E _ G C C ) & & ${USE_GCC} = = 3.2 && ${ OSVERSION } < 500039
CC = gcc32
CXX = g++32
BUILD_DEPENDS += gcc32:${ PORTSDIR } /lang/gcc32
. e n d i f
1998-08-12 01:47:47 +00:00
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
. i f d e f i n e d ( U S E _ G E T O P T _ L O N G )
. i f $ { O S V E R S I O N } < 5 0 0 0 4 1
2003-04-19 22:35:28 +00:00
LIB_DEPENDS += gnugetopt.1:${ PORTSDIR } /devel/libgnugetopt
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
CPPFLAGS += -I${ LOCALBASE } /include
LDFLAGS += -L${ LOCALBASE } /lib -lgnugetopt
CONFIGURE_ENV += CPPFLAGS = " ${ CPPFLAGS } " LDFLAGS = " ${ LDFLAGS } "
. e n d i f
. e n d i f
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. i f d e f i n e d ( U S E _ L I N U X )
2000-09-22 01:17:17 +00:00
RUN_DEPENDS += ${ LINUXBASE } /etc/redhat-release:${ PORTSDIR } /emulators/linux_base
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. e n d i f
2000-11-07 23:28:20 +00:00
. i f d e f i n e d ( U S E _ M O T I F )
2000-08-15 22:39:00 +00:00
USE_XPM = yes
2001-01-16 09:25:16 +00:00
. i f ! d e f i n e d ( N O _ O P E N M O T I F )
2002-09-13 18:47:30 +00:00
LIB_DEPENDS += Xm.3:${ PORTSDIR } /x11-toolkits/open-motif
2000-08-15 22:39:00 +00:00
. e n d i f
2001-01-16 09:25:16 +00:00
. e n d i f
1999-02-14 06:49:55 +00:00
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. i f d e f i n e d ( U S E _ F R E E T Y P E )
LIB_DEPENDS += ttf.4:${ PORTSDIR } /print/freetype
. e n d i f
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. i f ${XFREE86_VERSION} = = 3
2002-01-23 03:48:44 +00:00
. i f d e f i n e d ( U S E _ I M A K E )
BUILD_DEPENDS += imake:${ PORTSDIR } /devel/imake
. e n d i f
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. i f d e f i n e d ( U S E _ X P M )
LIB_DEPENDS += Xpm.4:${ PORTSDIR } /graphics/xpm
. e n d i f
. i f d e f i n e d ( U S E _ D G S )
LIB_DEPENDS += dps.0:${ PORTSDIR } /x11/dgs
. e n d i f
. i f d e f i n e d ( U S E _ M E S A )
LIB_DEPENDS += GL.14:${ PORTSDIR } /graphics/Mesa3
. e n d i f
2000-08-15 22:39:00 +00:00
XAWVER = 6
2001-11-17 19:56:29 +00:00
PKG_IGNORE_DEPENDS ?= '^XFree86-3\.'
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. e l s e
2000-08-15 22:39:00 +00:00
. i f d e f i n e d ( U S E _ I M A K E )
2003-03-12 00:28:17 +00:00
BUILD_DEPENDS += ${ X11BASE } /lib/X11/config/date.def:${ PORTSDIR } /devel/imake-4
2002-03-16 23:37:02 +00:00
RUN_DEPENDS += mkhtmlindex:${ PORTSDIR } /devel/imake-4
. e n d i f
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. i f d e f i n e d ( U S E _ X P M ) | | d e f i n e d ( U S E _ D G S )
2000-08-15 22:39:00 +00:00
USE_XLIB = yes
. e n d i f
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. i f d e f i n e d ( U S E _ M E S A )
2001-08-31 02:13:02 +00:00
LIB_DEPENDS += glut.3:${ PORTSDIR } /graphics/Mesa3
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. e n d i f
2000-08-15 22:39:00 +00:00
XAWVER = 7
2000-11-13 08:19:05 +00:00
PKG_IGNORE_DEPENDS ?= 'this_port_does_not_exist'
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. e n d i f
PLIST_SUB += XAWVER = ${ XAWVER }
1998-12-12 07:39:30 +00:00
2000-01-21 11:08:23 +00:00
. i f d e f i n e d ( U S E _ B I S O N )
. i f $ { O S V E R S I O N } > = 4 0 0 0 1 4
BUILD_DEPENDS += bison:${ PORTSDIR } /devel/bison
. e n d i f
. e n d i f
2002-03-16 22:47:00 +00:00
. i f $ { O S V E R S I O N } > = 5 0 0 0 3 2
PERL_VERSION ?= 5.6.1
PERL_VER ?= 5.6.1
PERL_ARCH ?= mach
. e l s e
2000-07-04 08:47:50 +00:00
. i f $ { O S V E R S I O N } > = 5 0 0 0 0 7
2001-11-05 21:28:44 +00:00
PERL_VERSION ?= 5.6.0
PERL_VER ?= 5.6.0
PERL_ARCH ?= mach
2000-07-04 08:47:50 +00:00
. e l s e
1999-06-11 11:59:10 +00:00
. i f $ { O S V E R S I O N } > = 3 0 0 0 0 0
2001-11-05 21:28:44 +00:00
PERL_VERSION ?= 5.00503
1999-06-11 11:59:10 +00:00
. e l s e
2001-11-05 21:28:44 +00:00
PERL_VERSION ?= 5.00502
1999-06-11 11:59:10 +00:00
. e n d i f
2001-11-05 21:28:44 +00:00
PERL_VER ?= 5.005
PERL_ARCH ?= ${ ARCH } -freebsd
2000-07-04 08:47:50 +00:00
. e n d i f
2002-03-16 22:47:00 +00:00
. e n d i f
2002-11-25 19:43:16 +00:00
SITE_PERL ?= ${ LOCALBASE } /lib/perl5/site_perl/${ PERL_VER }
1998-08-12 09:47:47 +00:00
PLIST_SUB += PERL_VERSION = ${ PERL_VERSION } \
1999-01-11 13:04:18 +00:00
PERL_VER = ${ PERL_VER } \
2002-11-25 19:43:16 +00:00
PERL_ARCH = ${ PERL_ARCH } \
SITE_PERL = ${ SITE_PERL : S |^ ${ LOCALBASE } /|| }
1999-01-11 13:04:18 +00:00
2002-11-17 05:16:16 +00:00
. i f d e f i n e d ( P E R L _ C O N F I G U R E )
USE_PERL5 = yes
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
USE_REINPLACE = yes
2002-11-17 05:16:16 +00:00
. e n d i f
2002-06-07 21:30:47 +00:00
. i f e x i s t s ( / u s r / b i n / p e r l 5 ) & & $ { O S V E R S I O N } > = 3 0 0 0 0 0 & & $ { O S V E R S I O N } < 5 0 0 0 3 6
2002-11-17 05:16:16 +00:00
. i f ! e x i s t s ( / u s r / b i n / p e r l $ { P E R L _ V E R S I O N } ) & & ( d e f i n e d ( U S E _ P E R L 5 ) | | \
defined( USE_PERL5_BUILD) || defined( USE_PERL5_RUN) )
2000-08-15 22:39:00 +00:00
pre-everything ::
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } "Error: you don't have the right version of perl in /usr/bin."
1998-09-16 12:04:38 +00:00
@${ FALSE }
. e n d i f
PERL5 = /usr/bin/perl${ PERL_VERSION }
1998-10-06 21:12:14 +00:00
PERL = /usr/bin/perl
1998-09-10 06:38:02 +00:00
. e l s e
PERL5 = ${ LOCALBASE } /bin/perl${ PERL_VERSION }
1998-10-06 21:12:14 +00:00
PERL = ${ LOCALBASE } /bin/perl
2002-11-17 05:16:16 +00:00
. i f d e f i n e d ( U S E _ P E R L 5 ) | | d e f i n e d ( U S E _ P E R L 5 _ B U I L D )
BUILD_DEPENDS += ${ PERL5 } :${ PORTSDIR } /lang/perl5
. e n d i f
. i f d e f i n e d ( U S E _ P E R L 5 ) | | d e f i n e d ( U S E _ P E R L 5 _ R U N )
RUN_DEPENDS += ${ PERL5 } :${ PORTSDIR } /lang/perl5
1998-09-10 06:38:02 +00:00
. e n d i f
1994-12-17 02:37:26 +00:00
. e n d i f
1998-08-12 01:47:47 +00:00
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. i f d e f i n e d ( U S E _ X L I B )
. i f ${XFREE86_VERSION} = = 3
# Don't try to build XFree86-3 even if ALWAYS_BUILD_DEPENDS is defined --
1999-04-08 07:13:38 +00:00
# it's just too big....
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. i f ! d e f i n e d ( A L W A Y S _ B U I L D _ D E P E N D S )
1998-09-16 12:04:38 +00:00
LIB_DEPENDS += X11.6:${ PORTSDIR } /x11/XFree86
1998-08-05 09:29:13 +00:00
. e n d i f
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. e l s e
LIB_DEPENDS += X11.6:${ PORTSDIR } /x11/XFree86-4-libraries
. e n d i f
2002-03-16 23:37:02 +00:00
# Add explicit X options to avoid problems with false positives in configure
. i f d e f i n e d ( G N U _ C O N F I G U R E )
CONFIGURE_ARGS += --x-libraries= ${ X11BASE } /lib --x-includes= ${ X11BASE } /include
. e n d i f
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. e n d i f
1994-08-21 13:12:57 +00:00
2000-10-05 01:32:21 +00:00
. i n c l u d e "${PORTSDIR}/Mk/bsd.gnome.mk"
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
. i f d e f i n e d ( U S E _ P Y T H O N )
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
. i n c l u d e "${PORTSDIR}/Mk/bsd.python.mk"
. e n d i f
1994-09-11 12:01:05 +00:00
. i f e x i s t s ( $ { P O R T S D I R } / . . / M a k e f i l e . i n c )
. i n c l u d e "${PORTSDIR}/../Makefile.inc"
. e n d i f
2002-07-09 13:37:26 +00:00
# Special macro for doing in-place file editing using regexps
. i f d e f i n e d ( U S E _ R E I N P L A C E )
REINPLACE_ARGS ?= -i.bak
. i f $ { O S V E R S I O N } < 4 6 0 1 0 1 | | ( $ { O S V E R S I O N } > = 5 0 0 0 0 0 & & $ { O S V E R S I O N } < 5 0 0 0 3 6 )
BUILD_DEPENDS += ${ LOCALBASE } /bin/sed_inplace:${ PORTSDIR } /textproc/sed_inplace
REINPLACE_CMD ?= ${ LOCALBASE } /bin/sed_inplace ${ REINPLACE_ARGS }
. e l s e
REINPLACE_CMD ?= ${ SED } ${ REINPLACE_ARGS }
. e n d i f
. e n d i f
2002-03-25 08:48:47 +00:00
# Names of cookies used to skip already completed stages
2001-09-22 11:42:33 +00:00
EXTRACT_COOKIE ?= ${ WRKDIR } /.extract_done.${ PKGNAME }
CONFIGURE_COOKIE ?= ${ WRKDIR } /.configure_done.${ PKGNAME }
INSTALL_COOKIE ?= ${ WRKDIR } /.install_done.${ PKGNAME }
BUILD_COOKIE ?= ${ WRKDIR } /.build_done.${ PKGNAME }
PATCH_COOKIE ?= ${ WRKDIR } /.patch_done.${ PKGNAME }
PACKAGE_COOKIE ?= ${ WRKDIR } /.package_done.${ PKGNAME }
1994-08-22 11:20:07 +00:00
1994-08-28 14:41:34 +00:00
# How to do nothing. Override if you, for some strange reason, would rather
# do something.
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
DO_NADA ?= ${ TRUE }
1994-08-28 14:41:34 +00:00
2000-06-14 02:14:49 +00:00
# Use this as the first operand to always build dependency.
NONEXISTENT ?= /nonexistent
1994-08-21 13:12:57 +00:00
# Miscellaneous overridable commands:
1994-09-10 22:26:47 +00:00
GMAKE ?= gmake
1999-09-11 01:11:21 +00:00
LIBTOOL ?= libtool
1995-03-19 12:49:06 +00:00
XMKMF ?= xmkmf -a
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
MKHTMLINDEX ?= ${ X11BASE } /bin/mkhtmlindex
1997-01-12 12:37:48 +00:00
. i f e x i s t s ( / s b i n / m d 5 )
MD5 ?= /sbin/md5
. e l i f e x i s t s ( / b i n / m d 5 )
MD5 ?= /bin/md5
. e l i f e x i s t s ( / u s r / b i n / m d 5 )
1996-11-01 07:22:37 +00:00
MD5 ?= /usr/bin/md5
. e l s e
1997-01-12 12:37:48 +00:00
MD5 ?= md5
1996-11-01 07:22:37 +00:00
. e n d i f
2000-10-01 17:27:40 +00:00
MD5_FILE ?= ${ MASTERDIR } /distinfo
Add NO_CDROM, RESTRICTED, BROKEN and Motif support.
(1) The new NO_CDROM Boolean variable means "don't put the distfile/
package on the CDROM you're going to sell". It will basically
turn off everything if FOR_CDROM is set.
Many of the NO_PACKAGE ports are actually "don't sell for profit"
types, which we shouldn't have any problem distributing via ftp.
(2) The new RESTRICTED Boolean variable means don't build this unless
you know what you are doing. It doesn't have any effect unless
NO_RESTRICTED is also set.
(3) BROKEN means this port is broken. At least it will now show up in
INDEX and README.html, and give people more incentive to fix (I
hope).
RESTRICTED and BROKEN are expected to replace the pseudo-targets
in parent Makefiles. (The RESTRICTED and BROKEN list didn't do
anything before, they were solely for grepping purposes.)
(4) The Motif support brings in four new variables: REQUIRES_MOTIF,
which the porter sets for ports that require Motif to build;
HAVE_MOTIF, which the user sets to indicate the system has Motif;
MOTIF_STATIC, which the user sets to indicate that the static
libXm, instead af the default dynamic library, is to be used; and
MOTIFLIB, which is set to "${X11BASE}/lib/libXm.a" or
"-L${X11BASE}/lib -lXm", depending on whether MOTIF_STATIC is set.
The porter is expected to replace all occurrences of libXm in the
{Im,M}akefiles with ${MOTIFLIB}, and this will allow both dynamic
linkage (for users with Motif) and static linkage (for those who
build packages to be used by those withot Motif, i.e., me ;)
automatically.
Original Motif support idea by: graichen
1996-04-12 08:08:36 +00:00
1994-09-11 12:55:54 +00:00
MAKE_FLAGS ?= -f
MAKEFILE ?= Makefile
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
MAKE_ENV += PREFIX = ${ PREFIX } LOCALBASE = ${ LOCALBASE } X11BASE = ${ X11BASE } MOTIFLIB = " ${ MOTIFLIB } " LIBDIR = " ${ LIBDIR } " CFLAGS = " ${ CFLAGS } " CXXFLAGS = " ${ CXXFLAGS } " MANPREFIX = " ${ MANPREFIX } "
1994-09-09 06:21:43 +00:00
2001-03-24 21:35:22 +00:00
. i f $ { O S V E R S I O N } < 5 0 0 0 1 6
PTHREAD_CFLAGS = -D_THREAD_SAFE
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
PTHREAD_LIBS = -pthread
2001-03-24 21:35:22 +00:00
. e l s e
2002-02-24 16:54:34 +00:00
PTHREAD_CFLAGS = -D_THREAD_SAFE
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
PTHREAD_LIBS = -lc_r
2001-03-24 21:35:22 +00:00
. e n d i f
1997-01-12 12:37:48 +00:00
. i f e x i s t s ( / u s r / b i n / f e t c h )
1999-03-29 07:07:59 +00:00
# avoid -A for 2.2 -- it's not ported to that branch
1999-03-09 11:27:34 +00:00
. i f $ { O S V E R S I O N } < 3 0 0 0 0 0
FETCH_CMD ?= /usr/bin/fetch
. e l s e
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
FETCH_CMD ?= /usr/bin/fetch -ARr
FETCH_REGET ?= 1
1999-03-09 11:27:34 +00:00
. e n d i f
1998-09-22 23:58:49 +00:00
#FETCH_BEFORE_ARGS+= $${CKSIZE:+-S $$CKSIZE}
1997-01-12 12:37:48 +00:00
. e l s e
FETCH_CMD ?= /usr/bin/ftp
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
FETCH_REGET ?= 0
1997-01-12 12:37:48 +00:00
. e n d i f
1994-09-09 06:21:43 +00:00
1995-06-26 07:01:20 +00:00
TOUCH ?= /usr/bin/touch
1994-11-01 18:09:22 +00:00
TOUCH_FLAGS ?= -f
2003-05-06 05:15:18 +00:00
DISTORIG ?= .bak.orig
1995-06-26 07:01:20 +00:00
PATCH ?= /usr/bin/patch
1994-09-28 14:19:30 +00:00
PATCH_STRIP ?= -p0
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
PATCH_DIST_STRIP ?= -p0
1994-12-10 18:07:38 +00:00
. i f d e f i n e d ( P A T C H _ D E B U G )
1996-08-17 10:16:02 +00:00
PATCH_DEBUG_TMP = yes
2000-10-17 10:11:16 +00:00
PATCH_ARGS ?= -d ${ PATCH_WRKSRC } -E ${ PATCH_STRIP }
2003-05-06 05:15:18 +00:00
PATCH_DIST_ARGS ?= -b ${ DISTORIG } -d ${ PATCH_WRKSRC } -E ${ PATCH_DIST_STRIP }
1994-12-10 18:07:38 +00:00
. e l s e
1996-08-17 10:16:02 +00:00
PATCH_DEBUG_TMP = no
2000-10-17 10:11:16 +00:00
PATCH_ARGS ?= -d ${ PATCH_WRKSRC } --forward --quiet -E ${ PATCH_STRIP }
2003-05-06 05:15:18 +00:00
PATCH_DIST_ARGS ?= -b ${ DISTORIG } -d ${ PATCH_WRKSRC } --forward --quiet -E ${ PATCH_DIST_STRIP }
1994-12-10 18:07:38 +00:00
. e n d i f
1995-10-11 09:25:58 +00:00
. i f d e f i n e d ( B A T C H )
PATCH_ARGS += --batch
PATCH_DIST_ARGS += --batch
. e n d i f
1994-09-28 14:19:30 +00:00
1995-06-24 10:27:23 +00:00
. i f d e f i n e d ( P A T C H _ C H E C K _ O N L Y )
PATCH_ARGS += -C
PATCH_DIST_ARGS += -C
. e n d i f
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
. i f ${PATCH} = = "/usr/bin/patch"
PATCH_ARGS += -b .orig
PATCH_DIST_ARGS += -b .orig
. e n d i f
1997-01-12 12:37:48 +00:00
. i f e x i s t s ( / b i n / t a r )
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
TAR ?= /bin/tar
1997-01-12 12:37:48 +00:00
. e l s e
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
TAR ?= /usr/bin/tar
1997-01-12 12:37:48 +00:00
. e n d i f
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
# EXTRACT_SUFX is defined in .pre.mk section
1999-04-28 06:20:23 +00:00
. i f d e f i n e d ( U S E _ Z I P )
EXTRACT_CMD ?= unzip
EXTRACT_BEFORE_ARGS ?= -q
EXTRACT_AFTER_ARGS ?= -d ${ WRKDIR }
. e l s e
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
EXTRACT_BEFORE_ARGS ?= -dc
EXTRACT_AFTER_ARGS ?= | ${ TAR } -xf -
. i f d e f i n e d ( U S E _ B Z I P 2 )
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
EXTRACT_CMD ?= ${ BZIP2_CMD }
1995-03-22 21:28:31 +00:00
. e l s e
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
EXTRACT_CMD ?= ${ GZIP_CMD }
1995-03-22 21:28:31 +00:00
. e n d i f
1999-04-28 06:20:23 +00:00
. e n d i f
1994-08-21 13:12:57 +00:00
1995-04-19 15:02:26 +00:00
# Figure out where the local mtree file is
2000-06-14 02:14:49 +00:00
. i f ! d e f i n e d ( M T R E E _ F I L E ) & & ! d e f i n e d ( N O _ M T R E E )
1998-08-05 09:29:13 +00:00
. i f d e f i n e d ( U S E _ X _ P R E F I X )
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. i f ${XFREE86_VERSION} = = 3
1997-06-04 00:12:19 +00:00
MTREE_FILE = /etc/mtree/BSD.x11.dist
. e l s e
2000-08-25 10:17:39 +00:00
MTREE_FILE = /etc/mtree/BSD.x11-4.dist
(1) Add new variable, XFREE86_VERSION, to specify which version of
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm
2000-08-03 09:28:57 +00:00
. e n d i f
. e l s e
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
. i f ${PREFIX} = = /usr
MTREE_FILE = /etc/mtree/BSD.usr.dist
. e l s e
1997-06-04 00:12:19 +00:00
MTREE_FILE = /etc/mtree/BSD.local.dist
1995-04-19 15:02:26 +00:00
. e n d i f
1995-06-25 06:30:51 +00:00
. e n d i f
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
. e n d i f
1997-06-04 00:12:19 +00:00
MTREE_CMD ?= /usr/sbin/mtree
2000-09-22 01:17:17 +00:00
MTREE_ARGS ?= -U ${ MTREE_FOLLOWS_SYMLINKS } -f ${ MTREE_FILE } -d -e -p
1995-04-19 15:02:26 +00:00
2002-01-23 03:48:44 +00:00
# Determine whether or not we can use rootly owner/group functions.
UID != id -u
. i f ${UID} = = 0
_BINOWNGRP = -o ${ BINOWN } -g ${ BINGRP }
_SHROWNGRP = -o ${ SHAREOWN } -g ${ SHAREGRP }
_MANOWNGRP = -o ${ MANOWN } -g ${ MANGRP }
. e l s e
_BINOWNGRP =
_SHROWNGRP =
_MANOWNGRP =
. e n d i f
1996-08-15 05:55:33 +00:00
# A few aliases for *-install targets
INSTALL_PROGRAM = \
2002-01-23 03:48:44 +00:00
${ INSTALL } ${ COPY } ${ STRIP } ${ _BINOWNGRP } -m ${ BINMODE }
1996-08-15 05:55:33 +00:00
INSTALL_SCRIPT = \
2002-01-23 03:48:44 +00:00
${ INSTALL } ${ COPY } ${ _BINOWNGRP } -m ${ BINMODE }
1996-08-15 05:55:33 +00:00
INSTALL_DATA = \
2002-01-23 03:48:44 +00:00
${ INSTALL } ${ COPY } ${ _SHROWNGRP } -m ${ SHAREMODE }
1996-08-15 05:55:33 +00:00
INSTALL_MAN = \
2002-01-23 03:48:44 +00:00
${ INSTALL } ${ COPY } ${ _MANOWNGRP } -m ${ MANMODE }
1996-08-15 05:55:33 +00:00
1997-01-12 11:48:26 +00:00
INSTALL_MACROS = BSD_INSTALL_PROGRAM = " ${ INSTALL_PROGRAM } " \
BSD_INSTALL_SCRIPT = " ${ INSTALL_SCRIPT } " \
BSD_INSTALL_DATA = " ${ INSTALL_DATA } " \
BSD_INSTALL_MAN = " ${ INSTALL_MAN } "
MAKE_ENV += ${ INSTALL_MACROS }
SCRIPTS_ENV += ${ INSTALL_MACROS }
1995-05-13 05:37:45 +00:00
# The user can override the NO_PACKAGE by specifying this from
# the make command line
. i f d e f i n e d ( F O R C E _ P A C K A G E )
. u n d e f N O _ P A C K A G E
. e n d i f
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
COMMENTFILE ?= ${ PKGDIR } /pkg-comment
2000-10-01 17:27:40 +00:00
DESCR ?= ${ PKGDIR } /pkg-descr
PLIST ?= ${ PKGDIR } /pkg-plist
PKGINSTALL ?= ${ PKGDIR } /pkg-install
PKGDEINSTALL ?= ${ PKGDIR } /pkg-deinstall
PKGREQ ?= ${ PKGDIR } /pkg-req
PKGMESSAGE ?= ${ PKGDIR } /pkg-message
TMPPLIST ?= ${ WRKDIR } /.PLIST.mktmp
1997-02-23 13:24:45 +00:00
2001-01-16 09:25:16 +00:00
. i f $ { O S V E R S I O N } > = 4 0 0 0 0 0
. f o r _ C A T E G O R Y i n $ { C A T E G O R I E S }
PKGCATEGORY ?= ${ _CATEGORY }
. e n d f o r
_PORTDIRNAME != ${ BASENAME } ${ .CURDIR }
PORTDIRNAME ?= ${ _PORTDIRNAME }
PKGORIGIN ?= ${ PKGCATEGORY } /${ PORTDIRNAME }
. e n d i f
1995-06-26 07:01:20 +00:00
PKG_CMD ?= /usr/sbin/pkg_create
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
PKG_ADD ?= /usr/sbin/pkg_add
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
PKG_DELETE ?= /usr/sbin/pkg_delete
2000-08-25 10:17:39 +00:00
PKG_INFO ?= /usr/sbin/pkg_info
2003-05-06 05:15:18 +00:00
# Does the pkg_create tool support conflict checking?
PKGINSTALLVER != ${ PKG_INFO } -P 2>/dev/null | ${ SED } -e 's/.*: //'
. i f $ { P K G I N S T A L L V E R } < 2 0 0 3 0 4 1 7
DISABLE_CONFLICTS = YES
. e n d i f
1995-03-27 13:11:18 +00:00
. i f ! d e f i n e d ( P K G _ A R G S )
2003-05-06 05:15:18 +00:00
PKG_ARGS = -v -c " - ${ COMMENT : Q } " -d ${ DESCR } -f ${ TMPPLIST } -p ${ PREFIX } -P " ` ${ MAKE } package-depends | ${ GREP } -v -E ${ PKG_IGNORE_DEPENDS } | sort -u` " ${ EXTRA_PKG_ARGS }
1998-12-12 07:39:30 +00:00
. i f e x i s t s ( $ { P K G I N S T A L L } )
PKG_ARGS += -i ${ PKGINSTALL }
1995-03-27 13:11:18 +00:00
. e n d i f
1998-12-12 07:39:30 +00:00
. i f e x i s t s ( $ { P K G D E I N S T A L L } )
PKG_ARGS += -k ${ PKGDEINSTALL }
1995-03-27 13:11:18 +00:00
. e n d i f
1998-12-12 07:39:30 +00:00
. i f e x i s t s ( $ { P K G R E Q } )
PKG_ARGS += -r ${ PKGREQ }
1995-03-27 13:11:18 +00:00
. e n d i f
1998-12-12 07:39:30 +00:00
. i f e x i s t s ( $ { P K G M E S S A G E } )
PKG_ARGS += -D ${ PKGMESSAGE }
1996-12-09 07:08:16 +00:00
. e n d i f
1997-06-04 00:12:19 +00:00
. i f ! d e f i n e d ( N O _ M T R E E )
PKG_ARGS += -m ${ MTREE_FILE }
1995-04-19 15:02:26 +00:00
. e n d i f
2001-01-16 09:25:16 +00:00
. i f d e f i n e d ( P K G O R I G I N )
PKG_ARGS += -o ${ PKGORIGIN }
. e n d i f
2003-05-06 05:15:18 +00:00
. i f d e f i n e d ( C O N F L I C T S ) & & ! d e f i n e d ( D I S A B L E _ C O N F L I C T S )
PKG_ARGS += -C " ${ CONFLICTS } "
. e n d i f
1995-03-27 13:11:18 +00:00
. e n d i f
1998-12-12 07:39:30 +00:00
. i f d e f i n e d ( P K G _ N O C O M P R E S S )
PKG_SUFX ?= .tar
. e l s e
2002-09-25 17:50:03 +00:00
. i f $ { O S V E R S I O N } > = 5 0 0 0 3 9
2002-08-04 06:01:48 +00:00
PKG_SUFX ?= .tbz
2002-09-25 17:50:03 +00:00
. e l s e
PKG_SUFX ?= .tgz
. e n d i f
1998-12-12 07:39:30 +00:00
. e n d i f
1995-04-19 15:02:26 +00:00
# where pkg_add records its dirty deeds.
PKG_DBDIR ?= /var/db/pkg
1994-08-22 13:11:32 +00:00
1999-02-14 06:49:55 +00:00
MOTIFLIB ?= -L${ X11BASE } /lib -lXm -lXp
Add NO_CDROM, RESTRICTED, BROKEN and Motif support.
(1) The new NO_CDROM Boolean variable means "don't put the distfile/
package on the CDROM you're going to sell". It will basically
turn off everything if FOR_CDROM is set.
Many of the NO_PACKAGE ports are actually "don't sell for profit"
types, which we shouldn't have any problem distributing via ftp.
(2) The new RESTRICTED Boolean variable means don't build this unless
you know what you are doing. It doesn't have any effect unless
NO_RESTRICTED is also set.
(3) BROKEN means this port is broken. At least it will now show up in
INDEX and README.html, and give people more incentive to fix (I
hope).
RESTRICTED and BROKEN are expected to replace the pseudo-targets
in parent Makefiles. (The RESTRICTED and BROKEN list didn't do
anything before, they were solely for grepping purposes.)
(4) The Motif support brings in four new variables: REQUIRES_MOTIF,
which the porter sets for ports that require Motif to build;
HAVE_MOTIF, which the user sets to indicate the system has Motif;
MOTIF_STATIC, which the user sets to indicate that the static
libXm, instead af the default dynamic library, is to be used; and
MOTIFLIB, which is set to "${X11BASE}/lib/libXm.a" or
"-L${X11BASE}/lib -lXm", depending on whether MOTIF_STATIC is set.
The porter is expected to replace all occurrences of libXm in the
{Im,M}akefiles with ${MOTIFLIB}, and this will allow both dynamic
linkage (for users with Motif) and static linkage (for those who
build packages to be used by those withot Motif, i.e., me ;)
automatically.
Original Motif support idea by: graichen
1996-04-12 08:08:36 +00:00
1994-11-03 19:53:46 +00:00
ALL_TARGET ?= all
INSTALL_TARGET ?= install
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
# This is a mid-term solution patch while pkg-comment files are
# phased out.
# The final simpler patch will come afterwards
2003-05-06 05:15:18 +00:00
. i f ! d e f i n e d ( C O M M E N T )
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
.BEGIN :
@${ ECHO_CMD } 'There is no COMMENT variable defined'
2003-05-06 05:15:18 +00:00
@${ ECHO_CMD } 'for this port. Please, rectify this.'
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
@${ FALSE }
. e n d i f
2003-05-06 05:15:18 +00:00
. i f e x i s t s ( $ { C O M M E N T F I L E } )
.BEGIN :
@${ ECHO_CMD } 'There is a COMMENTFILE in this port.'
@${ ECHO_CMD } 'COMMENTFILEs have been deprecated in'
@${ ECHO_CMD } 'favor of COMMENT variables.'
@${ ECHO_CMD } 'Please, rectify this.'
@${ FALSE }
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
. e n d i f
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
# Popular master sites
2000-06-14 02:14:49 +00:00
. i n c l u d e "bsd.sites.mk"
1999-03-29 07:07:59 +00:00
1997-04-30 03:12:05 +00:00
# Empty declaration to avoid "variable MASTER_SITES recursive" error
MASTER_SITES ?=
PATCH_SITES ?=
2002-01-23 03:48:44 +00:00
_MASTER_SITES_DEFAULT ?=
2002-01-24 01:15:03 +00:00
_PATCH_SITES_DEFAULT ?=
2002-01-23 03:48:44 +00:00
# Feed internal _{MASTER,PATCH}_SITES_n where n is a group designation
# as per grouping rules (:something)
# Organize _{MASTER,PATCH}_SITES_{DEFAULT,[^/:]+} according to grouping
# rules (:something)
. f o r _ S i n $ { M A S T E R _ S I T E S }
_S_TEMP = ${ _S : S /^ ${ _S : C @/ : [^/ : ]+ $@ /@ } // : S /^ : // }
. i f ! e m p t y ( _ S _ T E M P )
. for _group in ${_S_TEMP : S /, / /g }
2002-11-03 05:43:49 +00:00
_G_TEMP = ${ _group }
. i f ${_G_TEMP} = = all || ${ _G_TEMP } = = ALL || ${ _G_TEMP } = = default
.BEGIN :
@${ ECHO_CMD } "The words all, ALL and default are reserved and cannot be"
@${ ECHO_CMD } "used in group definitions. Please fix your MASTER_SITES"
2002-01-23 03:48:44 +00:00
@${ FALSE }
. e n d i f
_MASTER_SITES_${_group} += ${ _S : C @^(.*/) : [^/ : ]+ $@ \1 @ }
. e n d f o r
. e l s e
_MASTER_SITES_DEFAULT += ${ _S : C @^(.*/) : [^/ : ]+ $@ \1 @ }
. e n d i f
. e n d f o r
. f o r _ S i n $ { P A T C H _ S I T E S }
_S_TEMP = ${ _S : S /^ ${ _S : C @/ : [^/ : ]+ $@ /@ } // : S /^ : // }
. i f ! e m p t y ( _ S _ T E M P )
. for _group in ${_S_TEMP : S /, / /g }
2002-11-03 05:43:49 +00:00
_G_TEMP = ${ _group }
. i f ${_G_TEMP} = = all || ${ _G_TEMP } = = ALL || ${ _G_TEMP } = = default
.BEGIN :
@${ ECHO_CMD } "The words all, ALL and default are reserved and cannot be"
@${ ECHO_CMD } "used in group definitions. Please fix your PATCH_SITES"
2002-01-23 03:48:44 +00:00
@${ FALSE }
. e n d i f
_PATCH_SITES_${_group} += ${ _S : C @^(.*/) : [^/ : ]+ $@ \1 @ }
. e n d f o r
. e l s e
_PATCH_SITES_DEFAULT += ${ _S : C @^(.*/) : [^/ : ]+ $@ \1 @ }
. e n d i f
. e n d f o r
# Feed internal _{MASTER,PATCH}_SITE_SUBDIR_n where n is a group designation
# as per grouping rules (:something)
# Organize _{MASTER,PATCH}_SITE_SUBDIR_{DEFAULT,[^/:]+} according to grouping
# rules (:something)
. f o r _ S i n $ { M A S T E R _ S I T E _ S U B D I R }
_S_TEMP = ${ _S : S /^ ${ _S : C @/ : [^/ : ]+ $@ /@ } // : S /^ : // }
. i f ! e m p t y ( _ S _ T E M P )
. for _group in ${_S_TEMP : S /, / /g }
2002-11-03 05:43:49 +00:00
_G_TEMP = ${ _group }
. i f ${_G_TEMP} = = all || ${ _G_TEMP } = = ALL || ${ _G_TEMP } = = default
.BEGIN :
@${ ECHO_CMD } "The words all, ALL and default are reserved and cannot be"
@${ ECHO_CMD } "used in group definitions. Please fix your MASTER_SITE_SUBDIR"
2002-01-23 03:48:44 +00:00
@${ FALSE }
. e n d i f
. i f d e f i n e d ( _ M A S T E R _ S I T E S _ $ { _ g r o u p } )
_MASTER_SITE_SUBDIR_${_group} += ${ _S : C @^(.*)/ : [^/ : ]+ $@ \1 @ }
. e n d i f
. e n d f o r
. e l s e
. i f d e f i n e d ( _ M A S T E R _ S I T E S _ D E F A U L T )
_MASTER_SITE_SUBDIR_DEFAULT += ${ _S : C @^(.*)/ : [^/ : ]+ $@ \1 @ }
. e n d i f
. e n d i f
. e n d f o r
. f o r _ S i n $ { P A T C H _ S I T E _ S U B D I R }
_S_TEMP = ${ _S : S /^ ${ _S : C @/ : [^/ : ]+ $@ /@ } // : S /^ : // }
. i f ! e m p t y ( _ S _ T E M P )
. for _group in ${_S_TEMP : S /, / /g }
2002-11-03 05:43:49 +00:00
_G_TEMP = ${ _group }
. i f ${_G_TEMP} = = all || ${ _G_TEMP } = = ALL || ${ _G_TEMP } = = default
.BEGIN :
@${ ECHO_CMD } "The words all, ALL and default are reserved and cannot be"
@${ ECHO_CMD } "used in group definitions. Please fix your PATCH_SITE_SUBDIR"
2002-01-23 03:48:44 +00:00
@${ FALSE }
. e n d i f
. i f d e f i n e d ( _ P A T C H _ S I T E S _ $ { _ g r o u p } )
_PATCH_SITE_SUBDIR_${_group} += ${ _S : C @^(.*)/ : [^/ : ]+ $@ \1 @ }
. e n d i f
. e n d f o r
. e l s e
. i f d e f i n e d ( _ P A T C H _ S I T E S _ D E F A U L T )
_PATCH_SITE_SUBDIR_DEFAULT += ${ _S : C @^(.*)/ : [^/ : ]+ $@ \1 @ }
. e n d i f
. e n d i f
. e n d f o r
1997-04-30 03:12:05 +00:00
# Substitute subdirectory names
2002-01-23 03:48:44 +00:00
# XXX simpler/faster solution but not the best space wise, suggestions please
. f o r _ S i n $ { M A S T E R _ S I T E S }
_S_TEMP = ${ _S : S /^ ${ _S : C @/ : [^/ : ]+ $@ /@ } // : S /^ : // }
. i f ! e m p t y ( _ S _ T E M P )
. for _group in ${_S_TEMP : S /, / /g }
2002-11-03 05:43:49 +00:00
. i f ! d e f i n e d ( _ M A S T E R _ S I T E _ S U B D I R _ $ { _ g r o u p } )
2002-04-02 05:24:33 +00:00
MASTER_SITES_TMP = ${ _MASTER_SITES_ ${ _group } : S ^%SUBDIR%/^^ }
2002-11-03 05:43:49 +00:00
. e l s e
_S_TEMP_TEMP = ${ _MASTER_SITES_ ${ _group } : M *%SUBDIR%/* }
. i f e m p t y ( _ S _ T E M P _ T E M P )
MASTER_SITES_TMP = ${ _MASTER_SITES_ ${ _group } }
. e l s e
MASTER_SITES_TMP =
. f o r s i t e i n $ { _ M A S T E R _ S I T E S _ $ { _ g r o u p } }
_S_TEMP_TEMP = ${ site : M *%SUBDIR%/* }
. i f e m p t y ( _ S _ T E M P _ T E M P )
MASTER_SITES_TMP += ${ site }
. e l s e
. f o r d i r i n $ { _ M A S T E R _ S I T E _ S U B D I R _ $ { _ g r o u p } }
MASTER_SITES_TMP += ${ site : S ^%SUBDIR%^ \$ {dir } ^}
. e n d f o r
. e n d i f
. e n d f o r
. e n d i f
2002-01-23 03:48:44 +00:00
. e n d i f
_MASTER_SITES_${_group} := ${ MASTER_SITES_TMP }
. e n d f o r
. e n d i f
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
. e n d f o r
2002-01-23 03:48:44 +00:00
. i f d e f i n e d ( _ M A S T E R _ S I T E _ S U B D I R _ D E F A U L T )
2002-11-03 05:43:49 +00:00
_S_TEMP = ${ _MASTER_SITES_DEFAULT : M *%SUBDIR%/* }
. i f e m p t y ( _ S _ T E M P )
MASTER_SITES_TMP = ${ _MASTER_SITES_DEFAULT }
. e l s e
2002-04-02 05:24:33 +00:00
MASTER_SITES_TMP =
2002-11-03 05:43:49 +00:00
. f o r s i t e i n $ { _ M A S T E R _ S I T E S _ D E F A U L T }
_S_TEMP_TEMP = ${ site : M *%SUBDIR%/* }
. i f e m p t y ( _ S _ T E M P _ T E M P )
MASTER_SITES_TMP += ${ site }
. e l s e
. f o r d i r i n $ { _ M A S T E R _ S I T E _ S U B D I R _ D E F A U L T }
MASTER_SITES_TMP += ${ site : S ^%SUBDIR%^ \$ {dir } ^}
. e n d f o r
. e n d i f
. e n d f o r
. e n d i f
1999-03-08 07:23:10 +00:00
. e l s e
2002-01-23 03:48:44 +00:00
MASTER_SITES_TMP = ${ _MASTER_SITES_DEFAULT : S ^%SUBDIR%/^^ }
. e n d i f
_MASTER_SITES_DEFAULT := ${ MASTER_SITES_TMP }
MASTER_SITES_TMP =
. f o r _ S i n $ { P A T C H _ S I T E S }
_S_TEMP = ${ _S : S /^ ${ _S : C @/ : [^/ : ]+ $@ /@ } // : S /^ : // }
. i f ! e m p t y ( _ S _ T E M P )
. for _group in ${_S_TEMP : S /, / /g }
2002-11-03 05:43:49 +00:00
. i f ! d e f i n e d ( _ P A T C H _ S I T E _ S U B D I R _ $ { _ g r o u p } )
2002-04-02 05:24:33 +00:00
PATCH_SITES_TMP = ${ _PATCH_SITES_ ${ _group } : S ^%SUBDIR%/^^ }
2002-11-03 05:43:49 +00:00
. e l s e
_S_TEMP_TEMP = ${ _PATCH_SITES_ ${ _group } : M *%SUBDIR%/* }
. i f e m p t y ( _ S _ T E M P _ T E M P )
PATCH_SITES_TMP = ${ _PATCH_SITES_ ${ _group } }
. e l s e
PATCH_SITES_TMP =
. f o r s i t e i n $ { _ P A T C H _ S I T E S _ $ { _ g r o u p } }
_S_TEMP_TEMP = ${ site : M *%SUBDIR%/* }
. i f e m p t y ( _ S _ T E M P _ T E M P )
PATCH_SITES_TMP += ${ site }
. e l s e
. f o r d i r i n $ { _ P A T C H _ S I T E _ S U B D I R _ $ { _ g r o u p } }
PATCH_SITES_TMP += ${ site : S ^%SUBDIR%^ \$ {dir } ^}
. e n d f o r
. e n d i f
. e n d f o r
. e n d i f
2002-01-23 03:48:44 +00:00
. e n d i f
_PATCH_SITES_${_group} := ${ PATCH_SITES_TMP }
. e n d f o r
. e n d i f
(1) ${MASTER_SITE_SUBDIR} is now a list, and ${MASTER_SITE_*} macros
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
1999-02-03 11:06:19 +00:00
. e n d f o r
2002-01-23 03:48:44 +00:00
. i f d e f i n e d ( _ P A T C H _ S I T E _ S U B D I R _ D E F A U L T )
2002-11-03 05:43:49 +00:00
_S_TEMP = ${ _PATCH_SITES_DEFAULT : M *%SUBDIR%/* }
. i f e m p t y ( _ S _ T E M P )
PATCH_SITES_TMP = ${ _PATCH_SITES_DEFAULT }
. e l s e
2002-04-02 05:24:33 +00:00
PATCH_SITES_TMP =
2002-11-03 05:43:49 +00:00
. f o r s i t e i n $ { _ P A T C H _ S I T E S _ D E F A U L T }
_S_TEMP_TEMP = ${ site : M *%SUBDIR%/* }
. i f e m p t y ( _ S _ T E M P _ T E M P )
PATCH_SITES_TMP += ${ site }
. e l s e
. f o r d i r i n $ { _ P A T C H _ S I T E _ S U B D I R _ D E F A U L T }
PATCH_SITES_TMP += ${ site : S ^%SUBDIR%^ \$ {dir } ^}
. e n d f o r
. e n d i f
. e n d f o r
. e n d i f
1999-03-08 07:23:10 +00:00
. e l s e
2002-01-23 03:48:44 +00:00
PATCH_SITES_TMP = ${ _PATCH_SITES_DEFAULT : S ^%SUBDIR%/^^ }
1999-03-08 07:23:10 +00:00
. e n d i f
2002-01-23 03:48:44 +00:00
_PATCH_SITES_DEFAULT := ${ PATCH_SITES_TMP }
PATCH_SITES_TMP =
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
1996-11-30 10:31:50 +00:00
# The primary backup site.
MASTER_SITE_BACKUP ?= \
1999-07-23 09:36:55 +00:00
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${ DIST_SUBDIR } /
1999-03-08 07:23:10 +00:00
MASTER_SITE_BACKUP := ${ MASTER_SITE_BACKUP : S ^ \$ {DIST_SUBDIR } /^^}
1996-11-30 10:31:50 +00:00
1999-01-26 03:58:58 +00:00
# If the user has MASTER_SITE_FREEBSD set, go to the FreeBSD repository
# for everything, but don't search it twice by appending it to the end.
2000-08-25 10:17:39 +00:00
. i f d e f i n e d ( M A S T E R _ S I T E _ F R E E B S D )
_MASTER_SITE_OVERRIDE := ${ MASTER_SITE_BACKUP }
_MASTER_SITE_BACKUP := # empty
1999-01-26 03:58:58 +00:00
. e l s e
2000-08-25 10:17:39 +00:00
_MASTER_SITE_OVERRIDE = ${ MASTER_SITE_OVERRIDE }
_MASTER_SITE_BACKUP = ${ MASTER_SITE_BACKUP }
1999-01-26 03:58:58 +00:00
. e n d i f
1994-09-01 16:01:34 +00:00
1996-08-24 09:28:48 +00:00
# Search CDROM first if mounted, symlink instead of copy if
# FETCH_SYMLINK_DISTFILES is set
2002-02-22 18:53:28 +00:00
. f o r M O U N T P T i n $ { C D _ M O U N T P T S }
2002-01-23 03:48:44 +00:00
. i f e x i s t s ( $ { M O U N T P T } / p o r t s / d i s t f i l e s )
_MASTER_SITE_OVERRIDE := file:${ MOUNTPT } /ports/distfiles/${ DIST_SUBDIR } / ${ _MASTER_SITE_OVERRIDE }
1996-08-24 09:28:48 +00:00
. i f d e f i n e d ( F E T C H _ S Y M L I N K _ D I S T F I L E S )
FETCH_BEFORE_ARGS += -l
. e n d i f
. e n d i f
2002-01-23 03:48:44 +00:00
. e n d f o r
# Organize DISTFILES, PATCHFILES, _MASTER_SITES_ALL, _PATCH_SITES_ALL
# according to grouping rules (:something)
DISTFILES ?= ${ DISTNAME } ${ EXTRACT_SUFX }
_MASTER_SITES_ALL = ${ _MASTER_SITES_DEFAULT }
_PATCH_SITES_ALL = ${ _PATCH_SITES_DEFAULT }
2002-11-03 05:43:49 +00:00
_G_TEMP = DEFAULT
2002-01-23 03:48:44 +00:00
. f o r _ D i n $ { D I S T F I L E S }
_D_TEMP = ${ _D : S /^ ${ _D : C / : [^ : ]+ $// } // }
2002-11-03 05:43:49 +00:00
. i f ! e m p t y ( _ D _ T E M P )
. for _group in ${_D_TEMP : S /^://:S /, / /g }
. i f ! d e f i n e d ( _ M A S T E R _ S I T E S _ $ { _ g r o u p } )
_G_TEMP_TEMP = ${ _G_TEMP : M / ${ _group } / }
. i f e m p t y ( _ G _ T E M P _ T E M P )
_G_TEMP += ${ _group }
_MASTER_SITES_ALL += ${ _MASTER_SITES_ ${ _group } }
. e n d i f
. e n d i f
. e n d f o r
2002-01-23 03:48:44 +00:00
_DISTFILES += ${ _D : C / : [^ : ]+ $// }
. e l s e
_DISTFILES += ${ _D }
. e n d i f
. e n d f o r
2002-11-03 05:43:49 +00:00
_G_TEMP = DEFAULT
2002-01-23 03:48:44 +00:00
. f o r _ P i n $ { P A T C H F I L E S }
_P_TEMP = ${ _P : S /^ ${ _P : C / : [^ : ]+ $// } // }
2002-11-03 05:43:49 +00:00
. i f ! e m p t y ( _ P _ T E M P )
. for _group in ${_P_TEMP : S /^://:S /, / /g }
. i f ! d e f i n e d ( _ P A T C H _ S I T E S _ $ { _ g r o u p } )
_G_TEMP_TEMP = ${ _G_TEMP : M / ${ _group } / }
. i f e m p t y ( _ G _ T E M P _ T E M P )
_G_TEMP += ${ _group }
_PATCH_SITES_ALL += ${ _PATCH_SITES_ ${ _group } }
. e n d i f
. e n d i f
. e n d f o r
2002-01-23 03:48:44 +00:00
_PATCHFILES += ${ _P : C / : [^ : ]+ $// }
. e l s e
_PATCHFILES += ${ _P }
. e n d i f
. e n d f o r
2002-11-03 05:43:49 +00:00
_G_TEMP =
_G_TEMP_TEMP =
2002-01-23 03:48:44 +00:00
ALLFILES ?= ${ _DISTFILES } ${ _PATCHFILES }
1996-08-24 09:28:48 +00:00
2000-07-19 16:41:22 +00:00
#
# Sort the master site list according to the patterns in MASTER_SORT
#
MASTER_SORT ?=
MASTER_SORT_REGEX ?=
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
MASTER_SORT_REGEX += ${ MASTER_SORT : S |.| \\ .|g : S |^| : //[^/]*| : S | $|/| }
2000-07-19 16:41:22 +00:00
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
MASTER_SORT_AWK = BEGIN { RS = " " ; ORS = " " ; IGNORECASE = 1 ; gl = " ${ MASTER_SORT_REGEX : S | \\ | \\ \\ |g } " ; }
2000-07-19 16:41:22 +00:00
. f o r s r t i n $ { M A S T E R _ S O R T _ R E G E X }
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
MASTER_SORT_AWK += /${ srt : S |/| \\ /|g } / { good[ " ${ srt : S | \\ | \\ \\ |g } " ] = good[ " ${ srt : S | \\ | \\ \\ |g } " ] " " $$ 0 ; next; }
2000-07-19 16:41:22 +00:00
. e n d f o r
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
MASTER_SORT_AWK += { rest = rest " " $$ 0; } END { n = split( gl, gla) ; for ( i = 1; i<= n; i++) { print good[ gla[ i] ] ; } print rest; }
2002-01-23 03:48:44 +00:00
SORTED_MASTER_SITES_DEFAULT_CMD = cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } master-sites-DEFAULT
SORTED_PATCH_SITES_DEFAULT_CMD = cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } patch-sites-DEFAULT
SORTED_MASTER_SITES_ALL_CMD = cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } master-sites-ALL
SORTED_PATCH_SITES_ALL_CMD = cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } patch-sites-ALL
2000-08-25 10:17:39 +00:00
2002-01-23 03:48:44 +00:00
#
# Sort the master site list according to the patterns in MASTER_SORT
# according to grouping rules (:something)
#
# for use in the fetch targets
. f o r _ S i n $ { M A S T E R _ S I T E S }
_S_TEMP = ${ _S : S /^ ${ _S : C @/ : [^/ : ]+ $@ /@ } // }
. i f ! e m p t y ( _ S _ T E M P )
. for _group in ${_S_TEMP : S /^://:S /, / /g }
. i f ! t a r g e t ( m a s t e r - s i t e s - $ { _ g r o u p } )
SORTED_MASTER_SITES_${_group}_CMD = cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } master-sites-${ _group }
master-sites-${_group} :
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
@echo ${ _MASTER_SITE_OVERRIDE } ` echo '${_MASTER_SITES_${_group}}' | ${ AWK } '${MASTER_SORT_AWK:S|\\|\\\\|g}' ` ${ _MASTER_SITE_BACKUP }
2002-01-23 03:48:44 +00:00
. e n d i f
. e n d f o r
. e n d i f
. e n d f o r
. f o r _ S i n $ { P A T C H _ S I T E S }
_S_TEMP = ${ _S : S /^ ${ _S : C @/ : [^/ : ]+ $@ /@ } // }
. i f ! e m p t y ( _ S _ T E M P )
. for _group in ${_S_TEMP : S /^://:S /, / /g }
. i f ! t a r g e t ( p a t c h - s i t e s - $ { _ g r o u p } )
SORTED_PATCH_SITES_${_group}_CMD = cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } patch-sites-${ _group }
patch-sites-${_group} :
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
@echo ${ _MASTER_SITE_OVERRIDE } ` echo '${_PATCH_SITES_${_group}}' | ${ AWK } '${MASTER_SORT_AWK:S|\\|\\\\|g}' ` ${ _MASTER_SITE_BACKUP }
2002-01-23 03:48:44 +00:00
. e n d i f
. e n d f o r
. e n d i f
. e n d f o r
2000-07-19 16:41:22 +00:00
2002-01-23 03:48:44 +00:00
#
# Hackery to enable simple fetch targets with several dynamic MASTER_SITES
#
_MASTER_SITES_ENV = _MASTER_SITES_DEFAULT = " ${ _MASTER_SITES_DEFAULT } "
. f o r _ F i n $ { D I S T F I L E S }
_F_TEMP = ${ _F : S /^ ${ _F : C / : [^ : ]+ $// } // : S /^ : // }
. i f ! e m p t y ( _ F _ T E M P )
. for _group in ${_F_TEMP : S /, / /g }
. i f d e f i n e d ( _ M A S T E R _ S I T E S _ $ { _ g r o u p } )
_MASTER_SITES_ENV += _MASTER_SITES_${ _group } = " ${ _MASTER_SITES_ ${ _group } } "
. e n d i f
. e n d f o r
. e n d i f
. e n d f o r
_PATCH_SITES_ENV = _PATCH_SITES_DEFAULT = " ${ _PATCH_SITES_DEFAULT } "
. f o r _ F i n $ { P A T C H F I L E S }
_F_TEMP = ${ _F : S /^ ${ _F : C / : [^ : ]+ $// } // : S /^ : // }
. i f ! e m p t y ( _ F _ T E M P )
. for _group in ${_F_TEMP : S /, / /g }
. i f d e f i n e d ( _ P A T C H _ S I T E S _ $ { _ g r o u p } )
_PATCH_SITES_ENV += _PATCH_SITES_${ _group } = " ${ _PATCH_SITES_ ${ _group } } "
. e n d i f
. e n d f o r
. e n d i f
. e n d f o r
master-sites-ALL :
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
@echo ${ _MASTER_SITE_OVERRIDE } ` echo '${_MASTER_SITES_ALL}' | ${ AWK } '${MASTER_SORT_AWK:S|\\|\\\\|g}' ` ${ _MASTER_SITE_BACKUP }
2002-01-23 03:48:44 +00:00
patch-sites-ALL :
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
@echo ${ _MASTER_SITE_OVERRIDE } ` echo '${_PATCH_SITES_ALL}' | ${ AWK } '${MASTER_SORT_AWK:S|\\|\\\\|g}' ` ${ _MASTER_SITE_BACKUP }
2002-01-23 03:48:44 +00:00
# has similar effect to old targets, i.e., access only {MASTER,PATCH}_SITES, not working with the new _n variables
master-sites-DEFAULT :
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
@echo ${ _MASTER_SITE_OVERRIDE } ` echo '${_MASTER_SITES_DEFAULT}' | ${ AWK } '${MASTER_SORT_AWK:S|\\|\\\\|g}' ` ${ _MASTER_SITE_BACKUP }
2002-01-23 03:48:44 +00:00
patch-sites-DEFAULT :
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
@echo ${ _MASTER_SITE_OVERRIDE } ` echo '${_PATCH_SITES_DEFAULT}' | ${ AWK } '${MASTER_SORT_AWK:S|\\|\\\\|g}' ` ${ _MASTER_SITE_BACKUP }
2002-01-23 03:48:44 +00:00
# synonyms, mnemonics
master-sites-all : master -sites -ALL
patch-sites-all : patch -sites -ALL
master-sites-default : master -sites -DEFAULT
patch-sites-default : patch -sites -DEFAULT
# compatibility with old behavior
master-sites : master -sites -DEFAULT
patch-sites : patch -sites -DEFAULT
1996-12-17 12:20:53 +00:00
. i f d e f i n e d ( I G N O R E F I L E S )
1999-07-23 09:36:55 +00:00
. i f ! d e f i n e d ( C K S U M F I L E S )
1996-12-17 12:20:53 +00:00
CKSUMFILES != \
for file in ${ ALLFILES } ; do \
ignore = 0; \
for tmp in ${ IGNOREFILES } ; do \
if [ " $$ file " = " $$ tmp " ] ; then \
ignore = 1; \
fi ; \
done ; \
if [ " $$ ignore " = 0 ] ; then \
echo " $$ file " ; \
fi ; \
done
1999-07-23 09:36:55 +00:00
. e n d i f
1996-12-17 12:20:53 +00:00
. e l s e
CKSUMFILES = ${ ALLFILES }
. e n d i f
1996-11-30 10:31:50 +00:00
# List of all files, with ${DIST_SUBDIR} in front. Used for checksum.
. i f d e f i n e d ( D I S T _ S U B D I R )
1996-12-17 12:20:53 +00:00
_CKSUMFILES ?= ${ CKSUMFILES : S /^/ ${ DIST_SUBDIR } \/ / }
_IGNOREFILES ?= ${ IGNOREFILES : S /^/ ${ DIST_SUBDIR } \/ / }
1996-11-30 10:31:50 +00:00
. e l s e
1996-12-17 12:20:53 +00:00
_CKSUMFILES ?= ${ CKSUMFILES }
_IGNOREFILES ?= ${ IGNOREFILES }
1996-11-30 10:31:50 +00:00
. e n d i f
1995-08-29 11:24:50 +00:00
# This is what is actually going to be extracted, and is overridable
# by user.
2002-01-23 03:48:44 +00:00
EXTRACT_ONLY ?= ${ _DISTFILES }
1995-08-29 11:24:50 +00:00
1995-04-01 09:34:11 +00:00
# Documentation
1999-07-23 09:36:55 +00:00
MAINTAINER ?= ports@FreeBSD.org
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
1999-01-11 13:04:18 +00:00
. i f ! t a r g e t ( m a i n t a i n e r )
maintainer :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } ${ MAINTAINER }
1999-01-11 13:04:18 +00:00
. e n d i f
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. i f ! d e f i n e d ( C A T E G O R I E S )
.BEGIN :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " ${ PKGNAME } : CATEGORIES is mandatory. "
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
@${ FALSE }
1999-08-22 11:20:25 +00:00
. e l s e
2002-11-18 09:30:52 +00:00
VALID_CATEGORIES += accessibility afterstep archivers astro audio \
benchmarks biology cad chinese comms converters databases \
deskutils devel editors elisp emulators finance french ftp \
games german gnome graphics haskell hebrew hungarian \
ipv6 irc japanese java kde korean lang linux \
mail math mbone misc multimedia net news \
offix palm parallel perl5 picobsd plan9 portuguese print python \
ruby russian \
2001-03-24 21:35:22 +00:00
science security shells sysutils \
2000-01-17 12:43:10 +00:00
tcl76 tcl80 tcl81 tcl82 tcl83 textproc \
tk42 tk80 tk82 tk83 tkstep80 \
2001-03-24 21:35:22 +00:00
ukrainian vietnamese windowmaker www \
2000-09-22 01:17:17 +00:00
x11 x11-clocks x11-fm x11-fonts x11-servers x11-toolkits x11-wm zope
2002-11-18 09:30:52 +00:00
1999-08-22 11:20:25 +00:00
check-categories :
. f o r c a t i n $ { C A T E G O R I E S }
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@if ${ ECHO_CMD } ${ VALID_CATEGORIES } | ${ GREP } -wq ${ cat } ; then \
1999-08-22 11:20:25 +00:00
${ TRUE } ; \
else \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " ${ PKGNAME } : category ${ cat } not in list of valid categories. " ; \
1999-08-22 11:20:25 +00:00
${ FALSE } ; \
fi
. e n d f o r
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. e n d i f
1994-09-10 22:26:47 +00:00
1995-06-06 10:56:34 +00:00
PKGREPOSITORYSUBDIR ?= All
1995-04-09 09:59:42 +00:00
PKGREPOSITORY ?= ${ PACKAGES } /${ PKGREPOSITORYSUBDIR }
1998-01-31 20:59:30 +00:00
. i f e x i s t s ( $ { P A C K A G E S } )
1995-04-09 09:59:42 +00:00
PKGFILE ?= ${ PKGREPOSITORY } /${ PKGNAME } ${ PKG_SUFX }
1998-01-31 20:59:30 +00:00
. e l s e
PKGFILE ?= ${ .CURDIR } /${ PKGNAME } ${ PKG_SUFX }
. e n d i f
1998-01-02 10:37:14 +00:00
# The "latest version" link -- ${PKGNAME} minus everthing after the last '-'
PKGLATESTREPOSITORY ?= ${ PACKAGES } /Latest
2000-06-14 02:14:49 +00:00
PKGBASE ?= ${ PKGNAMEPREFIX } ${ PORTNAME } ${ PKGNAMESUFFIX }
2001-09-28 16:45:15 +00:00
LATEST_LINK ?= ${ PKGBASE }
PKGLATESTFILE = ${ PKGLATESTREPOSITORY } /${ LATEST_LINK } ${ PKG_SUFX }
1994-08-21 13:12:57 +00:00
2000-09-13 07:16:49 +00:00
. i f d e f i n e d ( P E R L _ C O N F I G U R E )
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
CONFIGURE_ARGS += CC = " ${ CC } " CCFLAGS = " ${ CFLAGS } " PREFIX = " ${ PREFIX } " \
INSTALLPRIVLIB = " ${ PREFIX } /lib " INSTALLARCHLIB = " ${ PREFIX } /lib "
2000-09-13 07:16:49 +00:00
CONFIGURE_SCRIPT ?= Makefile.PL
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
MAN3PREFIX ?= ${ PREFIX } /lib/perl5/${ PERL_VERSION }
2000-09-13 07:16:49 +00:00
. u n d e f H A S _ C O N F I G U R E
. e n d i f
1995-02-06 08:52:19 +00:00
CONFIGURE_SCRIPT ?= configure
2002-02-21 18:24:20 +00:00
CONFIGURE_TARGET ?= ${ MACHINE_ARCH } -portbld-freebsd${ OSREL }
1999-06-11 11:59:10 +00:00
CONFIGURE_LOG ?= config.log
1995-02-06 08:52:19 +00:00
1994-10-04 15:44:03 +00:00
. i f d e f i n e d ( G N U _ C O N F I G U R E )
1999-03-08 07:23:10 +00:00
CONFIGURE_ARGS += --prefix= ${ PREFIX } ${ CONFIGURE_TARGET }
1994-10-04 15:48:21 +00:00
HAS_CONFIGURE = yes
1994-10-04 15:44:03 +00:00
. e n d i f
1997-01-12 11:48:26 +00:00
# Passed to most of script invocations
1998-11-20 04:00:38 +00:00
SCRIPTS_ENV += CURDIR = ${ MASTERDIR } DISTDIR = ${ DISTDIR } \
1997-01-12 11:48:26 +00:00
WRKDIR = ${ WRKDIR } WRKSRC = ${ WRKSRC } PATCHDIR = ${ PATCHDIR } \
SCRIPTDIR = ${ SCRIPTDIR } FILESDIR = ${ FILESDIR } \
PORTSDIR = ${ PORTSDIR } DEPENDS = " ${ DEPENDS } " \
PREFIX = ${ PREFIX } LOCALBASE = ${ LOCALBASE } X11BASE = ${ X11BASE }
. i f d e f i n e d ( B A T C H )
SCRIPTS_ENV += BATCH = yes
. e n d i f
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
. i f ${PREFIX} = = /usr
MANPREFIX ?= /usr/share
. e l s e
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
MANPREFIX ?= ${ PREFIX }
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
. e n d i f
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
1996-12-11 10:17:44 +00:00
. f o r s e c t i n 1 2 3 4 5 6 7 8 9
MAN${sect}PREFIX ?= ${ MANPREFIX }
. e n d f o r
MANLPREFIX ?= ${ MANPREFIX }
MANNPREFIX ?= ${ MANPREFIX }
MANLANG ?= "" # english only by default
1998-09-10 06:38:02 +00:00
. i f ! d e f i n e d ( N O M A N C O M P R E S S )
MANEXT = .gz
. e n d i f
1999-07-23 09:36:55 +00:00
. i f ( d e f i n e d ( M L I N K S ) | | d e f i n e d ( _ M L I N K S _ P R E P E N D ) ) & & ! d e f i n e d ( _ M L I N K S )
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
__pmlinks != ${ ECHO_CMD } '${MLINKS:S/ / /}' | ${ AWK } \
1998-09-10 06:38:02 +00:00
' { if ( NF % 2 != 0) { print "broken" ; exit; } \
for ( i = 1; i<= NF; i++) { \
if ( $$ i ~ /^-$$ / && i != 1 && i % 2 != 0) \
{ $$ i = $$ ( i-2) ; printf " " $$ i " " ; } \
else if ( $$ i ~ /^[ ^ ] +\. [ 1-9ln] [ ^. ] *$$ / || $$ i ~ /^\/ /) \
printf " " $$ i " " ; \
else \
{ print "broken" ; exit; } \
} \
2002-11-03 05:43:49 +00:00
} ' | ${SED} -e ' s \( [ ^/ ] [ ^ ] *\. \( .\) [ ^. ] *\) $$ { MAN\2 PREFIX} /man/$$ $$ $$ $$ { __lang} /man\2 /\1 ${ MANEXT } g' -e ' s/ / /g' -e ' s/MANlPREFIX/MANLPREFIX/g' -e ' s/MANnPREFIX/MANNPREFIX/g'
1998-09-10 06:38:02 +00:00
.if ${__pmlinks : Mbroken } == "broken "
.BEGIN :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " ${ PKGNAME } : Unable to parse MLINKS. "
1998-09-10 06:38:02 +00:00
@${ FALSE }
. e n d i f
1999-07-23 09:36:55 +00:00
_MLINKS = ${ _MLINKS_PREPEND }
. f o r l a n g i n $ { M A N L A N G }
. f o r _ _ _ p m l i n k s i n $ { _ _ p m l i n k s }
. f o r _ _ l a n g i n $ { l a n g }
_MLINKS += ${ ___pmlinks : S / / /g }
. e n d f o r
. e n d f o r
. e n d f o r
1998-09-10 06:38:02 +00:00
. e n d i f
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
_COUNT = 0
. f o r _ _ _ t p m l i n k s i n $ { _ M L I N K S }
. i f ${_COUNT} = = "1"
_TMLINKS += ${ ___tpmlinks }
_COUNT = 0
. e l s e
_COUNT = 1
. e n d i f
. e n d f o r
1998-09-10 06:38:02 +00:00
1996-12-11 10:17:44 +00:00
. f o r l a n g i n $ { M A N L A N G }
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. f o r s e c t i n 1 2 3 4 5 6 7 8 9
. i f d e f i n e d ( M A N $ { s e c t } )
1996-12-12 04:32:25 +00:00
_MANPAGES += ${ MAN ${ sect } : S %^% ${ MAN ${ sect } PREFIX } /man/ ${ lang } /man ${ sect } /% }
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. e n d i f
. e n d f o r
. i f d e f i n e d ( M A N L )
1996-12-12 04:32:25 +00:00
_MANPAGES += ${ MANL : S %^% ${ MANLPREFIX } /man/ ${ lang } /manl/% }
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. e n d i f
. i f d e f i n e d ( M A N N )
1996-12-12 04:32:25 +00:00
_MANPAGES += ${ MANN : S %^% ${ MANNPREFIX } /man/ ${ lang } /mann/% }
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. e n d i f
1996-12-11 10:17:44 +00:00
. e n d f o r
1998-09-10 06:38:02 +00:00
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
. i f ! d e f i n e d ( _ M L I N K S )
1999-07-23 09:36:55 +00:00
_TMLINKS =
. e n d i f
1996-12-11 10:17:44 +00:00
1998-08-12 01:47:47 +00:00
. i f d e f i n e d ( _ M A N P A G E S ) & & d e f i n e d ( N O M A N C O M P R E S S )
__MANPAGES := ${ _MANPAGES : S ^ ${ PREFIX } /^^ : S / "" // : S ^//^/^g }
. e l i f d e f i n e d ( _ M A N P A G E S )
__MANPAGES := ${ _MANPAGES : S ^ ${ PREFIX } /^^ : S / "" // : S ^//^/^g : S / $/.gz/ }
. e n d i f
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. i f d e f i n e d ( _ M A N P A G E S ) & & ${MANCOMPRESSED} = = "yes"
1996-12-11 04:51:31 +00:00
_MANPAGES := ${ _MANPAGES : S / $/.gz/ }
. e n d i f
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. i f ${XFREE86_VERSION} = = 3
XFREE86_HTML_MAN = no
. e l s e
. i f d e f i n e d ( U S E _ I M A K E )
XFREE86_HTML_MAN ?= yes
. e l s e
XFREE86_HTML_MAN ?= no
. e n d i f
. e n d i f
2002-11-25 19:43:16 +00:00
DOCSDIR ?= ${ PREFIX } /share/doc/${ PORTNAME }
EXAMPLESDIR ?= ${ PREFIX } /share/examples/${ PORTNAME }
DATADIR ?= ${ PREFIX } /share/${ PORTNAME }
PLIST_SUB += DOCSDIR = " ${ DOCSDIR : S ,^ ${ PREFIX } /,, } " \
EXAMPLESDIR = " ${ EXAMPLESDIR : S ,^ ${ PREFIX } /,, } " \
DATADIR = " ${ DATADIR : S ,^ ${ PREFIX } /,, } "
# Put this as far down as possible so it will catch all PLIST_SUB definitions.
2000-06-14 02:14:49 +00:00
2000-06-16 21:52:40 +00:00
. i f d e f i n e d ( I N S T A L L S _ S H L I B )
2000-06-14 02:14:49 +00:00
LDCONFIG_DIRS ?= %%PREFIX%%/lib
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
LDCONFIG_PLIST != ${ ECHO_CMD } ${ LDCONFIG_DIRS } | ${ SED } ${ PLIST_SUB : S / $/!g/ : S /^/ -e s!%%/ : S /=/%%!/ }
LDCONFIG_RUNLIST != ${ ECHO_CMD } ${ LDCONFIG_PLIST } | ${ SED } -e " s!%D! ${ PREFIX } !g "
2000-06-14 02:14:49 +00:00
. e n d i f
1994-08-21 13:12:57 +00:00
.MAIN : all
1994-10-14 07:56:46 +00:00
1995-04-20 18:03:02 +00:00
################################################################
Add NO_CDROM, RESTRICTED, BROKEN and Motif support.
(1) The new NO_CDROM Boolean variable means "don't put the distfile/
package on the CDROM you're going to sell". It will basically
turn off everything if FOR_CDROM is set.
Many of the NO_PACKAGE ports are actually "don't sell for profit"
types, which we shouldn't have any problem distributing via ftp.
(2) The new RESTRICTED Boolean variable means don't build this unless
you know what you are doing. It doesn't have any effect unless
NO_RESTRICTED is also set.
(3) BROKEN means this port is broken. At least it will now show up in
INDEX and README.html, and give people more incentive to fix (I
hope).
RESTRICTED and BROKEN are expected to replace the pseudo-targets
in parent Makefiles. (The RESTRICTED and BROKEN list didn't do
anything before, they were solely for grepping purposes.)
(4) The Motif support brings in four new variables: REQUIRES_MOTIF,
which the porter sets for ports that require Motif to build;
HAVE_MOTIF, which the user sets to indicate the system has Motif;
MOTIF_STATIC, which the user sets to indicate that the static
libXm, instead af the default dynamic library, is to be used; and
MOTIFLIB, which is set to "${X11BASE}/lib/libXm.a" or
"-L${X11BASE}/lib -lXm", depending on whether MOTIF_STATIC is set.
The porter is expected to replace all occurrences of libXm in the
{Im,M}akefiles with ${MOTIFLIB}, and this will allow both dynamic
linkage (for users with Motif) and static linkage (for those who
build packages to be used by those withot Motif, i.e., me ;)
automatically.
Original Motif support idea by: graichen
1996-04-12 08:08:36 +00:00
# Many ways to disable a port.
#
1995-04-20 18:03:02 +00:00
# If we're in BATCH mode and the port is interactive, or we're
# in interactive mode and the port is non-interactive, skip all
# the important targets. The reason we have two modes is that
# one might want to leave a build in BATCH mode running
# overnight, then come back in the morning and do _only_ the
# interactive ones that required your intervention.
1994-10-14 07:56:46 +00:00
#
1996-04-27 18:36:02 +00:00
# Ignore ports that can't be resold if building for a CDROM.
Add NO_CDROM, RESTRICTED, BROKEN and Motif support.
(1) The new NO_CDROM Boolean variable means "don't put the distfile/
package on the CDROM you're going to sell". It will basically
turn off everything if FOR_CDROM is set.
Many of the NO_PACKAGE ports are actually "don't sell for profit"
types, which we shouldn't have any problem distributing via ftp.
(2) The new RESTRICTED Boolean variable means don't build this unless
you know what you are doing. It doesn't have any effect unless
NO_RESTRICTED is also set.
(3) BROKEN means this port is broken. At least it will now show up in
INDEX and README.html, and give people more incentive to fix (I
hope).
RESTRICTED and BROKEN are expected to replace the pseudo-targets
in parent Makefiles. (The RESTRICTED and BROKEN list didn't do
anything before, they were solely for grepping purposes.)
(4) The Motif support brings in four new variables: REQUIRES_MOTIF,
which the porter sets for ports that require Motif to build;
HAVE_MOTIF, which the user sets to indicate the system has Motif;
MOTIF_STATIC, which the user sets to indicate that the static
libXm, instead af the default dynamic library, is to be used; and
MOTIFLIB, which is set to "${X11BASE}/lib/libXm.a" or
"-L${X11BASE}/lib -lXm", depending on whether MOTIF_STATIC is set.
The porter is expected to replace all occurrences of libXm in the
{Im,M}akefiles with ${MOTIFLIB}, and this will allow both dynamic
linkage (for users with Motif) and static linkage (for those who
build packages to be used by those withot Motif, i.e., me ;)
automatically.
Original Motif support idea by: graichen
1996-04-12 08:08:36 +00:00
#
# Don't build a port if it's restricted and we don't want to get
# into that.
#
1998-09-22 23:58:49 +00:00
# Don't build a port on an ELF machine if it's broken for ELF.
#
1999-03-29 07:07:59 +00:00
# Don't build a port if it's broken, unless we're running a parallel
# build (in case it's fixed).
#
# Don't build a port if it's forbidden for whatever reason.
#
# Don't build a port if the system is too old.
1995-04-20 18:03:02 +00:00
################################################################
1999-04-08 07:13:38 +00:00
. i f $ { O S V E R S I O N } > = 3 0 0 0 0 0
1999-03-29 07:07:59 +00:00
# You need an upgrade kit or make world newer than this
2001-01-16 09:25:16 +00:00
BSDPORTMKVERSION = 20001103
1999-04-08 07:13:38 +00:00
. i f e x i s t s ( / v a r / d b / p o r t . m k v e r s i o n )
VERSIONFILE = /var/db/port.mkversion
. e l s e
1999-03-29 07:07:59 +00:00
VERSIONFILE = ${ PKG_DBDIR } /.mkversion
1999-04-08 07:13:38 +00:00
. e n d i f
1999-03-29 07:07:59 +00:00
. i f e x i s t s ( $ { V E R S I O N F I L E } )
1999-07-23 09:36:55 +00:00
. i f ! d e f i n e d ( S Y S T E M V E R S I O N )
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
SYSTEMVERSION != ${ CAT } ${ VERSIONFILE }
1999-07-23 09:36:55 +00:00
. e n d i f
1999-03-29 07:07:59 +00:00
. e l s e
SYSTEMVERSION = 0
. e n d i f
. i f $ { B S D P O R T M K V E R S I O N } > $ { S Y S T E M V E R S I O N }
1999-07-23 09:36:55 +00:00
IGNORE = ": Your system is too old to use this bsd.port.mk. You need a fresh make world or an upgrade kit. Please go to http://www.FreeBSD.org/ports/ or a mirror site and follow the instructions"
1999-03-29 07:07:59 +00:00
. e n d i f
1999-04-08 07:13:38 +00:00
. e n d i f
1999-03-29 07:07:59 +00:00
1999-01-11 13:04:18 +00:00
. i f d e f i n e d ( O N L Y _ F O R _ A R C H S )
. f o r _ _ A R C H i n $ { O N L Y _ F O R _ A R C H S }
.if ${MACHINE_ARCH : M ${__ARCH }} != ""
__ARCH_OK ?= 1
. e n d i f
. e n d f o r
. e l s e
__ARCH_OK ?= 1
. e n d i f
. i f d e f i n e d ( N O T _ F O R _ A R C H S )
. f o r _ _ N A R C H i n $ { N O T _ F O R _ A R C H S }
.if ${MACHINE_ARCH : M ${__NARCH }} != ""
. u n d e f _ _ A R C H _ O K
. e n d i f
. e n d f o r
. e n d i f
. i f ! d e f i n e d ( _ _ A R C H _ O K )
. i f d e f i n e d ( O N L Y _ F O R _ A R C H S )
IGNORE = " is only for ${ ONLY_FOR_ARCHS } , "
. e l s e # defined(NOT_FOR_ARCHS)
IGNORE = " does not run on ${ NOT_FOR_ARCHS } , "
. e n d i f
IGNORE += " and you are running ${ ARCH } "
. e n d i f
1997-01-25 02:45:09 +00:00
. i f ! d e f i n e d ( N O _ I G N O R E )
1996-11-30 10:31:50 +00:00
. i f ( d e f i n e d ( I S _ I N T E R A C T I V E ) & & d e f i n e d ( B A T C H ) )
IGNORE = "is an interactive port"
. e l i f ( ! d e f i n e d ( I S _ I N T E R A C T I V E ) & & d e f i n e d ( I N T E R A C T I V E ) )
IGNORE = "is not an interactive port"
. e l i f ( d e f i n e d ( N O _ C D R O M ) & & d e f i n e d ( F O R _ C D R O M ) )
IGNORE = " may not be placed on a CDROM: ${ NO_CDROM } "
. e l i f ( d e f i n e d ( R E S T R I C T E D ) & & d e f i n e d ( N O _ R E S T R I C T E D ) )
IGNORE = " is restricted: ${ RESTRICTED } "
1998-12-12 07:39:30 +00:00
. e l i f d e f i n e d ( N O _ W R K D I R )
IGNORE = "defines NO_WRKDIR, which is obsoleted. If you are defining NO_WRKDIR and NO_EXTRACT, try changing it to NO_WRKSUBDIR=yes and EXTRACT_ONLY= \(the right side intentionally left empty\)"
. e l i f d e f i n e d ( N O _ E X T R A C T )
IGNORE = "defines NO_EXTRACT, which is obsoleted. Try changing it to EXTRACT_ONLY= \(the right side intentionally left empty\)"
1998-08-05 09:29:13 +00:00
. e l i f d e f i n e d ( N O _ C O N F I G U R E )
IGNORE = "defines NO_CONFIGURE, which is obsoleted"
. e l i f d e f i n e d ( N O _ P A T C H )
IGNORE = "defines NO_PATCH, which is obsoleted"
1999-03-29 07:07:59 +00:00
. e l i f d e f i n e d ( B R O K E N _ E L F ) & & (${PORTOBJFORMAT} = = "elf" ) && \
!defined( PARALLEL_PACKAGE_BUILD)
1998-09-22 23:58:49 +00:00
IGNORE = " is broken for ELF: ${ BROKEN_ELF } "
2000-09-13 07:16:49 +00:00
. e l i f d e f i n e d ( B R O K E N )
. i f d e f i n e d ( P A R A L L E L _ P A C K A G E _ B U I L D )
1999-03-29 07:07:59 +00:00
# try building even if marked BROKEN
2000-09-13 07:16:49 +00:00
TRYBROKEN = yes
. e l s e
1996-11-30 10:31:50 +00:00
IGNORE = " is marked as broken: ${ BROKEN } "
2000-09-13 07:16:49 +00:00
. e n d i f
1999-03-29 07:07:59 +00:00
. e l i f d e f i n e d ( F O R B I D D E N )
IGNORE = " is forbidden: ${ FORBIDDEN } "
1996-11-30 10:31:50 +00:00
. e n d i f
Add NO_CDROM, RESTRICTED, BROKEN and Motif support.
(1) The new NO_CDROM Boolean variable means "don't put the distfile/
package on the CDROM you're going to sell". It will basically
turn off everything if FOR_CDROM is set.
Many of the NO_PACKAGE ports are actually "don't sell for profit"
types, which we shouldn't have any problem distributing via ftp.
(2) The new RESTRICTED Boolean variable means don't build this unless
you know what you are doing. It doesn't have any effect unless
NO_RESTRICTED is also set.
(3) BROKEN means this port is broken. At least it will now show up in
INDEX and README.html, and give people more incentive to fix (I
hope).
RESTRICTED and BROKEN are expected to replace the pseudo-targets
in parent Makefiles. (The RESTRICTED and BROKEN list didn't do
anything before, they were solely for grepping purposes.)
(4) The Motif support brings in four new variables: REQUIRES_MOTIF,
which the porter sets for ports that require Motif to build;
HAVE_MOTIF, which the user sets to indicate the system has Motif;
MOTIF_STATIC, which the user sets to indicate that the static
libXm, instead af the default dynamic library, is to be used; and
MOTIFLIB, which is set to "${X11BASE}/lib/libXm.a" or
"-L${X11BASE}/lib -lXm", depending on whether MOTIF_STATIC is set.
The porter is expected to replace all occurrences of libXm in the
{Im,M}akefiles with ${MOTIFLIB}, and this will allow both dynamic
linkage (for users with Motif) and static linkage (for those who
build packages to be used by those withot Motif, i.e., me ;)
automatically.
Original Motif support idea by: graichen
1996-04-12 08:08:36 +00:00
1998-12-12 07:39:30 +00:00
. i f ( d e f i n e d ( M A N U A L _ P A C K A G E _ B U I L D ) & & d e f i n e d ( P A C K A G E _ B U I L D I N G ) & & ! d e f i n e d ( P A R A L L E L _ P A C K A G E _ B U I L D ) )
1998-10-30 08:28:02 +00:00
IGNORE = " has to be built manually: ${ MANUAL_PACKAGE_BUILD } "
1997-11-20 05:33:56 +00:00
clean :
@${ IGNORECMD }
. e n d i f
Add NO_CDROM, RESTRICTED, BROKEN and Motif support.
(1) The new NO_CDROM Boolean variable means "don't put the distfile/
package on the CDROM you're going to sell". It will basically
turn off everything if FOR_CDROM is set.
Many of the NO_PACKAGE ports are actually "don't sell for profit"
types, which we shouldn't have any problem distributing via ftp.
(2) The new RESTRICTED Boolean variable means don't build this unless
you know what you are doing. It doesn't have any effect unless
NO_RESTRICTED is also set.
(3) BROKEN means this port is broken. At least it will now show up in
INDEX and README.html, and give people more incentive to fix (I
hope).
RESTRICTED and BROKEN are expected to replace the pseudo-targets
in parent Makefiles. (The RESTRICTED and BROKEN list didn't do
anything before, they were solely for grepping purposes.)
(4) The Motif support brings in four new variables: REQUIRES_MOTIF,
which the porter sets for ports that require Motif to build;
HAVE_MOTIF, which the user sets to indicate the system has Motif;
MOTIF_STATIC, which the user sets to indicate that the static
libXm, instead af the default dynamic library, is to be used; and
MOTIFLIB, which is set to "${X11BASE}/lib/libXm.a" or
"-L${X11BASE}/lib -lXm", depending on whether MOTIF_STATIC is set.
The porter is expected to replace all occurrences of libXm in the
{Im,M}akefiles with ${MOTIFLIB}, and this will allow both dynamic
linkage (for users with Motif) and static linkage (for those who
build packages to be used by those withot Motif, i.e., me ;)
automatically.
Original Motif support idea by: graichen
1996-04-12 08:08:36 +00:00
. i f d e f i n e d ( I G N O R E )
1996-11-30 10:31:50 +00:00
. i f d e f i n e d ( I G N O R E _ S I L E N T )
IGNORECMD = ${ DO_NADA }
. e l s e
IGNORECMD = ${ ECHO_MSG } " ===> ${ PKGNAME } ${ IGNORE } . "
. e n d i f
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
. f o r t a r g e t i n f e t c h c h e c k s u m e x t r a c t p a t c h c o n f i g u r e a l l b u i l d i n s t a l l r e i n s t a l l p a c k a g e
${target} :
1996-11-30 10:31:50 +00:00
@${ IGNORECMD }
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
. i f d e f i n e d ( I N S T A L L S _ D E P E N D S )
@${ FALSE }
. e n d i f
. e n d f o r
1999-01-11 13:04:18 +00:00
. e n d i f
. e n d i f
. i f d e f i n e d ( I G N O R E ) | | d e f i n e d ( N O _ P A C K A G E )
1998-12-12 07:39:30 +00:00
ignorelist : package -name
. e l s e
ignorelist :
@${ DO_NADA }
1994-10-14 07:56:46 +00:00
. e n d i f
1998-12-12 07:39:30 +00:00
1998-11-08 10:29:53 +00:00
################################################################
# Clean directories for ftp or CDROM.
################################################################
. i f d e f i n e d ( R E S T R I C T E D )
clean-restricted : delete -distfiles delete -package
1999-04-28 06:20:23 +00:00
clean-restricted-list : delete -distfiles -list delete -package -list
2002-01-23 03:48:44 +00:00
RESTRICTED_FILES ?= ${ _DISTFILES } ${ _PATCHFILES }
1998-11-08 10:29:53 +00:00
. e l s e
clean-restricted :
1999-04-28 06:20:23 +00:00
clean-restricted-list :
1998-11-08 10:29:53 +00:00
. e n d i f
. i f d e f i n e d ( N O _ C D R O M )
clean-for-cdrom : delete -distfiles delete -package
1999-04-28 06:20:23 +00:00
clean-for-cdrom-list : delete -distfiles -list delete -package -list
2002-01-23 03:48:44 +00:00
RESTRICTED_FILES ?= ${ _DISTFILES } ${ _PATCHFILES }
1998-11-08 10:29:53 +00:00
. e l s e
clean-for-cdrom :
1999-04-28 06:20:23 +00:00
clean-for-cdrom-list :
1998-11-08 10:29:53 +00:00
. e n d i f
1995-12-07 14:11:29 +00:00
. i f d e f i n e d ( A L L _ H O O K )
all :
1996-06-19 01:04:23 +00:00
@cd ${ .CURDIR } && ${ SETENV } CURDIR = ${ .CURDIR } DISTNAME = ${ DISTNAME } \
1995-12-07 14:11:29 +00:00
DISTDIR = ${ DISTDIR } WRKDIR = ${ WRKDIR } WRKSRC = ${ WRKSRC } \
PATCHDIR = ${ PATCHDIR } SCRIPTDIR = ${ SCRIPTDIR } \
FILESDIR = ${ FILESDIR } PORTSDIR = ${ PORTSDIR } PREFIX = ${ PREFIX } \
DEPENDS = " ${ DEPENDS } " BUILD_DEPENDS = " ${ BUILD_DEPENDS } " \
RUN_DEPENDS = " ${ RUN_DEPENDS } " X11BASE = ${ X11BASE } \
2003-05-06 05:15:18 +00:00
CONFLICTS = " ${ CONFLICTS } " \
1995-12-07 14:11:29 +00:00
${ ALL_HOOK }
. e n d i f
1994-10-14 07:56:46 +00:00
. i f ! t a r g e t ( a l l )
1995-04-17 06:28:15 +00:00
all : build
1994-10-14 07:56:46 +00:00
. e n d i f
1994-08-21 13:12:57 +00:00
1997-04-30 03:12:05 +00:00
. i f ! d e f i n e d ( D E P E N D S _ T A R G E T )
1997-08-20 03:44:14 +00:00
. i f m a k e ( r e i n s t a l l )
DEPENDS_TARGET = reinstall
. e l s e
1997-04-30 03:12:05 +00:00
DEPENDS_TARGET = install
1994-10-03 14:38:27 +00:00
. e n d i f
1999-08-22 11:20:25 +00:00
. i f d e f i n e d ( D E P E N D S _ C L E A N )
DEPENDS_TARGET += clean
DEPENDS_ARGS += NOCLEANDEPENDS = yes
. e n d i f
. e l s e
DEPENDS_ARGS += FORCE_PKG_REGISTER = yes
. e n d i f
. i f d e f i n e d ( D E P E N D S )
# pretty much guarantees overwrite of existing installation
1999-09-08 06:04:43 +00:00
.MAKEFLAGS : FORCE_PKG_REGISTER =yes
1997-08-20 03:44:14 +00:00
. e n d i f
1994-10-03 14:38:27 +00:00
1995-04-20 18:03:02 +00:00
################################################################
# The following are used to create easy dummy targets for
# disabling some bit of default target behavior you don't want.
# They still check to see if the target exists, and if so don't
# do anything, since you might want to set this globally for a
# group of ports in a Makefile.inc, but still be able to
1995-05-29 13:46:38 +00:00
# override from an individual Makefile.
1995-04-20 18:03:02 +00:00
################################################################
1996-11-01 07:22:37 +00:00
# Disable checksum
. i f d e f i n e d ( N O _ C H E C K S U M ) & & ! t a r g e t ( c h e c k s u m )
checksum : fetch
@${ DO_NADA }
. e n d i f
1996-06-01 05:47:42 +00:00
# Disable build
1994-08-28 14:41:34 +00:00
. i f d e f i n e d ( N O _ B U I L D ) & & ! t a r g e t ( b u i l d )
1995-04-24 10:41:51 +00:00
build : configure
1994-11-01 18:09:22 +00:00
@${ TOUCH } ${ TOUCH_FLAGS } ${ BUILD_COOKIE }
1994-08-28 14:41:34 +00:00
. e n d i f
1996-06-01 05:47:42 +00:00
# Disable install
1994-08-28 14:41:34 +00:00
. i f d e f i n e d ( N O _ I N S T A L L ) & & ! t a r g e t ( i n s t a l l )
1995-04-24 10:41:51 +00:00
install : build
1994-11-01 18:09:22 +00:00
@${ TOUCH } ${ TOUCH_FLAGS } ${ INSTALL_COOKIE }
1994-08-28 14:41:34 +00:00
. e n d i f
1996-06-01 05:47:42 +00:00
1996-11-01 07:22:37 +00:00
# Disable package
. i f d e f i n e d ( N O _ P A C K A G E ) & & ! t a r g e t ( p a c k a g e )
package :
1996-12-09 07:08:16 +00:00
. i f d e f i n e d ( I G N O R E _ S I L E N T )
1996-11-01 07:22:37 +00:00
@${ DO_NADA }
1996-12-09 07:08:16 +00:00
. e l s e
@${ ECHO_MSG } " ===> ${ PKGNAME } may not be packaged: ${ NO_PACKAGE } . "
. e n d i f
1996-11-01 07:22:37 +00:00
. e n d i f
# Disable describe
. i f d e f i n e d ( N O _ D E S C R I B E ) & & ! t a r g e t ( d e s c r i b e )
describe :
@${ DO_NADA }
1994-11-11 09:45:33 +00:00
. e n d i f
1994-08-28 14:41:34 +00:00
1995-04-20 18:03:02 +00:00
################################################################
1994-08-28 14:41:34 +00:00
# More standard targets start here.
1995-03-22 21:46:04 +00:00
#
1995-04-20 18:03:02 +00:00
# These are the body of the build/install framework. If you are
# not happy with the default actions, and you can't solve it by
# adding pre-* or post-* targets/scripts, override these.
################################################################
2002-03-25 08:48:47 +00:00
# Pre-everything
. i f ! t a r g e t ( p r e - e v e r y t h i n g )
pre-everything :
. i f d e f i n e d ( T R Y B R O K E N )
@${ ECHO_MSG } " Trying build of ${ PKGNAME } even though it is marked BROKEN. "
. e l s e
@${ DO_NADA }
. e n d i f
. i f d e f i n e d ( G N O M E _ O P T I O N _ M S G ) & & ( ! d e f i n e d ( P A C K A G E _ B U I L D I N G ) | | ! d e f i n e d ( B A T C H ) )
@for m in ${ GNOME_OPTION_MSG } ; do \
${ ECHO_MSG } $$ m; \
done
. e l s e
@${ DO_NADA }
. e n d i f
. e n d i f
1995-04-20 18:03:02 +00:00
# Fetch
. i f ! t a r g e t ( d o - f e t c h )
do-fetch :
1996-11-30 10:31:50 +00:00
@${ MKDIR } ${ _DISTDIR }
@( cd ${ _DISTDIR } ; \
2002-01-23 03:48:44 +00:00
${ _MASTER_SITES_ENV } ; \
for _file in ${ DISTFILES } ; do \
file = ` echo $$ _file | ${ SED } -E -e 's/:[^:]+$$//' ` ; \
select = ` echo $$ { _file#$$ { file} } | ${ SED } -e 's/^://' -e 's/,/ /g' ` ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
force_fetch = false; \
filebasename = ` ${ BASENAME } $$ file` ; \
for afile in ${ FORCE_FETCH } ; do \
afile = ` ${ BASENAME } $$ afile` ; \
if [ " x $$ afile " = " x $$ filebasename " ] ; then \
force_fetch = true; \
fi ; \
done ; \
if [ ! -f $$ file -a ! -f $$ filebasename -o " $$ force_fetch " = "true" ] ; then \
if [ -L $$ file -o -L $$ filebasename ] ; then \
1996-11-30 10:31:50 +00:00
${ ECHO_MSG } " >> ${ _DISTDIR } / $$ file is a broken symlink. " ; \
1996-02-16 11:19:00 +00:00
${ ECHO_MSG } ">> Perhaps a filesystem (most likely a CD) isn't mounted?" ; \
${ ECHO_MSG } ">> Please correct this problem and try again." ; \
exit 1; \
fi ; \
2000-05-06 10:45:35 +00:00
if [ -f ${ MD5_FILE } -a " x ${ NO_CHECKSUM } " = "x" ] ; then \
2000-04-16 11:35:52 +00:00
if ! ${ GREP } -q " ^MD5 (.* $$ file) " ${ MD5_FILE } ; then \
${ ECHO_MSG } " >> $$ file is not in ${ MD5_FILE } . " ; \
${ ECHO_MSG } " >> Either ${ MD5_FILE } is out of date, or " ; \
${ ECHO_MSG } " >> $$ file is spelled incorrectly. " ; \
exit 1; \
fi ; \
fi ; \
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
${ ECHO_MSG } " >> $$ file doesn't seem to exist in ${ _DISTDIR } . " ; \
2002-09-25 17:50:03 +00:00
if [ ! -w ${ DISTDIR } ] ; then \
${ ECHO_MSG } " >> ${ DISTDIR } is not writable by you; cannot fetch. " ; \
exit 1; \
fi ; \
2002-01-23 03:48:44 +00:00
if [ ! -z " $$ select " ] ; then \
__MASTER_SITES_TMP = ; \
for group in $$ select ; do \
if [ ! -z \$ ${ _MASTER_SITES_ $$ {group } } ] ; then \
eval ___MASTER_SITES_TMP = " \$ ${ _MASTER_SITES_ $$ {group } } " ; \
__MASTER_SITES_TMP = " $$ {__MASTER_SITES_TMP} $$ {___MASTER_SITES_TMP} " ; \
fi \
done ; \
___MASTER_SITES_TMP = ; \
2002-11-03 05:43:49 +00:00
SORTED_MASTER_SITES_CMD_TMP = " echo ${ _MASTER_SITE_OVERRIDE } `echo $$ {__MASTER_SITES_TMP} | ${ AWK } ' ${ MASTER_SORT_AWK : S | \\ | \\ \\ |g } '` ${ _MASTER_SITE_BACKUP } " ; \
2002-01-23 03:48:44 +00:00
else \
SORTED_MASTER_SITES_CMD_TMP = " ${ SORTED_MASTER_SITES_DEFAULT_CMD } " ; \
fi ; \
for site in ` eval $$ SORTED_MASTER_SITES_CMD_TMP` ; do \
1995-10-04 11:13:52 +00:00
${ ECHO_MSG } " >> Attempting to fetch from $$ {site}. " ; \
1998-09-22 23:58:49 +00:00
DIR = ${ DIST_SUBDIR } ; \
CKSIZE = ` ${ GREP } " ^SIZE ( $$ {DIR:+ $$ DIR/} $$ file) " ${ MD5_FILE } | ${ AWK } '{print $$4}' ` ; \
1999-10-01 09:28:32 +00:00
case $$ { file} in \
*/*) ${ MKDIR } $$ { file%/*} ; \
args = " -o $$ {file} $$ {site} $$ {file} " ; ; \
*) args = $$ { site} $$ { file} ; ; \
esac ; \
if ${ SETENV } ${ FETCH_ENV } ${ FETCH_CMD } ${ FETCH_BEFORE_ARGS } $$ { args} ${ FETCH_AFTER_ARGS } ; then \
1995-08-29 11:57:40 +00:00
continue 2; \
1995-04-20 18:03:02 +00:00
fi \
done ; \
1996-06-22 21:20:56 +00:00
${ ECHO_MSG } ">> Couldn't fetch it - please try to retrieve this" ; \
1996-11-30 10:31:50 +00:00
${ ECHO_MSG } " >> port manually into ${ _DISTDIR } and try again. " ; \
1995-08-29 11:57:40 +00:00
exit 1; \
1995-04-20 18:03:02 +00:00
fi \
done )
. i f d e f i n e d ( P A T C H F I L E S )
1996-11-30 10:31:50 +00:00
@( cd ${ _DISTDIR } ; \
2002-01-23 03:48:44 +00:00
${ _PATCH_SITES_ENV } ; \
for _file in ${ PATCHFILES } ; do \
file = ` echo $$ _file | ${ SED } -E -e 's/:[^:]+$$//' ` ; \
select = ` echo $$ { _file#$$ { file} } | ${ SED } -e 's/^://' -e 's/,/ /g' ` ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
force_fetch = false; \
filebasename = ` ${ BASENAME } $$ file` ; \
for afile in ${ FORCE_FETCH } ; do \
afile = ` ${ BASENAME } $$ afile` ; \
if [ " x $$ afile " = " x $$ filebasename " ] ; then \
force_fetch = true; \
fi ; \
done ; \
if [ ! -f $$ file -a ! -f $$ filebasename -o " $$ force_fetch " = "true" ] ; then \
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
if [ -L $$ file -o -L ` ${ BASENAME } $$ file` ] ; then \
1996-11-30 10:31:50 +00:00
${ ECHO_MSG } " >> ${ _DISTDIR } / $$ file is a broken symlink. " ; \
1996-02-16 11:19:00 +00:00
${ ECHO_MSG } ">> Perhaps a filesystem (most likely a CD) isn't mounted?" ; \
${ ECHO_MSG } ">> Please correct this problem and try again." ; \
exit 1; \
fi ; \
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
${ ECHO_MSG } " >> $$ file doesn't seem to exist in ${ _DISTDIR } . " ; \
2002-04-03 01:17:57 +00:00
if [ ! -z " $$ select " ] ; then \
2002-01-23 03:48:44 +00:00
__PATCH_SITES_TMP = ; \
for group in $$ select ; do \
if [ ! -z \$ ${ _PATCH_SITES_ $$ {group } } ] ; then \
eval ___PATCH_SITES_TMP = " \$ ${ _PATCH_SITES_ $$ {group } } " ; \
__PATCH_SITES_TMP = " $$ {__PATCH_SITES_TMP} $$ {___PATCH_SITES_TMP} " ; \
fi \
done ; \
___PATCH_SITES_TMP = ; \
2002-11-03 05:43:49 +00:00
SORTED_PATCH_SITES_CMD_TMP = " echo ${ _MASTER_SITE_OVERRIDE } `echo $$ {__PATCH_SITES_TMP} | ${ AWK } ' ${ MASTER_SORT_AWK : S | \\ | \\ \\ |g } '` ${ _MASTER_SITE_BACKUP } " ; \
2002-01-23 03:48:44 +00:00
else \
SORTED_PATCH_SITES_CMD_TMP = " ${ SORTED_PATCH_SITES_DEFAULT_CMD } " ; \
fi ; \
for site in ` eval $$ SORTED_PATCH_SITES_CMD_TMP` ; do \
1995-04-20 18:03:02 +00:00
${ ECHO_MSG } " >> Attempting to fetch from $$ {site}. " ; \
1998-09-22 23:58:49 +00:00
DIR = ${ DIST_SUBDIR } ; \
CKSIZE = ` ${ GREP } " ^SIZE ( $$ {DIR:+ $$ DIR/} $$ file) " ${ MD5_FILE } | ${ AWK } '{print $$4}' ` ; \
1999-10-01 09:28:32 +00:00
case $$ { file} in \
*/*) ${ MKDIR } $$ { file%/*} ; \
args = " -o $$ {file} $$ {site} $$ {file} " ; ; \
*) args = $$ { site} $$ { file} ; ; \
esac ; \
if ${ SETENV } ${ FETCH_ENV } ${ FETCH_CMD } ${ FETCH_BEFORE_ARGS } $$ { args} ${ FETCH_AFTER_ARGS } ; then \
1995-08-29 11:57:40 +00:00
continue 2; \
1995-04-20 18:03:02 +00:00
fi \
done ; \
1996-06-22 21:20:56 +00:00
${ ECHO_MSG } ">> Couldn't fetch it - please try to retrieve this" ; \
1996-11-30 10:31:50 +00:00
${ ECHO_MSG } " >> port manually into ${ _DISTDIR } and try again. " ; \
1995-08-29 11:57:40 +00:00
exit 1; \
1995-04-20 18:03:02 +00:00
fi \
done )
. e n d i f
. e n d i f
# Extract
. i f ! t a r g e t ( d o - e x t r a c t )
do-extract :
1996-03-06 08:08:16 +00:00
@${ RM } -rf ${ WRKDIR }
1996-11-01 07:22:37 +00:00
@${ MKDIR } ${ WRKDIR }
1995-04-20 18:03:02 +00:00
@for file in ${ EXTRACT_ONLY } ; do \
1997-01-10 21:02:27 +00:00
if ! ( cd ${ WRKDIR } && ${ EXTRACT_CMD } ${ EXTRACT_BEFORE_ARGS } ${ _DISTDIR } /$$ file ${ EXTRACT_AFTER_ARGS } ) ; \
1995-04-20 18:03:02 +00:00
then \
exit 1; \
fi \
done
1999-08-22 11:20:25 +00:00
. i f ! d e f i n e d ( E X T R A C T _ P R E S E R V E _ O W N E R S H I P )
@if [ ` id -u` = 0 ] ; then \
${ CHMOD } -R ug-s ${ WRKDIR } ; \
${ CHOWN } -R 0:0 ${ WRKDIR } ; \
fi
. e n d i f
1995-04-20 18:03:02 +00:00
. e n d i f
# Patch
. i f ! t a r g e t ( d o - p a t c h )
do-patch :
. i f d e f i n e d ( P A T C H F I L E S )
1996-02-08 00:44:33 +00:00
@${ ECHO_MSG } " ===> Applying distribution patches for ${ PKGNAME } "
1996-11-30 10:31:50 +00:00
@( cd ${ _DISTDIR } ; \
2002-01-23 03:48:44 +00:00
for i in ${ _PATCHFILES } ; do \
1996-08-17 10:16:02 +00:00
if [ ${ PATCH_DEBUG_TMP } = yes ] ; then \
${ ECHO_MSG } " ===> Applying distribution patch $$ i " ; \
fi ; \
1995-04-20 18:03:02 +00:00
case $$ i in \
*.Z| *.gz) \
1996-03-06 08:08:16 +00:00
${ GZCAT } $$ i | ${ PATCH } ${ PATCH_DIST_ARGS } ; \
1995-04-20 18:03:02 +00:00
; ; \
2001-11-17 21:23:09 +00:00
*.bz2) \
${ BZCAT } $$ i | ${ PATCH } ${ PATCH_DIST_ARGS } ; \
; ; \
1995-04-20 18:03:02 +00:00
*) \
${ PATCH } ${ PATCH_DIST_ARGS } < $$ i; \
; ; \
esac ; \
done )
1999-11-11 02:36:15 +00:00
. e n d i f
. i f d e f i n e d ( E X T R A _ P A T C H E S )
@for i in ${ EXTRA_PATCHES } ; do \
${ ECHO_MSG } " ===> Applying extra patch $$ i " ; \
${ PATCH } ${ PATCH_ARGS } < $$ i; \
done
1995-04-20 18:03:02 +00:00
. e n d i f
@if [ -d ${ PATCHDIR } ] ; then \
2000-10-17 10:11:16 +00:00
if [ " `echo ${ PATCHDIR } /patch-*` " != " ${ PATCHDIR } /patch-* " ] ; then \
1996-11-01 07:22:37 +00:00
${ ECHO_MSG } " ===> Applying ${ OPSYS } patches for ${ PKGNAME } " ; \
2000-09-13 07:16:49 +00:00
PATCHES_APPLIED = "" ; \
1996-08-17 10:16:02 +00:00
for i in ${ PATCHDIR } /patch-*; do \
case $$ i in \
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
*.orig| *.rej| *~| *,v) \
1996-08-17 10:16:02 +00:00
${ ECHO_MSG } " ===> Ignoring patchfile $$ i " ; \
; ; \
*) \
if [ ${ PATCH_DEBUG_TMP } = yes ] ; then \
1996-11-01 07:22:37 +00:00
${ ECHO_MSG } " ===> Applying ${ OPSYS } patch $$ i " ; \
1996-08-17 10:16:02 +00:00
fi ; \
2000-09-13 07:16:49 +00:00
if ${ PATCH } ${ PATCH_ARGS } < $$ i ; then \
PATCHES_APPLIED = " $$ PATCHES_APPLIED $$ i " ; \
else \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_MSG } ` ${ ECHO_CMD } " >> Patch $$ i failed to apply cleanly. " | ${ SED } " s| ${ PATCHDIR } /|| " ` ; \
2000-09-13 07:16:49 +00:00
if [ x" $$ PATCHES_APPLIED " != x"" ] ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_MSG } ` ${ ECHO_CMD } " >> Patch(es) $$ PATCHES_APPLIED applied cleanly. " | ${ SED } " s| ${ PATCHDIR } /||g " ` ; \
2000-09-13 07:16:49 +00:00
fi ; \
${ FALSE } ; \
fi ; \
1996-08-17 10:16:02 +00:00
; ; \
esac ; \
done ; \
fi ; \
1995-03-21 01:51:12 +00:00
fi
1995-04-20 18:03:02 +00:00
. e n d i f
1995-01-03 11:52:01 +00:00
1995-04-20 18:03:02 +00:00
# Configure
1994-11-03 19:14:08 +00:00
1995-04-20 18:03:02 +00:00
. i f ! t a r g e t ( d o - c o n f i g u r e )
do-configure :
2000-05-06 10:45:35 +00:00
. i f d e f i n e d ( U S E _ A U T O M A K E )
2000-11-16 13:06:29 +00:00
@( cd ${ CONFIGURE_WRKSRC } && ${ SETENV } ${ AUTOMAKE_ENV } ${ AUTOMAKE } \
${ AUTOMAKE_ARGS } )
2000-05-06 10:45:35 +00:00
. e n d i f
1998-01-02 10:37:14 +00:00
. i f d e f i n e d ( U S E _ A U T O C O N F )
2000-11-16 13:06:29 +00:00
@( cd ${ CONFIGURE_WRKSRC } && ${ SETENV } ${ AUTOCONF_ENV } ${ AUTOCONF } \
${ AUTOCONF_ARGS } )
1998-01-02 10:37:14 +00:00
. e n d i f
1996-09-24 06:48:22 +00:00
@if [ -f ${ SCRIPTDIR } /configure ] ; then \
1997-07-10 02:29:51 +00:00
cd ${ .CURDIR } && ${ SETENV } ${ SCRIPTS_ENV } ${ SH } \
1997-01-12 11:48:26 +00:00
${ SCRIPTDIR } /configure; \
1995-04-20 18:03:02 +00:00
fi
. i f d e f i n e d ( H A S _ C O N F I G U R E )
2000-05-06 10:45:35 +00:00
@( cd ${ CONFIGURE_WRKSRC } && \
1999-06-11 11:59:10 +00:00
if ! ${ SETENV } CC = " ${ CC } " CXX = " ${ CXX } " \
1999-04-28 06:20:23 +00:00
CFLAGS = " ${ CFLAGS } " CXXFLAGS = " ${ CXXFLAGS } " \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
INSTALL = " /usr/bin/install -c ${ _BINOWNGRP } " \
1998-01-02 10:37:14 +00:00
INSTALL_DATA = " ${ INSTALL_DATA } " \
1996-08-18 10:53:16 +00:00
INSTALL_PROGRAM = " ${ INSTALL_PROGRAM } " \
1998-01-02 10:37:14 +00:00
INSTALL_SCRIPT = " ${ INSTALL_SCRIPT } " \
1999-06-11 11:59:10 +00:00
${ CONFIGURE_ENV } ./${ CONFIGURE_SCRIPT } ${ CONFIGURE_ARGS } ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " ===> Script \" ${ CONFIGURE_SCRIPT } \" failed unexpectedly. " ; \
( ${ ECHO_CMD } " Please report the problem to ${ MAINTAINER } [maintainer] and " ; \
${ ECHO_CMD } " attach the \" ${ CONFIGURE_WRKSRC } / ${ CONFIGURE_LOG } \" including " ; \
${ ECHO_CMD } " the output of the failure of your make command. Also, it might" ; \
${ ECHO_CMD } " be a good idea to provide an overview of all packages installed" ; \
2002-11-03 05:43:49 +00:00
${ ECHO_CMD } " on your system (e.g. an \`ls ${ PKG_DBDIR } \`). " ) | /usr/bin/fmt 75 79 ; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ FALSE } ; \
1999-06-11 11:59:10 +00:00
fi )
1995-04-20 18:03:02 +00:00
. e n d i f
2000-09-13 07:16:49 +00:00
. i f d e f i n e d ( P E R L _ C O N F I G U R E )
@cd ${ CONFIGURE_WRKSRC } && \
${ SETENV } ${ CONFIGURE_ENV } \
2000-10-17 10:11:16 +00:00
${ PERL5 } ./${ CONFIGURE_SCRIPT } ${ CONFIGURE_ARGS }
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
@cd ${ CONFIGURE_WRKSRC } && \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
${ PERL5 } -pi -e 's/ doc_(perl|site|\$$\(INSTALLDIRS\))_install$$//' Makefile
2000-09-13 07:16:49 +00:00
. e n d i f
1995-04-20 18:03:02 +00:00
. i f d e f i n e d ( U S E _ I M A K E )
2000-10-17 10:11:16 +00:00
@( cd ${ CONFIGURE_WRKSRC } ; ${ SETENV } ${ MAKE_ENV } ${ XMKMF } )
1994-11-03 19:14:08 +00:00
. e n d i f
1995-07-15 14:07:02 +00:00
. e n d i f
1994-11-03 19:14:08 +00:00
1995-04-20 18:03:02 +00:00
# Build
. i f ! t a r g e t ( d o - b u i l d )
do-build :
. i f d e f i n e d ( U S E _ G M A K E )
2000-10-17 10:11:16 +00:00
@( cd ${ BUILD_WRKSRC } ; ${ SETENV } ${ MAKE_ENV } ${ GMAKE } ${ MAKE_FLAGS } ${ MAKEFILE } ${ MAKE_ARGS } ${ ALL_TARGET } )
2000-04-02 08:32:26 +00:00
. e l s e
2000-10-17 10:11:16 +00:00
@( cd ${ BUILD_WRKSRC } ; ${ SETENV } ${ MAKE_ENV } ${ MAKE } ${ MAKE_FLAGS } ${ MAKEFILE } ${ MAKE_ARGS } ${ ALL_TARGET } )
1995-04-20 18:03:02 +00:00
. e n d i f
1994-08-24 14:49:33 +00:00
. e n d i f
2003-05-06 05:15:18 +00:00
# Check conflicts
. i f ! t a r g e t ( c h e c k - c o n f l i c t s )
check-conflicts :
. i f d e f i n e d ( C O N F L I C T S ) & & ! d e f i n e d ( D I S A B L E _ C O N F L I C T S )
@${ RM } -f ${ WRKDIR } /.CONFLICTS
. f o r c o n f l i c t i n $ { C O N F L I C T S }
@found= " ` ${ LS } -d ${ PKG_DBDIR } / ${ conflict } 2>/dev/null || ${ TRUE } ` " ; \
if [ X" $$ found " != X"" ] ; then \
${ ECHO } " $$ found " >> ${ WRKDIR } /.CONFLICTS; \
fi
. e n d f o r
@if [ -s ${ WRKDIR } /.CONFLICTS ] ; then \
found = ` cat ${ WRKDIR } /.CONFLICTS | ${ SED } -e s'|${PKG_DBDIR}/||g' | tr '\012' ' ' ` ; \
${ ECHO_MSG } " ===> ${ PKGNAME } conflicts with installed package(s): " ; \
for entry in $$ found; do \
${ ECHO_MSG } " $$ entry " ; \
done ; \
${ ECHO_MSG } ; \
${ ECHO_MSG } " They install files into the same place." ; \
${ ECHO_MSG } " Please remove them first with pkg_delete(1)." ; \
${ RM } -f ${ WRKDIR } /.CONFLICTS; \
exit 1; \
fi
. e n d i f # CONFLICTS
. e n d i f
1995-04-20 18:03:02 +00:00
# Install
1994-10-03 14:38:27 +00:00
1995-04-20 18:03:02 +00:00
. i f ! t a r g e t ( d o - i n s t a l l )
do-install :
1994-08-21 13:12:57 +00:00
. i f d e f i n e d ( U S E _ G M A K E )
2000-10-17 10:11:16 +00:00
@( cd ${ INSTALL_WRKSRC } && ${ SETENV } ${ MAKE_ENV } ${ GMAKE } ${ MAKE_FLAGS } ${ MAKEFILE } ${ MAKE_ARGS } ${ INSTALL_TARGET } )
1994-12-12 22:32:30 +00:00
. i f d e f i n e d ( U S E _ I M A K E ) & & ! d e f i n e d ( N O _ I N S T A L L _ M A N P A G E S )
2000-10-17 10:11:16 +00:00
@( cd ${ INSTALL_WRKSRC } && ${ SETENV } ${ MAKE_ENV } ${ GMAKE } ${ MAKE_FLAGS } ${ MAKEFILE } ${ MAKE_ARGS } install.man)
2002-03-16 23:37:02 +00:00
.if ${XFREE86_HTML_MAN : L } == yes
@${ MKHTMLINDEX } ${ PREFIX } /lib/X11/doc/html
. e n d i f
1994-12-12 22:32:30 +00:00
. e n d i f
1994-08-21 13:12:57 +00:00
. e l s e d e f i n e d ( U S E _ G M A K E )
2000-10-17 10:11:16 +00:00
@( cd ${ INSTALL_WRKSRC } && ${ SETENV } ${ MAKE_ENV } ${ MAKE } ${ MAKE_FLAGS } ${ MAKEFILE } ${ MAKE_ARGS } ${ INSTALL_TARGET } )
1994-12-10 18:07:38 +00:00
. i f d e f i n e d ( U S E _ I M A K E ) & & ! d e f i n e d ( N O _ I N S T A L L _ M A N P A G E S )
2000-10-17 10:11:16 +00:00
@( cd ${ INSTALL_WRKSRC } && ${ SETENV } ${ MAKE_ENV } ${ MAKE } ${ MAKE_FLAGS } ${ MAKEFILE } ${ MAKE_ARGS } install.man)
2002-03-16 23:37:02 +00:00
.if ${XFREE86_HTML_MAN : L } == yes
@${ MKHTMLINDEX } ${ PREFIX } /lib/X11/doc/html
. e n d i f
1994-10-22 09:21:35 +00:00
. e n d i f
1995-04-19 15:02:26 +00:00
. e n d i f
1995-04-22 00:08:06 +00:00
. e n d i f
1995-04-20 18:03:02 +00:00
1995-08-18 10:06:28 +00:00
# Package
1995-04-20 18:03:02 +00:00
1995-08-18 10:06:28 +00:00
. i f ! t a r g e t ( d o - p a c k a g e )
2003-05-06 05:15:18 +00:00
do-package : ${TMPPLIST }
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
@if [ -d ${ PACKAGES } ] ; then \
if [ ! -d ${ PKGREPOSITORY } ] ; then \
if ! ${ MKDIR } ${ PKGREPOSITORY } ; then \
${ ECHO_MSG } " >> Can't create directory ${ PKGREPOSITORY } . " ; \
exit 1; \
1995-08-18 10:06:28 +00:00
fi ; \
fi ; \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
fi
1999-07-23 09:36:55 +00:00
@__softMAKEFLAGS= '${__softMAKEFLAGS:S/' /'\' '/g}' ; \
if ${ PKG_CMD } ${ PKG_ARGS } ${ PKGFILE } ; then \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
if [ -d ${ PACKAGES } ] ; then \
1999-07-23 09:36:55 +00:00
eval ${ MAKE } $$ { __softMAKEFLAGS} package-links; \
1995-08-18 10:06:28 +00:00
fi ; \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
else \
1999-07-23 09:36:55 +00:00
eval ${ MAKE } $$ { __softMAKEFLAGS} delete-package; \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
exit 1; \
1995-04-20 18:03:02 +00:00
fi
1994-08-21 13:12:57 +00:00
. e n d i f
1995-08-18 10:06:28 +00:00
# Some support rules for do-package
1995-04-20 18:03:02 +00:00
1995-08-18 10:06:28 +00:00
. i f ! t a r g e t ( p a c k a g e - l i n k s )
2002-03-25 08:48:47 +00:00
package-links : delete -package -links
1995-08-18 10:06:28 +00:00
@for cat in ${ CATEGORIES } ; do \
if [ ! -d ${ PACKAGES } /$$ cat ] ; then \
1996-11-01 07:22:37 +00:00
if ! ${ MKDIR } ${ PACKAGES } /$$ cat; then \
1995-08-18 10:06:28 +00:00
${ ECHO_MSG } " >> Can't create directory ${ PACKAGES } / $$ cat. " ; \
exit 1; \
fi ; \
fi ; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ LN } -sf ` ${ ECHO_CMD } $$ cat | ${ SED } -e 'sa[^/]*a..ag' ` /${ PKGREPOSITORYSUBDIR } /${ PKGNAME } ${ PKG_SUFX } ${ PACKAGES } /$$ cat; \
1998-01-02 10:37:14 +00:00
done
1998-02-04 10:36:56 +00:00
. i f ! d e f i n e d ( N O _ L A T E S T _ L I N K )
1998-01-02 10:37:14 +00:00
@if [ ! -d ${ PKGLATESTREPOSITORY } ] ; then \
if ! ${ MKDIR } ${ PKGLATESTREPOSITORY } ; then \
${ ECHO_MSG } " >> Can't create directory ${ PKGLATESTREPOSITORY } . " ; \
exit 1; \
fi ; \
fi
@${ LN } -s ../${ PKGREPOSITORYSUBDIR } /${ PKGNAME } ${ PKG_SUFX } ${ PKGLATESTFILE }
1995-04-09 12:27:58 +00:00
. e n d i f
1998-02-04 10:36:56 +00:00
. e n d i f
1995-08-18 10:06:28 +00:00
. i f ! t a r g e t ( d e l e t e - p a c k a g e - l i n k s )
delete-package-links :
2000-01-21 11:08:23 +00:00
@for cat in ${ CATEGORIES } ; do \
${ RM } -f ${ PACKAGES } /$$ cat/${ PKGNAME } ${ PKG_SUFX } ; \
done
1998-03-24 03:34:51 +00:00
. i f ! d e f i n e d ( N O _ L A T E S T _ L I N K )
@${ RM } -f ${ PKGLATESTFILE }
. e n d i f
1995-04-09 12:27:58 +00:00
. e n d i f
1995-08-18 10:06:28 +00:00
. i f ! t a r g e t ( d e l e t e - p a c k a g e )
2002-03-25 08:48:47 +00:00
delete-package : delete -package -links
1996-03-06 08:08:16 +00:00
@${ RM } -f ${ PKGFILE }
1995-08-18 10:06:28 +00:00
. e n d i f
1994-08-24 14:49:33 +00:00
1999-04-28 06:20:23 +00:00
. i f ! t a r g e t ( d e l e t e - p a c k a g e - l i n k s - l i s t )
delete-package-links-list :
2000-01-21 11:08:23 +00:00
@for cat in ${ CATEGORIES } ; do \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } ${ RM } -f ${ PACKAGES } /$$ cat/${ PKGNAME } ${ PKG_SUFX } ; \
2000-01-21 11:08:23 +00:00
done
1999-04-28 06:20:23 +00:00
. i f ! d e f i n e d ( N O _ L A T E S T _ L I N K )
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } ${ RM } -f ${ PKGLATESTFILE }
1999-04-28 06:20:23 +00:00
. e n d i f
. e n d i f
. i f ! t a r g e t ( d e l e t e - p a c k a g e - l i s t )
2002-03-25 08:48:47 +00:00
delete-package-list : delete -package -links -list
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " [ -f ${ PKGFILE } ] && ( ${ ECHO_CMD } deleting ${ PKGFILE } ; ${ RM } -f ${ PKGFILE } ) "
1999-04-28 06:20:23 +00:00
. e n d i f
2002-03-25 08:48:47 +00:00
# Utility targets follow
1995-04-17 06:39:05 +00:00
2002-03-25 08:48:47 +00:00
. i f ! t a r g e t ( c h e c k - a l r e a d y - i n s t a l l e d )
check-already-installed :
1997-02-23 13:24:45 +00:00
. i f ! d e f i n e d ( N O _ P K G _ R E G I S T E R ) & & ! d e f i n e d ( F O R C E _ P K G _ R E G I S T E R )
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
@if [ -d ${ PKG_DBDIR } /${ PKGNAME } -o \
" x` ${ PKG_INFO } -q -O ${ PKGORIGIN } 2> /dev/null` " != "x" ] ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " ===> ${ PKGNAME } is already installed - perhaps an older version? " ; \
${ ECHO_CMD } " If so, you may wish to \`\`make deinstall'' and install" ; \
${ ECHO_CMD } " this port again by \`\`make reinstall'' to upgrade it properly." ; \
${ ECHO_CMD } " If you really wish to overwrite the old port of ${ PKGNAME } " ; \
${ ECHO_CMD } " without deleting it first, set the variable \"FORCE_PKG_REGISTER\"" ; \
${ ECHO_CMD } " in your environment or the \"make install\" command line." ; \
1997-02-23 13:24:45 +00:00
exit 1; \
fi
2002-03-25 08:48:47 +00:00
. e l s e
@${ DO_NADA }
1997-02-23 13:24:45 +00:00
. e n d i f
2002-03-25 08:48:47 +00:00
. e n d i f
. i f ! t a r g e t ( c h e c k - u m a s k )
check-umask :
1997-07-10 02:29:51 +00:00
@if [ ` ${ SH } -c umask ` != 0022 ] ; then \
${ ECHO_MSG } " ===> Warning: your umask is \"` ${ SH } -c umask` " \" .; \
1997-06-18 03:20:22 +00:00
${ ECHO_MSG } " If this is not desired, set it to an appropriate value" ; \
${ ECHO_MSG } " and install this port again by \`\`make reinstall''." ; \
fi
1995-09-18 08:01:20 +00:00
. e n d i f
2002-03-25 08:48:47 +00:00
. i f ! t a r g e t ( i n s t a l l - m t r e e )
install-mtree :
1999-04-28 06:20:23 +00:00
@${ MKDIR } ${ PREFIX }
@if [ ` id -u` != 0 ] ; then \
if [ -w ${ PREFIX } / ] ; then \
${ ECHO_MSG } "Warning: not superuser, you may get some errors during installation." ; \
else \
${ ECHO_MSG } " Error: ${ PREFIX } / not writable. " ; \
${ FALSE } ; \
fi ; \
fi
1995-08-18 10:06:28 +00:00
. i f ! d e f i n e d ( N O _ M T R E E )
@if [ ` id -u` = 0 ] ; then \
1997-08-20 03:44:14 +00:00
if [ ! -f ${ MTREE_FILE } ] ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " Error: mtree file \" ${ MTREE_FILE } \" is missing. " ; \
${ ECHO_CMD } "Copy it from a suitable location (e.g., /usr/src/etc/mtree) and try again." ; \
1997-08-20 03:44:14 +00:00
exit 1; \
else \
1998-12-12 07:39:30 +00:00
${ MTREE_CMD } ${ MTREE_ARGS } ${ PREFIX } / >/dev/null; \
1997-08-20 03:44:14 +00:00
fi ; \
1995-08-18 10:06:28 +00:00
else \
${ ECHO_MSG } "Warning: not superuser, can't run mtree." ; \
1999-04-28 06:20:23 +00:00
${ ECHO_MSG } "You may want to become root and try again to ensure correct permissions." ; \
1995-08-18 10:06:28 +00:00
fi
1995-04-17 06:39:05 +00:00
. e n d i f
2000-04-02 08:32:26 +00:00
. e n d i f
2002-03-25 08:48:47 +00:00
. i f ! t a r g e t ( r u n - l d c o n f i g )
run-ldconfig :
. i f d e f i n e d ( I N S T A L L S _ S H L I B )
2000-06-14 02:14:49 +00:00
@${ ECHO_MSG } "===> Running ldconfig"
${ LDCONFIG } -m ${ LDCONFIG_RUNLIST }
2002-03-25 08:48:47 +00:00
. e l s e
2000-08-15 22:39:00 +00:00
@${ DO_NADA }
. e n d i f
1995-08-18 10:06:28 +00:00
. e n d i f
1994-11-11 09:45:33 +00:00
2002-03-25 08:48:47 +00:00
. i f ! t a r g e t ( s e c u r i t y - c h e c k )
security-check :
2002-11-03 05:43:49 +00:00
# Scan PLIST for:
# 1. setugid files
# 2. accept()/recvfrom() which indicates network listening capability
# 3. insecure functions (gets/mktemp/tempnam/[XXX])
# 4. startup scripts, in conjunction with 2.
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
# 5. world-writable files/dirs
2002-11-03 05:43:49 +00:00
#
-@rm -f ${ WRKDIR } /.PLIST.setuid ${ WRKDIR } /.PLIST.stupid \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
${ WRKDIR } /.PLIST.network ${ WRKDIR } /.PLIST.writable; \
2002-11-03 05:43:49 +00:00
if [ -n " $$ PORTS_AUDIT " ] ; then \
stupid_functions_regexp = ' (gets|mktemp|tempnam|tmpnam|strcpy|strcat|sprintf)$$' ; \
else \
stupid_functions_regexp = ' (gets|mktemp|tempnam|tmpnam)$$' ; \
fi ; \
for i in ` ${ GREP } -v '^@' ${ TMPPLIST } ` ; do \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
if [ ! -L " ${ PREFIX } / $$ i " -a -f " ${ PREFIX } / $$ i " ] ; then \
2002-11-03 05:43:49 +00:00
/usr/bin/objdump -R ${ PREFIX } /$$ i > \
${ WRKDIR } /.PLIST.objdump 2> /dev/null; \
if [ -s ${ WRKDIR } /.PLIST.objdump ] ; then \
${ EGREP } " $$ stupid_functions_regexp " \
${ WRKDIR } /.PLIST.objdump | awk '{print " " $$3}' | tr -d '\n' \
> ${ WRKDIR } /.PLIST.stupid; \
if [ -n " ` ${ EGREP } ' (accept|recvfrom) $$ ' ${ WRKDIR } /.PLIST.objdump` " ] ; then \
if [ -s ${ WRKDIR } /.PLIST.stupid ] ; then \
echo -n " ${ PREFIX } / $$ i (USES POSSIBLY INSECURE FUNCTIONS: " >> ${ WRKDIR } /.PLIST.network; \
cat ${ WRKDIR } /.PLIST.stupid >> ${ WRKDIR } /.PLIST.network; \
echo ")" >> ${ WRKDIR } /.PLIST.network; \
else \
echo ${ PREFIX } /$$ i >> ${ WRKDIR } /.PLIST.network; \
fi ; \
fi ; \
fi ; \
if [ -n " `/usr/bin/find ${ PREFIX } / $$ i -prune \( -perm -4000 -o -perm -2000 \) \( -perm -0010 -o -perm -0001 \) 2>/dev/null` " ] ; then \
if [ -s ${ WRKDIR } /.PLIST.stupid ] ; then \
echo -n " ${ PREFIX } / $$ i (USES POSSIBLY INSECURE FUNCTIONS: " >> ${ WRKDIR } /.PLIST.setuid; \
cat ${ WRKDIR } /.PLIST.stupid >> ${ WRKDIR } /.PLIST.setuid; \
echo ")" >> ${ WRKDIR } /.PLIST.setuid; \
else \
echo ${ PREFIX } /$$ i >> ${ WRKDIR } /.PLIST.setuid; \
fi ; \
fi ; \
fi ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
if [ ! -L " ${ PREFIX } / $$ i " ] ; then \
if [ -n " `/usr/bin/find ${ PREFIX } / $$ i -prune -perm -0002 2>/dev/null` " ] ; then \
echo ${ PREFIX } /$$ i >> ${ WRKDIR } /.PLIST.writable; \
fi ; \
fi ; \
2002-11-03 05:43:49 +00:00
done ; \
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
${ GREP } '^etc/rc.d/' ${ TMPPLIST } > ${ WRKDIR } /.PLIST.startup; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
if [ -s ${ WRKDIR } /.PLIST.setuid -o -s ${ WRKDIR } /.PLIST.network -o -s ${ WRKDIR } /.PLIST.writable ] ; then \
2002-11-03 05:43:49 +00:00
if [ -n " $$ PORTS_AUDIT " ] ; then \
echo "===> SECURITY REPORT (PARANOID MODE): " ; \
else \
echo "===> SECURITY REPORT: " ; \
fi ; \
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
if [ -s ${ WRKDIR } /.PLIST.setuid ] ; then \
echo " This port has installed the following binaries which execute with" ; \
echo " increased privileges." ; \
${ CAT } ${ WRKDIR } /.PLIST.setuid; \
echo; \
fi ; \
2002-11-03 05:43:49 +00:00
if [ -s ${ WRKDIR } /.PLIST.network ] ; then \
echo " This port has installed the following files which may act as network" ; \
echo " servers and may therefore pose a remote security risk to the system." ; \
${ CAT } ${ WRKDIR } /.PLIST.network; \
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
echo; \
2002-11-03 05:43:49 +00:00
if [ -s ${ WRKDIR } /.PLIST.startup ] ; then \
echo " This port has installed the following startup scripts which may cause" ; \
echo " these network services to be started at boot time." ; \
${ SED } s,^,${ PREFIX } /, < ${ WRKDIR } /.PLIST.startup; \
echo; \
fi ; \
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
fi ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
if [ -s ${ WRKDIR } /.PLIST.writable ] ; then \
echo " This port has installed the following world-writable files/directories." ; \
${ CAT } ${ WRKDIR } /.PLIST.writable; \
echo; \
fi ; \
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
echo " If there are vulnerabilities in these programs there may be a security" ; \
echo " risk to the system. FreeBSD makes no guarantee about the security of" ; \
echo " ports included in the Ports Collection. Please type 'make deinstall'" ; \
echo " to deinstall the port if this is a concern." ; \
if [ ! -z "`make www-site`" ] ; then \
echo; \
echo " For more information, and contact details about the security" ; \
echo " status of this software, see the following webpage: " ; \
${ MAKE } www-site; \
fi ; \
fi
2002-03-25 08:48:47 +00:00
. e n d i f
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
2002-03-25 08:48:47 +00:00
################################################################
# Skeleton targets start here
#
# You shouldn't have to change these. Either add the pre-* or
# post-* targets/scripts or redefine the do-* targets. These
# targets don't do anything other than checking for cookies and
# call the necessary targets/scripts.
################################################################
# Please note that the order of the following targets is important, and
# should not be modified.
_FETCH_SEQ = pre-everything fetch-depends pre-fetch pre-fetch-script \
do -fetch post-fetch post-fetch-script
2002-03-28 09:58:08 +00:00
_EXTRACT_DEP = fetch
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
_EXTRACT_SEQ = extract-message checksum extract-depends pre-extract \
pre-extract-script do -extract \
2002-03-25 08:48:47 +00:00
post-extract post-extract-script
2002-03-28 09:58:08 +00:00
_PATCH_DEP = extract
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
_PATCH_SEQ = patch-message patch-depends pre-patch pre-patch-script \
do -patch post-patch post-patch-script
2002-03-28 09:58:08 +00:00
_CONFIGURE_DEP = patch
2003-03-22 04:45:24 +00:00
_CONFIGURE_SEQ = build-depends lib-depends misc-depends configure-message \
patch-libtool pre-configure pre-configure-script \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
do -configure post-configure post-configure-script
2002-03-28 09:58:08 +00:00
_BUILD_DEP = configure
_BUILD_SEQ = build-message pre-build pre-build-script do -build \
2002-03-25 08:48:47 +00:00
post-build post-build-script
2002-03-28 09:58:08 +00:00
_INSTALL_DEP = build
_INSTALL_SEQ = install-message check-categories check-already-installed \
2003-05-06 05:15:18 +00:00
check-conflicts check-umask run-depends lib-depends \
install-mtree pre-install pre-install-script do -install \
generate-plist post-install post-install-script compress-man \
run-ldconfig fake-pkg security-check
2002-03-28 09:58:08 +00:00
_PACKAGE_DEP = install
_PACKAGE_SEQ = package-message pre-package pre-package-script \
2002-03-25 08:48:47 +00:00
do -package post-package-script
. i f ! t a r g e t ( f e t c h )
fetch : ${_FETCH_SEQ }
. e n d i f
# Main logick. The loop generates 6 main targets and using cookies
# ensures that those already completed are skipped.
. f o r t a r g e t i n e x t r a c t p a t c h c o n f i g u r e b u i l d i n s t a l l p a c k a g e
. i f ! t a r g e t ( $ { t a r g e t } )
${target} : ${${target :U }_COOKIE }
. e n d i f
.if !exists(${${target : U }_COOKIE })
2002-03-28 09:58:08 +00:00
. i f ! d e f i n e d ( U S E _ S U B M A K E )
${${target : U }_COOKIE }: ${_ ${target :U }_DEP } ${_ ${target :U }_SEQ }
2002-03-25 08:48:47 +00:00
@${ TOUCH } ${ TOUCH_FLAGS } ${ .TARGET }
2002-03-28 09:58:08 +00:00
. e l s e
${${target : U }_COOKIE }: ${_ ${target :U }_DEP }
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } ${ _ ${ target : U } _SEQ }
@${ TOUCH } ${ TOUCH_FLAGS } ${ .TARGET }
. e n d i f
2002-03-25 08:48:47 +00:00
. e l s e
2002-03-27 04:26:44 +00:00
${${target : U }_COOKIE }::
@if [ -e ${ .TARGET } ] ; then \
${ DO_NADA } ; \
else \
cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } ${ .TARGET } ; \
fi
2002-03-25 08:48:47 +00:00
. e n d i f
. e n d f o r
# Enforce order for -jN builds
1995-08-18 10:06:28 +00:00
2002-03-25 08:48:47 +00:00
.ORDER : ${_FETCH_SEQ }
2002-03-28 09:58:08 +00:00
.ORDER : ${_EXTRACT_DEP } ${_EXTRACT_SEQ }
.ORDER : ${_PATCH_DEP } ${_PATCH_SEQ }
.ORDER : ${_CONFIGURE_DEP } ${_CONFIGURE_SEQ }
.ORDER : ${_BUILD_DEP } ${_BUILD_SEQ }
.ORDER : ${_INSTALL_DEP } ${_INSTALL_SEQ }
.ORDER : ${_PACKAGE_DEP } ${_PACKAGE_SEQ }
1995-08-18 10:06:28 +00:00
2002-03-25 08:48:47 +00:00
extract-message :
1995-08-18 10:06:28 +00:00
@${ ECHO_MSG } " ===> Extracting for ${ PKGNAME } "
2002-03-25 08:48:47 +00:00
patch-message :
1995-08-18 10:06:28 +00:00
@${ ECHO_MSG } " ===> Patching for ${ PKGNAME } "
2002-03-25 08:48:47 +00:00
configure-message :
1995-08-18 10:06:28 +00:00
@${ ECHO_MSG } " ===> Configuring for ${ PKGNAME } "
2002-03-25 08:48:47 +00:00
build-message :
1995-08-18 10:06:28 +00:00
@${ ECHO_MSG } " ===> Building for ${ PKGNAME } "
2002-03-25 08:48:47 +00:00
install-message :
1995-04-20 18:03:02 +00:00
@${ ECHO_MSG } " ===> Installing for ${ PKGNAME } "
2002-03-25 08:48:47 +00:00
package-message :
@${ ECHO_MSG } " ===> Building package for ${ PKGNAME } "
1995-08-18 10:06:28 +00:00
2002-03-25 08:48:47 +00:00
# Empty pre-* and post-* targets
1995-08-18 10:06:28 +00:00
2002-03-25 08:48:47 +00:00
. f o r s t a g e i n p r e p o s t
1995-08-18 10:06:28 +00:00
. f o r n a m e i n f e t c h e x t r a c t p a t c h c o n f i g u r e b u i l d i n s t a l l p a c k a g e
2002-03-25 08:48:47 +00:00
. i f ! t a r g e t ( $ { s t a g e } - $ { n a m e } )
${stage}-${name} :
1995-08-18 10:06:28 +00:00
@${ DO_NADA }
1994-08-25 22:59:56 +00:00
. e n d i f
1995-08-18 10:06:28 +00:00
2002-03-25 08:48:47 +00:00
. i f ! t a r g e t ( $ { s t a g e } - $ { n a m e } - s c r i p t )
${stage}-${name}-script :
@if [ -f ${ SCRIPTDIR } /${ .TARGET : S /-script $// } ] ; then \
cd ${ .CURDIR } && ${ SETENV } ${ SCRIPTS_ENV } ${ SH } \
${ SCRIPTDIR } /${ .TARGET : S /-script $// } ; \
fi
1994-11-16 23:14:22 +00:00
. e n d i f
1995-08-18 10:06:28 +00:00
. e n d f o r
2002-03-25 08:48:47 +00:00
. e n d f o r
2000-10-05 01:32:21 +00:00
1999-05-06 12:07:57 +00:00
# Patch-libtool
#
1999-09-11 01:11:21 +00:00
# Special target to automatically make libtool using ports use the
1999-05-06 12:07:57 +00:00
# libtool port. See above for default values of LIBTOOLFILES.
1999-09-11 01:11:21 +00:00
#
# This target works by first checking the version of the installed
2000-06-14 02:14:49 +00:00
# libtool shell script, which is not actually used. Rather its path
1999-09-11 01:11:21 +00:00
# is determined, and used to find the path to ltconfig and ltmain.sh
# (which is ../share/libtool/). Then the configure script is copied
# and the default paths for ltconfig and ltmain.sh (normally ./) is
# replaced. The port's configure script therefore uses the files
# installed by the libtool port in place of it's own.
#
# Also passed to ltconfig are ${LIBTOOLFLAGS}, which can be used to
# customise the behaviour of the port. Besides the normal flags the
# freebsd port of libtool supports three special flags:
# --disable-ltlibs Don't install the .la files. (on by default)
# --release-ignore Ignore any -release flags. (off by default)
# --release-suffix Add the -release to all libraries, not just
# the shared library. (off by default)
#
1999-05-06 12:07:57 +00:00
. i f ! t a r g e t ( p a t c h - l i b t o o l )
patch-libtool :
2002-03-25 08:48:47 +00:00
. i f d e f i n e d ( U S E _ L I B T O O L )
2000-04-02 08:32:26 +00:00
@( if ${ LIBTOOL } --version | grep -vq "1\.3\.4-freebsd-ports" ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
( ${ ECHO_CMD } "Your libtool installation is out of date. Please remove" ; \
${ ECHO_CMD } " and reinstall ${ PORTSDIR } /devel/libtool. " ; \
1999-09-11 01:11:21 +00:00
exit 1) ; \
fi ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
LIBTOOLDIR = ` ${ WHICH } ${ LIBTOOL } | ${ SED } -e 's^/bin//*libtool^/share/libtool^' ` || ${ LOCALBASE } /share/libtool; \
2000-10-17 10:11:16 +00:00
cd ${ PATCH_WRKSRC } ; \
1999-05-06 12:07:57 +00:00
for file in ${ LIBTOOLFILES } ; do \
${ CP } $$ file $$ file.tmp; \
1999-09-11 01:11:21 +00:00
${ SED } -e " s^\$ $ac_aux_dir /ltconfig^ $$ {LIBTOOLDIR}/ltconfig^g " \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
-e " /^ltmain=/!s^\$ $ac_aux_dir /ltmain.sh^ ${ LIBTOOLFLAGS } $$ {LIBTOOLDIR}/ltmain.sh^g " \
2000-04-02 08:32:26 +00:00
$$ file.tmp > $$ file; \
1999-05-06 12:07:57 +00:00
done ) ;
2002-03-25 08:48:47 +00:00
. e l s e
@${ DO_NADA }
. e n d i f
1999-05-06 12:07:57 +00:00
. e n d i f
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
. i f ! t a r g e t ( p r e t t y - p r i n t - w w w - s i t e )
pretty-print-www-site :
@www_site= $$ ( cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } www-site) ; \
if [ -n " $$ {www_site} " ] ; then \
${ ECHO } -n " and/or visit the " ; \
${ ECHO } -n " <a href=\" $$ {www_site}\">web site</a> " ; \
${ ECHO } " for futher informations" ; \
fi
. e n d i f
2002-03-25 08:48:47 +00:00
################################################################
# Some more targets supplied for users' convenience
################################################################
1995-08-18 10:06:28 +00:00
# Checkpatch
#
# Special target to verify patches
. i f ! t a r g e t ( c h e c k p a t c h )
checkpatch :
2002-03-28 09:58:08 +00:00
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } PATCH_CHECK_ONLY = yes ${ _PATCH_DEP } ${ _PATCH_SEQ }
1995-04-20 18:03:02 +00:00
. e n d i f
# Reinstall
#
1995-08-18 10:06:28 +00:00
# Special target to re-run install
1995-04-20 18:03:02 +00:00
. i f ! t a r g e t ( r e i n s t a l l )
1997-06-04 00:12:19 +00:00
reinstall :
@${ RM } -f ${ INSTALL_COOKIE } ${ PACKAGE_COOKIE }
2000-09-13 07:16:49 +00:00
@cd ${ .CURDIR } && DEPENDS_TARGET = " ${ DEPENDS_TARGET } " ${ MAKE } install
1994-08-22 11:20:07 +00:00
. e n d i f
1998-01-02 10:37:14 +00:00
# Deinstall
#
# Special target to remove installation
. i f ! t a r g e t ( d e i n s t a l l )
deinstall :
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
@deinstall_name= ` ${ PKG_INFO } -q -O ${ PKGORIGIN } 2> /dev/null` ; \
${ TEST } -z $$ { deinstall_name} && deinstall_name = ${ PKGNAME } ; \
${ ECHO_MSG } " ===> Deinstalling for ${ PKGORIGIN } ( $$ {deinstall_name}) " ; \
if ${ PKG_INFO } -e $$ { deinstall_name} ; then \
${ PKG_DELETE } -f $$ { deinstall_name} ; \
2000-08-25 10:17:39 +00:00
else \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
${ ECHO_MSG } " ===> ${ PKGORIGIN } not installed, skipping " ; \
2000-08-25 10:17:39 +00:00
fi
1998-01-02 10:37:14 +00:00
@${ RM } -f ${ INSTALL_COOKIE } ${ PACKAGE_COOKIE }
. e n d i f
1995-04-20 18:03:02 +00:00
# Cleaning up
2000-04-04 07:05:36 +00:00
. i f ! t a r g e t ( d o - c l e a n )
do-clean :
1996-11-30 10:31:50 +00:00
@if [ -d ${ WRKDIR } ] ; then \
if [ -w ${ WRKDIR } ] ; then \
${ RM } -rf ${ WRKDIR } ; \
else \
${ ECHO_MSG } " ===> ${ WRKDIR } not writable, skipping " ; \
fi ; \
fi
1994-09-09 06:21:43 +00:00
. e n d i f
2000-04-04 07:05:36 +00:00
. i f ! t a r g e t ( c l e a n )
clean :
. i f ! d e f i n e d ( N O C L E A N D E P E N D S )
2000-09-13 07:16:49 +00:00
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } clean-depends
2000-04-04 07:05:36 +00:00
. e n d i f
@${ ECHO_MSG } " ===> Cleaning for ${ PKGNAME } "
. i f t a r g e t ( p r e - c l e a n )
2000-09-13 07:16:49 +00:00
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } pre-clean
2000-04-04 07:05:36 +00:00
. e n d i f
2000-09-13 07:16:49 +00:00
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } do -clean
2000-04-04 07:05:36 +00:00
. i f t a r g e t ( p o s t - c l e a n )
2000-09-13 07:16:49 +00:00
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } post-clean
2000-04-04 07:05:36 +00:00
. e n d i f
. e n d i f
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. i f ! t a r g e t ( p r e - d i s t c l e a n )
pre-distclean :
@${ DO_NADA }
. e n d i f
. i f ! t a r g e t ( d i s t c l e a n )
2000-10-17 10:11:16 +00:00
distclean : pre -distclean clean
2002-01-23 03:48:44 +00:00
@cd ${ .CURDIR } && ${ MAKE } delete-distfiles RESTRICTED_FILES = " ${ _DISTFILES } ${ _PATCHFILES } "
1998-11-08 10:29:53 +00:00
. e n d i f
. i f ! t a r g e t ( d e l e t e - d i s t f i l e s )
delete-distfiles :
@${ ECHO_MSG } " ===> Deleting distfiles for ${ PKGNAME } "
2000-10-01 17:27:40 +00:00
@( if [ " X ${ RESTRICTED_FILES } " != "X" -a -d ${ _DISTDIR } ] ; then \
1997-02-23 13:24:45 +00:00
cd ${ _DISTDIR } ; \
2000-10-01 17:27:40 +00:00
for file in ${ RESTRICTED_FILES } ; do \
1999-11-11 02:36:15 +00:00
${ RM } -f $$ { file} ; \
dir = $$ { file%/*} ; \
if [ " $$ {dir} " != " $$ {file} " ] ; then \
${ RMDIR } -p $$ { dir} >/dev/null 2>& 1 || :; \
fi ; \
done ; \
1997-02-23 13:24:45 +00:00
fi )
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. i f d e f i n e d ( D I S T _ S U B D I R )
2000-10-17 10:11:16 +00:00
-@${ RMDIR } ${ _DISTDIR } >/dev/null 2>& 1 || ${ TRUE }
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. e n d i f
. e n d i f
1999-04-28 06:20:23 +00:00
. i f ! t a r g e t ( d e l e t e - d i s t f i l e s - l i s t )
delete-distfiles-list :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " # ${ PKGNAME } "
2000-10-01 17:27:40 +00:00
@if [ " X ${ RESTRICTED_FILES } " != "X" ] ; then \
for file in ${ RESTRICTED_FILES } ; do \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " [ -f ${ _DISTDIR } / $$ file ] && ( ${ ECHO_CMD } deleting ${ _DISTDIR } / $$ file; ${ RM } -f ${ _DISTDIR } / $$ file) " ; \
1999-11-11 02:36:15 +00:00
dir = $$ { file%/*} ; \
if [ " $$ {dir} " != " $$ {file} " ] ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " (cd ${ _DISTDIR } && ${ RMDIR } -p $$ {dir} 2>/dev/null) " ; \
1999-11-11 02:36:15 +00:00
fi ; \
1999-04-28 06:20:23 +00:00
done ; \
fi
. i f d e f i n e d ( D I S T _ S U B D I R )
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " ${ RMDIR } ${ _DISTDIR } 2>/dev/null || ${ TRUE } "
1999-04-28 06:20:23 +00:00
. e n d i f
. e n d i f
1995-04-20 18:03:02 +00:00
# Prints out a list of files to fetch (useful to do a batch fetch)
1995-03-21 03:59:13 +00:00
. i f ! t a r g e t ( f e t c h - l i s t )
fetch-list :
1996-11-30 10:31:50 +00:00
@${ MKDIR } ${ _DISTDIR }
@( cd ${ _DISTDIR } ; \
2002-01-23 03:48:44 +00:00
${ _MASTER_SITES_ENV } ; \
for _file in ${ DISTFILES } ; do \
file = ` echo $$ _file | ${ SED } -E -e 's/:[^:]+$$//' ` ; \
select = ` echo $$ { _file#$$ { file} } | ${ SED } -e 's/^://' -e 's/,/ /g' ` ; \
1996-03-06 08:08:16 +00:00
if [ ! -f $$ file -a ! -f ` ${ BASENAME } $$ file` ] ; then \
2002-01-23 03:48:44 +00:00
if [ ! -z " $$ select " ] ; then \
__MASTER_SITES_TMP = ; \
for group in $$ select ; do \
if [ ! -z \$ ${ _MASTER_SITES_ $$ {group } } ] ; then \
eval ___MASTER_SITES_TMP = \$ ${ _MASTER_SITES_ $$ {group } } ; \
__MASTER_SITES_TMP = " $$ {__MASTER_SITES_TMP} $$ {___MASTER_SITES_TMP} " ; \
fi \
done ; \
___MASTER_SITES_TMP = ; \
2002-11-03 05:43:49 +00:00
SORTED_MASTER_SITES_CMD_TMP = " echo ${ _MASTER_SITE_OVERRIDE } `echo $$ {__MASTER_SITES_TMP} | ${ AWK } ' ${ MASTER_SORT_AWK : S | \\ | \\ \\ |g } '` ${ _MASTER_SITE_BACKUP } " ; \
2002-01-23 03:48:44 +00:00
else \
SORTED_MASTER_SITES_CMD_TMP = " ${ SORTED_MASTER_SITES_DEFAULT_CMD } " ; \
fi ; \
for site in ` eval $$ SORTED_MASTER_SITES_CMD_TMP` ; do \
1998-09-22 23:58:49 +00:00
DIR = ${ DIST_SUBDIR } ; \
CKSIZE = ` ${ GREP } " ^SIZE ( $$ {DIR:+ $$ DIR/} $$ file) " ${ MD5_FILE } | ${ AWK } '{print $$4}' ` ; \
1999-10-01 09:28:32 +00:00
case $$ { file} in \
*/*) args = " -o $$ {file} $$ {site} $$ {file} " ; ; \
*) args = $$ { site} $$ { file} ; ; \
esac ; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } -n ${ SETENV } ${ FETCH_ENV } ${ FETCH_CMD } ${ FETCH_BEFORE_ARGS } $$ { args} " ${ FETCH_AFTER_ARGS } " '|| ' ; \
1995-03-21 03:59:13 +00:00
done ; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " echo $$ {file} not fetched " ; \
1995-03-21 03:59:13 +00:00
fi \
done )
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
. i f d e f i n e d ( P A T C H F I L E S )
1996-11-30 10:31:50 +00:00
@( cd ${ _DISTDIR } ; \
2002-01-23 03:48:44 +00:00
${ _PATCH_SITES_ENV } ; \
for _file in ${ PATCHFILES } ; do \
file = ` echo $$ _file | ${ SED } -E -e 's/:[^:]+$$//' ` ; \
select = ` echo $$ { _file#$$ { file} } | ${ SED } -e 's/^://' -e 's/,/ /g' ` ; \
1996-03-06 08:08:16 +00:00
if [ ! -f $$ file -a ! -f ` ${ BASENAME } $$ file` ] ; then \
2002-01-23 03:48:44 +00:00
if [ ! -z " $$ select " ] ; then \
__PATCH_SITES_TMP = ; \
for group in $$ select ; do \
if [ ! -z \$ ${ _PATCH_SITES_ $$ {group } } ] ; then \
eval ___PATCH_SITES_TMP = \$ ${ _PATCH_SITES_ $$ {group } } ; \
__PATCH_SITES_TMP = " $$ {__PATCH_SITES_TMP} $$ {___PATCH_SITES_TMP} " ; \
fi \
done ; \
___PATCH_SITES_TMP = ; \
2002-11-03 05:43:49 +00:00
SORTED_PATCH_SITES_CMD_TMP = " echo ${ _MASTER_SITE_OVERRIDE } `echo $$ {__PATCH_SITES_TMP} | ${ AWK } ' ${ MASTER_SORT_AWK : S | \\ | \\ \\ |g } '` ${ _MASTER_SITE_BACKUP } " ; \
2002-01-23 03:48:44 +00:00
else \
SORTED_PATCH_SITES_CMD_TMP = " ${ SORTED_PATCH_SITES_DEFAULT_CMD } " ; \
fi ; \
for site in ` eval $$ SORTED_PATCH_SITES_CMD_TMP` ; do \
1998-09-22 23:58:49 +00:00
DIR = ${ DIST_SUBDIR } ; \
CKSIZE = ` ${ GREP } " ^SIZE ( $$ {DIR:+ $$ DIR/} $$ file) " ${ MD5_FILE } | ${ AWK } '{print $$4}' ` ; \
1999-10-01 09:28:32 +00:00
case $$ { file} in \
*/*) args = " -o $$ {file} $$ {site} $$ {file} " ; ; \
*) args = $$ { site} $$ { file} ; ; \
esac ; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } -n ${ SETENV } ${ FETCH_ENV } ${ FETCH_CMD } ${ FETCH_BEFORE_ARGS } $$ { args} " ${ FETCH_AFTER_ARGS } " '|| ' ; \
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
done ; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " echo $$ {file} not fetched " ; \
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
fi \
1995-05-04 18:53:26 +00:00
done )
Add support for "distributed" patches and a little extra cleanup.
New variables:
PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.
Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.
In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.
"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
. e n d i f
1995-03-21 03:59:13 +00:00
. e n d i f
2003-05-06 05:15:18 +00:00
# Generates patches.
update-patches :
@toedit= ` WRKSRC = ${ WRKSRC } PATCHDIR = ${ PATCHDIR } PATCH_LIST = ${ PATCHDIR } /patch-* \
DIFF_ARGS = ${ DIFF_ARGS } DISTORIG = ${ DISTORIG } \
${ SH } ${ PORTSDIR } /Tools/scripts/update-patches` ; \
case $$ toedit in "" ) ; ; \
*) ${ ECHO } -n 'edit patches: ' ; read i; \
cd ${ PATCHDIR } && $$ { VISUAL:-$$ { EDIT:-/usr/bin/vi} } $$ toedit; ; esac
1995-04-20 18:03:02 +00:00
# Checksumming utilities
1995-01-04 23:06:38 +00:00
. i f ! t a r g e t ( m a k e s u m )
2000-04-20 01:06:12 +00:00
makesum :
2000-05-06 10:45:35 +00:00
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } fetch NO_CHECKSUM = yes
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
@if [ -f ${ MD5_FILE } ] ; then ${ CAT } /dev/null > ${ MD5_FILE } ; fi
1994-12-11 20:36:12 +00:00
@( cd ${ DISTDIR } ; \
1996-12-17 12:20:53 +00:00
for file in ${ _CKSUMFILES } ; do \
1994-12-11 20:36:12 +00:00
${ MD5 } $$ file >> ${ MD5_FILE } ; \
1995-05-04 18:53:26 +00:00
done )
1996-12-17 12:20:53 +00:00
@for file in ${ _IGNOREFILES } ; do \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " MD5 ( $$ file) = IGNORE " >> ${ MD5_FILE } ; \
1996-12-17 12:20:53 +00:00
done
1994-12-11 20:36:12 +00:00
. e n d i f
1998-09-22 23:58:49 +00:00
# this line goes after the ${MD5} above
# echo "SIZE ($$file) = "`wc -c < $$file` >> ${MD5_FILE}; \
1994-12-11 20:36:12 +00:00
1995-01-04 23:06:38 +00:00
. i f ! t a r g e t ( c h e c k s u m )
2002-03-25 08:48:47 +00:00
checksum : fetch
1994-12-11 20:36:12 +00:00
@if [ ! -f ${ MD5_FILE } ] ; then \
1995-03-21 03:59:13 +00:00
${ ECHO_MSG } ">> No MD5 checksum file." ; \
1995-01-06 22:14:12 +00:00
else \
1996-12-17 12:20:53 +00:00
( cd ${ DISTDIR } ; OK = "true" ; \
for file in ${ _CKSUMFILES } ; do \
1996-06-19 01:04:23 +00:00
CKSUM = ` ${ MD5 } < $$ file` ; \
1996-12-23 02:49:35 +00:00
CKSUM2 = ` ${ GREP } " ^MD5 ( $$ file) " ${ MD5_FILE } | ${ AWK } '{print $$4}' ` ; \
1995-01-22 20:40:48 +00:00
if [ " $$ CKSUM2 " = "" ] ; then \
1996-12-17 12:20:53 +00:00
${ ECHO_MSG } " >> No checksum recorded for $$ file. " ; \
OK = "false" ; \
elif [ " $$ CKSUM2 " = "IGNORE" ] ; then \
2000-11-03 10:26:32 +00:00
${ ECHO_MSG } " >> Checksum for $$ file is set to IGNORE in distinfo file even though " ; \
1996-12-17 12:20:53 +00:00
${ ECHO_MSG } " the file is not in the " '$$' "{IGNOREFILES} list." ; \
1995-01-22 20:40:48 +00:00
OK = "false" ; \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
elif ${ EXPR } " $$ CKSUM2 " : " .* $$ CKSUM " > /dev/null; then \
1996-12-23 02:49:35 +00:00
${ ECHO_MSG } " >> Checksum OK for $$ file. " ; \
else \
1996-12-17 12:20:53 +00:00
${ ECHO_MSG } " >> Checksum mismatch for $$ file. " ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
refetchlist = " $$ refetchlist $$ file " ; \
1996-12-23 02:49:35 +00:00
OK = "false" ; \
1995-01-22 20:40:48 +00:00
fi ; \
1995-05-04 18:53:26 +00:00
done ; \
1996-12-17 12:20:53 +00:00
for file in ${ _IGNOREFILES } ; do \
CKSUM2 = ` ${ GREP } " ( $$ file) " ${ MD5_FILE } | ${ AWK } '{print $$4}' ` ; \
if [ " $$ CKSUM2 " = "" ] ; then \
${ ECHO_MSG } " >> No checksum recorded for $$ file, file is in " '$$' "{IGNOREFILES} list." ; \
OK = "false" ; \
elif [ " $$ CKSUM2 " != "IGNORE" ] ; then \
2000-11-03 10:26:32 +00:00
${ ECHO_MSG } " >> Checksum for $$ file is not set to IGNORE in distinfo file even though " ; \
1996-12-17 12:20:53 +00:00
${ ECHO_MSG } " the file is in the " '$$' "{IGNOREFILES} list." ; \
OK = "false" ; \
fi ; \
done ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
if [ " $$ OK " != "true" ] && [ ${ FETCH_REGET } -gt 0 ] ; then \
${ ECHO_MSG } " ===> Refetch for ${ FETCH_REGET } more times files: $$ refetchlist " ; \
if ( cd ${ .CURDIR } && \
${ MAKE } ${ .MAKEFLAGS } FORCE_FETCH = " $$ refetchlist " FETCH_REGET = " `expr ${ FETCH_REGET } - 1` " fetch) ; then \
if ( cd ${ .CURDIR } && \
${ MAKE } ${ .MAKEFLAGS } FETCH_REGET = " `expr ${ FETCH_REGET } - 1` " checksum ) ; then \
OK = "true" ; \
fi ; \
fi ; \
2003-05-06 05:15:18 +00:00
fi ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
if [ " $$ OK " != "true" -a ${ FETCH_REGET } -eq 0 ] ; then \
${ ECHO_MSG } " ===> Giving up on fetching files: $$ refetchlist " ; \
${ ECHO_MSG } " Make sure the Makefile and distinfo file ( ${ MD5_FILE } ) " ; \
${ ECHO_MSG } "are up to date. If you are absolutely sure you want to override this" ; \
${ ECHO_MSG } "check, type \"make NO_CHECKSUM=yes [other args]\"." ; \
exit 1; \
fi ; \
1996-12-23 02:49:35 +00:00
if [ " $$ OK " != "true" ] ; then \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
exit 1; \
fi ) ; \
1995-01-06 22:14:12 +00:00
fi
1994-12-11 20:36:12 +00:00
. e n d i f
1995-04-20 18:03:02 +00:00
################################################################
1995-08-18 10:06:28 +00:00
# The special package-building targets
1995-04-20 18:03:02 +00:00
# You probably won't need to touch these
################################################################
# Nobody should want to override this unless PKGNAME is simply bogus.
1995-08-18 10:06:28 +00:00
1995-04-20 18:03:02 +00:00
. i f ! t a r g e t ( p a c k a g e - n a m e )
package-name :
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } ${ PKGNAME }
1995-04-20 18:03:02 +00:00
. e n d i f
1994-09-09 06:21:43 +00:00
1995-04-30 12:28:43 +00:00
# Build a package but don't check the package cookie
1995-04-20 18:03:02 +00:00
. i f ! t a r g e t ( r e p a c k a g e )
1995-04-30 12:28:43 +00:00
repackage : pre -repackage package
pre-repackage :
1996-03-06 08:08:16 +00:00
@${ RM } -f ${ PACKAGE_COOKIE }
1995-04-30 12:28:43 +00:00
. e n d i f
# Build a package but don't check the cookie for installation, also don't
# install package cookie
. i f ! t a r g e t ( p a c k a g e - n o i n s t a l l )
package-noinstall :
1998-11-11 05:21:29 +00:00
@${ MKDIR } ${ WRKDIR }
2002-03-25 08:48:47 +00:00
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } pre-package \
pre-package-script do -package post-package-script
1999-07-23 09:36:55 +00:00
@${ RM } -f ${ TMPPLIST }
1998-11-11 05:21:29 +00:00
-@${ RMDIR } ${ WRKDIR }
1995-04-30 12:28:43 +00:00
. e n d i f
1995-04-20 18:03:02 +00:00
################################################################
# Dependency checking
################################################################
. i f ! t a r g e t ( d e p e n d s )
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
depends : extract -depends patch -depends lib -depends misc -depends fetch -depends build -depends run -depends
1995-09-18 08:01:20 +00:00
1999-04-08 07:13:38 +00:00
. i f d e f i n e d ( A L W A Y S _ B U I L D _ D E P E N D S )
_DEPEND_ALWAYS = 1
. e l s e
_DEPEND_ALWAYS = 0
. e n d i f
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
. f o r d e p t y p e i n E X T R A C T P A T C H F E T C H B U I L D R U N
2002-03-25 08:48:47 +00:00
${deptype : L }-depends :
. i f d e f i n e d ( $ { d e p t y p e } _ D E P E N D S )
1997-06-04 00:12:19 +00:00
. i f ! d e f i n e d ( N O _ D E P E N D S )
2002-03-25 08:48:47 +00:00
@for i in ${ ${ deptype } _DEPENDS } ; do \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
prog = ` ${ ECHO_CMD } $$ i | ${ SED } -e 's/:.*//' ` ; \
dir = ` ${ ECHO_CMD } $$ i | ${ SED } -e 's/[^:]*://' ` ; \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
if ${ EXPR } " $$ dir " : '.*:' > /dev/null; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
target = ` ${ ECHO_CMD } $$ dir | ${ SED } -e 's/.*://' ` ; \
dir = ` ${ ECHO_CMD } $$ dir | ${ SED } -e 's/:.*//' ` ; \
1995-11-26 12:35:49 +00:00
else \
1999-08-22 11:20:25 +00:00
target = " ${ DEPENDS_TARGET } " ; \
depends_args = " ${ DEPENDS_ARGS } " ; \
1995-11-26 12:35:49 +00:00
fi ; \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
if ${ EXPR } " $$ prog " : \\ / >/dev/null; then \
1995-11-26 12:35:49 +00:00
if [ -e " $$ prog " ] ; then \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> ${ PKGNAME } depends on file: $$ prog - found " ; \
1999-04-08 07:13:38 +00:00
if [ ${ _DEPEND_ALWAYS } = 1 ] ; then \
${ ECHO_MSG } " (but building it anyway)" ; \
notfound = 1; \
else \
notfound = 0; \
fi ; \
1995-11-26 12:35:49 +00:00
else \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> ${ PKGNAME } depends on file: $$ prog - not found " ; \
1995-11-26 12:35:49 +00:00
notfound = 1; \
fi ; \
1995-04-20 18:03:02 +00:00
else \
1999-09-08 06:04:43 +00:00
if ${ WHICH } " $$ prog " > /dev/null 2>& 1 ; then \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> ${ PKGNAME } depends on executable: $$ prog - found " ; \
1999-04-08 07:13:38 +00:00
if [ ${ _DEPEND_ALWAYS } = 1 ] ; then \
${ ECHO_MSG } " (but building it anyway)" ; \
notfound = 1; \
else \
notfound = 0; \
fi ; \
1995-11-26 12:35:49 +00:00
else \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> ${ PKGNAME } depends on executable: $$ prog - not found " ; \
1995-11-26 12:35:49 +00:00
notfound = 1; \
fi ; \
fi ; \
if [ $$ notfound != 0 ] ; then \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> Verifying $$ target for $$ prog in $$ dir " ; \
1995-04-20 18:03:02 +00:00
if [ ! -d " $$ dir " ] ; then \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " >> No directory for $$ prog. Skipping.. " ; \
1995-04-20 18:03:02 +00:00
else \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
if [ X${ USE_PACKAGE_DEPENDS } != "X" ] ; then \
subpkgfile = ` ( cd $$ dir; ${ MAKE } $$ depends_args -V PKGFILE) ` ; \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
if [ -r " $$ {subpkgfile} " -a " $$ target " = " ${ DEPENDS_TARGET } " ] ; then \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
${ ECHO_MSG } " ===> Installing existing package $$ {subpkgfile} " ; \
${ PKG_ADD } $$ { subpkgfile} ; \
2003-03-19 06:26:14 +00:00
else \
( cd $$ dir; ${ MAKE } -DINSTALLS_DEPENDS $$ target $$ depends_args) ; \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
fi ; \
else \
( cd $$ dir; ${ MAKE } -DINSTALLS_DEPENDS $$ target $$ depends_args) ; \
fi ; \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> Returning to build of ${ PKGNAME } " ; \
1995-04-20 18:03:02 +00:00
fi ; \
fi ; \
1994-09-10 22:26:47 +00:00
done
1994-09-11 12:55:54 +00:00
. e n d i f
1995-04-20 18:03:02 +00:00
. e l s e
@${ DO_NADA }
1994-08-21 13:12:57 +00:00
. e n d i f
2002-03-25 08:48:47 +00:00
. e n d f o r
1995-09-18 08:01:20 +00:00
lib-depends :
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
. i f d e f i n e d ( L I B _ D E P E N D S ) & & ! d e f i n e d ( N O _ D E P E N D S )
1995-04-20 18:03:02 +00:00
@for i in ${ LIB_DEPENDS } ; do \
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
lib = $$ { i%%:*} ; \
case $$ lib in \
*.*.*) pattern = $$ lib ; ; \
*.*) pattern = " $$ {lib%%.*}\. $$ {lib#*.} " ; ; \
*) pattern = $$ lib ; ; \
esac ; \
dir = $$ { i#*:} ; \
target = $$ { i##*:} ; \
if ${ TEST } $$ dir = $$ target; then \
1999-08-22 11:20:25 +00:00
target = " ${ DEPENDS_TARGET } " ; \
depends_args = " ${ DEPENDS_ARGS } " ; \
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
else \
dir = $$ { dir%%:*} ; \
1997-06-04 00:12:19 +00:00
fi ; \
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
${ ECHO_MSG } -n " ===> ${ PKGNAME } depends on shared library: $$ lib " ; \
if ${ LDCONFIG } -r | ${ GREP } -qwE -e " -l $$ pattern " ; then \
${ ECHO_MSG } " - found" ; \
1999-04-08 07:13:38 +00:00
if [ ${ _DEPEND_ALWAYS } = 1 ] ; then \
${ ECHO_MSG } " (but building it anyway)" ; \
notfound = 1; \
else \
notfound = 0; \
fi ; \
1995-04-20 18:03:02 +00:00
else \
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
${ ECHO_MSG } " - not found" ; \
1999-04-08 07:13:38 +00:00
notfound = 1; \
fi ; \
if [ $$ notfound != 0 ] ; then \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> Verifying $$ target for $$ lib in $$ dir " ; \
1995-04-20 18:03:02 +00:00
if [ ! -d " $$ dir " ] ; then \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " >> No directory for $$ lib. Skipping.. " ; \
1995-04-20 18:03:02 +00:00
else \
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
if [ X${ USE_PACKAGE_DEPENDS } != "X" ] ; then \
subpkgfile = ` ( cd $$ dir; ${ MAKE } $$ depends_args -V PKGFILE) ` ; \
if [ -r " $$ {subpkgfile} " -a " $$ target " = " ${ DEPENDS_TARGET } " ] ; then \
${ ECHO_MSG } " ===> Installing existing package $$ {subpkgfile} " ; \
${ PKG_ADD } $$ { subpkgfile} ; \
else \
( cd $$ dir; ${ MAKE } -DINSTALLS_DEPENDS $$ target $$ depends_args) ; \
fi ; \
else \
( cd $$ dir; ${ MAKE } -DINSTALLS_DEPENDS $$ target $$ depends_args) ; \
fi ; \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> Returning to build of ${ PKGNAME } " ; \
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
if ! ${ LDCONFIG } -r | ${ GREP } -qwE -e " -l $$ pattern " ; then \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
${ ECHO_MSG } " Error: shared library \" $$ lib\" does not exist " ; \
${ FALSE } ; \
fi ; \
1995-04-20 18:03:02 +00:00
fi ; \
fi ; \
done
. e n d i f
1994-08-24 14:49:33 +00:00
1995-09-18 08:01:20 +00:00
misc-depends :
1995-04-20 18:03:02 +00:00
. i f d e f i n e d ( D E P E N D S )
. i f ! d e f i n e d ( N O _ D E P E N D S )
1997-06-04 00:12:19 +00:00
@for dir in ${ DEPENDS } ; do \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
if ${ EXPR } " $$ dir " : '.*:' > /dev/null; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
target = ` ${ ECHO_CMD } $$ dir | ${ SED } -e 's/.*://' ` ; \
dir = ` ${ ECHO_CMD } $$ dir | ${ SED } -e 's/:.*//' ` ; \
1995-04-20 18:03:02 +00:00
else \
1999-08-22 11:20:25 +00:00
target = " ${ DEPENDS_TARGET } " ; \
depends_args = " ${ DEPENDS_ARGS } " ; \
1997-06-04 00:12:19 +00:00
fi ; \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> ${ PKGNAME } depends on: $$ dir " ; \
${ ECHO_MSG } " ===> Verifying $$ target for $$ dir " ; \
1997-06-04 00:12:19 +00:00
if [ ! -d $$ dir ] ; then \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " >> No directory for $$ dir. Skipping.. " ; \
1997-06-04 00:12:19 +00:00
else \
1999-08-22 11:20:25 +00:00
( cd $$ dir; ${ MAKE } $$ target $$ depends_args) ; \
1995-04-20 18:03:02 +00:00
fi \
done
1998-08-12 01:47:47 +00:00
@${ ECHO_MSG } " ===> Returning to build of ${ PKGNAME } "
1994-08-21 13:12:57 +00:00
. e n d i f
1995-04-20 18:03:02 +00:00
. e l s e
@${ DO_NADA }
. e n d i f
1994-11-21 10:30:37 +00:00
. e n d i f
1994-08-21 13:12:57 +00:00
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
# Dependency lists: both build and runtime, recursive. Print out directory names.
2000-03-03 01:23:49 +00:00
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
all-depends-list :
@${ ALL -DEPENDS-LIST }
2000-03-03 01:23:49 +00:00
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
ALL-DEPENDS-LIST = \
2000-03-03 01:23:49 +00:00
checked = " ${ PARENT_CHECKED } " ; \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
for dir in $$ ( ${ ECHO_CMD } " ${ EXTRACT_DEPENDS } ${ PATCH_DEPENDS } ${ FETCH_DEPENDS } ${ BUILD_DEPENDS } ${ LIB_DEPENDS } ${ RUN_DEPENDS } " | ${ TR } '\040' '\012' | ${ SED } -e 's/^[^:]*://' -e 's/:.*//' ) $$ ( ${ ECHO_CMD } ${ DEPENDS } | ${ TR } '\040' '\012' | ${ SED } -e 's/:.*//' ) ; do \
2000-03-03 01:23:49 +00:00
if [ -d $$ dir ] ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
if ( ${ ECHO_CMD } $$ checked | ${ GREP } -qwv " $$ dir " ) ; then \
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
child = $$ ( cd $$ dir; ${ MAKE } PARENT_CHECKED = " $$ checked " all-depends-list) ; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
for d in $$ child; do ${ ECHO_CMD } $$ d; done ; \
${ ECHO_CMD } $$ dir; \
2000-03-03 01:23:49 +00:00
checked = " $$ dir $$ child $$ checked " ; \
fi ; \
else \
${ ECHO_MSG } " ${ PKGNAME } : \" $$ dir\" non-existent -- dependency list incomplete " >& 2; \
fi ; \
done | sort -u
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
. i f ! t a r g e t ( c l e a n - d e p e n d s )
clean-depends :
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
@for dir in $$ ( ${ ALL -DEPENDS-LIST } ) ; do \
2000-03-03 01:23:49 +00:00
( cd $$ dir; ${ MAKE } NOCLEANDEPENDS = yes clean) ; \
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
done
1996-12-09 07:08:16 +00:00
. e n d i f
(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
1996-11-13 11:37:40 +00:00
2000-08-25 10:17:39 +00:00
. i f ! t a r g e t ( d e i n s t a l l - d e p e n d s )
deinstall-depends :
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
@for dir in $$ ( ${ ALL -DEPENDS-LIST } ) ; do \
( cd $$ dir; ${ MAKE } deinstall) ; \
done
. e n d i f
. i f ! t a r g e t ( f e t c h - r e c u r s i v e )
fetch-recursive :
@${ ECHO_MSG } " ===> Fetching all distfiles for ${ PKGNAME } and dependencies "
@for dir in ${ .CURDIR } $$ ( ${ ALL -DEPENDS-LIST } ) ; do \
( cd $$ dir; ${ MAKE } fetch) ; \
done
. e n d i f
. i f ! t a r g e t ( f e t c h - r e c u r s i v e - l i s t )
fetch-recursive-list :
@for dir in ${ .CURDIR } $$ ( ${ ALL -DEPENDS-LIST } ) ; do \
( cd $$ dir; ${ MAKE } fetch-list) ; \
done
. e n d i f
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
. i f ! t a r g e t ( f e t c h - r e q u i r e d )
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
fetch-required : fetch
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
@${ ECHO_MSG } " ===> Fetching all required distfiles for ${ PKGNAME } and dependencies "
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
. f o r d e p t y p e i n E X T R A C T P A T C H F E T C H B U I L D R U N
. i f d e f i n e d ( $ { d e p t y p e } _ D E P E N D S )
. i f ! d e f i n e d ( N O _ D E P E N D S )
@for i in ${ ${ deptype } _DEPENDS } ; do \
prog = ` ${ ECHO_CMD } $$ i | ${ SED } -e 's/:.*//' ` ; \
dir = ` ${ ECHO_CMD } $$ i | ${ SED } -e 's/[^:]*://' ` ; \
if ${ EXPR } " $$ dir " : '.*:' > /dev/null; then \
dir = ` ${ ECHO_CMD } $$ dir | ${ SED } -e 's/:.*//' ` ; \
if ${ EXPR } " $$ prog " : \\ / >/dev/null; then \
if [ ! -e " $$ prog " ] ; then \
( cd $$ dir; ${ MAKE } fetch) ; \
fi ; \
fi ; \
else \
( cd $$ dir; \
tmp = ` ${ MAKE } -V PKGNAME` ; \
if [ ! -d ${ PKG_DBDIR } /$$ { tmp} ] ; then \
${ MAKE } fetch; \
fi ) ; \
fi ; \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
done
. e n d i f
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
. e n d i f
. e n d f o r
. e n d i f
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
. i f ! t a r g e t ( f e t c h - r e q u i r e d - l i s t )
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
fetch-required-list : fetch -list
. f o r d e p t y p e i n E X T R A C T P A T C H F E T C H B U I L D R U N
. i f d e f i n e d ( $ { d e p t y p e } _ D E P E N D S )
. i f ! d e f i n e d ( N O _ D E P E N D S )
@for i in ${ ${ deptype } _DEPENDS } ; do \
prog = ` ${ ECHO_CMD } $$ i | ${ SED } -e 's/:.*//' ` ; \
dir = ` ${ ECHO_CMD } $$ i | ${ SED } -e 's/[^:]*://' ` ; \
if ${ EXPR } " $$ dir " : '.*:' > /dev/null; then \
dir = ` ${ ECHO_CMD } $$ dir | ${ SED } -e 's/:.*//' ` ; \
if ${ EXPR } " $$ prog " : \\ / >/dev/null; then \
if [ ! -e " $$ prog " ] ; then \
( cd $$ dir; ${ MAKE } fetch-list) ; \
fi ; \
fi ; \
else \
( cd $$ dir; \
tmp = ` ${ MAKE } -V PKGNAME` ; \
if [ ! -d ${ PKG_DBDIR } /$$ { tmp} ] ; then \
${ MAKE } fetch-list; \
fi ) ; \
fi ; \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
done
. e n d i f
- Improve USE_PACKAGE_DEPENDS to work correctly for LIB_DEPENDS, and
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
2003-04-17 10:27:06 +00:00
. e n d i f
. e n d f o r
. e n d i f
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. i f ! t a r g e t ( c h e c k s u m - r e c u r s i v e )
checksum-recursive :
@${ ECHO_MSG } " ===> Fetching and checking checksums for ${ PKGNAME } and dependencies "
@for dir in ${ .CURDIR } $$ ( ${ ALL -DEPENDS-LIST } ) ; do \
( cd $$ dir; ${ MAKE } checksum) ; \
2000-08-25 10:17:39 +00:00
done
. e n d i f
1998-12-12 07:39:30 +00:00
# Dependency lists: build and runtime. Print out directory names.
build-depends-list :
1999-07-23 09:36:55 +00:00
@${ BUILD -DEPENDS-LIST }
BUILD-DEPENDS-LIST = \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
for dir in $$ ( ${ ECHO_CMD } " ${ EXTRACT_DEPENDS } ${ PATCH_DEPENDS } ${ FETCH_DEPENDS } ${ BUILD_DEPENDS } ${ LIB_DEPENDS } " | ${ TR } '\040' '\012' | ${ SED } -e 's/^[^:]*://' -e 's/:.*//' | sort -u) $$ ( ${ ECHO_CMD } ${ DEPENDS } | ${ TR } '\040' '\012' | ${ SED } -e 's/:.*//' | sort -u) ; do \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
if [ -d $$ dir ] ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } $$ dir; \
1998-12-12 07:39:30 +00:00
else \
${ ECHO_MSG } " ${ PKGNAME } : \" $$ dir\" non-existent -- dependency list incomplete " >& 2; \
fi ; \
done | sort -u
run-depends-list :
1999-07-23 09:36:55 +00:00
@${ RUN -DEPENDS-LIST }
RUN-DEPENDS-LIST = \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
for dir in $$ ( ${ ECHO_CMD } " ${ LIB_DEPENDS } ${ RUN_DEPENDS } " | ${ TR } '\040' '\012' | ${ SED } -e 's/^[^:]*://' -e 's/:.*//' | sort -u) $$ ( ${ ECHO_CMD } ${ DEPENDS } | ${ TR } '\040' '\012' | ${ SED } -e 's/:.*//' | sort -u) ; do \
1998-12-12 07:39:30 +00:00
if [ -d $$ dir ] ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } $$ dir; \
1998-12-12 07:39:30 +00:00
else \
${ ECHO_MSG } " ${ PKGNAME } : \" $$ dir\" non-existent -- dependency list incomplete " >& 2; \
fi ; \
done | sort -u
2002-03-25 08:48:47 +00:00
# Package (recursive runtime) dependency list. Print out both directory names
# and package names.
2000-03-03 01:23:49 +00:00
package-depends-list :
@${ PACKAGE -DEPENDS-LIST }
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
PACKAGE-DEPENDS-LIST ?= \
2002-03-25 08:48:47 +00:00
if [ " ${ CHILD_DEPENDS } " ] ; then \
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
installed = $$ ( ${ PKG_INFO } -qO ${ PKGORIGIN } 2>/dev/null || \
${ TRUE } ) ; \
if [ " $$ installed " ] ; then \
break; \
fi ; \
if [ -z " $$ installed " ] ; then \
installed = " ${ PKGNAME } " ; \
fi ; \
for pkgname in $$ installed; do \
${ ECHO_CMD } " $$ pkgname ${ .CURDIR } ${ PKGORIGIN } " ; \
done ; \
2002-03-25 08:48:47 +00:00
fi ; \
2000-03-03 01:23:49 +00:00
checked = " ${ PARENT_CHECKED } " ; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
for dir in $$ ( ${ ECHO_CMD } " ${ LIB_DEPENDS } ${ RUN_DEPENDS } " | ${ TR } '\040' '\012' | ${ SED } -e 's/^[^:]*://' -e 's/:.*//' ) $$ ( ${ ECHO_CMD } ${ DEPENDS } | ${ TR } '\040' '\012' | ${ SED } -e 's/:.*//' ) ; do \
2003-03-19 06:26:14 +00:00
dir = $$ ( ${ REALPATH } $$ dir) ; \
1998-12-12 07:39:30 +00:00
if [ -d $$ dir ] ; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
if ( ${ ECHO_CMD } $$ checked | ${ GREP } -qwv " $$ dir " ) ; then \
2002-03-25 08:48:47 +00:00
childout = $$ ( cd $$ dir; ${ MAKE } CHILD_DEPENDS = yes PARENT_CHECKED = " $$ checked " package-depends-list) ; \
set -- $$ childout; \
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
childdir = "" ; \
2002-03-25 08:48:47 +00:00
while [ $$ \# != 0 ] ; do \
childdir = " $$ childdir $$ 2 " ; \
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
${ ECHO_CMD } " $$ 1 $$ 2 $$ 3 " ; \
shift 3; \
2002-03-25 08:48:47 +00:00
done ; \
checked = " $$ dir $$ childdir $$ checked " ; \
2000-03-03 01:23:49 +00:00
fi ; \
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
else \
${ ECHO_MSG } " ${ PKGNAME } : \" $$ dir\" non-existent -- dependency list incomplete " >& 2; \
fi ; \
2002-03-25 08:48:47 +00:00
done
2000-03-03 01:23:49 +00:00
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
# Print out package names.
2000-03-03 01:23:49 +00:00
package-depends :
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
. i f $ { O S V E R S I O N } > = 4 6 0 1 0 2
@${ PACKAGE -DEPENDS-LIST } | ${ AWK } '{print $$1":"$$3}'
. e l s e
2002-07-05 09:14:53 +00:00
@${ PACKAGE -DEPENDS-LIST } | ${ AWK } '{print $$1}'
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
. e n d i f
1996-03-06 08:14:26 +00:00
1995-04-20 18:03:02 +00:00
################################################################
# Everything after here are internal targets and really
# shouldn't be touched by anybody but the release engineers.
################################################################
# This target generates an index entry suitable for aggregation into
# a large index. Format is:
#
# distribution-name|port-path|installation-prefix|comment| \
1999-07-23 09:36:55 +00:00
# description-file|maintainer|categories|build deps|run deps|www site
1998-10-30 08:28:02 +00:00
1995-04-20 18:03:02 +00:00
. i f ! t a r g e t ( d e s c r i b e )
2003-05-06 05:15:18 +00:00
describe :
@${ ECHO_CMD } -n " `perl -e ' \
print q{ ${ PKGNAME } | ${ .CURDIR } | ${ PREFIX } | } ` "
. i f d e f i n e d ( C O M M E N T )
@${ ECHO_CMD } -n ${ COMMENT : Q }
. e l s e
@${ ECHO_CMD } -n '** No Description'
. e n d i f
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " `perl -e ' \
2001-11-09 15:48:40 +00:00
if ( -f q{ ${ DESCR } } ) { \
print q{ | ${ DESCR } } ; \
1999-07-23 09:36:55 +00:00
} else { \
2001-11-09 15:48:40 +00:00
print q{ | /dev/null} ; \
1999-07-23 09:36:55 +00:00
} \
2001-11-09 15:48:40 +00:00
print q{ | ${ MAINTAINER } | ${ CATEGORIES } | } ; \
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
@bdirs = map( ( split /:/) [ 1] , split( q{ } , q{ ${ EXTRACT_DEPENDS } ${ PATCH_DEPENDS } ${ FETCH_DEPENDS } ${ BUILD_DEPENDS } } ) ) ; \
2001-11-09 15:48:40 +00:00
@rdirs = map( ( split /:/) [ 1] , split( q{ } , q{ ${ RUN_DEPENDS } } ) ) ; \
@mdirs = ( \
map( ( split /:/) [ 0] , split( q{ } , q{ ${ DEPENDS } } ) ) , \
map( ( split /:/) [ 1] , split( q{ } , q{ ${ LIB_DEPENDS } } ) ) \
) ; \
for my $$ i ( \@ bdirs, \@ rdirs, \@ mdirs) { \
my @dirs = @$$ i; \
@$$ i = ( ) ; \
for ( @dirs) { \
if ( -d $$ _) { \
push @$$ i, $$ _; \
} else { \
print STDERR qq{ ${ PKGNAME } : \" $$ _\" non-existent -- dependency list incomplete\n } ; \
} \
1999-07-23 09:36:55 +00:00
} \
} \
2001-11-09 15:48:40 +00:00
for ( @bdirs, @mdirs) { \
$$ x{ $$ _} = 1; \
1999-07-23 09:36:55 +00:00
} \
2001-11-09 15:48:40 +00:00
print join( q{ } , sort keys %x) , q{ | } ; \
for ( @rdirs, @mdirs) { \
$$ y{ $$ _} = 1; \
1999-07-23 09:36:55 +00:00
} \
2001-11-09 15:48:40 +00:00
print join( q{ } , sort keys %y) , q{ | } ; \
if ( open( DESCR, q{ ${ DESCR } } ) ) { \
while ( <DESCR>) { \
if ( /^WWW:\s +( \S +) /) { \
print $$ 1; \
last; \
} \
1999-07-23 09:36:55 +00:00
} \
} \
2001-11-09 15:48:40 +00:00
print qq{ \n } ; ' ` "
1999-07-23 09:36:55 +00:00
. e n d i f
1999-04-28 06:20:23 +00:00
www-site :
. i f e x i s t s ( $ { D E S C R } )
Add a bunch of generally used command macros:
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
2001-11-17 21:05:50 +00:00
@${ GREP } '^WWW:[ ]' ${ DESCR } | ${ AWK } '{print $$2}' | ${ HEAD } -1
1999-04-28 06:20:23 +00:00
. e l s e
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD }
1999-04-28 06:20:23 +00:00
. e n d i f
1996-04-01 11:13:00 +00:00
. i f ! t a r g e t ( r e a d m e s )
readmes : readme
. e n d i f
. i f ! t a r g e t ( r e a d m e )
readme :
2000-09-13 07:16:49 +00:00
@rm -f ${ .CURDIR } /README.html
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } ${ .CURDIR } /README.html
1996-04-01 11:13:00 +00:00
. e n d i f
2003-05-06 05:15:18 +00:00
${.CURDIR}/README.html :
1998-08-12 01:47:47 +00:00
@${ ECHO_MSG } " ===> Creating README.html for ${ PKGNAME } "
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
@${ SED } -e 's|%%PORT%%|' $$ ( ${ ECHO_CMD } ${ .CURDIR } | \
${ SED } -e 's|.*/\([^/]*/[^/]*\)$$|\1|' ) '|g' \
-e 's|%%PKG%%|${PKGNAME}|g' \
2003-05-06 05:15:18 +00:00
-e 's|%%COMMENT%%|' " $$ ( ${ ECHO_CMD } ${ COMMENT : Q } ) " '|' \
1996-04-01 11:13:00 +00:00
-e '/%%COMMENT%%/d' \
* pkg-comment removal, take 2: introduce the COMMENTFILE variable
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
2003-02-10 07:59:22 +00:00
-e 's|%%DESCR%%|' " $$ ( ${ ECHO_CMD } ${ DESCR } | \
${ SED } -e 's|${.CURDIR}/||' ) " '|' \
-e 's|%%EMAIL%%|' " $$ ( ${ ECHO_CMD } " ${ MAINTAINER } " | \
${ SED } -e 's/([^)]*)//;s/.*<//;s/>.*//' ) " '|g' \
-e 's|%%MAINTAINER%%|${MAINTAINER}|g' \
-e 's|%%WEBSITE%%|' " $$ (cd ${ .CURDIR } && ${ MAKE } \
${ __softMAKEFLAGS } pretty-print-www-site) " '|' \
-e 's|%%BUILD_DEPENDS%%|' " $$ (cd ${ .CURDIR } && ${ MAKE } \
${ __softMAKEFLAGS } pretty-print-build-depends-list) " '|' \
-e 's|%%RUN_DEPENDS%%|' " $$ (cd ${ .CURDIR } && ${ MAKE } \
${ __softMAKEFLAGS } pretty-print-run-depends-list) " '|' \
-e 's|%%TOP%%|' " $$ ( ${ ECHO_CMD } ${ CATEGORIES } | \
${ SED } -e 's| .*||' -e 's|[^/]*|..|g' ) " '/..|' \
${ TEMPLATES } /README.port >> $@
1996-04-01 11:13:00 +00:00
1998-12-12 07:39:30 +00:00
# The following two targets require an up-to-date INDEX in ${PORTSDIR}
. i f ! t a r g e t ( p r e t t y - p r i n t - b u i l d - d e p e n d s - l i s t )
pretty-print-build-depends-list :
* Add considerable documentation about available variables, their
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
2003-03-02 02:06:56 +00:00
. i f d e f i n e d ( E X T R A C T _ D E P E N D S ) | | d e f i n e d ( P A T C H _ D E P E N D S ) | | \
defined( FETCH_DEPENDS) || defined( BUILD_DEPENDS) || \
1996-04-01 11:13:00 +00:00
defined( LIB_DEPENDS) || defined( DEPENDS)
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } -n 'This port requires package(s) "'
2002-12-04 17:17:48 +00:00
@${ ECHO_CMD } -n ` ${ GREP } '^${PKGNAME}|' ${ PORTSDIR } /${ INDEXFILE } | awk -F\| '{print $$8;}' `
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } '" to build.'
1996-04-01 11:13:00 +00:00
. e n d i f
. e n d i f
1998-12-12 07:39:30 +00:00
. i f ! t a r g e t ( p r e t t y - p r i n t - r u n - d e p e n d s - l i s t )
pretty-print-run-depends-list :
1996-04-01 11:13:00 +00:00
. i f d e f i n e d ( R U N _ D E P E N D S ) | | d e f i n e d ( L I B _ D E P E N D S ) | | d e f i n e d ( D E P E N D S )
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } -n 'This port requires package(s) "'
2002-12-04 17:17:48 +00:00
@${ ECHO_CMD } -n ` ${ GREP } '^${PKGNAME}|' ${ PORTSDIR } /${ INDEXFILE } | awk -F\| '{print $$9;}' `
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } '" to run.'
1996-04-01 11:13:00 +00:00
. e n d i f
. e n d i f
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
# Generate packing list. Also tests to make sure all required package
# files exist.
. i f ! t a r g e t ( g e n e r a t e - p l i s t )
generate-plist :
@${ ECHO_MSG } "===> Generating temporary packing list"
1999-07-23 09:36:55 +00:00
@${ MKDIR } ` dirname ${ TMPPLIST } `
2002-11-03 05:43:49 +00:00
@if [ ! -f ${ PLIST } -o ! -f ${ DESCR } ] ; then ${ ECHO_CMD } " ** Missing package files for ${ PKGNAME } . " ; exit 1; fi
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
@>${ TMPPLIST }
1999-07-23 09:36:55 +00:00
@for man in ${ __MANPAGES } ; do \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } $$ { man} >> ${ TMPPLIST } ; \
1999-07-23 09:36:55 +00:00
done
1998-09-10 06:38:02 +00:00
. f o r _ P R E F I X i n $ { P R E F I X }
.if ${_TMLINKS : M ${_PREFIX }*}x != x
2002-11-03 05:43:49 +00:00
@for i in ${ _TMLINKS : M ${ _PREFIX } * : S ,^ ${ _PREFIX } /,, : S ,//,/,g } ; do \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " $$ i " >> ${ TMPPLIST } ; \
1998-09-10 06:38:02 +00:00
done
. e n d i f
.if ${_TMLINKS : N ${_PREFIX }*}x != x
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } @cwd / >> ${ TMPPLIST }
1998-09-10 06:38:02 +00:00
@for i in ${ _TMLINKS : N ${ _PREFIX } * : S ,^/,, } ; do \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } " $$ i " >> ${ TMPPLIST } ; \
1998-09-10 06:38:02 +00:00
done
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } '@cwd ${PREFIX}' >> ${ TMPPLIST }
1998-09-10 06:38:02 +00:00
. e n d i f
2002-11-03 05:43:49 +00:00
@for i in $$ ( ${ ECHO } ${ __MANPAGES } ${ _TMLINKS : M ${ _PREFIX } * : S ,^ ${ _PREFIX } /,, : S ,//,/,g } ' ' | ${ SED } -E -e 's,man([1-9ln])/([^/ ]+) ,cat\1/\2 ,g' ) ; do \
${ ECHO } " @unexec rm -f %D/ $$ {i%.gz} %D/ $$ {i%.gz}.gz " >> ${ TMPPLIST } ; \
done
2003-05-14 16:47:31 +00:00
.if ${XFREE86_HTML_MAN : L } == "yes "
2000-09-13 07:16:49 +00:00
. f o r m a n s e c t i n 1 2 3 4 5 6 7 8 9 L N
. f o r m a n i n $ { M A N $ { m a n s e c t } }
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
@echo lib/X11/doc/html/${ man } .html >> ${ TMPPLIST }
. e n d f o r
. e n d f o r
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } "@unexec %D/bin/mkhtmlindex %D/lib/X11/doc/html" >> ${ TMPPLIST }
@${ ECHO_CMD } "@exec %D/bin/mkhtmlindex %D/lib/X11/doc/html" >> ${ TMPPLIST }
2003-05-06 05:15:18 +00:00
. i f d e f i n e d ( M L I N K S )
@${ ECHO_CMD } ${ MLINKS } | ${ AWK } \
' { for ( i = 1; i<= NF; i++) { \
if ( i % 2 = = 0) { printf "lib/X11/doc/html/%s.html\n" , $$ i } \
} } ' >> ${ TMPPLIST }
. e n d i f
The following changes are all
Reviewed by: the ports list
(1) Add PORTREVISION and PORTEPOCH, which are both optional, to
PKGNAME. PKGNAME is now defined as
${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}[_${PORTREVISION}][,${PORTEPOCH}]
PORTREVISION denotes some FreeBSD internal change to the port that
requires the user to upgrade it. A security fix or a shared
library version change will be valid reasons to change (or define)
PORTREVISION.
PORTEPOCH is used to re-sort versions that is screwed up by the
author. PORTEPOCH is sorted before all other fields for the
purpose of determining which version is newer than the other.
Submitted by: kris
(2) Add fetch-recursive and fetch-recursive-list. These are like
fetch and fetch-list but they also descend into dependencies.
While I'm here, clean up some internal target names and comments.
Requested by PR: 12548
(2') Fix bug in fetch-list I introduced in rev 1.347.
(3) Add new variables LINUXBASE, USE_LINUX and USE_LINUX_PREFIX.
LINUXBASE defaults to /compat/linux and will be the default PREFIX
if USE_LINUX_PREFIX is defined. USE_LINUX, which is also implied
by USE_LINUX_PREFIX, will add a runtime dependency to the
emulators/linux_base port.
Approved by: marcel
(4) Include bsd.python.mk when USE_PYTHON and PYTHON_VERSION are defined.
Submitted by: tg
(5a) Change USE_FREETYPE to always depend on print/freetype -- it
turns out that XFree86-4-libraries only used freetype internally
and didn't install the libraries nor headers.
Submitted by: Taguchi-san (XFree86-4-* maintainer)
(5b) Change USE_MESA to lib-depend on GLU.1:graphics/Mesa3 when
XFREE86_VERSION=4. The Mesa port has been changed to only
install components missing from the XFree86 distribution when
XF8V=4.
Submitted by: sobomax
(5c) New variable XFREE86_HTML_MAN, which defaults to "no" when XF8V=3
or USE_IMAKE is not defined, and "yes" when XF8V=4 and USE_IMAKE
is defined. When this variable's value is "yes", generate-plist
will add html-ified manpages to the generated PLIST.
Approved by: Taguchi-san
(6) Allow user to override MD5_FILE.
Requested by: many
(7) Small message change: "...doesn't seem to exist on this system" ->
"... to exist in ${_DISTDIR}".
Requested by: some mail in the mailing lists...can't remember which ;)
2000-09-09 13:21:14 +00:00
. e n d i f
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. e n d f o r
2000-05-06 10:45:35 +00:00
@${ SED } ${ PLIST_SUB : S / $/!g/ : S /^/ -e s!%%/ : S /=/%%!/ } ${ PLIST } >> ${ TMPPLIST }
2000-07-19 16:41:22 +00:00
. i f ! d e f i n e d ( N O _ M T R E E )
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } "@unexec if [ -f %D/info/dir ]; then if sed -e '1,/Menu:/d' %D/info/dir | grep -q '^[*] '; then true; else rm %D/info/dir; fi; fi" >> ${ TMPPLIST }
2000-07-19 16:41:22 +00:00
. e n d i f
2000-06-16 21:52:40 +00:00
. i f d e f i n e d ( I N S T A L L S _ S H L I B )
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
@${ ECHO_CMD } " @exec ${ LDCONFIG } -m ${ LDCONFIG_PLIST } " >> ${ TMPPLIST }
@${ ECHO_CMD } " @unexec ${ LDCONFIG } -R " >> ${ TMPPLIST }
2000-06-14 02:14:49 +00:00
. e n d i f
1998-10-09 01:27:21 +00:00
. i f ! d e f i n e d ( N O _ F I L T E R _ S H L I B S )
1998-09-10 06:38:02 +00:00
. i f (${PORTOBJFORMAT} = = "aout" )
@${ SED } -e 's,\(/lib.*\.so\.[0-9]*\)$$,\1.0,' ${ TMPPLIST } > ${ TMPPLIST } .tmp
1998-09-17 01:00:23 +00:00
. e l s e
@${ SED } -e 's,\(/lib.*\.so\.[0-9]*\)\.[0-9]*$$,\1,' ${ TMPPLIST } > ${ TMPPLIST } .tmp
1998-09-10 06:38:02 +00:00
. e n d i f
1998-09-17 01:22:05 +00:00
@${ MV } -f ${ TMPPLIST } .tmp ${ TMPPLIST }
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. e n d i f
1998-10-09 01:27:21 +00:00
. e n d i f
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
${TMPPLIST} :
1999-07-23 09:36:55 +00:00
@cd ${ .CURDIR } && ${ MAKE } ${ __softMAKEFLAGS } generate-plist
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
1998-09-10 06:38:02 +00:00
# Compress (or uncompress) and symlink manpages.
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. i f ! t a r g e t ( c o m p r e s s - m a n )
compress-man :
2002-03-25 08:48:47 +00:00
. i f d e f i n e d ( _ M A N P A G E S ) | | d e f i n e d ( _ M L I N K S )
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. i f ${MANCOMPRESSED} = = yes && defined( NOMANCOMPRESS)
@${ ECHO_MSG } " ===> Uncompressing manual pages for ${ PKGNAME } "
1999-09-22 01:04:30 +00:00
@_manpages= '${_MANPAGES:S/' /'\' '/g}' && [ " $$ {_manpages} " != "" ] && ( eval ${ GUNZIP_CMD } $$ { _manpages} ) || ${ TRUE }
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. e l i f ${MANCOMPRESSED} = = no && !defined( NOMANCOMPRESS)
@${ ECHO_MSG } " ===> Compressing manual pages for ${ PKGNAME } "
1999-09-22 01:04:30 +00:00
@_manpages= '${_MANPAGES:S/' /'\' '/g}' && [ " $$ {_manpages} " != "" ] && ( eval ${ GZIP_CMD } $$ { _manpages} ) || ${ TRUE }
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. e n d i f
1998-09-10 06:38:02 +00:00
. i f d e f i n e d ( _ M L I N K S )
@set ${ _MLINKS : S , "" ,,g : S ,//,/,g } ; \
while :; do \
[ $$ # -eq 0 ] && break || ${TRUE}; \
${ RM } -f $$ { 2%.gz} ; ${ RM } -f $$ 2.gz; \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ LN } -fs ` ${ ECHO_CMD } $$ 1 $$ 2 | ${ AWK } ' { \
1998-09-10 06:38:02 +00:00
z = split( $$ 1, a, /\/ /) ; x = split( $$ 2, b, /\/ /) ; \
while ( a[ i] = = b[ i] ) i++; \
for ( q = i; q<x; q++) printf "../" ; \
for ( ; i<z; i++) printf a[ i] "/" ; printf a[ z] ; } ' ` $$ 2; \
shift; shift; \
done
. e n d i f
2002-03-25 08:48:47 +00:00
. e l s e
@${ DO_NADA }
. e n d i f
Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
. e n d i f
1995-04-20 18:03:02 +00:00
# Fake installation of package so that user can pkg_delete it later.
# Also, make sure that an installed port is recognized correctly in
# accordance to the @pkgdep directive in the packing lists
. i f ! t a r g e t ( f a k e - p k g )
2003-05-06 05:15:18 +00:00
fake-pkg :
2002-03-25 08:48:47 +00:00
. i f ! d e f i n e d ( N O _ P K G _ R E G I S T E R )
1996-11-01 07:22:37 +00:00
@if [ ! -d ${ PKG_DBDIR } ] ; then ${ RM } -f ${ PKG_DBDIR } ; ${ MKDIR } ${ PKG_DBDIR } ; fi
1999-11-11 02:36:15 +00:00
@${ RM } -f /tmp/${ PKGNAME } -required-by
1995-05-10 09:30:09 +00:00
. i f d e f i n e d ( F O R C E _ P K G _ R E G I S T E R )
1999-11-11 02:36:15 +00:00
@if [ -e ${ PKG_DBDIR } /${ PKGNAME } /+REQUIRED_BY ] ; then \
${ CP } ${ PKG_DBDIR } /${ PKGNAME } /+REQUIRED_BY /tmp/${ PKGNAME } -required-by; \
fi
1996-03-06 08:08:16 +00:00
@${ RM } -rf ${ PKG_DBDIR } /${ PKGNAME }
1995-05-10 09:30:09 +00:00
. e n d i f
1995-04-20 18:03:02 +00:00
@if [ ! -d ${ PKG_DBDIR } /${ PKGNAME } ] ; then \
1998-08-12 01:47:47 +00:00
${ ECHO_MSG } " ===> Registering installation for ${ PKGNAME } " ; \
1996-11-01 07:22:37 +00:00
${ MKDIR } ${ PKG_DBDIR } /${ PKGNAME } ; \
1995-04-22 00:01:26 +00:00
${ PKG_CMD } ${ PKG_ARGS } -O ${ PKGFILE } > ${ PKG_DBDIR } /${ PKGNAME } /+CONTENTS; \
1997-03-06 08:28:15 +00:00
${ CP } ${ DESCR } ${ PKG_DBDIR } /${ PKGNAME } /+DESC; \
2003-05-06 05:15:18 +00:00
${ ECHO_CMD } ${ COMMENT : Q } > ${ PKG_DBDIR } /${ PKGNAME } /+COMMENT; \
1998-12-12 07:39:30 +00:00
if [ -f ${ PKGINSTALL } ] ; then \
${ CP } ${ PKGINSTALL } ${ PKG_DBDIR } /${ PKGNAME } /+INSTALL; \
1995-06-26 07:01:20 +00:00
fi ; \
1998-12-12 07:39:30 +00:00
if [ -f ${ PKGDEINSTALL } ] ; then \
${ CP } ${ PKGDEINSTALL } ${ PKG_DBDIR } /${ PKGNAME } /+DEINSTALL; \
1995-06-26 07:01:20 +00:00
fi ; \
1998-12-12 07:39:30 +00:00
if [ -f ${ PKGREQ } ] ; then \
${ CP } ${ PKGREQ } ${ PKG_DBDIR } /${ PKGNAME } /+REQUIRE; \
1995-06-26 07:01:20 +00:00
fi ; \
1998-12-12 07:39:30 +00:00
if [ -f ${ PKGMESSAGE } ] ; then \
${ CP } ${ PKGMESSAGE } ${ PKG_DBDIR } /${ PKGNAME } /+DISPLAY; \
1997-10-08 05:04:48 +00:00
fi ; \
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
for dep in ` ${ PKG_INFO } -qf ${ PKGNAME } | ${ GREP } -w ^@pkgdep | ${ AWK } '{print $$2}' | sort -u` ; do \
if [ -d ${ PKG_DBDIR } /$$ dep -a -z ` ${ ECHO_CMD } $$ dep | ${ GREP } -E ${ PKG_IGNORE_DEPENDS } ` ] ; then \
1997-01-25 02:45:09 +00:00
if ! ${ GREP } ^${ PKGNAME } $$ ${ PKG_DBDIR } /$$ dep/+REQUIRED_BY \
>/dev/null 2>& 1; then \
Heroic attempt to reduce number of PRs assigned to portmgr@:
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
2002-04-25 15:28:48 +00:00
${ ECHO_CMD } ${ PKGNAME } >> ${ PKG_DBDIR } /$$ dep/+REQUIRED_BY; \
1997-01-25 02:45:09 +00:00
fi ; \
fi ; \
done ; \
1995-04-20 18:03:02 +00:00
fi
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
. i f ! d e f i n e d ( N O _ M T R E E )
2002-10-02 07:18:17 +00:00
@if [ -f ${ MTREE_FILE } ] ; then \
${ CP } ${ MTREE_FILE } ${ PKG_DBDIR } /${ PKGNAME } /+MTREE_DIRS; \
* Some spelling/grammar fixes in comments
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
2002-09-19 00:16:39 +00:00
fi
. e n d i f
1999-11-11 02:36:15 +00:00
@if [ -e /tmp/${ PKGNAME } -required-by ] ; then \
${ CAT } /tmp/${ PKGNAME } -required-by >> ${ PKG_DBDIR } /${ PKGNAME } /+REQUIRED_BY; \
${ RM } -f /tmp/${ PKGNAME } -required-by; \
fi
2002-03-25 08:48:47 +00:00
. e l s e
@${ DO_NADA }
. e n d i f
1995-04-20 18:03:02 +00:00
. e n d i f
1994-08-28 14:41:34 +00:00
1994-08-22 10:46:38 +00:00
# Depend is generally meaningless for arbitrary ports, but if someone wants
# one they can override this. This is just to catch people who've gotten into
# the habit of typing `make depend all install' as a matter of course.
#
. i f ! t a r g e t ( d e p e n d )
depend :
1994-08-21 13:12:57 +00:00
. e n d i f
1994-08-22 11:20:07 +00:00
# Same goes for tags
. i f ! t a r g e t ( t a g s )
tags :
. e n d i f
1998-11-11 05:21:29 +00:00
1999-07-23 09:36:55 +00:00
. i f ! d e f i n e d ( N O P R E C I O U S M A K E V A R S )
2000-06-14 02:14:49 +00:00
. f o r s o f t v a r i n C K S U M F I L E S _ M L I N K S
1999-07-23 09:36:55 +00:00
. i f d e f i n e d ( $ { s o f t v a r } )
__softMAKEFLAGS += '${softvar}+=${${softvar}:S/' /'\' '/g}'
. e n d i f
. e n d f o r
# These won't change, so we can pass them through the environment
.MAKEFLAGS : \
ARCH = " ${ ARCH : S / "/" '"' "/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
OPSYS = " ${ OPSYS : S / "/" '"' "/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
OSREL = " ${ OSREL : S / "/" '"' "/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
OSVERSION = " ${ OSVERSION : S / "/" '"' "/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
PORTOBJFORMAT = " ${ PORTOBJFORMAT : S / "/" '"' "/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
SYSTEMVERSION = " ${ SYSTEMVERSION : S / "/" '"' "/g:S/\$/\$\$/g:S/\\/\\\\/g}"
. e n d i f
1998-11-11 05:21:29 +00:00
. e n d i f
# End of post-makefile section.