Commit Graph

328 Commits

Author SHA1 Message Date
Jordan K. Hubbard
273aafabd1 A regrettable hack to allow a port to say that it doesn't want its Makefiles
made after the xmkmf run.
1995-07-15 14:07:02 +00:00
Satoshi Asami
b29290baff 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
1995-07-11 02:15:35 +00:00
Satoshi Asami
a097993016 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.
1995-06-26 07:06:59 +00:00
Satoshi Asami
63d9968543 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
1995-06-26 07:01:20 +00:00
Satoshi Asami
35f8d33b12 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).
1995-06-26 00:30:48 +00:00
Satoshi Asami
2e1b72a11c 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.
1995-06-25 06:30:51 +00:00
Satoshi Asami
9688e7d314 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
1995-06-24 10:27:23 +00:00
Satoshi Asami
5727f324eb 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
1995-06-06 10:56:34 +00:00
Satoshi Asami
56cb039977 Remove comment about not being able to undefine a variable, as we *can*
do that.
1995-05-29 13:46:38 +00:00
Satoshi Asami
79faaf1d61 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? :)
1995-05-16 10:31:25 +00:00
Satoshi Asami
203fba2d95 Don't conditionalize fake-pkg on NO_PACKAGE. 1995-05-13 23:37:16 +00:00
Satoshi Asami
5af895a1dd 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.
1995-05-13 05:37:45 +00:00
Satoshi Asami
8ea273f0e9 When NO_PACKAGE is set, "package" and "repackage" don't depend on
"install".  In other words, they won't do anything at all.
1995-05-12 08:44:12 +00:00
Satoshi Asami
b5e33d67f3 Not only deleting the package and package links, also exit with status
1 if pkg_create returns error!
1995-05-12 07:43:48 +00:00
Satoshi Asami
6d572c7f78 Delete package and links when pkg_create fails. 1995-05-12 07:32:59 +00:00
Satoshi Asami
6440765b48 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}.
1995-05-10 09:30:09 +00:00
Satoshi Asami
81a5b37f0f Make the "reinstall" target delete the package cookie as well as
the install cookie.
1995-05-09 00:31:54 +00:00
Adam David
16160ede45 added support for distribution patches in a subdir of ${DISTFILES} 1995-05-04 18:53:26 +00:00
Jordan K. Hubbard
c72a17926e Put an `@' in front of the mtree command. I don't want to see it. 1995-05-04 13:14:16 +00:00
Jordan K. Hubbard
4bf8cbcdc9 Add an mtree line to the install target. 1995-05-02 13:49:01 +00:00
Satoshi Asami
afed0bc70e 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. :)
1995-04-30 12:28:43 +00:00
Jordan K. Hubbard
ff0c48c1ad 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.
1995-04-28 15:40:37 +00:00
Satoshi Asami
1cd7cf497c (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?)
1995-04-24 10:41:51 +00:00
Satoshi Asami
b93566a100 Move call of fake-pkg from do-install to end of install. 1995-04-24 09:05:34 +00:00
Jordan K. Hubbard
91f14a89e4 Ok, this should get the last of the stragglers installed into a new fake-pkg. 1995-04-22 01:22:49 +00:00
Jordan K. Hubbard
ab2eb29ef5 Don't try to run the fake-pkg target if NO_PACKAGE is set. 1995-04-22 00:08:06 +00:00
Jordan K. Hubbard
b1230d88bd Typo: patch -> package 1995-04-22 00:05:46 +00:00
Jordan K. Hubbard
faf04fc9d9 Instead of copying PLIST over, run pkg_create in a special mode that dumps
the fully-formed PLIST to stdout and uses that.
1995-04-22 00:01:26 +00:00
Satoshi Asami
ccecf5fc35 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.
1995-04-20 18:03:02 +00:00
Jordan K. Hubbard
0d515239c7 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.
1995-04-19 15:02:26 +00:00
Satoshi Asami
d43e6015ad Use PKGNAME in the "describe" target (used to generate INDEX) too.
Didn't make sense to have two ports with the same name.
1995-04-18 08:24:18 +00:00
Satoshi Asami
847b627e7c 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.
1995-04-18 08:18:27 +00:00
Satoshi Asami
6f126de6ed "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".
1995-04-17 06:39:05 +00:00
Satoshi Asami
cc70b7d651 "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.
1995-04-17 06:28:15 +00:00
Satoshi Asami
09b9e772fb Yikes...typo (.package/ should have been .packages/). 1995-04-15 23:56:29 +00:00
Jordan K. Hubbard
c1a1cb1959 Don't pass duplicate pkgdeps to pkg_create 1995-04-10 08:09:21 +00:00
Jordan K. Hubbard
43ee187093 Add new -P argument to pkg_create. 1995-04-09 15:00:56 +00:00
Jordan K. Hubbard
9b46e88ed1 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.
1995-04-09 12:27:58 +00:00
Jordan K. Hubbard
cf08055c47 1. Fix the first line (should be a proper comment - silly emacs).
2. KEYWORDS+= CATEGORIES
3. CATEGORIES+= all (always want to be in "all"!)
1995-04-09 10:24:09 +00:00
Satoshi Asami
75fbcbe580 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
1995-04-09 09:59:42 +00:00
Jordan K. Hubbard
44e31ae72d Add USE_X11 for ports which are X11 users but don't use IMAKE. 1995-04-04 05:57:19 +00:00
Gary Palmer
5cb4427d5f Remove a `.' from the end of the echo line
`>> Attempting to fetch from $${site}' as it is misleading
1995-04-04 04:23:37 +00:00
Jordan K. Hubbard
8938ad51ee By default, KEYWORDS is a copy of CATEGORIES. 1995-04-01 10:01:49 +00:00
Jordan K. Hubbard
a0c727a41d Add default values and document them for CATEGORIES and KEYWORDS. 1995-04-01 09:35:29 +00:00
Jordan K. Hubbard
f54fd25b84 Add support for new CATEGORIES and KEYWORDS fields. 1995-04-01 09:34:11 +00:00
Satoshi Asami
3b6a1fc296 Add support for "distributed" patches and a little extra cleanup.
New variables:

PATCH_SITES:	patch equivalent of MASTER_SITES, overridable with
.		MASTER_SITE_OVERRIDE.
PATCHFILES:	Additional files to fetch and give to patch before
.		applying the ones in patches/patch-*.  If name ends
.		with ".gz" or ".Z", it will be piped through zcat first.

Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.

In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.

"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this.  I'm now diving headlong
into /usr/ports to fix their Makefiles.
1995-03-28 01:14:29 +00:00
Satoshi Asami
5c9660773a 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/.
1995-03-27 13:11:18 +00:00
Gary Palmer
9c2478af89 Add a misssing `@' from before echo -n "|${MAINTAINER}" 1995-03-23 20:42:42 +00:00
Jordan K. Hubbard
84d07a94d5 Add maintainer to the index line. 1995-03-22 21:46:04 +00:00
Jordan K. Hubbard
d7b7c8c402 Add new EXTRACT_BEFORE_FLAGS and EXTRACT_AFTER_FLAGS variables to make
complex extraction rules easier.
1995-03-22 21:28:31 +00:00
Jordan K. Hubbard
ca5c9c29a9 Make the fetch message a little more interesting and informative. 1995-03-21 22:43:36 +00:00
Jordan K. Hubbard
74890c4243 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.
1995-03-21 03:59:13 +00:00
Jordan K. Hubbard
86f8fd330d 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! :-)
1995-03-21 01:51:12 +00:00
Jordan K. Hubbard
02b004e7ed Document the index target. 1995-03-21 01:31:43 +00:00
Andreas Schulz
f40015d00d 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.
1995-03-20 00:41:36 +00:00
Andreas Schulz
85667802e9 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.
1995-03-19 12:49:06 +00:00
Gary Palmer
8e520bccaf Add support to miss out ``DUDS'' subdirectories. See thread in freebsd-ports
for more.
1995-03-03 23:30:32 +00:00
Jordan K. Hubbard
db22b94c00 Back out my previous change. I need to really think about this. 1995-03-03 07:42:10 +00:00
Jordan K. Hubbard
104965676e A small feature just for my own use. 1995-03-03 06:53:27 +00:00
Jordan K. Hubbard
5ac3f1e5ce Always go to ${WRKDIR} before extraction. Modify the tar extract command
args to take advantage of this.
Pointed-out-by: asami
1995-02-17 08:52:55 +00:00
Gary Palmer
5a4a97181d 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.
1995-02-14 21:29:28 +00:00
Jeffrey Hsu
9de2b11e75 Allow arbitrarily named configure script for use w/ HAS_CONFIGURE. 1995-02-06 08:52:19 +00:00
Poul-Henning Kamp
9ffda99611 Use absolute path to md5 program. It lives in /sbin and people are unlikely
to have $PATH to it.
1995-02-04 22:56:28 +00:00
Satoshi Asami
07f73a764f 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.
1995-02-04 05:49:26 +00:00
Gary Palmer
e0a8df41c7 Start the ball rolling by sticking a
MAINTAINER?= line in here.

Idea by: jkh@FreeBSD.ORG
1995-02-01 21:47:57 +00:00
Jordan K. Hubbard
e63223cf35 Make fetch a bit more forgiving of subdirs. 1995-01-30 10:06:56 +00:00
Jordan K. Hubbard
a80a9f7bd6 Fix bogus tab in makesum target. 1995-01-24 02:41:52 +00:00
Jordan K. Hubbard
872e63e127 Set PREFIX in the build target. Suggested by John Fieber. 1995-01-23 18:22:36 +00:00
Gary Palmer
4d10a7b445 Oops. Fix up the checksum routine - my last commit broke it slightly. 1995-01-22 20:40:48 +00:00
Andrey A. Chernov
817a927448 Put brackets around EXTRACT_CMD, can be several commands here 1995-01-17 23:55:53 +00:00
Gary Palmer
0783af702d 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
1995-01-16 23:33:08 +00:00
Andrey A. Chernov
2bfaafe2fb Use absolute path for install passed to configure
to disallow prepending ../ in second level Makefiles
1995-01-12 02:29:42 +00:00
Satoshi Asami
cf028abab7 Typo! 1995-01-11 08:53:28 +00:00
Satoshi Asami
f0b0206d63 Add missing ! in front of pipeline for extract commands---otherwise
it would exit on *successful* extraction.
1995-01-11 08:50:48 +00:00
Jordan K. Hubbard
db0107b3e0 Catch case where extraction fails. Thanks! 1995-01-10 12:23:44 +00:00
Andrey A. Chernov
75142c9ea8 Move pre-extract target inside COOKIE
Add checksum check for extract, if checksum file present
1995-01-06 22:14:12 +00:00
Satoshi Asami
5acd95fc83 Sort out dependencies. Now they look like:
patch: extract
configure: depends patch
build: configure
install: build

Does this look ok?
1995-01-05 08:15:53 +00:00
Jordan K. Hubbard
fce1909501 Typo fix from Ollivier Robert.
Submitted by:	ollivier
1995-01-05 02:15:05 +00:00
Jordan K. Hubbard
0678fac1ce Rename check-md5 target to checksum.
Submitted by:	gpalmer
1995-01-05 01:46:05 +00:00
Jordan K. Hubbard
118424e9c1 Gary Palmer's patches for checksumming and description.
Submitted by:	gpalmer
1995-01-04 23:06:38 +00:00
Jordan K. Hubbard
339b62ad34 Put depends before configure. No reason that I can see for putting it after,
and it breaks mule the way it is now.
1995-01-04 09:58:39 +00:00
Jordan K. Hubbard
5d35154782 Some of the doc here was less than adequately fleshed-out. Make some
feeble attempt to do so.
1995-01-04 08:30:33 +00:00
Jordan K. Hubbard
b63e925069 Document describe target. 1995-01-04 07:35:46 +00:00
Jordan K. Hubbard
e7c865345a Add describe target support. 1995-01-03 11:52:01 +00:00
Andrey A. Chernov
8751565558 Preset ac_cv_path_CC="${CC}" before running ./configure,
needed for Autoconf 2
1995-01-01 20:06:20 +00:00
Andrey A. Chernov
9f4750b0ae Oops, forget "" for ${CC} and ${CFLAGS}... 1994-12-28 04:17:54 +00:00
Andrey A. Chernov
147b1630d1 Set proper INSTALL* variables before running ./configure 1994-12-28 04:14:19 +00:00
Andrey A. Chernov
e83b84fb41 Use CFLAGS=${CFLAGS} ./configure to avoid picking dumb GNU -g default 1994-12-28 03:30:21 +00:00
Andrey A. Chernov
4c90001fbe Use "CC=${CC} ./configure" to avoid usage of debugging 'gcc' 1994-12-28 03:21:16 +00:00
Gary Palmer
6bb2d46a8f Put dummy targets for make-md5 & check-md5 inside a
NO_EXTRACT ifdef so that tcpblast doesn't muck
things up
1994-12-17 21:29:38 +00:00
Gary Palmer
afdf156bf1 bsd.port.mk: missing semicolon added
bsd.port.subdir.mk: added check-md5 as target
1994-12-17 20:50:44 +00:00
Andrey A. Chernov
5ad46c41ee Automatically add gmake to DEPENDS, if USE_GMAKE 1994-12-17 02:37:26 +00:00
Andrey A. Chernov
b6779baeb7 Don't use build: ... pre-build, move pre-build inside
BUILD_COOKIE instead
1994-12-17 01:58:11 +00:00
Andrey A. Chernov
595563312d patch: pre-patch ... is wrong, move pre-patch
inside PATCH_COOKIE
1994-12-14 05:53:09 +00:00
Jean-Marc Zucconi
b5f1d322ac Added '${GMAKE} install.man' when installing with Imake and gmake 1994-12-12 22:32:30 +00:00
Gary Palmer
94ba290d32 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.
1994-12-11 20:36:12 +00:00
Gary Palmer
206936ce19 Last gremlin-killer of the day. Typo fixed and missing .endif replaced. 1994-12-11 15:31:22 +00:00
Gary Palmer
dae29c14e4 <Sigh> Got the placing of a .if wrong. Fix it. 1994-12-11 14:50:40 +00:00
Gary Palmer
0d4f92c05f Erk. Damn. A hash perfixing a comment was lost somewhere.
Fixed.
1994-12-11 14:12:30 +00:00
Gary Palmer
4651ab7159 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
1994-12-10 18:07:38 +00:00
Andrey A. Chernov
2a6d7ba804 Change wrong comment: NCFTP_ARGS --> NCFTPFLAGS 1994-11-25 17:04:02 +00:00
Andreas Schulz
996ec61020 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 :-).
1994-11-21 10:30:37 +00:00
Jordan K. Hubbard
868909dde6 Add reinstall. 1994-11-17 16:02:56 +00:00
Jordan K. Hubbard
67dbf64848 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.
1994-11-17 15:46:27 +00:00
Jordan K. Hubbard
34c5d5e152 Whoops! Typo. Correct. 1994-11-17 10:07:45 +00:00
Jordan K. Hubbard
bdda343f6b 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.
1994-11-17 10:06:03 +00:00
Jordan K. Hubbard
e6b8020cfa Add support for NO_WRKDIR. 1994-11-17 00:25:16 +00:00
Jordan K. Hubbard
540b953f97 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.
1994-11-17 00:18:28 +00:00
Jean-Marc Zucconi
056837d89c If USE_GMAKE is defined, use ${GMAKE} in ${XMKMF} && ${MAKE} Makefiles 1994-11-16 23:14:22 +00:00
Jordan K. Hubbard
297484f4ed Make depends a separate target. Now you can select when the dependency
list is traversed.
1994-11-15 10:16:56 +00:00
Jordan K. Hubbard
203b51904f Add patch cookies. This should prevent gratuitous patch re-application
attempts.
1994-11-11 09:45:33 +00:00
Jordan K. Hubbard
08032667c0 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.
1994-11-03 19:53:46 +00:00
Jordan K. Hubbard
4cf1355420 Add reinstall target for Poul-H. This lets you install again from
the same build, ignoring the INSTALL_COOKIE.
1994-11-03 19:14:08 +00:00
Jordan K. Hubbard
a40317a9f9 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!
1994-11-01 21:04:27 +00:00
Jordan K. Hubbard
8817550f6f 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.
1994-11-01 18:09:22 +00:00
Jordan K. Hubbard
e4e0523fdb Make patch rule pick up everything in patchdir alphabetically.
No need to call it `patch-aa' if you can simply call it `aa', etc.
1994-10-31 22:51:09 +00:00
Jordan K. Hubbard
70070cfc90 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.
1994-10-22 23:02:39 +00:00
Jordan K. Hubbard
8cb292cb04 Invoke install.man if USE_IMAKE is set. 1994-10-22 09:21:35 +00:00
Andrey A. Chernov
69bd4475cb Add ${.MAKEFLAGS} to sub-makes, pointed by Rod 1994-10-14 21:58:09 +00:00
Jordan K. Hubbard
fd82a96e3e 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.
1994-10-14 07:56:46 +00:00
Jordan K. Hubbard
c764596c7f Silence the sub-makes. 1994-10-13 10:33:35 +00:00
Jordan K. Hubbard
40786948cb Change the way pre-install was done after a suggestion from Andrew.
Now both pre-install and install inherit the INSTALL_COOKIE.
1994-10-13 08:08:56 +00:00
Jordan K. Hubbard
97141f4264 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.
1994-10-12 23:32:32 +00:00
Andrey A. Chernov
2a55a0d022 Oops, change ${MAKE_FLAGS} to ${MAKEFLAGS} in pre-configure line 1994-10-12 03:25:59 +00:00
Andrey A. Chernov
2915ba44e5 Move 'make pre-configure' inside .configure.done: target, or
it issued again and again instead.
1994-10-12 03:12:19 +00:00
Andrey A. Chernov
df725a748f configure: pre-configure extract ... must be
configure: extract pre-configure ...
1994-10-12 02:58:38 +00:00
Jordan K. Hubbard
a74225848b 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
1994-10-05 22:28:45 +00:00
Jordan K. Hubbard
b0b4e69f25 Add an install prefix for packages, so that they're built by default
to track ${PREFIX} (this will override the PLIST prefix).
1994-10-04 15:50:43 +00:00
Jordan K. Hubbard
e081113081 Also make GNU_CONFIGURE a synonym for HAS_CONFIGURE so you don't have
to specify both (looks silly).
1994-10-04 15:48:21 +00:00
Jordan K. Hubbard
8ac604869e If GNU_CONFIGURE is set, pass `--prefix=${PREFIX}'; this should help
at least the GNU ports play nice with PREFIX.
1994-10-04 15:44:03 +00:00
Jordan K. Hubbard
787773b2b4 Whoops! Forgot to pass PREFIX to the configure subshells. Done. 1994-10-04 14:46:34 +00:00
Jordan K. Hubbard
5bc1d71c89 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).
1994-10-04 14:44:56 +00:00
Jordan K. Hubbard
578487c804 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.
1994-10-03 14:38:27 +00:00
Jordan K. Hubbard
37e15dac70 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
1994-10-03 13:45:03 +00:00
Jordan K. Hubbard
0fedcf6dce 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.
1994-09-28 14:19:30 +00:00
Steven Wallace
f0a67f28b0 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.
1994-09-22 07:45:30 +00:00
Jordan K. Hubbard
fa1656eedc 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.
1994-09-19 01:08:35 +00:00
Andrey A. Chernov
b00415f6e2 DESTDIR added to PORTSDIR definition 1994-09-19 00:41:03 +00:00
Jordan K. Hubbard
c866f155af Add support for DEBUG_FLAGS. If you say something like:
make DEBUG_FLAGS=-g2

You can compile something for debugging at debugging level 2.
It will also take care not to strip the resulting executable(s).
1994-09-16 14:30:22 +00:00
Jordan K. Hubbard
67669babb1 Remove obsolete bundle target, add new fetch target. 1994-09-14 16:42:37 +00:00
Jordan K. Hubbard
88343bc70d Don't assume / seperator between site name and dist file in fetch. 1994-09-14 15:30:44 +00:00
Jordan K. Hubbard
41177862e3 Missing semi-colon after a done statement. Fixed. 1994-09-13 08:40:27 +00:00
Jordan K. Hubbard
c8df8e0b9d Adjust comments to document MASTER_SITES and remove mention of
HOME_LOCATION.
1994-09-13 06:43:10 +00:00
Jordan K. Hubbard
491e992bb5 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).
1994-09-13 06:22:11 +00:00
Jordan K. Hubbard
622ff20229 More fixes and general cleanup. Add more fine-grained control over what
is fetched and what is actually unpacked.
1994-09-11 12:55:54 +00:00
Jordan K. Hubbard
9e80d31292 Whoops, forgot to stop this lurking typo, too. 1994-09-11 12:06:34 +00:00
Jordan K. Hubbard
a34c88dd09 Eliminate a few lurking bogons - this is almost close to being right! 1994-09-11 12:01:05 +00:00
Jordan K. Hubbard
363ba0d76b 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.
1994-09-10 22:26:47 +00:00
Jordan K. Hubbard
5d46f4f20f 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
1994-09-09 06:21:43 +00:00
Jordan K. Hubbard
6762ea3114 As per suggestion by Michael Reifenberger, make ncftp use the -N flag.
Reviewed by:	jkh
Submitted by:	mr
1994-09-09 00:17:47 +00:00
Jordan K. Hubbard
116b57441e 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
1994-09-02 01:53:33 +00:00
Jordan K. Hubbard
dd3d4f3a43 Ok, I've reviewed this and made it work now. ncftp fetching seems to be
working/closer to working now.
Submitted by:	jkh
1994-09-02 01:32:13 +00:00
Jordan K. Hubbard
2af9fef0dd Add a few missing >> lines to error echo's.. This is basically my
convention to make searching for error messages easy.
Submitted by:	jkh
1994-09-02 01:13:47 +00:00
Jordan K. Hubbard
589c12aea6 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
1994-09-01 18:03:37 +00:00
Jordan K. Hubbard
95bb00dfba 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
1994-09-01 16:01:34 +00:00
Adam David
8c1d6f5f29 added hook for post-build script
Reviewed by:
Submitted by:
1994-08-30 16:39:27 +00:00
Jordan K. Hubbard
d8b196e5be 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
1994-08-28 14:41:34 +00:00
Jordan K. Hubbard
2d6732d185 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
1994-08-25 22:59:56 +00:00
Jordan K. Hubbard
4a1e0eed43 Also `make Makefiles' in USE_IMAKE case to catch subdirs.
Submitted by:	jkh
1994-08-25 21:02:45 +00:00
Jordan K. Hubbard
6e4b9a7ee0 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
1994-08-25 13:56:08 +00:00
Jordan K. Hubbard
4a6637715e Add a new flag: USE_IMAKE
This will cause the configure pass to do an `xmkmf' if set.
Submitted by:	jkh
1994-08-25 13:53:02 +00:00
Jordan K. Hubbard
ebb79839d4 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:
1994-08-24 14:49:33 +00:00
Jordan K. Hubbard
e441ff3ff9 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
1994-08-22 13:25:33 +00:00
Jordan K. Hubbard
6715e4966e Make package target a lot more general.
Submitted by:	jkh
1994-08-22 13:11:32 +00:00
Jordan K. Hubbard
6fd441f32c Whoops - left out the package rule!
Submitted by:	jkh
1994-08-22 13:02:16 +00:00
Jordan K. Hubbard
dfcb81d26e Use proper proper package suffix.
Submitted by:	jkh
1994-08-22 12:07:19 +00:00
Jordan K. Hubbard
d2a18d9157 Whoops, left out a backslash in my package rule.
Submitted by:	jkh
1994-08-22 12:00:34 +00:00
Jordan K. Hubbard
1fb83c20bb 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
1994-08-22 11:23:17 +00:00
Jordan K. Hubbard
3556b480df 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
1994-08-22 11:20:07 +00:00
Jordan K. Hubbard
72d8a92aca 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:
1994-08-22 10:46:38 +00:00
Jordan K. Hubbard
f32256d586 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
1994-08-21 18:26:10 +00:00
Jordan K. Hubbard
1560b68cb8 Make things a little more user-friendly
Submitted by:	jkh
1994-08-21 17:42:24 +00:00
Jordan K. Hubbard
fac29d63ec Get the .configure_done stuff working - it wasn't in the right place.
Submitted by:	jkh
1994-08-21 16:55:54 +00:00
Jordan K. Hubbard
fa27825d53 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
1994-08-21 16:37:09 +00:00
Jordan K. Hubbard
d64571e36c Simplify the whole configuration script business quite a bit. What
was I thinking before..
Submitted by:	jkh
1994-08-21 15:04:03 +00:00
Jordan K. Hubbard
17087d3bd7 Whoops, the check for a missing distfile was slightly bogus. Now it works.
Submitted by:	jkh
1994-08-21 14:32:40 +00:00
Jordan K. Hubbard
e1d94293b9 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
1994-08-21 14:10:16 +00:00
Jordan K. Hubbard
d27f048e96 Commit my new ports make macros. Still not 100% complete yet by any means
but fairly usable at this stage.
Submitted by:	jkh
1994-08-21 13:12:57 +00:00