Proper way to detect kernel / userland sources?

Anonymous swell.k at gmail.com
Tue Nov 9 22:08:49 UTC 2010


Dmitry Marakasov <amdmi3 at amdmi3.ru> writes:

> * 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.
>
> http://people.freebsd.org/~amdmi3/USE_SRC.patch
>
> - Introduces SRC_BASE which defaults to /usr/src and may be used in
>   ports to access system sources

Please, also define and export SYSDIR because that what is used by bsd.kmod.mk.
And some ports only require kernel sources. I don't think there are many
ports that need userland sources.

  SRC_BASE ?= /usr/src
  SYSDIR ?= ${SRC_BASE}/sys
  MAKE_ENV += SYSDIR="${SYSDIR}"

> - 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


More information about the freebsd-ports mailing list