History log of /freebsd-current/share/mk/bsd.port.mk
Revision Date Author Comments
# 5a4b548a 02-Jan-2024 Warner Losh <imp@FreeBSD.org>

bsd.port.mk: No need to support fmake anymore

There's no need to support fmake anymore. Always assume we can use
bmake's :tA modifier. The ports tree hasn't supported fmake in about a
decade anyway. Simplify here.

Sponsored by: Netflix
Reviewed by: brooks, emaste
Pull Request: https://github.com/freebsd/freebsd-src/pull/980


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 880c41ba 03-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Avoid sub-shell for realpath(1) for bmake by using its built-in :tA.

MFC after: 2 weeks
Approved by: portmgr (implicit)


# 6cc777bf 01-Oct-2014 Will Andrews <will@FreeBSD.org>

Revise r272363 by collapsing the tests into a for loop.

This has the side effect of ensuring that realpath is also run for the
nominal case of PORTSDIR=/usr/ports (assuming .CURDIR is a ports directory
that relies on /usr/ports but is not rooted in it). This ensures that any
generated PORTSDIR used is always the actual location.

Submitted by: jkim (different implementation)


# ff48e371 01-Oct-2014 Will Andrews <will@FreeBSD.org>

Always resolve PORTSDIR to absolute paths using realpath(1).

Reported by: madpilot
Reviewed by: bapt
X-MFC-With: 272282


# a0dec793 29-Sep-2014 Will Andrews <will@FreeBSD.org>

Search for the nearest PORTSDIR where Mk/bsd.ports.mk exists, from .CURDIR.
This will only take effect if PORTSDIR is not set, as previously supported.

Use .if exists(), for four specific possibilities relative to .CURDIR:
., .., ../.., and ../../.. The fourth possibility is primarily in case
ports ever grows a third level. If none of these paths exist, fall back to
the old default of /usr/ports.

This removes the need to set PORTSDIR explicitly (or via wrapper script) if
one is running out of a ports tree that is not in /usr/ports, but in a
home directory.

Reviewed by: bapt, bdrewery (older version)
CR: D799
MFC after: 1 week
Sponsored by: Spectra Logic


# 04a38256 08-Oct-2011 Chris Rees <crees@FreeBSD.org>

Revert unapproved commit to bsd.port.mk.

This would have had more discussion, but it was explicitly rejected at submission by portmgr:

http://lists.freebsd.org/pipermail/freebsd-ports/2011-September/070591.html


# 2872f054 07-Oct-2011 Stanislav Sedov <stas@FreeBSD.org>

- Add a couple of more sed subsitutions needed to get the correct
libtool.m4. With these fixes libtool will correctly indentify the
system as ELF (and not a.out).
- While here, change the substitutions so they're still correctly
match freebsd1.x, freebsd2.x etc.


# dd50bdfa 07-Oct-2011 Stanislav Sedov <stas@FreeBSD.org>

- ${WRKSRC} might be missing when the autotools fixup is running.
Account for this.

Reported by: Mykola Dzham <i@levsha.me>


# df8d253f 04-Oct-2011 Jilles Tjoelker <jilles@FreeBSD.org>

Work around the autotools problem with the 10.0 version.

With this, I can build various ports on a 10.0-CURRENT system without
hacking or hiding the version number.

This commit should be reverted when there is a cleaner fix in autotools
and/or ports/Mk/bsd.port.mk.

The original patch is from Ed Schouten but needed some additions.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# 21edb039 02-Apr-2010 Alexander Leidinger <netchild@FreeBSD.org>

WITH_CTF can now be specified in src.conf (not recommended, there
are some problems with static executables), make.conf (would also
affect ports which do not use GNU make and do not override the
compile targets) or in the kernel config (via "makeoptions
WITH_CTF=yes").

Additional (related) changes:
- propagate WITH_CTF to module builds
- do not add -g to the linker flags, it's a noop there anyway
(at least according to the man page of ld)
- do not add -g to CFLAGS unconditionally
we need to have a look if it is really needed (IMO not) or if there
is a way to add it only when WITH_CTF is used

Note: ctfconvert / ctfmerge lines will not appear in the build output,
to protect the innocent (those which do not build with WITH_CTF would
see the shell-test and may think WITH_CTF is used).

Reviewed by: imp, jhb, scottl (earlier version)
Discussed on: arch@


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 8ef03c79 19-Nov-2006 Ruslan Ermilov <ru@FreeBSD.org>

Try harder to not leak src/ build stuff into ports/ environment
by not exposing the MK_* variables that were designed for src/.

Requested by: many


# 489ffb71 24-Aug-2006 David E. O'Brien <obrien@FreeBSD.org>

Don't read in /etc/src.conf when building ports.

Reported by: obrien
Submitted by: ru


# 4a209e39 02-Jul-2004 Oliver Eikemeier <eik@FreeBSD.org>

Enable testing of customized variants of bsd.port.mk and
bsd.port.subdir.mk, without the overhead of an additional ports tree.

Use
make BSDPORTMK='${PORTSDIR}/My.Mk/bsd.port.mk' target
and
make BSDPORTSUBDIRMK='${PORTSDIR}/My.Mk/bsd.port.subdir.mk' target

to build with the alternate versions.

MFC after: 3 days


# 139df655 19-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Style.


# abd41f7d 19-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Fix the bsd.port.mk breakage caused by sys.mk,v 1.60 commit.

Submitted by: fenner


# e36a59f7 28-Dec-2000 Peter Wemm <peter@FreeBSD.org>

Add $FreeBSD$


# 500ada61 25-Jan-1999 Satoshi Asami <asami@FreeBSD.org>

Move bsd.port.*mk to under ${PORTSDIR}/Mk (already repository copied).
There are only skeletons left here; they merely serve as a backup to
include the real versions under ${PORTSDIR}/Mk while we update the ports
tree to include them directly.


# 5712096d 19-Jan-1999 Satoshi Asami <asami@FreeBSD.org>

(1) Add gnome master sites.
Submitted by: Jeremy Lea <reg@shale.csir.co.za>

(2) Change backup distfiles dir to reflect change in ftp.freebsd.org's
reorganization.


# 68b35df4 11-Jan-1999 Satoshi Asami <asami@FreeBSD.org>

(1) Add ONLY_FOR_ARCHS and NOT_FOR_ARCHS. They are list of architecture names
(as given by "uname -m") by which you can specify which
architectures the port is appropriate for.
Idea borrowed from: NetBSD, OpenBSD
Reviewed by: simokawa

(2) New variable PERL_ARCH (value: ${ARCH}-freebsd) that is also
passed to ${PLIST_SUB}. Use it to simplify PLISTs.
Submitted by: simokawa

(3) Check OSVERSION as well as existence of /usr/bin/perl5 before
assuming USE_PERL5 is to be a no-op. Basically to allow building
of 2.2-INDEX on a 3.0 machine.

(4) Change USE_QT definition to use new shlib version (2) and
directory (qt142).

(5) Uncomment temporary Motif dependency for parallel package
building. We still need to figure out a way to install the pkg
database files, but it's a start.

(6) Move EXTRACT_SUFX up into the pre.mk area so it can be used in
exists() tests.

(7) Add MASTER_SITE_COMP_SOURCES. Note that this is defined like
"/pub/usenet/comp.sources.%SUBDIR%/" so you can specify something
like "SUBDIR=x/volume18" to select the newsgroup as well as
subdirectory name.
Submitted by: "distfiles" fenner

(8) Other misc. master site cleanup.
Submitted by: "distfiles" fenner

(9) New target "maintainer". I intend to use it to auto-mail failure
build failure notices to the maintainer.


# 01e85cb3 12-Dec-1998 Satoshi Asami <asami@FreeBSD.org>

(0) Fast INDEX generation. Only print out the directory name and
don't recurse in "make describe". The new INDEX target in
ports/Makefile invokes a perl script to recurse and convert them
into package names.

While I'm here, change the name of targets and move them around a
little bit for the sake of consistency.

It is also probably worth noting here that the meaning of the
"build dependency" list in INDEX has been changed slightly
changed. The old list was "build depends and its build depends"
-- not particularly useful if you had things like autoconf, which
run-depend on gm4 (you install all the things listed here and
you'll get an autoconf that won't run).

It is now "build depends and its run depends" -- you install
everything listed here, and you'll be able to build the port.
Submitted by: steve

(0') Fast README.html generation. It uses ports/INDEX to find
dependencies instead of embarking on to a recursive loop.
Submitted by: steve

(1) Remove NO_WRKDIR and NO_EXTRACT. Their functionality are easily
replacable with NO_WRKSUBDIR=t and EXTRACT_ONLY= (nothing on right
side), and they get in the way of read-only port trees.

(2) Surround first few variable definitions with ".if !defined()".
This will make cross-compilation easier and also speed up make
processes.

(3) Call sysctl with absolute path. Prefer the one in /sbin over the
one in /usr/sbin.

(4) Add four new variables

PKGINSTALL?= ${PKGDIR}/INSTALL
PKGDEINSTALL?= ${PKGDIR}/DEINSTALL
PKGREQ?= ${PKGDIR}/REQ
PKGMESSAGE?= ${PKGDIR}/MESSAGE

and use them in PKG_ARGS. Frobbing with PKG_ARGS directly is
strongly discouraged.

(5) Change PKG_SUFX to ".tar" (instead of ".tgz") if PKG_NOCOMPRESS is
defined. This is intended only for our own use.

(6) Add more sites to MASTER_SITE_GNU.
Submitted by: billf

(7) Override MANUAL_PACKAGE_BUILD if PARALLEL_PACKAGE_BUILD is
defined. This is intended only for our own use.

(8) Add new target "ignorelist" which will print out the package name
if the port is not going to be built on this machine. This is
intended only for our own use.

(9) Make mtree a little quieter.


# 0e544fd5 24-Nov-1998 Satoshi Asami <asami@FreeBSD.org>

Change USE_QT to use version 1.41. I know this is a little premature,
but I'd like as many people to test this before the release.


# db0921e8 19-Nov-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Remove LOOP_VAR and LOOP_OPTIONS. It's a hack and just too many things
break one way or another. With it goes the package-loop and the
describe loop.

(2) Add new variable MASTERDIR to make it easier to share files between ports.
bsd.port.mk will find things like ${PKGDIR} underneath
${MASTERDIR} (which defaults to ${.CURDIR}).

(3) Do not allow MD5_FILE to be renamed. Funny things can happen if
you do that.

(4) Use a few more absolute paths in the bsd.port.pre.mk part. I
can't use absolute paths for sysctl because it moved recently.


# ffbc42db 14-Nov-1998 Satoshi Asami <asami@FreeBSD.org>

Add EXTRA_PKG_FLAGS to PKG_FLAGS. You can now add arguments to pkg_create
without redefining PKG_FLAGS after bsd.port.mk.


# 218515c5 10-Nov-1998 Satoshi Asami <asami@FreeBSD.org>

Make bsd.port.mk includable in two phases. bsd.port.pre.mk defines only
a few variables that could be used in the port Makefile for ".if exists()"
tests. bsd.port.post.mk defines the rest.

Note: if you define USE_X_PREFIX or USE_IMAKE, put it before including
bsd.port.pre.mk. These are the only two variables used in the first part.

In reality, bsd.port.pre.mk and bsd.port.post.mk just include bsd.port.mk
with special variables to turn part of it off.


# 9fbb2e1c 08-Nov-1998 Satoshi Asami <asami@FreeBSD.org>

(1) New variable MAKE_ARGS: will be appended to build/install make argument
list. The old MAKE_FLAGS was a little hard to use since it had a weird
default ("-f").
Suggested by: Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>

(2) Add new targets clean-restricted and clean-for-cdrom, which will
delete RESTRICTED and NO_CDROM packages and distfiles from the top.
Reviewed by: jkh

(3) Add depends to list of things to recurse on. It will help people
who are trying to fetch some ports plus their dependencies.

Requested by: Chris Dillon <cdillon@wolves.k12.mo.us>


# fc006fb4 30-Oct-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Add new variables LOOP_VAR and LOOP_OPTIONS to implement building several
packages from a single port. LOOP_VAR is the name of the variable
and LOOP_OPTIONS is a space-separated list of values it should
take. When these are set, the target "package-loop" will go
through a clean and package loop for all the options. The
"package-loop" target is defined as "package" when LOOP_VAR is not
defined, so if you are in the business for building packages, you
should use "package-loop" all the time. (This target is added to
bsd.port.subdir.mk too.)

Also, the "describe" target prints out multiple lines so that all
options will go into the INDEX. (In other words, if you define
these variables, INDEX is going to look real silly if you don't
put ${${LOOP_VAR}} in PKGNAME.)

Seconded by: obrien ("ANYTHING")

(2) Turn off regexp support for LIB_DEPENDS. It is a fixed string of
the form <NAME>.<VER> now.
Tested by: several rounds of complete package builds

(3) Check checksum even if NO_EXTRACT is defined.

(4) Cosmetic fix for message in MANUAL_PACKAGE_BUILD case.


# 37a64fc4 08-Oct-1998 Satoshi Asami <asami@FreeBSD.org>

Add new variable NO_FILTER_SHLIBS -- it will disable ELF <-> a.out shlib
name conversion. Use it for binary ports that come with its own private
shlib dirs, ports that install linux compatibility libraries (thus following
their naming conventions and not ours), etc.

Reviewed by: Martin Cracauer <cracauer@FreeBSD.ORG>


# e96b50e3 06-Oct-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Add new variable ${PERL} which is equal to ${PERL5} but without the
version number part (i.e., "<directory>/perl"). Use this to
substitute #! lines in your perl5 scripts.

Requested and reviewed by: ache

(2) Add new variable WRKDIRPREFIX (defaults to ""). The "work"
directories are now in ${WRKDIRPREFIX}${.CURDIR}/work by default.
You can have a read-only ports tree (modulo any broken ports that
write something to places other than ${WRKDIR}) by setting this to
a writable location.

Ports that set WRKDIR explicitly should append this to front so
they will work when the user has WRKDIRPREFIX set.

Reviewed by: Toshihiko Kodama <kodama@ayame.mfd.cs.fujitsu.co.jp>


# c6d9533e 22-Sep-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Add BROKEN_ELF variable, similar to BROKEN. (There is no BROKEN_AOUT,
since ports are not supposed to be broken during the process of
conversion to ELF -- please proceed with caution.)

(2) Support for checking file size before fetching. The essential
parts are commented out for now, so I won't lose the submission
while we discuss how to do it.
Submitted by: se (mostly)

(3) Don't run "fetch" twice. It was due to the change in checksum
target chaining. It used to be fetch -> checksum -> extract,
after 1.285 it was fetch -> checksum and checksum was also
explicitly called from extract. Fix it by not calling fetch from
checksum when it's invoked by extract.
Noticed by: pre-fetch target of lesstif being run twice

(4) Don't try to remove non-existent distfiles and patchfiles in
distclean.
Submitted by: anto@netscape.net
PR: 7988


# d2748a40 16-Sep-1998 Satoshi Asami <asami@FreeBSD.org>

Yikes, put .endif in wrong place.


# b6ab977c 16-Sep-1998 Satoshi Asami <asami@FreeBSD.org>

Remove shlib minor if PORTOBJFORMAT=elf.


# 66078de1 15-Sep-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Pass PORTOBJFORMAT in SCRIPTS_ENV too.
Submitted by: "Eugene M. Kim" <gene@nttlabs.com>

(2) Check for exact version of perl5 in /usr/bin and exit with error
message if USE_PERL5 is defined and version does not match
${PERL_VERSION}.

(3) Note LIB_DEPENDS should not have any regular expressions. Remove
those in USE_XLIB and USE_QT.


# aa135a93 10-Sep-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Add MLINKS support.
Submitted by: hoek

(2) ELF support.
2a. Variable PORTOBJFORMAT specifies the object format of the system.
It is passed down to configure/make via CONFIGURE_ENV/MAKE_ENV,
and is given to generate-plist via PLIST_SUB.
2b. In PLIST, substitute lines that end with "/libFOO.so.X" with
"/libFOO.so.X.0". (This means PLISTs should only list ELF
libraries.)
Reviewed by: jb, jdp, hoek, jseger, steve

(3) Perl5-in-system support. Basically turns USE_PERL5 into a no-op
if there exists a "/usr/bin/perl5". Also fix prior breakage by
dima (${PREFIX} => ${LOCALBASE} in perl5 path).
Reviewed by: markm (sort of)

(4) Install requirement file as "+REQUIRE" so it will be executed
correctly by pkg_delete.
Reported by: Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>

(5) Do not disable checksum and makesum when NO_EXTRACT is set.
Pointed out by: hoek and kiri, among other people


# fd08501e 28-Aug-1998 Dima Ruban <dima@FreeBSD.org>

Introduce PERL5 variable.
It's gonna be used in all p5- ports.

Reviewed by: asami


# 9d9806c5 26-Aug-1998 Satoshi Asami <asami@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>


# 7d970abc 15-Aug-1998 Mark Murray <markm@FreeBSD.org>

Bump version number for latest perl


# b9a5e65b 12-Aug-1998 Satoshi Asami <asami@FreeBSD.org>

Merge 1.227.2.45 (perl version substitution in PLIST).


# de00beff 11-Aug-1998 Satoshi Asami <asami@FreeBSD.org>

Merge 1.227.2.44.


# b9796e16 09-Aug-1998 David E. O'Brien <obrien@FreeBSD.org>

I presume Satoshi wanted ``uname -r'' for OSREL not ``uname -s''

Found by: gcc28 port


# 48a72a55 06-Aug-1998 Mark Murray <markm@FreeBSD.org>

Update for Perl 5.005_01


# 11af2899 05-Aug-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Rename variable "USE_X11" to "USE_X_PREFIX" to make clearer what it
means (change PREFIX to ${X11BASE}) and add a new variable USE_X11
which means "this port requires the X window system (actually the
library)". USE_X_PREFIX implies USE_X11. USE_X11 adds a
LIB_DEPENDS to libX11 with the x11/XFree86 port.
Reviewed by: the ports list, hoek in particular

(2) Remove NO_CONFIGURE and NO_PATCH, which never meant anything.
Yell if they are defined.
Reviewed by: the ports list

(3) Add new variable OSREL, which is automatically set to the
numeric OS version (e.g., 2.2.1, 3.0). It can be used to refer to
files in gcc installations, for instance.

(4) Finally remove EXEC_DEPENDS hack after all these years.
Submitted by: hoek

(5) Put quotes around some echo ${*_DEPENDS} statements so they won't
blow up when the variables include regular expressions like
"qt\\.1\\.\\\(33\\\|40\\\):${PORTSDIR}/x11/qt140".


# 79dea028 28-Jul-1998 David E. O'Brien <obrien@FreeBSD.org>

Add var "CD_MOUNTPT" set to /cdrom by default.
Ok'ed by: discussed with Satoshi at USENIX


# c3673cc0 13-Jul-1998 Stefan Eßer <se@FreeBSD.org>

Add US Mirror site to MASTER_SITE_KDE.


# 1c43d7e1 20-May-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Complete back-out of the bsd.locale.mk change.
OK'd by: asami


# 802d2d4a 19-May-1998 Peter Hawkins <thepish@FreeBSD.org>

PR: misc/6031

Patch applied as per PR - enables preferential fetch from local mirrors


# 05effdc4 03-May-1998 Steve Price <steve@FreeBSD.org>

Change a couple 'make' to '${MAKE}'.

PR: 6341
Submitted by: Niall Smart <rotel@indigo.ie>


# f0bb46b1 23-Mar-1998 Satoshi Asami <asami@FreeBSD.org>

Don't delete "Latest" link if NO_LATEST_LINK is set.


# c89f86ce 06-Mar-1998 Satoshi Asami <asami@FreeBSD.org>

Add ${CXX} to list of variables passed in the environment when
invoking configure.

Submitted by: obrien


# d4060348 18-Feb-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Don't disable "deinstall" if IGNORE is set.
I don't know what the hell I was thinking in: rev. 1.268

(2) Create ${PREFIX} before calling mtree if it doesn't exist. This
may not be the best solution, but pre-install is called after
mtree so there really isn't any way to fix this from the port
Makefiles and thus has to be done here.


# 6b76dece 04-Feb-1998 Satoshi Asami <asami@FreeBSD.org>

(1) Improve the obsolete tcl/tk detection and dignosis.
Reviewed by: the lists

(2) Change MASTER_SITE_CTAN to reflect current reality.
Submitted by: fenner

(3) Add new port variable NO_LATEST_LINK. When this is set, the
"Latest" package symlink is not created. Use this for ports that
are betas when there is also a port for an older, more stable,
version.

(4) Don't be too stupid about "make deinstall".
Submitted by: fenner


# 8baab29a 31-Jan-1998 David E. O'Brien <obrien@FreeBSD.org>

Allow package building in current directory again.


# 68ce8f76 02-Jan-1998 Satoshi Asami <asami@FreeBSD.org>

About one month worth of bsd.port.mk improvements.

(1) Allow multiple checksums of same file.
Submitted by: hoek

(2) Add "deinstall" target as an alias to "pkg_delete $(make package-name)"
(well, something like that, see diff for details).

(3) Add new port variable USE_AUTOCONF. It appends BUILD_DEPENDS to
devel/autoconf and runs autoconf before configure.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)

(4) Clarify USE_X11 and USE_IMAKE usage.

(5) Add new user-overridable variable MASTER_SITE_KDE.
Submitted by: vanilla

(6) Add support for "Latest" package links.
Idea by: Terry Lambert

(7) Try to catch obsolete tcl/tk installations that could cause problems.
Annoyed by various bogus commits by: you-know-who


# c9f6c74d 19-Nov-1997 Satoshi Asami <asami@FreeBSD.org>

Define MASTER_SITE_SUBDIR and PATCH_SITE_SUBDIR to default to "." so
we won't have double-slashes.

Add support for new port variable MANUAL_PACKAGE_BUILD. If this is
defined as well as the user variable PACKAGE_BUILDING, the port will
be ignored. This is used to mark ports that can be built normally
except on a machine that has a lot of conflicting ports (i.e., our
package building machine).


# 18fed7b6 12-Nov-1997 Mark Murray <markm@FreeBSD.org>

Upgrade perl to perl5.004_04


# f210c44a 07-Oct-1997 Satoshi Asami <asami@FreeBSD.org>

Install ${PKGDIR}/MESSAGE as /var/db/pkg/${PKGNAME}/+DISPLAY if it exists.

Reviewed by: kiri


# 45d47e06 19-Aug-1997 Satoshi Asami <asami@FreeBSD.org>

(1) Be nicer about mtree file missing. (Actually, just suggest where
you can get one from.)

(2) Use "reinstall" as DEPENDS_TARGET if target is "reinstall". In
particular, this will make it possible to do a "make reinstall" on
several NFS clients and have them install all dependencies
correctly.
Tested by: davidn


# 5a93a1d7 17-Jul-1997 Mark Murray <markm@FreeBSD.org>

Changes for perl-5.004_01


# 7a9059f3 09-Jul-1997 Satoshi Asami <asami@FreeBSD.org>

(1) Add preliminary support for architecture/operating system-dependent
patches and files. Note this is just for testing -- I don't
expect "patches.OpenBSD" or "Makefile.alpha" start cropping up on
our ports tree just yet!
Pretty much ignored by: the ports/committers list

(2) Add "SH?=/bin/sh" to the list of command-name macros. Use it.
Checked by: recompiling all packages


# 4b287c3d 29-Jun-1997 David E. O'Brien <obrien@FreeBSD.org>

``-C ${WRKDIR} -xzf'' are no longer the default args for EXTRACT_BEFORE_ARGS


# 0c3a571c 24-Jun-1997 Satoshi Asami <asami@FreeBSD.org>

Add new variable USE_PERL5. It is similar to USE_GMAKE, except that
it also sets RUN_DEPENDS (USE_GMAKE is BUILD_DEPENDS only).

The (immediate) purpose of this is to avoid having to change 70
zillion ports when the version of perl changes. Also, when perl5 is
pulled into -current, this will become a no-op in -current's
bsd.port.mk.

Reviewed by: jfitz


# ab6e6dd2 17-Jun-1997 Satoshi Asami <asami@FreeBSD.org>

Move the "umask ?= 0022" check (a warning only) from the default
"do-install" target to the beginning of the "install" meta-target, so
that ports that define their own do-install will also run it without
having to duplicate it themselves.

Tested by: rebuilding all packages


# c679de5e 03-Jun-1997 Satoshi Asami <asami@FreeBSD.org>

(1) Use the new BSD.x11.dist mtree file to create directories under
/usr/X11R6 if USE_IMAKE or USE_X11 is set. It is mostly designed
after the XFree86 distribution, but also includes some of our own
goodies (libexec, share/doc, etc/rc.d).

(2) Full support for per-port dependency target. An optional
":<target>" can be added to any of the *_DEPENDS variables. Do
not attempt to print out anything about dependencies if NO_DEPENDS
is set (there was already too much code duplication, and this
extra colon has really pushed it over the limit).
Requested by: jfitz

(3) Make "reinstal" pmake-safe.
Reminded in an e-mail from: jkh


# 29c78eec 29-Apr-1997 Satoshi Asami <asami@FreeBSD.org>

(1) Change logic for dependency: instead of defining "is_depended"
(default: IS_DEPENDED?=install) target on the depended port, call
DEPENDS_TARGET (default: install) from the depending port.

Other than being more flexible (some ports don't require the
dependency to be fully installed: see ghostscript4), this seems
like a more natural thing to do. (I never understood the
convoluted logic that was used before.)

By building packages with "DEPENDS_TARGET=package", I can avoid
file-sharing problems (like gs3 binary going into the gs4
package).

(2) Add new variable PATCH_SITE_SUBDIR and separate it from
MASTER_SITE_SUBDIR. Fixes linuxls port and is a correct thing to
do anyway.
Initially suggested and reviewed by: fenner

(3) Add new variable MASTER_SITE_LOCAL for local ports. Defaults to
LOCAL_PORTS subdir on ftp.freebsd.org's distfiles dir.
Submitted by: jkh


# 052b42b8 20-Apr-1997 Satoshi Asami <asami@FreeBSD.org>

Merge from 2.2.


# 992b8e3a 15-Apr-1997 Satoshi Asami <asami@FreeBSD.org>

(1) Change comment for USE_X11 to be more explicit about what it
means.

(2) Change MASTER_SITE_GNU etc. to use += instead of ?=, so users can
specify a local mirror in /etc/make.conf and still get the full
fallback in case something is missing.
Submitted by: Narvi <narvi@haldjas.folklore.ee>

(3) Skip port if USE_X11 or USE_IMAKE is defined and /usr/X11R6
doesn't exist.
Submitted by: imp

(4) Add "-" in front of rmdir of ${DISTDIR}/${DIST_SUBDIR} in
distclean target; the directory might not be empty because the
subdir is shared with some other ports' distfiles.


# 07a557af 06-Mar-1997 Satoshi Asami <asami@FreeBSD.org>

Make COMMENT and DESCR variables (just like PLIST). Will be useful
when you want to share all of PKGDIR except for one file. (See upcoming
multilingual nvi ports.)


# b7de6f63 23-Feb-1997 Satoshi Asami <asami@FreeBSD.org>

(1) Define ${LDCONFIG} and ${MV} to be full pathnames to ldconfig and
mv, respectively. This will make Warner's life easier.

(2) Add new variable ${PLIST}, which defaults to ${PKGDIR}/PLIST.
If you need to have different PLISTs for different configurations,
you can either

@ pre-fabricate all of them and switch ${PLIST} to point to the
appropriate one, or

@ use sed/awk/perl/whatever to create the correct one from
pkg/PLIST and set ${PLIST} to it.

It is still recommended to have a file called "pkg/PLIST" so
people can do "grep badprog /usr/ports/*/*/pkg/PLIST" and such.

(3) Move /var/db/pkg/${PKGNAME} clash detection to before the
installation (instead of after) and make it fatal, with an error
message suggesting a workaround.

(4) Don't make distclean fail if DIST_SUBDIR is set and the
subdirectory does not exist.

(5) Don't put "@pkgdep Error code 2. Stop." kind of garbage into
packing list if depended port's directory doesn't exist. Instead,
print out a message to stderr.


# 71e1edb2 17-Feb-1997 David E. O'Brien <obrien@FreeBSD.org>

Submitted by: Dave Cornejo <dave@dogwood.com>
ftp.shsu.edu is no longer maintained - they refer you to the mirror I
maintain at ftp.cdrom.com


# 765c61ce 15-Feb-1997 David E. O'Brien <obrien@FreeBSD.org>

Fixed URL for ftp.tex.ac.uk in MASTER_SITE_TEX_CTAN.
Added ftp.shsu.edu and ftp.dante.de used by jmz in the latex port.


# 3344f87d 12-Feb-1997 Satoshi Asami <asami@FreeBSD.org>

Change $FreeBSD$ back to $Id$. I'm sorry, but it's been too long and
it's getting too hard to diagnose people's problems with this.


# 17abb434 24-Jan-1997 Satoshi Asami <asami@FreeBSD.org>

(1) Add ${DESTDIR} to ${LOCALBASE} and ${X11BASE}, and remove it from
${PORTSDIR}. This undoes the changes done in rev. 1.38 and 1.59
(part of the bsd.port.mk pre-dawn ages I've never understood).
Requested by: jkh

(2) Add new variable NO_IGNORE that will override any IGNORE causes.
This is just a little hack to allow building of REQUIRES_MOTIF
ports and its dependencies only etc., so don't document it.

(3) Update +REQUIRED_BY files as necessary. Now you should be able to
delete ports that have runtime dependencies without pkg_delete
complaining about this file missing.


# ade0fb0d 14-Jan-1997 Satoshi Asami <asami@FreeBSD.org>

Move $FreeBSD$ up right next to $NetBSD$ (oh, the solidarity! :).


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# b2502fb7 11-Jan-1997 Satoshi Asami <asami@FreeBSD.org>

Add OpenBSD support. Change some comments to reflect the fact. Also:

(1) Change commented out MAINTAINER to FreeBSD_MAINTAINER and
OpenBSD_MAINTAINER. These are not comments anymore, so we may
even use it in the future.

(2) Instead of the ".if ${OPSYS} = "NetBSD" hack, use ".if exists()"
to find the location of md5 an tar. Play similar trick for fetch
(OpenBSD uses /usr/bin/ftp which groks http: addresses).

This commit includes most of the changes made in 1.242 (although many
of them are done differently after more discussion). One thing that
is conspicuously missing is NOMANCOMPRESS, which has been postponed
until Warner figures out what exactly the situation is on the OpenBSD
ports paradigm. (In a nutshell, we can't just define NOMANCOMPRESS in
this file even if uncompressed manpages is the default for OpenBSD,
because that will take away the ability of individual users to select
manpage compression.)

Reviewed by: imp@openbsd.org


# 0f003de4 12-Jan-1997 Satoshi Asami <asami@FreeBSD.org>

(1) New variable, SCRIPTS_ENV, which is passed to scripts/configure
and scripts/{pre,post}-* as environment vars. Also, if BATCH is
set, "BATCH=yes" is automatically added to SCRIPTS_ENV.
(Requested by: max)

(2) The INSTALL_* macros are added to SCRIPTS_ENV and MAKE_ENV as
BSD_INSTALL_*. (Requested by: obrien)

(3) New variable MOTIF_ONLY, which will only build ports with
REQUIRES_MOTIF defined. This doesn't do dependencies right (what
if the depended port doesn't need Motif) yet.

(4) Try not to clean the same port twice in clean-depends when (for
instance) it's defined in both BUILD_DEPENDS and INSTALL_DEPENDS.
Note that it won't check chained dependencies so you may still see
the same port cleaned multiple times, but checking that far will
surely make this run slower than the un-"optimized" case so I left
it as is. (Requested by: jkh)

(5) Ignore *.rej files in patches/ directory in addition to *~ and
*.orig.


# 7ed83492 10-Jan-1997 Wolfram Schneider <wosch@FreeBSD.org>

if !(command) -> if ! (command)

the ksh and I guess some other shells want a space
between '!' and the next command. This problem exist since rev 1.207


# 88707016 25-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

I'm sorry, this kind of commits need to be reviewed by me, espicially
in a time like this (i.e., right before the release).

Back out rev 1.242, also add a stronger note above the MAINTAINER.


# e107b29a 25-Dec-1996 Warner Losh <imp@FreeBSD.org>

Integrate changes from OpenBSD's efforts to use the FreeBSD ports system.
Generalize the selection of programs to run based on the existance of files
rather than the OS names that we find. Add comments about me being the
keeper of the OpenBSD mods of this file. Use ftp on OpenBSD rather than
fetch since OpenBSD's FTP supports urls and there is no fetch.

Reviewed by: Joerge Wunch, Jordan Hubbard, and others in ports I've forgotten
Obtained from: OpenBSD with changes from me.


# dad7105a 22-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Suggested by: msmith
Add a little more sophistication to the md5 grep command.

Change the md5 checksum logic a bit. Now, the message is printed
out for every successfully/unsuccessfully matched checksum, and it
aborts at the end if there was a mismatch. Also, make missing checksum
and IGNORE file inconsistency fatal, as there is now no reason to have
a missing checksum.


# 16f5775a 17-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Add missing targets (extract, patch) in the IGNORE (INTERACTIVE &
PATCH, etc.) section. Also sort them in order of execution like other
parts of this file.


# f31d4d08 16-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Add new variable IGNOREFILES, to be set to list of files that you don't
want md5 checksum calculated. (It will create an entry in files/md5
with rhs "IGNORE".) Now it's safe to do a "make makesum" on all ports.


# f813e3b8 11-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Change delimiter of substitution that uses MANLANG from `.' to `%', so
things like `ja_JP.EUC' will work.

Suggested by: max


# 7daf7909 11-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Extend the manpage compression handling a bit.

(1) MANLANG is now a list (defaulting to ""), so if you have English
and Japanese-EUC versions of the manpages, you can say something
like `MANLANG= "" ja_JP.EUC' and manpage compression will DTRT.

(2) Add new variables MAN%cPREFIX (where %c=[1-9LN]) which default to
MANPREFIX (which defaults to PREFIX), to specify per-section
prefixes. In particular, this handles the cases in many perl
ports, which install man1pages into man/man1 and man3pages into
lib/perl5/man/man3.

Note these modifications won't change the behavior of existing
variables used in previously-approved ways, so any Makefile that
worked before will still continue to work.


# 6df8f78a 10-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Add support for uncompressing manpages that are already installed
compressed.

Requested by: obrien
Change name of -D option (to pkg_create) file to MESSAGES. (More
friendly to filename completion.)


# 2b2b1ca9 09-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Submitted by: fenner
(1) Print out reason when port is ignored because of NO_CDROM,
RESTRICTED, IS_INTERACTIVE, (not) IS_INTERACTIVE, BROKEN,
REQUIRES_MOTIF or NO_PACKAGE.

Submitted by: obrien
(2) Add new special file in pkg/: DISPLAY. (Cf. man pkg_create)

(3) Minor bugfix in clean-depends target, which sometimes executed
"make clean" in the current directory. (Which is probably ok, but
is wrong nonetheless.)


# deff0e95 07-Dec-1996 David E. O'Brien <obrien@FreeBSD.org>

Was using new URL (ftp://ftp://) before the RFC has been voted on. :-)

Obtained from: make fetch


# c69930e5 03-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Optimize by changing "sort | uniq" -> "sort -u". "make index" is now
412 secs instead of 498 secs on my machine!

Submitted by: fenner


# 21894496 30-Nov-1996 Satoshi Asami <asami@FreeBSD.org>

Merge from RELENG_2_2 (duh). See rev 1.227.2.4 for details.


# c0e21d1c 14-Nov-1996 Satoshi Asami <asami@FreeBSD.org>

Just realized that the spacing after "==>" is not consistent. I'm
terribly sorry, please merge this into 2.2 as well.


# e27532f3 14-Nov-1996 Satoshi Asami <asami@FreeBSD.org>

Oops, forgot to silencethe gzip command to compress manpages.

It will be nice if this went into 2.2, I guess.

Reminded by: max


# a6fc2e2b 13-Nov-1996 Satoshi Asami <asami@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


# 73845993 03-Nov-1996 David E. O'Brien <obrien@FreeBSD.org>

Set tabstops to 4 in vi like in emacs.


# 7bf5b94f 01-Nov-1996 Satoshi Asami <asami@FreeBSD.org>

(1) Add NetBSD support. Closes PR bin/1643.
Submitted by: Jason Thorpe <thorpej@nas.nasa.gov>

(2) Remove the bogus "CAT+=" definition. Closes PR ports/1703.
Submitted by: Peter Childs <pjchilds@imforei.apana.org.au>

(3) Change MKDIR to "/bin/mkdir -p", remove "-p" from ${MKDIR}
invocations. Closes PR ports/1901.
Submitted by: obrien

(4) Add a new macro variable COMPRESS_MAN, which will evaluate to gzip
if NOMANCOMPRESS isn't set (default), or true if it is.

(5) Add a new variable NO_CHECKSUM, which will disable the md5 checksum.
Submitted by: jkh

(6) Also, move NO_PATCH and NO_PACKAGE checks to right place in
invocation order.

(7) Check for LIB_DEPENDS before installation too. (It used to check
only before extraction.)
Forgotten a long time ago by: asami


# 251d6f36 24-Sep-1996 Satoshi Asami <asami@FreeBSD.org>

Back out changes in rev. 1.217 -- ${CONFIGURE_SCRIPT} is not
meant to rename the name of script in ${SCRIPTDIR}.


# 0a2bb16e 23-Sep-1996 Satoshi Asami <asami@FreeBSD.org>

Look on the CDROM for patch files too.
Submitted by: max

While I'm here, add "${DIST_SUBDIR}/" at end of CDROM pathnames. Also
add an empty declaration of PATCH_SITES next to MASTER_SITES to avoid
"variable recursive" error.


# 2d7765f3 25-Aug-1996 Wolfram Schneider <wosch@FreeBSD.org>

/bin/echo -> ${ECHO}
/usr/bin/sed -> ${SED}


# 69ab9326 24-Aug-1996 Satoshi Asami <asami@FreeBSD.org>

Use the new "file:" URL specification to fetch to check the CDROM
first if /cdrom/ports/distfiles exists. If FETCH_SYMLINK_DISTFILES
is set, symlink the file instead of copying.

Reviewed by: jhk


# 8e67e42f 20-Aug-1996 Satoshi Asami <asami@FreeBSD.org>

Update explanation of *_DEPENDS, in particular note that bsd.port.mk
can now check existence of files specified by full pathnames, not only
executables.


# 4dbc40f9 18-Aug-1996 Satoshi Asami <asami@FreeBSD.org>

(1) Use INSTALL_PROGRAM where we attempt to pass this command line
to configure.

(2) Gently warn user for non-0022 umasks.

Submitted by: "David E. O'Brien" <obrien@Nuxi.cs.ucdavis.edu> (1)


# 38c3b03d 17-Aug-1996 Satoshi Asami <asami@FreeBSD.org>

(1) Ignore patches directory without a patch with a message instead of
bombing mercilessly.

(2) If that directory has a directory called CVS, remind the user of
the existence of the "-P" option to cvs co and update.

(3) While I'm here, clean up the PATCH_DEBUG code a bit. In
particular, don't duplicate a whole bunch of code just for adding
a single "echo" statement. ;)

Reviewed by: the ports list


# bd01a3d4 14-Aug-1996 Satoshi Asami <asami@FreeBSD.org>

(1) Add myself as MAINTAINER (of this file) -- commented out so it
won't be pulled into individual ports that include this file. ;)

(2) Document MOTIFLIB, it's not set in the ports Makefiles but is
important for Motif ports (already documented in the handbook).

(3) Add INSTALL_PROGRAM, INSTALL_SCRIPT, INSTALL_DATA, INSTALL_MAN as
"aliases" of the appropriate install command line, for use in *-install
targets.

Reviewed by: the ports list (item 3 only)


# e3b68a1b 07-Aug-1996 Satoshi Asami <asami@FreeBSD.org>

Make explanation of BUILD_DEPENDS less confusing.

Requested by: Narvi <narvi@haldjas.folklore.ee>


# 46765258 27-Jul-1996 Andreas Klemm <andreas@FreeBSD.org>

Fixed bug, that CONFIGURE_SCRIPT in a port's Makefile doesn't have
any effect. The target do-configure used ${SCRIPTDIR}/configure
instead of ${SCRIPTDIR}/${CONFIGURE_SCRIPT}.
-andreas


# 5f1a3c08 05-Jul-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Remove now-unused SRC_ENCAPSULATION hack.


# 502d7758 26-Jun-1996 Gary Palmer <gpalmer@FreeBSD.org>

Add a missing space in a comment


# cd9a2f5c 23-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src. This is the final version of the
patches, incorporating the feedback I've received from -current.


# bbf5261a 22-Jun-1996 Gary Palmer <gpalmer@FreeBSD.org>

Correct spelling errors (i before e except after c :-) )

Submitted by: James Raynard <jraynard>


# 485f5a77 20-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Handle the `distribute' target.


# b5bc989d 20-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Whoops - I made `make clean' chatty by mistake.


# 985a18a7 19-Jun-1996 Satoshi Asami <asami@FreeBSD.org>

The changes to go with ncftp -> fetch. Besides changing the names,
standardize the variables a little, and simplify some parts because
we can now trust the fetcher's return value.

Reviewed by: the list


# d79a958d 19-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Spit out the a proper port path for the describe target.
Submitted-By: Chuck Robey <chuckr@Glue.umd.edu>


# 2c9ca1a9 18-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Ok, now cleandir: is correct.


# 61d16cdb 18-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add some unobtrusive changes to handle sources which aren't ports
(SRC_ENCAPSUATION). Stick in some cd ${.CURDIR} directives which have
been (benignly) missing all this time. Allow more types of targets to be
selectively disabled.


# 9fe358a4 13-Jun-1996 Satoshi Asami <asami@FreeBSD.org>

Add "MASTER_SITES?=" (no this is not a typo) right before the
"MASTER_SITES:= ..." of defined(MASTER_SITE_OVERRIDE) case, otherwise
it would cause a recursive variable definition error when
MASTER_SITE_OVERRIDE is set and MASTER_SITES is not set.


# 43c915b1 31-May-1996 Satoshi Asami <asami@FreeBSD.org>

Add some comments to sections to disable targets using NO_* variables.

Remove disabling of "repackage", that thing calls package anyway.

Submitted by: (mostly) jkh


# afcc796b 30-May-1996 Satoshi Asami <asami@FreeBSD.org>

Set MAKE_ENV and CONFIGURE_ARGS with += instead of ?=, it is easier to
add things this way.

Reviewed by: ache


# cce80494 27-Apr-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Fix a minor grammatical error (reselled -> resold) I just noticed.


# 1844587c 26-Apr-1996 Satoshi Asami <asami@FreeBSD.org>

Add CFLAGS=${CFLAGS} to MAKE_ENV, otherwise gmake won't pick it up.


# 72672215 12-Apr-1996 Satoshi Asami <asami@FreeBSD.org>

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


# 89f4624d 07-Apr-1996 Satoshi Asami <asami@FreeBSD.org>

Change ${ENV} -> ${SETENV}. The former coincides with startup file
names of bash et al.

Submitted by: Thomas Gellekum <thomas@ghpc8.ihf.rwth-aachen.de>


# 25f2b006 01-Apr-1996 Satoshi Asami <asami@FreeBSD.org>

Thanks for the overwhelming response (which can be only summarized by the
word: "zilch"). I guess the only way to get people try and comment on
these kind of things is to shove it down their throat.... ;)

Anyway, here's a set of changes required for auto-generation of READMEs
in ports directories. Necessary changes and additions of templates
to the ports tree will follow shortly.

Eventually I'll commit all the generated READMEs to the tree, but that
will be in the rather distant future. For now, I encourage anyone
with a -current systam and a matching ports tree to do a "make readmes"
at the top level and see what they get.

Next step will be to add pkg/{COMMENT,DESCR} to all the categories.


# 54b04ea3 31-Mar-1996 Satoshi Asami <asami@FreeBSD.org>

Change name of variable to LOCALBASE, to keep it symmetric with X11BASE,
which has been in the tree for a much longer time.

Sorry for the multiple commits and I know I shouldn't be doing this but
my hamster tells me to be orthogonal...("hey Phoenix, do you think
I should call it LOCALBASE?" "squeak" "ok, if you say so").


# bfe90788 31-Mar-1996 Satoshi Asami <asami@FreeBSD.org>

Add a variable LOCAL_PREFIX that defaults to "/usr/local", as a
counterpart to X11BASE (default "/usr/X11R6").

Now PREFIX is set to ${X11BASE} or ${LOCAL_PREFIX} depending on
whether USE_IMAKE or USE_X11 is set or not.

This enables us to refer to non-X ports from X ports using
${LOCAL_PREFIX}, thus removing most of the remaining "/usr/local"s
from the ports tree.

This will also allow the system administrator to move the whole
"local" tree to somewhere else, without affecting X ports. (Of course
not all ports are necessarily happy with that, but we're working on
it.)

Based on: an idea that came up while I was watching a football game
several months ago ("hey, maybe I can move that sideline
without disturbing the other!")


# 7c1b69d8 10-Mar-1996 Satoshi Asami <asami@FreeBSD.org>

Replace PATCH_PRFX with a more generic DIST_SUBDIR. If it is set to
"foo", what this does is:

(1) Put all distfiles and patchfiles in /usr/ports/distfiles/foo

(2) Go to ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/foo when the
master site is down

When your port has a lot of dist/patchfiles, or has a file that does
not have a very port-specific name (e.g., "Makefile"), set this
variable instead of redefining DISTDIR. (If you redefine DISTDIR, (1)
will work but (2) will not.)

Agreed that it's a good idea by: adam


# 6c342b58 06-Mar-1996 Satoshi Asami <asami@FreeBSD.org>

Delete all references to the variable ${KEYWORD} that never quite flew.
(Sorry Jordan, but your other idea (${CATEGORIES}) was a major hit.)

Also remove the keyword field in the INDEX line and replace it with
two columns: build-time dependencies and run-time dependencies. They
are both list of package names (minus the ".tgz").


# 00ce5fe5 06-Mar-1996 Satoshi Asami <asami@FreeBSD.org>

Replace absolute pathnames with variables, so that

(1) people can have weird paths and it will still work, and

(2) if you really need to use /usr/local/bin/cp instead of /bin/cp,
you can do that by changing only one line.

Submitted by: wosch


# 2178a48a 16-Feb-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add a check for when the user tries to FTP over a symlink in ${DISTDIR}.


# 08b0d422 07-Feb-1996 Adam David <adam@FreeBSD.org>

correct semantic error in the English usage:
distributed patches --> distribution patches


# a8344ffc 07-Feb-1996 Satoshi Asami <asami@FreeBSD.org>

Mention "make reinstall" in the message that gets printed out when
/var/db/pkg/${PKGNAME} exists. ("make install" will do nothing
because this is not a critical error and the installation is
treated as successful.)

Closes PR 870.


# 42a43db4 06-Feb-1996 Andrey A. Chernov <ache@FreeBSD.org>

Add NCFTP tailer arguments: ${NCFTPTAIL} variable
Since it is empty in normal case, it not affect anything
It is useful for ncftp -c ugly_name > nice_name
^^^^^^^^^^^ ${NCFTPTAIL}


# 320a5868 07-Dec-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add support for ALL_HOOK feature. Lets you replace the `all' target
with something of your own devising.


# a72b1b79 25-Nov-1995 Satoshi Asami <asami@FreeBSD.org>

Make the {FETCH,BUILD,RUN}_DEPEND targets work with non-executable files
too. Basically, if the name starts with a "/", it's tested with "test -e";
otherwise, it's tested with "witch -s".

Reviewed by: the ports list (well at least nobody complained)


# df4f0253 17-Nov-1995 Satoshi Asami <asami@FreeBSD.org>

Use NO_MTREE, not !USE_X11 && !USE_IMAKE, to determine package args.
NO_MTREE should work as advertised (for both direct installation and
pkg_add) now.


# 030fc198 17-Oct-1995 Satoshi Asami <asami@FreeBSD.org>

Back out the two latest changes. The -current branch is now equal to
the -stable branch except the change between 1.182 -> 1.183.


# d087a617 16-Oct-1995 Andrey A. Chernov <ache@FreeBSD.org>

Add NO_FETCH handling in the similar way as other NO_* targets does


# 94e0871d 16-Oct-1995 Andrey A. Chernov <ache@FreeBSD.org>

Fix NO_EXTRACT case: build missing WRKDIR
Previous variant always fails on touch work/.extract_cookie
(or next following touches) because work directory not exists.


# d6db9541 11-Oct-1995 Satoshi Asami <asami@FreeBSD.org>

Add "--batch" to PATCH_ARGS and PATCH_DIST_ARGS when ${BATCH} is set
to avoid an infinite loop in patch when the patch target is not found and
stdin is redirected from /dev/null (the "skip this patch? [n]" question).


# 378b2956 04-Oct-1995 Andrey A. Chernov <ache@FreeBSD.org>

Add CONFIGURE_ENV: pass this environment to configure script.
Allows pre-set some variables to eliminate wrong tests


# af95783f 04-Oct-1995 Satoshi Asami <asami@FreeBSD.org>

Attempt to sound more civilized by adding a missing period to
"Attempting to fetch from $${site}."

Why it was in PATCHFILES and not in DISTFILES, I have no idea.


# 90594ed6 02-Oct-1995 Satoshi Asami <asami@FreeBSD.org>

Use full pathname for ldconfig (/sbin/ldconfig).

Hinted by: joerg


# 6bb70bd4 18-Sep-1995 Satoshi Asami <asami@FreeBSD.org>

Split EXEC_DEPENDS into FETCH_DEPENDS, BUILD_DEPENDS and RUN_DEPENDS.
They are called from the fetch, extract and install targets,
respectively.

Also, only RUN_DEPENDS is put into the @pkgdep list of the package.

EXEC_DEPENDS is still supported (for now), it is copied into
BUILD_DEPENDS and RUN_DEPENDS. This will go away after we finish
fixing all the ports Makefiles.

This change fixes the following bug/features:

(1) "make fetch" building and installing all the dependencies

(2) Programs needed for building only (e.g., gmake) put into the
packages' dependency lists ("why does the emacs package depend on
gmake?")

Reviewed by: the ports list


# 46bce4ac 13-Sep-1995 Satoshi Asami <asami@FreeBSD.org>

Ignore patchfiles that end with ".orig" or "~".

Suggested by: paul, joerg among others


# 00f4a8c7 29-Aug-1995 Satoshi Asami <asami@FreeBSD.org>

Don't trust ncftp's exit status, they are not indicative of whether
the file is fetched or not. Apparently Jordan fixed it a long time
ago but it was broken again at import of the new version of ncftp.
Which means even if we fix it, it may break again and we may need to
fix it again, and (imagination here, please)....

Instead, move the file existence check into the for loop for
MASTER_SITES/PATCH_SITES and break out with "continue 2" when the file
is found. This is actually a cleaner logic than before if you ask me,
because instead of assuming the file is fetched on a 0 exit status
from ncftp AND checking for the existence of the file after the loop,
the check is done exactly once for each iteration and nowhere else.


# 7daa3c4b 29-Aug-1995 Satoshi Asami <asami@FreeBSD.org>

Clean up EXTRACT_ONLY logic a bit. Instead of branching in the
do-extract target depending on defined(EXTRACT_ONLY) or not, simply
set EXTRACT_ONLY ?= ${DISTFILES} and always use ${EXTRACT_ONLY} as
the extraction list.


# ade82b9b 18-Aug-1995 Satoshi Asami <asami@FreeBSD.org>

Merge all the "skeleton" target into one macro. This is an enormous
change, but I've been testing this on thud and silvia for quite a
while, also I haven't gotten any bug reports from the ports list, so
I'm going to let it loose!

It cleans up this file quite a bit, now I can go in and start adding
some more "interesting" things.... ;)


# 2da6c2f2 24-Jul-1995 Satoshi Asami <asami@FreeBSD.org>

Let MASTER_SITE_OVERRIDE be prepended to the MASTER_SITES list instead
of replacing it. This way you can point it to a site close to you
that carries many distfiles, and still let it go fetch from the
original site if the distfile is not there.

Original idea by: mmead@Glock.COM


# bf484e2f 17-Jul-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Simplify the USE_IMAKE stuff considerably.
Suggested by: asami


# 90bec1c3 15-Jul-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

A regrettable hack to allow a port to say that it doesn't want its Makefiles
made after the xmkmf run.


# 1feb36cd 10-Jul-1995 Satoshi Asami <asami@FreeBSD.org>

Add IS_DEPENDED_TARGET to change the behavior of a port when you want
to do something else than "install". For example,

make IS_DEPENDED_TARGET=fetch fetch

will fetch the required distfiles including those of the dependencies
without actually building and installing dependencies.

Also document ECHO_MSG.

Requested by: paul
Reviewed by: paul, jhs and others


# 77370fd9 26-Jun-1995 Satoshi Asami <asami@FreeBSD.org>

Use

ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/

as our distribution point for distfiles and patches. Other than
cosmetic changes (freebsd.cdrom.com -> ftp.freebsd.org), the
omission of "ports" is important. I would like to move this
directory completely out of the ports tree (on the ftp site),
so that people who do "get ports.tar.gz" won't get a bogus distfiles
-> ../distfiles symlink (which will make "make fetch" fail).

Sometime around the 2.1 release, the distfiles link will be deleted.


# b9e48987 26-Jun-1995 Satoshi Asami <asami@FreeBSD.org>

Use full pathnames for the commands. Everything except gmake and
xmkmf (i.e., everything in the base distribution) should be referred
to by full pathnames.

Suggested by: rgrimes, originally from one of his customers


# e8d35b80 25-Jun-1995 Satoshi Asami <asami@FreeBSD.org>

Check if uid is 0 before running mtree. If you aren't root, you just
get a message (instead of a bunch of crap from mtree).


# 14e07b22 25-Jun-1995 Satoshi Asami <asami@FreeBSD.org>

Add new option NO_MTREE. If set, bsd.port.mk won't run mtree to
set permissions and ownerships of PREFIX (usually /usr/local). This
is the default if USE_IMAKE or USE_X11 is set.

This should be useful for machines like thud, where we want to keep
the /usr/local subtree writable to a group ("ports" in our case). Anybody
who installs stuff in /usr/local should have this set in the environment.

Note this won't affect anything the pkg_* suite does.


# e26bc1e6 24-Jun-1995 Satoshi Asami <asami@FreeBSD.org>

Add a "checkpatch" target that does a "patch -C" instead of a "patch".
Note that the two "touch"s I took out from do-patch shouldn't have
been there in the first place.

This target may give incorrent results if two separate patches deal
with the same file, and their hunks overlap. (But having those kinds
of patches are bad, and they should be merged anyway.)

Reviewed by: hsu


# 0fbb5009 06-Jun-1995 Satoshi Asami <asami@FreeBSD.org>

Renamed the default package repository ".../packages/.packages" to
".../packages/All". The "all" category that was automatically added
for every package is gone.

Note that bsd.port.mk requires category names to start with lowercase
names, otherwise it may get confused.

Reviewed by: jkh

By the way, here is a small script to convert your local package
hierarchy. Run it in bash, as /bin/sh not only will bark at the
$(.) command substitution but will also botch the [a-z]*/*.tgz
expansion (long-standing and annoying bug, reported before).

cd /usr/ports/packages
mv .packages All
for i in [a-z]*/*.tgz; do
j=$(basename $i)
/bin/rm $i
ln -s ../All/$j $i
done


# 7ee5520f 29-May-1995 Satoshi Asami <asami@FreeBSD.org>

Remove comment about not being able to undefine a variable, as we *can*
do that.


# d5531570 16-May-1995 Satoshi Asami <asami@FreeBSD.org>

Fix the indent level. I know we're in code freeze, and this is
one of the key components of the system, but I'm sure that this:
===
- ${ECHO_MSG} "===> Registering installation for ${PKGNAME}"; \
+ ${ECHO_MSG} "===> Registering installation for ${PKGNAME}"; \
===
change has absolutely no chance to screw us up, right? :)


# 563120df 13-May-1995 Satoshi Asami <asami@FreeBSD.org>

Don't conditionalize fake-pkg on NO_PACKAGE.


# 2914e4f2 12-May-1995 Satoshi Asami <asami@FreeBSD.org>

Add FORCE_PACKAGE, if this is defined, NO_PACKAGE will be turned off.

Ports for which we can't build packages should define NO_PACKAGE but
still prepare pkg/* files. The user who really wants a package and
clear of the legal problems can say FORCE_PACKAGE from the command line
to build a package anyway.


# 9f3f196b 12-May-1995 Satoshi Asami <asami@FreeBSD.org>

When NO_PACKAGE is set, "package" and "repackage" don't depend on
"install". In other words, they won't do anything at all.


# a11b4612 12-May-1995 Satoshi Asami <asami@FreeBSD.org>

Not only deleting the package and package links, also exit with status
1 if pkg_create returns error!


# 25254cc6 12-May-1995 Satoshi Asami <asami@FreeBSD.org>

Delete package and links when pkg_create fails.


# 82703941 10-May-1995 Satoshi Asami <asami@FreeBSD.org>

Add new variable to override the "hey foobar-1.2.3 is already installed"
warning from fake-pkg.
# FORCE_PKG_REGISTER - If set, it will overwrite any existing package
# registration information in ${PKG_DBDIR}/${PKGNAME}.


# 94c600b2 08-May-1995 Satoshi Asami <asami@FreeBSD.org>

Make the "reinstall" target delete the package cookie as well as
the install cookie.


# 0b3de608 04-May-1995 Adam David <adam@FreeBSD.org>

added support for distribution patches in a subdir of ${DISTFILES}


# 628bb933 04-May-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Put an `@' in front of the mtree command. I don't want to see it.


# d6d644f1 02-May-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add an mtree line to the install target.


# 8e7c35dd 29-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

A bunch of new targets in the package area. Relevent targets are:

package: check installation, build package, create links,
touch cookie
repackage: ditto but don't check cookie
package-noinstall: just build package from installed stuff, no cookies
involved at all
package-links create the symbolic links only
delete-package: delete package and symbolic links
delete-package-links: delete links only

These should make the management of the spaghetti of package links
a little friendlier. :)


# 6db578a6 28-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Pass X11BASE to all sub-makes. I need it for a port, and I daresay that
there are a lot of hardwired "/usr/X11R6" paths out there that could stand
to use it as well.


# 570e661f 24-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

(1) Add the chain of dependencies to the targets in the NO_* section
too (otherwise the chain won't work).
(2) If NO_WRKDIR is set, "make clean" removes "./.*_done" (assuming
these are cookies...or should I list all the cookies?)


# c046aaad 24-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

Move call of fake-pkg from do-install to end of install.


# ffa6d17f 21-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Ok, this should get the last of the stragglers installed into a new fake-pkg.


# ca22b5aa 21-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Don't try to run the fake-pkg target if NO_PACKAGE is set.


# 405b7c80 21-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Typo: patch -> package


# b79219d3 21-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Instead of copying PLIST over, run pkg_create in a special mode that dumps
the fully-formed PLIST to stdout and uses that.


# 60ee8ee7 20-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

Major overhaul. The major targets (fetch, extract, patch, configure,
build, install) are now all skeletons and do nothing but

(1) Call pre-* target (if exists)
(2) Call scripts/pre-* script (if exists)
(3) Call do-* target
(4) Call post-* target (if exists)
(5) Call scripts/post-* script (if exists)

The do-* targets do all the work. The pre-* and post-* targets/scripts
don't exist by default. The main targets check for the cookies too, so
porters shouldn't have to worry about them at all.

NOTE: THE MAIN TARGETS IN THE PORTS MAKEFILES SHOULD GO AWAY. We need
to fix this before wcarchive comes back up. Change the names to do-*,
rip out the cookies, rip out the calls to pre-* etc. and most of them
should work.

Also, reorganize the whole thing so that similar targets are together
and add more comments. Surround section header with 64 #'s (C-u C-u
C-u # in emacs :).

Hopefully this will be the last major change to bsd.port.mk. Now let
the Makefile-hacking begin.


# 0892118c 19-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

1. Add Satoshi's much-requested "fake pkg_add" option to the installation
rule.

2. Have all non-X11 prefix using packages include the BSD.local.dist mtree
file for initialization of /usr/local. I'm still not sure if this is
A Good Thing(tm) but I'll see what the users say. It's easily overridden.

3. Standardise on ${PKG_DBDIR} as pointer to /var/db/pkg or local preference.


# f744a976 18-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

Use PKGNAME in the "describe" target (used to generate INDEX) too.
Didn't make sense to have two ports with the same name.


# 60f1eb26 18-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

Use PKGNAME instead of DISTNAME in messages. To avoid things like
"Building for WWW" (pops up in two different ports) "Installing for
web2c-6.1" (ditto), which aren even't reminiscent of the port's real
name.

Sorry jmz, please don't go fix the print Makefiles' own messages.
We are going to take them out after we do the great bsd.port.mk
update anyway.


# 824cc0cc 17-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

"package" now depends on "install", so we can do "make -k package" from
the top level and have the build-package sequence of each port work
together.

For the old behavior (i.e, just go ahead and blindly pack everything up,
regardless of the contents of work/), there is a new target "repackage".


# 19eddad0 17-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

"all" now depends on "build", not "extract configure build".

Since "build" depends on "configure", which depends on "patch", etc.,
this shouldn't disrupt any Makefile that doesn't break the dependency
chain.

The old behavior was very annoying because when I did a "make -k",
it would still try to go configure and build even if the extraction
failed.


# 825402c2 15-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

Yikes...typo (.package/ should have been .packages/).


# 9e87dd6a 10-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Don't pass duplicate pkgdeps to pkg_create


# a8f0877b 09-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add new -P argument to pkg_create.


# 489c51e6 08-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add 2 new targets to facilitate some things I'm thinking about.

1. package-name
Simply echos the associated package name for a port (if any).
2. package-depends
Shows all package names on which this port depends.


# c4fb3659 09-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

1. Fix the first line (should be a proper comment - silly emacs).
2. KEYWORDS+= CATEGORIES
3. CATEGORIES+= all (always want to be in "all"!)


# 3d0c66c9 09-Apr-1995 Satoshi Asami <asami@FreeBSD.org>

Add support for categorized subdirectories for packages. By default,
all .tgz files go to /usr/ports/packages/.packages, and a relative
symlink is created for every item in CATEGORIES...i.e., if "CATEGORIES
= foo bar", then /usr/ports/packages/{foo,bar}/pkgname.tgz both point
to /usr/ports/packages/.packages/pkgname.tgz.

Suggested by: jkh


# 30854325 03-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add USE_X11 for ports which are X11 users but don't use IMAKE.


# 9a8496fd 03-Apr-1995 Gary Palmer <gpalmer@FreeBSD.org>

Remove a `.' from the end of the echo line
`>> Attempting to fetch from $${site}' as it is misleading


# a6ae8257 01-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

By default, KEYWORDS is a copy of CATEGORIES.


# c9cf4a47 01-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add default values and document them for CATEGORIES and KEYWORDS.


# 2cc9ea7a 01-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add support for new CATEGORIES and KEYWORDS fields.


# df32d0cc 27-Mar-1995 Satoshi Asami <asami@FreeBSD.org>

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.


# 32c4c80b 27-Mar-1995 Satoshi Asami <asami@FreeBSD.org>

Added more standard package suport file names. INSTALL for the
installation script, DEINSTALL for the deinstallation script, and
REQ for the requirement script, will be added with appropriate
flags to PKG_ARGS if they exist under pkg/.


# c534dadb 23-Mar-1995 Gary Palmer <gpalmer@FreeBSD.org>

Add a misssing `@' from before echo -n "|${MAINTAINER}"


# 5abc844b 22-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add maintainer to the index line.


# 2d333dc2 22-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add new EXTRACT_BEFORE_FLAGS and EXTRACT_AFTER_FLAGS variables to make
complex extraction rules easier.


# 2efda52f 21-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the fetch message a little more interesting and informative.


# 3dd8895e 20-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add fetch-list command for Rod
Use ECHO_MSG macro for printing "===>" line things so that I can now turn
those OFF when I don't want them.


# bc202f1b 20-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the describe rule generate more thorough information that's actually
of use to a front-end program. Back out my bogus description of the `index'
target! :-)


# 9608972d 20-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Document the index target.


# 261bbea6 19-Mar-1995 Andreas Schulz <ats@FreeBSD.org>

Don't do anything if BATCH is specified and the port is interactive for
the package target.The port may is not build and the package fails
otherwise.


# 0bc6b946 18-Mar-1995 Andreas Schulz <ats@FreeBSD.org>

Change the xmkmf call to a xmkmf -a call. This should be more correct for
all X11R5 and X11R6 ports. This is the way how it should be normally
used according the manuals. Only pre-X1R5 ( X11R4, X11R3) ports can't
handle it.


# 0722449a 03-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Back out my previous change. I need to really think about this.


# 493d75a9 02-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

A small feature just for my own use.


# 664b5e14 17-Feb-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Always go to ${WRKDIR} before extraction. Modify the tar extract command
args to take advantage of this.
Pointed-out-by: asami


# 05002e8c 14-Feb-1995 Gary Palmer <gpalmer@FreeBSD.org>

Make the checksum target not bomb out if there is a mismatch, just
print a warning. A better fix will come along just as soon as I
work out what it is.


# e687de7a 06-Feb-1995 Jeffrey Hsu <hsu@FreeBSD.org>

Allow arbitrarily named configure script for use w/ HAS_CONFIGURE.


# 4620f096 04-Feb-1995 Poul-Henning Kamp <phk@FreeBSD.org>

Use absolute path to md5 program. It lives in /sbin and people are unlikely
to have $PATH to it.


# 94dcffca 03-Feb-1995 Satoshi Asami <asami@FreeBSD.org>

Add long-awaited (:) support for sophisticated dependency checking. We now
have three variables:

EXEC_DEPENDS - A list of "prog:dir" pairs of other ports this
package depends on. "prog" is the name of an
executable. make will search your $PATH for it and go
into "dir" to do a "make all install" if it's not found.
LIB_DEPENDS - A list of "lib:dir" pairs of other ports this package
depends on. "lib" is the name of a shared library.
make will use "ldconfig -r" to search for the
library. Note that lib can be any regular expression,
and you need two backslashes in front of dots (.) to
supress its special meaning (e.g., use
"foo\\.2\\.:${PORTSDIR}/utils/foo" to match "libfoo.2.*").
DEPENDS - A list of other ports this package depends on being
made first. Use this for things that don't fall into
the above two categories.

DEPENDS behaves exactly like before, so old Makefiles will still work
the same. The two variables are lists of pairs as described above.

For instance, if your program depends on unzip and libjpeg.5.*, use
the following definitions:

EXEC_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
LIB_DEPENDS= jpeg\\.5\\.:${PORTSDIR}/graphics/jpeg

gmake:${PORTSDIR}/utils/gmake is automatically added to EXEC_DEPENDS
if USE_GMAKE is defined.

If NO_DEPENDS is defined, the list will just be printed out one by one.


# cc715f2b 01-Feb-1995 Gary Palmer <gpalmer@FreeBSD.org>

Start the ball rolling by sticking a
MAINTAINER?= line in here.

Idea by: jkh@FreeBSD.ORG


# 3f4fff96 30-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Make fetch a bit more forgiving of subdirs.


# 825de567 23-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Fix bogus tab in makesum target.


# 7b2bb0fb 23-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Set PREFIX in the build target. Suggested by John Fieber.


# 74d79629 22-Jan-1995 Gary Palmer <gpalmer@FreeBSD.org>

Oops. Fix up the checksum routine - my last commit broke it slightly.


# 3ece3284 17-Jan-1995 Andrey A. Chernov <ache@FreeBSD.org>

Put brackets around EXTRACT_CMD, can be several commands here


# 2db20814 16-Jan-1995 Gary Palmer <gpalmer@FreeBSD.org>

Correct a small problem in that when there isn't a checksum for that
particular file, but there is a files/md5, it reports that it failed
the checksum


# 41c4bc57 11-Jan-1995 Andrey A. Chernov <ache@FreeBSD.org>

Use absolute path for install passed to configure
to disallow prepending ../ in second level Makefiles


# fb097df2 11-Jan-1995 Satoshi Asami <asami@FreeBSD.org>

Typo!


# 1deaf2e3 11-Jan-1995 Satoshi Asami <asami@FreeBSD.org>

Add missing ! in front of pipeline for extract commands---otherwise
it would exit on *successful* extraction.


# 8b9d6073 09-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Catch case where extraction fails. Thanks!


# 10d65ca9 06-Jan-1995 Andrey A. Chernov <ache@FreeBSD.org>

Move pre-extract target inside COOKIE
Add checksum check for extract, if checksum file present


# d5ca9015 05-Jan-1995 Satoshi Asami <asami@FreeBSD.org>

Sort out dependencies. Now they look like:

patch: extract
configure: depends patch
build: configure
install: build

Does this look ok?


# edf9e795 04-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Typo fix from Ollivier Robert.
Submitted by: ollivier


# e5d85be8 04-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Gary Palmer's patches for checksumming and description.
Submitted by: gpalmer


# 2511bc4a 04-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Put depends before configure. No reason that I can see for putting it after,
and it breaks mule the way it is now.


# bb3c97bf 04-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Some of the doc here was less than adequately fleshed-out. Make some
feeble attempt to do so.


# ad2a7583 04-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Document describe target.


# c723fc3f 03-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add describe target support.


# c9c9b407 01-Jan-1995 Andrey A. Chernov <ache@FreeBSD.org>

Preset ac_cv_path_CC="${CC}" before running ./configure,
needed for Autoconf 2


# 19741368 27-Dec-1994 Andrey A. Chernov <ache@FreeBSD.org>

Oops, forget "" for ${CC} and ${CFLAGS}...


# 95f1b49e 27-Dec-1994 Andrey A. Chernov <ache@FreeBSD.org>

Set proper INSTALL* variables before running ./configure


# af87f363 27-Dec-1994 Andrey A. Chernov <ache@FreeBSD.org>

Use CFLAGS=${CFLAGS} ./configure to avoid picking dumb GNU -g default


# e8878863 27-Dec-1994 Andrey A. Chernov <ache@FreeBSD.org>

Use "CC=${CC} ./configure" to avoid usage of debugging 'gcc'


# 6d97ec5d 17-Dec-1994 Gary Palmer <gpalmer@FreeBSD.org>

Put dummy targets for make-md5 & check-md5 inside a
NO_EXTRACT ifdef so that tcpblast doesn't muck
things up


# cf6be758 17-Dec-1994 Gary Palmer <gpalmer@FreeBSD.org>

bsd.port.mk: missing semicolon added
bsd.port.subdir.mk: added check-md5 as target


# 50da78da 16-Dec-1994 Andrey A. Chernov <ache@FreeBSD.org>

Automatically add gmake to DEPENDS, if USE_GMAKE


# a7e957ef 16-Dec-1994 Andrey A. Chernov <ache@FreeBSD.org>

Don't use build: ... pre-build, move pre-build inside
BUILD_COOKIE instead


# f9ff1b66 13-Dec-1994 Andrey A. Chernov <ache@FreeBSD.org>

patch: pre-patch ... is wrong, move pre-patch
inside PATCH_COOKIE


# e40adb1b 12-Dec-1994 Jean-Marc Zucconi <jmz@FreeBSD.org>

Added '${GMAKE} install.man' when installing with Imake and gmake


# ad19367c 11-Dec-1994 Gary Palmer <gpalmer@FreeBSD.org>

Early md5-checksumming code. This seems to work fine on my machine
but needs more testing on more ports than I have on my box.


# b3ac1251 11-Dec-1994 Gary Palmer <gpalmer@FreeBSD.org>

Last gremlin-killer of the day. Typo fixed and missing .endif replaced.


# d628b1f6 11-Dec-1994 Gary Palmer <gpalmer@FreeBSD.org>

<Sigh> Got the placing of a .if wrong. Fix it.


# 8a7c3fff 11-Dec-1994 Gary Palmer <gpalmer@FreeBSD.org>

Erk. Damn. A hash perfixing a comment was lost somewhere.
Fixed.


# e0e109ab 10-Dec-1994 Gary Palmer <gpalmer@FreeBSD.org>

1) Small tidyup

2) Change INSTALL_MANPAGES to NO_INSTALL_MANPAGES and document it

3) Add a PKGNAME variable to allow the package name
not to be dictated by stupid DISTNAMEs

4) Add a PATCH_DEBUG option and a slight change to the default
patch system - add --forward to help ensure correct patching


# 5ddddc48 25-Nov-1994 Andrey A. Chernov <ache@FreeBSD.org>

Change wrong comment: NCFTP_ARGS --> NCFTPFLAGS


# 0512285f 21-Nov-1994 Andreas Schulz <ats@FreeBSD.org>

Don't use a rm -rf WORKDIR if NO_WRKDIR is defined. You have a good chance
to blow away your current dir, because WRKDIR == CURDIR. This should
help tcpblast to not blow away itself in the clean target :-).


# 4b75ea35 17-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

There seems to be some trouble with install.man working right everywhere.
Conditionalize it off of INSTALL_MANPAGES until I can figure out just
why some X ports seem to like it and others not.


# ee5b1a1e 17-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Whoops! Typo. Correct.


# 07f6028e 17-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

I found today that making packages for X11 ports wasn't working.
Further investigation showed that prefix was erroneously set to /usr/local
for X11 based ports as well, when the assumption was that they'd really go
into ${X11BASE} (an /etc/make.conf variable that the user's free to set).

Set X11BASE to /usr/X11R6 if the user hasn't already, and assume that
the user really wants prefix to point there when the port is XMKMF based.


# fcd2dde4 16-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add support for NO_WRKDIR.


# f877e878 16-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

2 new concepts that just occurred to me:

MASTER_SITE_OVERRIDE - If set in the environment, will override everyone's
MASTER_SITES settings. Useful if you'd prefer to point to a
distfiles repository somewhere closer.

MASTER_SITE_FREEBSD - Sets OVERRIDE to be FreeBSD's own master repository.


# 1876ac94 16-Nov-1994 Jean-Marc Zucconi <jmz@FreeBSD.org>

If USE_GMAKE is defined, use ${GMAKE} in ${XMKMF} && ${MAKE} Makefiles


# 041c2641 15-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Make depends a separate target. Now you can select when the dependency
list is traversed.


# ff47faa8 11-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add patch cookies. This should prevent gratuitous patch re-application
attempts.


# 9e320fee 03-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

For submakes, don't do a `${MAKE} ${MAKEFILE} all' or
`${MAKE} ${MAKEFILE} install', indirect the target through ALL_TARGET and
INSTALL_TARGET now, so they can be easily overridden.


# 68feb5ef 03-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add reinstall target for Poul-H. This lets you install again from
the same build, ignoring the INSTALL_COOKIE.


# 2e7c3b0a 01-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

This is what I get for implementing suggestions without really thinking
about them.. :-) The patches/* won't work, it needs to be patches/patch-*
to avoid catching things like CVS files when working with a checked-out
copy of ports! Whoops!


# c8b2f1c0 01-Nov-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

2 changes:

1. Make build rely on a BUILD_COOKIE now. I'm tired of builds
being redone gratuitously while I'm trying to debug a tree build
problem.

2. Remove all the literal `touch -f' commands and indirect them through
variables. This lets you "leave tracks" in different ways, depending
on the medium. Just part 1 of my planned changes to make builds
directly off the CD work.


# 9c4fb858 31-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Make patch rule pick up everything in patchdir alphabetically.
No need to call it `patch-aa' if you can simply call it `aa', etc.


# 4335d919 22-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

1. PREFIX has nothing to do with DESTDIR. Remove it finally.
2. Make sure to pass PREFIX to sub-makes when installing. This allows you to
install to places like ${PREFIX}/bin in your own install rule.


# cd08c443 22-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Invoke install.man if USE_IMAKE is set.


# 2ecb809a 14-Oct-1994 Andrey A. Chernov <ache@FreeBSD.org>

Add ${.MAKEFLAGS} to sub-makes, pointed by Rod


# cc33ccc9 14-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add new IS_INTERACTIVE flag. This lets you specify that the port
is an interactive port, and requires user input somewhere along
the way (either fetching, configuring, building or installing).

If the user then sets BATCH in their environment, this port will be
skipped. If the user sets INTERACTIVE, then ONLY those ports marked
interactive are run (allowing one to do all ports in two passes).
If the user sets both BATCH and INTERACTIVE, then a metal claw extends
from the CRT and brutally yanks their nose off.


# c41b5164 13-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Silence the sub-makes.


# 64324dc6 13-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Change the way pre-install was done after a suggestion from Andrew.
Now both pre-install and install inherit the INSTALL_COOKIE.


# baaac718 12-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Re-work the way pre-install was being depended. I couldn't make the
install cookie work any other way (perhaps I'm just being stupid).
In any case, INSTALL_COOKIE now works as advertised, and prevents duplicate
installations. pre-install users will have to keep their own cookies if
they wish to avoid duplicate installations, or tell me how to make the
rules run properly.


# 3d1e296e 11-Oct-1994 Andrey A. Chernov <ache@FreeBSD.org>

Oops, change ${MAKE_FLAGS} to ${MAKEFLAGS} in pre-configure line


# ec557944 11-Oct-1994 Andrey A. Chernov <ache@FreeBSD.org>

Move 'make pre-configure' inside .configure.done: target, or
it issued again and again instead.


# b82fc8c6 11-Oct-1994 Andrey A. Chernov <ache@FreeBSD.org>

configure: pre-configure extract ... must be
configure: extract pre-configure ...


# 363abea0 05-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Following changes from Robert Withrow (+ a few mods):

1. Make DEPENDS fully qualified, and not implictly assume relative
to ${PORTSDIR}. This allows more arbitrary dependencies to be
specified. This also means that DEPENDS= x11/foo needs to be changed
to DEPENDS= ${PORTSDIR}/x11/foo in any Makefiles. I'll try to do
these changes myself.

2. Add an option NO_DEPENDS to disable the automagic building of depended
ports.
Submitted by: rww


# 997882fd 04-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add an install prefix for packages, so that they're built by default
to track ${PREFIX} (this will override the PLIST prefix).


# 0903bf36 04-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Also make GNU_CONFIGURE a synonym for HAS_CONFIGURE so you don't have
to specify both (looks silly).


# e492ce08 04-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

If GNU_CONFIGURE is set, pass `--prefix=${PREFIX}'; this should help
at least the GNU ports play nice with PREFIX.


# 3ca98f18 04-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Whoops! Forgot to pass PREFIX to the configure subshells. Done.


# ed403359 04-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add PREFIX pointing to ${DESTDIR}/usr/local - let's see if we can't
make an entire system work nicely with DESTDIR (to say nothing of being
able to move from /usr/local to somewhere else).


# 382f755d 03-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Prevent duplicate installs with an install cookie.
Make DEPENDS now does a `make is_depended' in the target port.
This defaults to `all install' globally, but can be overriden locally
by a port if it wants to do different things when other ports depend on it.


# 7ae01964 03-Oct-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

May the saints praise Robert Withrow <witr@rwwa.com> for showing me
the light. `env' can be used to pass environment variables to shell
scripts this way, which means that all *configure/post-build scripts
_no longer take any arguments_; everything they should need (and more)
is now available in the environment. I'm working now to adapt the older
shell scripts over, but if you want beat me to it on some of your own
ports, don't let me stop you! :)
Submitted by: witr


# ccd314ec 28-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Don't hardcode patch and its arguments. Not quite the same patch as submitted
by Robert Withrow, but he prodded me into thinking about it again. Thanks, Rob.


# 5df5c6ab 22-Sep-1994 Steven Wallace <swallace@FreeBSD.org>

change COOKIE directory from .CURDIR to WRKDIR since a user may not have
write permission to .CURDIR but write permission to WRKDIR.
Also, WRKDIR may be deleted and cookie still exist in CURDIR.


# 724a286e 18-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Modified DEPENDS rule so that anything you depend on gets both
made AND installed. Folks, check out DEPENDS if you have one port
that depends on another! With this change, it should be really convenient
to use.


# 9e5efb09 18-Sep-1994 Andrey A. Chernov <ache@FreeBSD.org>

DESTDIR added to PORTSDIR definition


# bcb015de 14-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Don't assume / seperator between site name and dist file in fetch.


# d58fb42f 13-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Missing semi-colon after a done statement. Fixed.


# eef2ed53 13-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Adjust comments to document MASTER_SITES and remove mention of
HOME_LOCATION.


# cd003c0b 13-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Ok, I think I have this whole HOME_LOCATION / MASTER_SITE stuff resolved
to a reasonable compromise:

MASTER_SITES now contains a space seperated list of sites for which each
DISTFILE may be retrieved. This should be a directory spec, which will be
concatenated with each file in DISTFILES. HOME_LOCATION is *gone* now
and isn't used for anything, so you can delete it from your Makefiles.
If you want to force a fetch from a given location, simply do something like:

MASTER_SITES= ftp://fnord.foo.bar/pub/dist
DISTFILES= a.tar.gz b.tar.gz

Your entry in MASTER_SITES will be tried first to fetch a.tar.gz and
b.tar.gz, followed by any master sites we have set up (right now, only
freebsd.cdrom.com).


# 65273efb 10-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

More fixes and general cleanup. Add more fine-grained control over what
is fetched and what is actually unpacked.


# 31c01ba4 10-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Whoops, forgot to stop this lurking typo, too.


# d1c149c3 10-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Eliminate a few lurking bogons - this is almost close to being right!


# 43497b9f 10-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Annual simplification drive:

1. DISTFILE is gone and replaced by DISTFILES, which can contain one or
more file specifications.
2. MASTER_SITE created, which points to the distfiles directory on
freebsd.cdrom.com (which I'll set up in a moment).
3. HOME_LOCATION is now simply a hint, and is never directly used except
to inform the user when ncftp unable to transfer a file from
MASTER_SITE.
4. ncftp is now assumed to live somewhere in the path, in preparation for
Andrew bringing it in on a more permanant basis.
5. XMKMF defined - it was not before.

Thanks to Andrew (ache) for many helpful suggestions.


# e86de409 09-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Rearrange this a bit while I think about the whole problem of fetching
multiple targets when dealing with creating a set of distribution files
from scratch. Another problem is *verifying* that a given file fetched
from its HOME_LOCATION is the one we wanted (what if the stupid ftp site
maintainer updated it in place?). Rich Morin pointed this out and suggested
some solutions. I need to think about it some more (suggestions?).

For now, we have a seperate `fetch' and `extract' target.
Submitted by: jkh


# 8315b101 08-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

As per suggestion by Michael Reifenberger, make ncftp use the -N flag.
Reviewed by: jkh
Submitted by: mr


# c66c4046 01-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Fixed a couple of typos. Ok, this works now. Only one significant hurdle
remains, and that's that this does not work with multiple targets, which
sort of throws the tk and fvwm distributions into a mess. tk needs both
a tarball and a patch file from the same site, fvwm needs up to 3 different
files if you want all the options. If anyone wants to take this the last
few steps of the way towards somehow handling cases like this, I'd be very
happy.
Submitted by: jkh


# 9f421ad2 01-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Ok, I've reviewed this and made it work now. ncftp fetching seems to be
working/closer to working now.
Submitted by: jkh


# e9ea29f3 01-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add a few missing >> lines to error echo's.. This is basically my
convention to make searching for error messages easy.
Submitted by: jkh


# b9e33595 01-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Here's my first cut at doing auto-fetch with ncftp. The extract rule
is turning into the original make rule from hell!
Submitted by: jkh


# 3158984c 01-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Geeze, what was I thinking again? Replace all references to:

${DISTDIR}/${DISTNAME}${EXTRACT_SUFX}

With simply `${DISTFILE}' which defaults to the above. This lets you
easily name distribution files that don't cooperate with any rational
naming syntax.

Similarly, make a variable called ${PKGFILE} which fills the same purpose
for packages.

Just trying to make this thing really really general to suit every need.
Now I need somebody to figure out how to make the extract target auto-fetch
things from ${HOME_LOCATION} with ncftp *if* ncftp is installed and it
looks possible to reach the foreign site. That will take some fancy footwork,
but would be slick. I've changed this too so that HOME_LOCATION is no longer
set by default, allowing you to do an .if defined(..) check for it. The
extract rule now does this too.

Submitted by: jkh


# 07a97627 30-Aug-1994 Adam David <adam@FreeBSD.org>

added hook for post-build script
Reviewed by:
Submitted by:


# 82df480e 28-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Lots of changes - get the NO_XXX things over, add @'s to the touches for
default extract and configure targets, add a pre-clean since I need it for
pkg_install port.
Submitted by: jkh


# 367eafb7 25-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add a pre-configure rule after all, since it's helpful to be able
to also run a rule before you apply patches and then go into the 3 stage
script configuration. This bit Adam David in his dgd port.
Submitted by: jkh


# da22574d 25-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Also `make Makefiles' in USE_IMAKE case to catch subdirs.
Submitted by: jkh


# 2581e485 25-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Sigh. I am a hosebrain. I've been using gmake for so long, I've
started using some of its features reflexively.
Submitted by: jkh


# 23573be7 25-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add a new flag: USE_IMAKE
This will cause the configure pass to do an `xmkmf' if set.
Submitted by: jkh


# c3181acc 24-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Some cosmetic changes.
Add pre-{build,extract,install,...} targets for Torsten, who apparently
needs them. Can't do effective post-* targets without major work, sorry.

Jordan
Reviewed by:
Submitted by:


# 40ac3d51 22-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Ok, this should work with a centralized package directory now (so you
can elect to dump all finished packages in one directory).
Submitted by: jkh


# 99188fed 22-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Make package target a lot more general.
Submitted by: jkh


# 82413774 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Use proper proper package suffix.
Submitted by: jkh


# 12c6fd41 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Whoops, left out a backslash in my package rule.
Submitted by: jkh


# 7fd2d1ca 22-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Ok, now we warn if we're about to recreate the distfile from configured
sources. Configuring doesn't always _do_ anything, which is why it's
a warning and not an error.
Submitted by: jkh


# 984dd1a9 22-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

New bsd.port.subdir.mk file for use by ports. This groks all the
special ports building targets and will recurse properly. Sorry,
Julian E - no fancy prompts, just recursion! :-)

Added a `bundle' target. Purpose is as follows:

You want to give someone a complete tree sans distfiles (for
sticking on CDROM perhaps?) but the difficulty there is that
the first time the user types `make clean', all the unpacked
sources are gone again. Typing `make bundle' recreates the
original distfile if it can, so someone can "back up" their
unpacked tree easily with one command.

Whoops, just thought of something - it should warn if you
configured the working source.
Ok, next commit! :)
Submitted by: jkh


# 44204c43 22-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

I had to bite the bullet: There's now a port.subdir.mk that does the right
thing with recursive build, configure, bundle or extract targets.
Reviewed by:
Submitted by:


# a57d411a 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Sigh.. Some of these configs are a little hairy. I need to know the
${PORTSDIR} too now - pass it to any and all config scripts.
Submitted by: jkh


# a1c49e4e 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Make things a little more user-friendly
Submitted by: jkh


# 34c3b2af 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Get the .configure_done stuff working - it wasn't in the right place.
Submitted by: jkh


# d0d7662f 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Start really adding some features here. Let's see:

1. New variable DEPENDS lets you list packages that this depends on,
relative to the top (lang/tcl, x11/tk, etc). These packages will
always get made first.

2. Don't configure again if you've already done so successfully.

3. Add pre-configure and post-configure hooks. You can now do a pre-configure,
a local configure, a port-provided configure and finally a post-configure
if you really really want to. I can't imagine anything this will leave us
not being able to do! :) [ Yes, I have actually found a use for at least
two of these in one port - see x11/tk!].

Submitted by: jkh


# 9bd3cef5 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Simplify the whole configuration script business quite a bit. What
was I thinking before..
Submitted by: jkh


# 09e9c843 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Whoops, the check for a missing distfile was slightly bogus. Now it works.
Submitted by: jkh


# 754969c9 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Make any local configuration file unconditional. That is, if one exists
then run it even if GNU configure is to be run later.
Submitted by: jkh


# 173b9407 21-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Commit my new ports make macros. Still not 100% complete yet by any means
but fairly usable at this stage.
Submitted by: jkh