Commit Graph

318 Commits

Author SHA1 Message Date
jkh
ae5033f4db 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
jmz
f0796c1813 If USE_GMAKE is defined, use ${GMAKE} in ${XMKMF} && ${MAKE} Makefiles 1994-11-16 23:14:22 +00:00
jkh
8cdad68b06 Make depends a separate target. Now you can select when the dependency
list is traversed.
1994-11-15 10:16:56 +00:00
jkh
09cdc2f43c Add patch cookies. This should prevent gratuitous patch re-application
attempts.
1994-11-11 09:45:33 +00:00
jkh
f4d6806ca6 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
jkh
962ea3755e 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
jkh
d0ae1acdd0 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
jkh
345918a31d 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
jkh
bd89af0761 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
jkh
0b739d890d 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
jkh
6de1db15f0 Invoke install.man if USE_IMAKE is set. 1994-10-22 09:21:35 +00:00
ache
66935af7d9 Add ${.MAKEFLAGS} to sub-makes, pointed by Rod 1994-10-14 21:58:09 +00:00
jkh
aae398c284 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
jkh
4106ef7357 Silence the sub-makes. 1994-10-13 10:33:35 +00:00
jkh
f6e7823f24 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
jkh
2621920996 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
ache
8e7bc5aaec Oops, change ${MAKE_FLAGS} to ${MAKEFLAGS} in pre-configure line 1994-10-12 03:25:59 +00:00
ache
dfa2186345 Move 'make pre-configure' inside .configure.done: target, or
it issued again and again instead.
1994-10-12 03:12:19 +00:00
ache
4be05943aa configure: pre-configure extract ... must be
configure: extract pre-configure ...
1994-10-12 02:58:38 +00:00
jkh
eec5c74ac9 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
jkh
3276b6c85e 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
jkh
e736ac30ac 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
jkh
8bd50ed8b0 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
jkh
7b05f9cf8e Whoops! Forgot to pass PREFIX to the configure subshells. Done. 1994-10-04 14:46:34 +00:00
jkh
ef9e57843d 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
jkh
95ad10995b 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
jkh
4846f3b728 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
jkh
0a36b6fcaa 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
swallace
bfc87c1aef 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
jkh
c203d7f339 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
ache
65687968ee DESTDIR added to PORTSDIR definition 1994-09-19 00:41:03 +00:00
jkh
ad0fa3cbbf Don't assume / seperator between site name and dist file in fetch. 1994-09-14 15:30:44 +00:00
jkh
3b3c1c77e5 Missing semi-colon after a done statement. Fixed. 1994-09-13 08:40:27 +00:00
jkh
560046300b Adjust comments to document MASTER_SITES and remove mention of
HOME_LOCATION.
1994-09-13 06:43:10 +00:00
jkh
5a8c75ff30 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
jkh
15c2fa33ec 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
jkh
701c638972 Whoops, forgot to stop this lurking typo, too. 1994-09-11 12:06:34 +00:00
jkh
0922a574ef Eliminate a few lurking bogons - this is almost close to being right! 1994-09-11 12:01:05 +00:00
jkh
c96a2b6b13 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
jkh
18f96a7446 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
jkh
9f7e6d6ab7 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
jkh
1d279e8792 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
jkh
b48533d04a 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
jkh
a8c0c50155 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
jkh
b1de4707ed 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
jkh
f3fa32d219 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
fd9144aae7 added hook for post-build script
Reviewed by:
Submitted by:
1994-08-30 16:39:27 +00:00
jkh
032281d7e0 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
jkh
1fa12256c8 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
jkh
85d1c63301 Also `make Makefiles' in USE_IMAKE case to catch subdirs.
Submitted by:	jkh
1994-08-25 21:02:45 +00:00
jkh
113dd06d20 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
jkh
c969a90702 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
jkh
91da6f326f 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
jkh
3105b12589 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
jkh
a6ad654c1c Make package target a lot more general.
Submitted by:	jkh
1994-08-22 13:11:32 +00:00
jkh
3eb5cdd8f2 Use proper proper package suffix.
Submitted by:	jkh
1994-08-22 12:07:19 +00:00
jkh
aab1616b8b Whoops, left out a backslash in my package rule.
Submitted by:	jkh
1994-08-22 12:00:34 +00:00
jkh
1258b7ea6f 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
jkh
b94be1089d 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
jkh
0d91866e58 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
jkh
bfe5dfb7c2 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
jkh
cc2a9a6486 Make things a little more user-friendly
Submitted by:	jkh
1994-08-21 17:42:24 +00:00
jkh
f37210854b Get the .configure_done stuff working - it wasn't in the right place.
Submitted by:	jkh
1994-08-21 16:55:54 +00:00
jkh
f8db12ca5e 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
jkh
c058011537 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
jkh
4802b4c75a Whoops, the check for a missing distfile was slightly bogus. Now it works.
Submitted by:	jkh
1994-08-21 14:32:40 +00:00
jkh
42f31844db 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
jkh
e77d451213 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