Move BULK_COOKIE for package to the redirector, so that we do not
clean in subpackage cases, but instead wait for all the packages to be built.
Also, introduce FORCE_UPDATE=hard: with signatures, -F installed is
most often not necessary...
package cookie, so that an update will get all subpackages built.
And a fix for an old issue: let make update proceed to update ALL subpackages,
as seems the most natural. Create a subupdate target if one specifically
wants to update a single package (and use it as dependency in the FORCE_UPDATE
case).
cookies, and also insist on running make package, which is necessary to
make sure all MULTI_PACKAGES get built.
Repair make clean=packages: make sure all packages get named using the same
scheme as other multi-packages targets (that way, arch-indep subpackages
get cleaned properly)
into real targets.
- now make package will create missing ftp/cdrom links when PERMIT says so.
- PKG_ARCH=* packages get built into packages/no-arch, and linked from
elsewhere.
Everything gets based off PACKAGE_REPOSITORY, PKGREPOSITORYBASE and friends
get ditched.
All `package' targets go through the same routine: iterate through every
subpackage with PACKAGING set.
This includes describe, lib-depends-check, package, dump-vars, install-all,
which will iterate through subdescribe, sublib-depends-check, subpackage,
subdump-vars, and install.
(names are subject to change).
Much simpler logic, plus hey, you get an install-all target !
Might be some minor breakage, most stuff appear to work just fine...
_MASTER_LOCK, we keep a list of _LOCKS_HELD by one port builder in
an env variable, and we don't relock stuff that's already locked.
This allows us to, e.g., have fake depend on regress without issue
(even though, internally, it's more efficient to use the _internal-*
targets to avoid testing locks).
and leaves you at the ftp prompt in the directory where stuff is fetched
from.
(I find myself using this quite often to figure out which version of stuff
exists, especially for CPAN).
SHARED_LIBS enumerates the libraries like so:
SHARED_LIBS= foo 1.0 \
zop 2.5 \
tag 3.0
This just defines LIBfoo_VERSION=1.0, LIBzop_VERSION=2.5, LIBtag_VERSION=3.0
and adds these to SUBST_VAR, further tweaks must be done, usually at the
MAKE_FLAGS/MAKE_ENV level.
For gnu ports that use automake, the supplementary MODGNU_SHARED_LIBS
variable can be used like this:
MODGNU_SHARED_LIBS= foo '-no-undefined'
and it will define libfoo_la_LD_FLAGS=--version-info 1:0:0 -no-undefined
Some gnu ports have weird variable names for libraries. For instance,
the libORBit-2 is set using libORBit_2.
LIBORbit-2_ALIAS=ORBit_2
will make sure the correct name is used.
much feedback from bernd@
the main directory... since pseudo-flavors are not entered as pkgpath,
this is necessary to ensure the top-level directory gets cleaned up
correctly...
Problem reported by Moritz Grimm.