openbsd-ports/infrastructure
espie 6c6c933ec0 MULTI_PACKAGES framework.
This is somewhat orthogonal to FLAVORS.

Principle: one port may build several packages in one go.
For instance, egcs will build all compilers, and package stuff as
base, C++, Fortran, etc.

This simplifies some japanese ports greatly, e.g., one Canna port that
builds libs/server/app packages.

How to use:
just set
MULTI_PACKAGES=-ext1 -ext2...
in the Makefile.

Then make package will invoke itself recursively with SUBPACKAGE set to
-ext1, -ext2.

The SUBPACKAGE will fetch package info as PLIST-ext1, COMMENT-ext1,
DESCR-ext1, etc.

The port Makefile itself can test the value of SUBPACKAGE if things differ.

Some problems:
- there still is a main package (with PLIST, DESCR, etc), and it's built
last, so you can't add RUN_DEPENDS=main_package to subpackages, you have
to encode them explicitly in the PLIST for now.
- other ports can't depend on subpackages yet. This is usually not a
problem, it's just a question of choosing the `right' main package (e.g.,
for Canna, it will be canna-lib).
- PLIST.sed recognize @FLAVOR@, which is extended to the current flavor,
so that a subpackage may depend on the corresponding main package in
explicit ways.


describe is also invoked recursively, so that all subpackages appear in
the INDEX.
2000-04-17 20:12:03 +00:00
..
build If key, author, category is defined on the command line, 2000-04-09 16:26:13 +00:00
db Let var appear at the right location. 2000-03-29 15:41:28 +00:00
fetch Porters support: create a locate database that holds all distfile contents 2000-04-09 12:45:55 +00:00
install `Fake' infrastructure: 2000-03-03 21:24:50 +00:00
mk MULTI_PACKAGES framework. 2000-04-17 20:12:03 +00:00
package use tar's q flag for speed 1999-10-26 15:37:42 +00:00
templates cdrom.com -> freesoftware.com, From: FreeBSD bsd.port.mk 2000-03-12 19:13:37 +00:00
README Document what currently exists 1999-10-26 15:38:06 +00:00

This directory does not hold ports, but rather stuff to help
with building specific ports, or with checking packages.

Better documentation will be written as this progresses.

Quick list of what exists, most useful stuff first

build/bundle-readmes: 
	create README.html files and bundle them as one tar archive.

fetch/check-distfiles
	heuristic to check the whole contents of /usr/ports/distfiles against
	all MD5 files in the ports tree.
	
packages/check-dependencies
	Check dependencies for all packages in the current directory.
	Basically, verifies that the tsort in bsd.port.mk did their job.

build/find-build-order
	used such as cat db/essentials | build/find-build-order
	outputs a list of stuff that actually needs to be built to obtain those
	packges, in a suitable order for removing backward dependencies.

	Optional arg `build' or `run' to take only build or run dependencies
	into account.

	Major defect: tsort is not a stable sort, so find-build-order will
	rearrange the list it gets as input.

build/out-of-date
	compare installed registered  packages with INDEX, try to find out 
	of date ports.

install/make-plist
	perl helper for the make plist target

db/network.conf
	Distfiles configuration. Tweakable by the user

fetch/check-license
	legacy script used by Marco to check the LICENSE files

install/create-user
	simple script to create new users account, based on db/users.db