Improve the functionality of the PORTS_MODULES knob by adding
LOCALBASE/bin and sbin to PATH, allowing dependencies to be found; adding SRC_BASE and OSVERSION to match the new kernel, and putting the related builds under MAKEOBJDIRPREFIX so that they only need to be built once per kernel. In addition to the PR this includes ideas/contributions from crees and matthew. PR: ports/161452 Submitted by: Garrett Cooper <yanegomi@gmail.com>
This commit is contained in:
parent
56c9c68603
commit
24a5cfd2c7
@ -36,9 +36,30 @@ modules-${target}:
|
||||
.endif
|
||||
.endfor
|
||||
|
||||
# Handle out of tree ports
|
||||
# Handle ports (as defined by the user) that build kernel modules
|
||||
.if !defined(NO_MODULES) && defined(PORTS_MODULES)
|
||||
PORTSMODULESENV=SYSDIR=${SYSDIR}
|
||||
#
|
||||
# The ports tree needs some environment variables defined to match the new kernel
|
||||
#
|
||||
# Ports search for some dependencies in PATH, so add the location of the installed files
|
||||
LOCALBASE?= /usr/local
|
||||
# SRC_BASE is how the ports tree refers to the location of the base source files
|
||||
.if !defined(SRC_BASE)
|
||||
SRC_BASE!= realpath "${SYSDIR:H}/"
|
||||
.endif
|
||||
# OSVERSION is used by some ports to determine build options
|
||||
.if !defined(OSRELDATE)
|
||||
# Definition copied from src/Makefile.inc1
|
||||
OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \
|
||||
${MAKEOBJDIRPREFIX}${SRC_BASE}/include/osreldate.h
|
||||
.endif
|
||||
# Keep the related ports builds in the obj directory so that they are only rebuilt once per kernel build
|
||||
WRKDIRPREFIX?= ${MAKEOBJDIRPREFIX}${SRC_BASE}/sys/${KERNCONF}
|
||||
PORTSMODULESENV=\
|
||||
PATH=${PATH}:${LOCALBASE}/bin:${LOCALBASE}/sbin \
|
||||
SRC_BASE=${SRC_BASE} \
|
||||
OSVERSION=${OSRELDATE} \
|
||||
WRKDIRPREFIX=${WRKDIRPREFIX}
|
||||
.for __target in all install reinstall clean
|
||||
${__target}: ports-${__target}
|
||||
ports-${__target}:
|
||||
|
Loading…
Reference in New Issue
Block a user