Allow for MACHINE_ARCH specific files or patches, if no such files
for ARCH found.
Put compiled packages in MACHINE_ARCH directory, instead of ARCH.
All of this to improve support for compound architectures, mainly
m68k-based architectures at this time.
While there, mention mvme88k does not have shared libraries, to be
sure this isn't forgotten when mvme88k gets back in shape.
ok'ed by espie@
- allow Makefile to distinguish packaging steps, since SUBPACKAGE can now
be set for various reasons.
- EXTRA_LIBDIRS for architectures without shared libraries.
- let USE_MOTIF be sensible: any, openmotif, lesstif.
any triggers a lesstif flavor.
- show=name as a shortcut.
- package-dir-depends to check that packages are okay.
- error message for non-existent dirs.
- save subdir into package, that's what is useful, since the name is
already there.
- check that SUBPACKAGE is a member of MULTI_PACKAGES.
Make make SUBDIR=misc/fileutils,-ls work without error.
Use it where we can, including WRKOBJDIR `real' names.
NOTE: if you are using WRKOBJDIR, *all* flavored builds directories
will change names, from work-no_x11 to work,no_x11
I shouldn't have to do this. This should have been spotted by the loser
who changed tcsh's Makefile. Brad should have noticed it no longer builds
and fixed this, along with mtree/BSD.local.dist...
dir-depends: list of SUBDIRS this port depends on (with flavors, subpackages),
to use with tsort.
build-depends-list, run-depends-list: list of pkgspec:dir needed for this
port, no recursion. To use for INDEX.
- move FLAVOR_EXT up so that WRK* are correct when they're needed for
dependencies.
- build a list of _PACKAGE_COOKIES, one for each subpackage.
- let package go through an indirection:
package: ${_PACKAGE_COOKIES}
_PACKAGE_COOKIE_${SUB}:
SUBPACKAGE=${SUB} ${MAKE} _package
so that all packages are `flat', and subpackages can depend on each other
freely.
don't work, as they propagate down subdirs.
Use `FLAVOR=a make' (sh) or `env FLAVOR=a make' (csh) instead.
Error out with a useful error message if old usage is encountered.
always define _ALWAYS_DEP, _BUILD_DEP, _RUN_DEP and test for emptiness
instead of definedness, so that the code is still optimized away when
dependency lists are defined, but empty.
Use eval to simplify passing those to submakes.
Note that the preferred separator is ',', not ':'.
(Because ':' can't be used unambiguously in *_DEPENDS, whereas ',' can)
NetBSD did this a while ago, this is a natural idea. It just took me
some time to figure out how to do that in a MULTI_PACKAGE context,
while maintaining compatibility with existing stuff.
* pull every dependency under the same rule, using specialized fragments.
* re-check after the dependency is expanded, unless earlyexit is true.
* explicitly recognize /nonexistent as a specific way to have always
triggered dependencies, use it to handle DEPENDS in a uniform way.
* parse dependencies fully. Note that we know have a pkg variable that will
be used.
Thanks to naddy@ for useful tweaks.
This is probably not quite perfect yet, stuff may break. Other stuff that
remain to be done:
- handle library dependencies better, so that lib.10 will match only
lib.10.x and not lib.100.
- handle default FLAVORS correctly. This involves not
passing FLAVOR='', but rearranging ${MAKE} ${_DEPEND_THRU} to remove
FLAVOR from the environment and from MAKEFLAGS (yucky).
The cleaner fix would be to create the package to stdout under SUDO
and redirect it, but that junk (pkg_create) is actively fighting that.
God, I've got to rewrite it and retire that crap.
it's so seldom used now).
Remove a few targets that are not really needed (mirror-distfiles, use
mirror-maker instead).
More changes to fake to come, once they've been properly tested.