# Created by: Andrzej Tobola , Kamil Czekirda # $FreeBSD$ # Date created: 2015-05-28 PORTNAME= ipxe PORTVERSION= 1.0.0+ CATEGORIES= net MASTER_SITES= http://ipxe.pl/ MAINTAINER= kczekirda@freebsd.org COMMENT= Open Source (GPL) implementation of the PXE client and bootloader LICENSE= GPLv2 ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= not yet ported to anything other than amd64/i386 BUILD_DEPENDS+= mkisofs:${PORTSDIR}/sysutils/cdrtools \ syslinux:${PORTSDIR}/sysutils/syslinux \ gcc48:${PORTSDIR}/lang/gcc48 MAKE_JOBS_SAFE= yes USES= gmake USE_GCC= any WRKSRC= ${WRKDIR}/${DISTNAME}/src OPTIONS_DEFINE= NET_PROTO_IPV6 NET_PROTO_FCOE DOWNLOAD_PROTO_HTTPS \ DOWNLOAD_PROTO_FTP DOWNLOAD_PROTO_NFS \ IMAGE_ELF IMAGE_MULTIBOOT IMAGE_PXE \ IMAGE_BZIMAGE IMAGE_COMBOOT IMAGE_EFI \ CMD_NSLOOKUP CMD_DIGEST CMD_VLAN CMD_PXE CMD_REBOOT \ CMD_POWEROFF CMD_IMAGE_TRUST CMD_PCI CMD_PING CMD_IPSTAT \ CONF_CPUID_SETTINGS CONF_MEMMAP_SETTINGS \ CON_PCBIOS CON_SERIAL CON_SYSLOG CON_SYSLOGS CON_VMWARE \ CON_DEBUGCON CON_VESAFB \ #DEBUG_DESC= with DEBUG=$$DEBUG e.g =dhcp,tcp #VIRTUALBOX_DESC= build VirtualBox PXE-ROM images #VMXNET3_DESC= build vmxnet3 ROM # Network protocols: NET_PROTO_IPV6_DESC= IPv6 protocol NET_PROTO_FCOE_DESC= Fibre Channel over Ethernet protocol # Download protocols DOWNLOAD_PROTO_HTTPS_DESC= Secure Hypertext Transfer Protocol DOWNLOAD_PROTO_FTP_DESC= File Transfer Protocol DOWNLOAD_PROTO_NFS_DESC= Network File System Protocol # Image types IMAGE_ELF_DESC= ELF image support IMAGE_MULTIBOOT_DESC= MultiBoot image support IMAGE_PXE_DESC= PXE image support IMAGE_BZIMAGE_DESC= Linux bzImage image support IMAGE_COMBOOT_DESC= SYSLINUX COMBOOT image support IMAGE_EFI_DESC= EFI image support # Command-line commands to include CMD_NSLOOKUP_DESC= DNS resolving command CMD_DIGEST_DESC= Image crypto digest commands CMD_VLAN_DESC= VLAN commands CMD_PXE_DESC= PXE commands CMD_REBOOT_DESC= Reboot command CMD_POWEROFF_DESC= Power off command CMD_IMAGE_TRUST_DESC= Image trust management commands CMD_PCI_DESC= PCI commands CMD_PING_DESC= Ping command CMD_IPSTAT_DESC= IP statistics commands # Configuration settings CONF_CPUID_SETTINGS_DESC= CPUID settings CONF_MEMMAP_SETTINGS_DESC= Memory map settings #Console configuration CON_PCBIOS_DESC= Default BIOS console CON_SERIAL_DESC= Serial port CON_SYSLOG_DESC= Syslog console CON_SYSLOGS_DESC= Encrypted syslog console CON_VMWARE_DESC= VMware logfile console CON_DEBUGCON_DESC= Debug port console CON_VESAFB_DESC= VESA framebuffer console .include .if ${ARCH} == "amd64" MAKE_ARGS+= ARCH=i386 .endif .if ${PORT_OPTIONS:MIMAGE_ELF} DEFINESGENERAL+= IMAGE_ELF .endif .if ${PORT_OPTIONS:MIMAGE_MULTIBOOT} DEFINESGENERAL+= IMAGE_MULTIBOOT .endif .if ${PORT_OPTIONS:MIMAGE_PXE} DEFINESGENERAL+= IMAGE_PXE .endif .if ${PORT_OPTIONS:MIMAGE_BZIMAGE} DEFINESGENERAL+= IMAGE_BZIMAGE .endif .if ${PORT_OPTIONS:MIMAGE_COMBOOT} DEFINESGENERAL+= IMAGE_COMBOOT .endif .if ${PORT_OPTIONS:MIMAGE_EFI} DEFINESGENERAL+= IMAGE_EFI .endif .if ${PORT_OPTIONS:MCMD_NSLOOKUP} DEFINESGENERAL+= NSLOOKUP_CMD .endif .if ${PORT_OPTIONS:MCMD_DIGEST} DEFINESGENERAL+= DIGEST_CMD .endif .if ${PORT_OPTIONS:MCMD_VLAN} DEFINESGENERAL+= VLAN_CMD .endif .if ${PORT_OPTIONS:MCMD_PXE} DEFINESGENERAL+= PXE_CMD .endif .if ${PORT_OPTIONS:MCMD_REBOOT} DEFINESGENERAL+= REBOOT_CMD .endif .if ${PORT_OPTIONS:MCMD_POWEROFF} DEFINESGENERAL+= POWEROFF_CMD .endif .if ${PORT_OPTIONS:MCMD_IMAGE_TRUST} DEFINESGENERAL+= IMAGE_TRUST_CMD .endif .if ${PORT_OPTIONS:MCMD_PCI} DEFINESGENERAL+= PCI_CMD .endif .if ${PORT_OPTIONS:MCMD_PING} DEFINESGENERAL+= PING_CMD .endif .if ${PORT_OPTIONS:MCMD_IPSTAT} DEFINESGENERAL+= IPSTAT_CMD .endif .if ${PORT_OPTIONS:MCONF_CPUID_SETTINGS} DEFINESSETTINGS+= CPUID_SETTINGS .endif .if ${PORT_OPTIONS:MCONF_MEMMAP_SETTINGS} DEFINESSETTINGS+= MEMMAP_SETTINGS .endif .if ${PORT_OPTIONS:MCON_PCBIOS} DEFINESCONSOLE+= CONSOLE_PCBIOS .endif .if ${PORT_OPTIONS:MCON_SERIAL} DEFINESCONSOLE+= CONSOLE_SERIAL .endif .if ${PORT_OPTIONS:MCON_SYSLOG} DEFINESCONSOLE+= CONSOLE_SYSLOG .endif .if ${PORT_OPTIONS:MCON_SYSLOGS} DEFINESCONSOLE+= CONSOLE_SYSLOG .endif .if ${PORT_OPTIONS:MCON_VMWARE} DEFINESCONSOLE+= CONSOLE_VMWARE .endif .if ${PORT_OPTIONS:MCON_DEBUGCON} DEFINESCONSOLE+= CONSOLE_DEBUGCON .endif .if ${PORT_OPTIONS:MCON_VESAFB} DEFINESCONSOLE+= CONSOLE_VESAFB .endif .if ${PORT_OPTIONS:MNET_PROTO_IPV6} UNDEFINES+= NET_PROTO_IPV6 .endif .if ${PORT_OPTIONS:MNET_PROTO_FCOE} UNDEFINES+= NET_PROTO_FCOE .endif .if ${PORT_OPTIONS:MDOWNLOAD_PROTO_HTTPS} UNDEFINES+= DOWNLOAD_PROTO_HTTPS .endif .if ${PORT_OPTIONS:MDOWNLOAD_PROTO_FTP} UNDEFINES+= DOWNLOAD_PROTO_FTP .endif .if ${PORT_OPTIONS:MDOWNLOAD_PROTO_NFS} UNDEFINES+= DOWNLOAD_PROTO_NFS .endif EMBEDDED_SCR= ${FILESDIR}/embedded.ipxe MAKE_ARGS+= EMBEDDED_IMAGE=${EMBEDED_SCR} BINLIST= bin/undionly.kpxe bin/ipxe.iso bin/ipxe.usb ALL_TARGET?= ${BINLIST} post-configure: ${CP} -p ${WRKSRC}/config/general.h ${WRKSRC}/config/general.h.orig for x in ${DEFINESGENERAL} ; do \ ${REINPLACE_CMD} -E -e "s|.*([[:space:]]$$x[[:space:]].*)|#define\1|" ${WRKSRC}/config/general.h ;\ done for x in ${UNDEFINES} ; do \ ${REINPLACE_CMD} -E -e "s|.*([[:space:]]$$x[[:space:]].*)|#define\1|" ${WRKSRC}/config/general.h ;\ done ${CP} -p ${WRKSRC}/config/settings.h ${WRKSRC}/config/settings.h.orig for x in ${DEFINESSETTINGS} ; do \ ${REINPLACE_CMD} -E -e "s|.*([[:space:]]$$x[[:space:]].*)|#define\1|" ${WRKSRC}/config/settings.h ;\ done ${CP} -p ${WRKSRC}/config/console.h ${WRKSRC}/config/console.h.orig for x in ${DEFINESCONSOLE} ; do \ ${REINPLACE_CMD} -E -e "s|.*([[:space:]]$$x[[:space:]].*)|#define\1|" ${WRKSRC}/config/console.h ;\ done -@${DIFF} ${WRKSRC}/config/general.h.orig ${WRKSRC}/config/general.h -@${DIFF} ${WRKSRC}/config/settings.h.orig ${WRKSRC}/config/settings.h -@${DIFF} ${WRKSRC}/config/console.h.orig ${WRKSRC}/config/console.h #INSTALL_DATA= install -m 444 do-install: ${MKDIR} ${STAGEDIR}${DATADIR} cd ${WRKSRC} && ${INSTALL_DATA} ${BINLIST} ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${EMBEDDED_SCR} ${STAGEDIR}${DATADIR} ${LN} -sfh ${PORTVERSION} ${STAGEDIR}${DATADIR}/VER .include