Date: Sun, 25 Aug 1996 13:57:15 +1000 From: Bruce Evans <bde@zeta.org.au> To: current@freebsd.org Subject: DEPEND and/or NO_DEPEND broken Message-ID: <199608250357.NAA19669@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
bsd.prog.mk and bsd.prog.mk now have ${DEPEND} in the dependencies for the `all' target, but ${DEPEND} is usually null at this point. (Dependencies are evaluated as they are read, using the current values of variables. This is why the `depend' target should not be part of the `all' target.) ${DEPEND} can be set to `depend' in /etc/make.conf or on the command line. Setting it on the command line is more work than just specifying the `depend' target on the command line. The NO_DEPEND ifdef in bsd.port.mk is completely useless. It sets ${DEPEND} after ${DEPEND} has been completely used. The caching effect of making dependencies at the "same" time as objects could be obtained by changing (simplifying) the SUBDIR processing to pass all targets to the sub-makes. (Run `make -n depend all install' in /usr/src to see the target-first order for the current version.) Then `make depend all' would work like the DEPEND changes were supposed to work - not completely correctly, because new dependencies might be overlooked, but good enough in most cases. The SUBDIR processing could even be changed to special- case the `depend' target so that `make depend all' is split into `make depend; make all' for subdirectories. This would be dangerous because people might depend on it and it wouldn't work in general (in particular, in leaf directories). The SUBDIR processing might need to special-case only the `depend' target so that the other targets don't get messed up. OTOH, `make all install' would probably benefit from it too. E.g., libraries would be installed earlier so programs would be linked to up to date versions of the libraries. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608250357.NAA19669>