Commit Graph

811 Commits

Author SHA1 Message Date
espie
299af1fa5b also defaults to stem-* for build depends, thus simplifying code a bit... 2006-11-19 17:40:35 +00:00
espie
2d34234cec oops typo. make sure lib depends are done 2006-11-19 17:39:15 +00:00
espie
37bfbe6e97 start making a big distinction between lib depends evaluated at build time
and at `run(packaging)' time.
2006-11-19 16:39:41 +00:00
espie
c5bed01d12 also use RUN_DEPENDS${SUBPACKAGE} in the simple parts. 2006-11-19 12:37:55 +00:00
espie
13a468ef7b add an extra level of indirection for dependency lists: _xxx_DEPLIST.
allows us to get rid of some NO_DEPENDS tests later, also allows for
RUN_DEPENDS to become indexed on SUBPACKAGE.

LIB_DEPENDS and WANTLIB are going to need more surgery, since they need
to be checked during build and packaging...
2006-11-19 12:32:53 +00:00
espie
138ff85a86 rename more internal stuff to make it less visually confusing:
_DEPlibs_COOKIE => _DEPWANTLIB_COOKIE
_DEPlibs_COOKIES => _DEPLIBSPECS_COOKIES
2006-11-19 12:11:30 +00:00
espie
cde96256b8 rename some internal variables: _DEPlib_COOKIES -> _DEPLIB_COOKIES.
simplify some
.if defined(A)
.  for i in $A
      ...
.  endfor
.endfor

into

.for i in $A
      ...
.  endfor
.endfor

since empty loops work just fine.
2006-11-19 12:05:10 +00:00
espie
6c3789ee8b start of multi-packages simplification: if MULTI_PACKAGES contains -main,
consider it to be the main package, and do some equal treatment for each
package.

(to do: add subpackage where needed to WANTLIB, RUN_DEPENDS, LIB_DEPENDS
and act on them accordingly).

Also define _DONE_FILES for _fetch-makefile to avoid blocking if it's
not invoked from a higher level target.
2006-11-18 00:15:33 +00:00
espie
b500ceff5d allows one to short-circuit PKG_ARCH=* in the build process
by setting NO_ARCH to MACHINE_ARCH/all
2006-11-17 17:16:16 +00:00
espie
759b3af1dc index PKG_ARCH, PERMIT_PACKAGE_FTP, PERMIT_PACKAGE_CDROM on SUBPACKAGE name. 2006-11-13 14:14:57 +00:00
espie
1ef50b337c avoid ignoring ports while running a `describe' target.
triggered by setting DESCRIBE_TARGET=Yes in bsd.port.subdir.mk
2006-11-13 13:55:10 +00:00
espie
0b6d91b275 move PKG_ARCH after MODULES 2006-11-12 10:52:59 +00:00
espie
0a20eb70a6 Top-level redirectors which recurse for multi-packages should display where
they are. This does unconfuse pkg_mklocatedb
2006-11-11 16:32:12 +00:00
espie
7564143ca2 shorten dependency names, so that regress and run can share.
add print-plist-all, for better introspection (to be used by pkg_mklocatedb).
2006-11-11 16:10:36 +00:00
espie
a2beb10ca4 zap uses of ${SH} 2006-11-09 08:29:47 +00:00
espie
6b60ddeb78 remove the dependency of make-plist on dependent packages: instead, go
directly use `make print-plist' to find these lists in the ports tree.
2006-11-09 08:16:22 +00:00
espie
adbf2219c0 have _internal-regress depend on the _BUILD_COOKIE, so that build is
performed before regress dependencies.
2006-11-05 20:20:28 +00:00
espie
7be15550f4 add regress-dir-depends/full-regress-depends, similar mechanism to
run-depends, only the basic test changes.
2006-11-05 15:46:51 +00:00
espie
aa88a7693f bye, bye SCRIPTS_ENV,
bye, bye SCRIPTDIR
2006-11-03 17:03:28 +00:00
espie
ac93b5a9b2 zap a few non relevant lines, make _ALL_VARIABLES* internal.
Use TMPDIR in pkgpath.mk
2006-11-01 12:41:34 +00:00
espie
d7d4e5e79a generic BULK_DO fragment that can do anything, invoked right before clean.
can be used to run targets that may fail without impacting further stuff,
or to collect stats on anything.
For instance

BULK_DO= mkdir -p ${PORTSDIR}/config/${FULLPKGPATH}; \
	cp -f ${WRKBUILD}/config.{log,status} ${PORTSDIR}/config/${FULLPKGPATH} || true; \
	cd ${PACKAGE_REPOSITORY}/${MACHINE_ARCH}/all && perl ${PORTSDIR}/infrastructure/package/check-modes ${PKGNAMES} || true
2006-10-23 14:33:01 +00:00
espie
936808b05a fix a bunch of issues:
- make sure locks happen when they should, including for lib-depends-check.
- make sure various targets set PACKAGING as they should.
- let BULK=Yes be invoked only from make package.

Fix for the BULK_COOKIE and UPDATE_COOKIE issue. They can no longer depend
on PACKAGE_COOKIES, since this needs to get built with PACKAGING set. So
instead, simply remove the cookies when we create a new package succesfully.

By any kind of reasoning, both bulk and update are `reset' when a new
package appears, so this seems to be the right semantics in most cases.

Thanks for wilfried and nikolay for error spotting. Hoping this will be
what's needed, finally.
2006-10-23 13:42:50 +00:00
espie
533fa4cdbe work-around for infinite recursion... gonna fix bulk stuff for real soon.
thanks nikolay
2006-10-21 12:46:09 +00:00
espie
1b169a7d4b can not depend directly on PACKAGE_COOKIES.
Found out by nikolay, fun to debug...
2006-10-21 12:10:35 +00:00
espie
508d8e05df move SHARED_LIBS_LOG into WRKBUILD 2006-10-21 11:50:48 +00:00
espie
eabc29b2cc define SHARED_LIBS_LOG for libtool (and other stuff) use 2006-10-21 11:20:36 +00:00
sturm
458d2c4d2a don't throw an error in fetch, when no distinfo file exists
but error out in _internal-checksum, when there should be one

ok espie
2006-10-18 16:53:04 +00:00
espie
d1257184f9 special case: if PKGPATH is the LIB_DEPENDS base, then it means we're
building a subpackage, and then we definitely want the `current' stuff,
not the stuff that's already installed.

Allows shared libs updates in MULTI_PACKAGES to proceed gracefully without
having to uninstall stuff.

(we do not do this stuff in general, because in other cases, builds are
`staggered', e.g., a port is built against the existing base, not the stuff
in other WRKDIRS)
2006-10-18 11:09:30 +00:00
espie
713799f4a1 put no-arch into a variable, so that people can override it. 2006-10-18 10:51:39 +00:00
espie
4e4da07c8f let peek-ftp cd ${FULLDISTDIR} first.
Add a message to that effect so that users don't get confused.
(specifically, make itself does not change dirs, so if you do ^Z,
you're not where you think you are...)
2006-10-17 22:32:45 +00:00
espie
2c05ea7a55 protect against further bugs, refuse to build the _PACKAGE_COOKIE if we
end up there with PACKAGING not set.
We do not try to `fix it' ourselves, because PACKAGING not set may have
some non obvious issues, like PKG_ARCH or PERMIT_PACKAGE_* not set correctly
at all.
2006-10-16 10:39:40 +00:00
espie
2c2e81c154 say goodbye for FAKE=no, for real. 2006-10-15 19:29:06 +00:00
espie
b913b285a7 -Q implies -q, anyways. 2006-10-15 09:22:49 +00:00
espie
748da30a4f also mention -n along -q on `print-plist' commands.
I've started documenting it, and having -q do things on its own
is quirky...
2006-10-15 09:20:53 +00:00
espie
1eec9cb87b quick-fix for make install, as reported by stevens@ and naddy@.
Need more thinking about...
2006-10-12 08:45:56 +00:00
espie
ee211dd2c2 cheat a bit: make sure the right variables are used for MULTI_PACKAGES. 2006-10-09 18:11:38 +00:00
espie
984b811337 oops, do not unset SUBPACKAGE
Move BULK_COOKIE for package to the redirector, so that we do not
clean in subpackage cases, but instead wait for all the packages to be built.

Also, introduce FORCE_UPDATE=hard: with signatures, -F installed is
most often not necessary...
2006-10-02 17:26:34 +00:00
espie
a4caf29eed fix FETCH_PACKAGES: create a real target (packages/arch/cache/pkgname.tgz)
and link to it from elsewhere.

Fixes the no-arch case, and makes it ways easier to find out what was
retrieved through the cache.
2006-10-02 09:37:14 +00:00
espie
4906160e3c more fixes for new issues: let the update cookie depend on the `full'
package cookie, so that an update will get all subpackages built.

And a fix for an old issue: let make update proceed to update ALL subpackages,
as seems the most natural. Create a subupdate target if one specifically
wants to update a single package (and use it as dependency in the FORCE_UPDATE
case).
2006-09-27 10:09:34 +00:00
espie
2091ad987e Fix install, as noticed by fgs: just do a partial depend on the package
cookies, and also insist on running make package, which is necessary to
make sure all MULTI_PACKAGES get built.

Repair make clean=packages: make sure all packages get named using the same
scheme as other multi-packages targets (that way, arch-indep subpackages
get cleaned properly)
2006-09-23 09:40:06 +00:00
bernd
4334413aa5 Don't error out if 'unset PACKAGING' returns false. Unbreaks 'make install'.
Noticed by many.
2006-09-21 11:31:33 +00:00
espie
7b016d7ff5 readmes is yet another target that should recurse. 2006-09-19 20:10:40 +00:00
espie
459cc17047 unset PACKAGING before iterating from PACKAGE_COOKIE.
This forces BIN_PACKAGES=Yes always, probably a good thing.
2006-09-19 19:54:14 +00:00
espie
ce2d5a3369 fix update: now that we no longer recurse at the cookie level, we have
to recurse higher.
2006-09-19 11:25:17 +00:00
espie
cf58da0397 typo, found by Mikolaj Kucharski <eth0@o2.pl> 2006-09-18 18:17:30 +00:00
espie
06b500682c fix describe/dump-vars 2006-09-18 08:16:19 +00:00
espie
703a485b6a somewhat big change: zap the package-link/package-unlink stuff, turn these
into real targets.

- now make package will create missing ftp/cdrom links when PERMIT says so.
- PKG_ARCH=* packages get built into packages/no-arch, and linked from
elsewhere.

Everything gets based off PACKAGE_REPOSITORY, PKGREPOSITORYBASE and friends
get ditched.

All `package' targets go through the same routine: iterate through every
subpackage with PACKAGING set.

This includes describe, lib-depends-check, package, dump-vars, install-all,
which will iterate through subdescribe, sublib-depends-check, subpackage,
subdump-vars, and install.
(names are subject to change).

Much simpler logic, plus hey, you get an install-all target !

Might be some minor breakage, most stuff appear to work just fine...
2006-09-17 22:08:19 +00:00
espie
964e69a2f9 more generic protection against multiple locking: instead of one
_MASTER_LOCK, we keep a list of _LOCKS_HELD by one port builder in
an env variable, and we don't relock stuff that's already locked.

This allows us to, e.g., have fake depend on regress without issue
(even though, internally, it's more efficient to use the _internal-*
targets to avoid testing locks).
2006-09-17 19:08:59 +00:00
espie
ffc269451b let fake not touch the WRKDIR, since it's an `install' type target. 2006-08-07 08:57:18 +00:00
espie
2c4e42e413 remove special meaning of fake in dependencies so that it can be used
correctly for regress depends targets.

problem pointed out by nikolay.
2006-08-07 08:47:28 +00:00