Proper way to detect kernel / userland sources?
amdmi3 at amdmi3.ru
Tue Nov 9 21:13:27 UTC 2010
* Lev Serebryakov (lev at FreeBSD.org) wrote:
> I'm preparing port which depends both on kernel source (it contains
> kernel module) and userland sources (it needs GEOM sources).
> I see, that ports with kernel modules check for hardcoded
> "/usr/src/sys/Makefile". But it doesn't look good: sources could be
> perfectly valid, but placed in other directory!
> Is here any standerd variable which should be used instead of
> hardcoded "/usr/src"?
Oh, that reminded me. For now, there's no other way than to hardcode
/usr/src (however some ports make that overridable). I've though
of that too and made a patch that has been lying here for some time
without purpose. As this topic is risen, I'd like to discuss it,
possibly improve and push into Mk.
- Introduces SRC_BASE which defaults to /usr/src and may be used in
ports to access system sources
- Introduces USE_SRC (to be set in ports that require kernel source)
that checks whether system sources are installed and whether their
version corresponds to system version (overridable)
- Corrects a typo
While here, I'm worried about the fact that /usr/src is used as a
possible source for OSVERSION. Currently, in presence of freebsd-update,
it's really likely that system sources are out-of sync with installed
system, so getting OSVERSION from /usr/src should likely be removed.
osreldate is enough fallback if /usr/include/sys/param.h is absent
for some reason.
Dmitry Marakasov . 55B5 0596 FF1E 8D84 5F56 9510 D35A 80DD F9D2 F77D
amdmi3 at amdmi3.ru ..: jabber: amdmi3 at jabber.ru http://www.amdmi3.ru
More information about the freebsd-ports