1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
PORTNAME= wifi-firmware-${FWDRV}-kmod
PORTVERSION= ${FWDRV_VERSION}
CATEGORIES= net
MASTER_SITES= https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/
MASTER_SITES+= LOCAL/bz:mkbuild
MAINTAINER= bz@FreeBSD.org
COMMENT= Firmware modules for ${FWDRV} ${FLAVOR} WiFi NIC
WWW?= https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/${FWSUBDIR}
LICENSE_NAME?= firmware license (${FWDRV})
LICENSE_FILE?= ${WRKSRC}/${LICENSE}
LICENSE_PERMS?= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
EXTRACT_SUFX=
DISTURL_SUFFIX= ?h=${PORTVERSION}
# Sanity checks
.if !defined(FWDRV) || !defined(FWSUBDIR) || !defined(FWSUBS) || \
!defined(FWDRV_VERSION) || !defined(LICENSE) || \
!defined(DISTFILES_fw) || !defined(DISTFILES_lic)
IGNORE= is a metaport or misconfigured child port; there is nothing to build
.endif
# Split things up in case we decide to make this flavors once we add support for more drivers.
DISTFILES= \
${DISTFILES_fw} \
${DISTFILES_lic} \
${LICENSE}${DISTURL_SUFFIX} \
WHENCE${DISTURL_SUFFIX} \
modules_${FWDRV}fw_${PORTVERSION}.tar.gz:mkbuild
DIST_SUBDIR= linux-firmware/${FWDRV}fw
EXTRACT_ONLY= modules_${FWDRV}fw_${PORTVERSION}.tar.gz
ONLY_FOR_ARCHS= aarch64 amd64 i386
ONLY_FOR_ARCHS_REASON= LinuxKPI driver only available for these architectures
USES= kmod uidfix
post-extract:
@${MV} ${WRKDIR}/${FWDRV}fw ${WRKSRC}
@${CP} ${DISTDIR}/${DIST_SUBDIR}/${LICENSE}${DISTURL_SUFFIX} ${WRKSRC}/${LICENSE}
@${CP} ${DISTDIR}/${DIST_SUBDIR}/WHENCE${DISTURL_SUFFIX} ${WRKSRC}/WHENCE.in
@${AWK} -f ${WRKSRC}/WHENCE.awk ${WRKSRC}/WHENCE.in > ${WRKSRC}/WHENCE
@${MKDIR} ${WRKSRC}/fw
.for _f in ${DISTFILES_fw}
@${MKDIR} ${WRKSRC}/fw/${_f:H}
${CP} ${DISTDIR}/${DIST_SUBDIR}/${_f} ${WRKSRC}/fw/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@}
.endfor
.for _f in ${DISTFILES_lic}
${CP} ${DISTDIR}/${DIST_SUBDIR}/${_f} ${WRKSRC}/fw/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,/,_,g}
.endfor
# Internal hack we should probably upstream.
# Add WHENCE file next to license where it makes sense despite not being a license.
_USES_stage+= 881:post-install-license
post-install-license:
${INSTALL_DATA} ${WRKSRC}/WHENCE ${STAGEDIR}${_LICENSE_DIR}/
.for _f in ${DISTFILES_lic}
${INSTALL_DATA} ${WRKSRC}/fw/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,/,_,g} \
${STAGEDIR}${_LICENSE_DIR}/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,/,_,g}
.endfor
.include <bsd.port.pre.mk>
MAKE_ENV+= FWSRCDIR=${WRKSRC}/fw/${FWSUBDIR}
MAKE_FLAGS+= -C ${WRKSRC}/${FLAVOR}
# Add firmware files.
.for _f in ${DISTFILES_fw}
PLIST_FILES+= ${KMODDIR}/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,.,_,g:S,-,_,g:S,/,_,g}.ko
.endfor
# Record extra license files.
PLIST_FILES+= ${_LICENSE_DIR}/WHENCE
.for _f in ${DISTFILES_lic}
PLIST_FILES+= ${_LICENSE_DIR}/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,/,_,g}
.endfor
.include <bsd.port.post.mk>
|