| 1 |
# Created by: Guerkan Karaman <gk.freebsd@googlemail.com> |
| 2 |
# $FreeBSD$ |
| 3 |
|
| 4 |
# With helpful hints from net/gpxe |
| 5 |
|
| 6 |
PORTNAME= ipxe |
| 7 |
PORTVERSION= 20161208 |
| 8 |
PORTREVISION= 2 |
| 9 |
CATEGORIES= net |
| 10 |
|
| 11 |
MAINTAINER= tobik@FreeBSD.org |
| 12 |
COMMENT= Open source network boot firmware |
| 13 |
|
| 14 |
LICENSE= GPLv2 |
| 15 |
|
| 16 |
BUILD_DEPENDS= ${LOCALBASE}/share/syslinux/bios/core/isolinux.bin:sysutils/syslinux \ |
| 17 |
bash:shells/bash \ |
| 18 |
mkisofs:sysutils/cdrtools |
| 19 |
|
| 20 |
USES= gmake perl5 shebangfix |
| 21 |
USE_BINUTILS= yes |
| 22 |
USE_GCC= yes |
| 23 |
USE_GITHUB= yes |
| 24 |
GH_PROJECT= ipxe |
| 25 |
# iPXE hasn't had a release since 2010. |
| 26 |
# See iPXE's FAQ at http://ipxe.org/faq |
| 27 |
# |
| 28 |
# Q: Which version of iPXE should I use? |
| 29 |
# |
| 30 |
# A: iPXE uses a rolling release model, in which every commit is intended |
| 31 |
# to be production-ready. You should always use the latest code. |
| 32 |
# |
| 33 |
GH_TAGNAME= 26050fd4c87c50503d5bd573b2ec91703676e211 |
| 34 |
USE_PERL5= build |
| 35 |
|
| 36 |
MAKE_ARGS= PERL=${PERL} \ |
| 37 |
CC=${CC} \ |
| 38 |
HOST_CC=${CC} \ |
| 39 |
AS=${AS} \ |
| 40 |
LD=${LD} \ |
| 41 |
SIZE=${SIZE} \ |
| 42 |
AR=${AR} \ |
| 43 |
RANLIB=${RANLIB} \ |
| 44 |
OBJCOPY=${OBJCOPY} \ |
| 45 |
NM=${NM} \ |
| 46 |
OBJDUMP=${OBJDUMP} \ |
| 47 |
NO_WERROR=1 \ |
| 48 |
V=1 \ |
| 49 |
ISOLINUX_BIN="${WRKSRC}/isolinux.bin" \ |
| 50 |
LDLINUX_C32="${LOCALBASE}/share/syslinux/bios/com32/elflink/ldlinux/ldlinux.c32" |
| 51 |
WRKSRC_SUBDIR= src |
| 52 |
SHEBANG_FILES= util/geniso util/gensdsk |
| 53 |
|
| 54 |
PLIST_FILES= %%DATADIR%%/ipxe.dsk \ |
| 55 |
%%DATADIR%%/ipxe.usb \ |
| 56 |
%%DATADIR%%/ipxe.iso \ |
| 57 |
%%DATADIR%%/ipxe.pxe \ |
| 58 |
%%DATADIR%%/ipxe.lkrn |
| 59 |
|
| 60 |
SUB_FILES= pkg-message |
| 61 |
|
| 62 |
.include <bsd.port.options.mk> |
| 63 |
|
| 64 |
ONLY_FOR_ARCHS= amd64 i386 |
| 65 |
ONLY_FOR_ARCHS_REASON= not yet ported to anything other than amd64/i386 |
| 66 |
|
| 67 |
.if ${ARCH} == "amd64" |
| 68 |
MAKE_ARGS+= ARCH=i386 |
| 69 |
.endif |
| 70 |
|
| 71 |
IPXE_EMBED?= # Allows embedding of iPXE start scripts |
| 72 |
.if ${IPXE_EMBED} != "" |
| 73 |
MAKE_ARGS+= EMBED="${IPXE_EMBED}" |
| 74 |
.endif |
| 75 |
|
| 76 |
IPXE_TRUST?= # Path to the root certificates iPXE trusts |
| 77 |
.if ${IPXE_TRUST} != "" |
| 78 |
MAKE_ARGS+= TRUST="${IPXE_TRUST}" |
| 79 |
.endif |
| 80 |
|
| 81 |
pre-everything:: |
| 82 |
@${ECHO_MSG} "To build iPXE with an embedded script (path must be absolute):" |
| 83 |
@${ECHO_MSG} "make IPXE_EMBED=/path/to/ipxe/script install clean" |
| 84 |
@${ECHO_MSG} |
| 85 |
@${ECHO_MSG} "To build iPXE with new trusted root certificates" |
| 86 |
@${ECHO_MSG} "(see http://ipxe.org/crypto for more information):" |
| 87 |
@${ECHO_MSG} "make IPXE_TRUST=/path/to/ca1.crt,/path/to/ca2.crt" |
| 88 |
|
| 89 |
pre-build: |
| 90 |
# ISO creation fails if isolinux.bin is read only |
| 91 |
${INSTALL} -m 644 ${LOCALBASE}/share/syslinux/bios/core/isolinux.bin ${WRKSRC}/isolinux.bin |
| 92 |
|
| 93 |
do-install: |
| 94 |
@${MKDIR} ${STAGEDIR}${DATADIR} |
| 95 |
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.dsk ${STAGEDIR}${DATADIR} |
| 96 |
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.usb ${STAGEDIR}${DATADIR} |
| 97 |
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.iso ${STAGEDIR}${DATADIR} |
| 98 |
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.pxe ${STAGEDIR}${DATADIR} |
| 99 |
${INSTALL_DATA} ${WRKSRC}/bin/ipxe.lkrn ${STAGEDIR}${DATADIR} |
| 100 |
|
| 101 |
.include <bsd.port.mk> |