1280928Scperciva# 2280928Scperciva# $FreeBSD: stable/11/release/Makefile.ec2 346309 2019-04-17 12:34:37Z cperciva $ 3280928Scperciva# 4280928Scperciva# 5280928Scperciva# Makefile for creating an EC2 AMI from a disk image. 6280928Scperciva# 7280928Scperciva 8338322Scperciva# Figure out where SVN is 9338322Scperciva.if !defined(SVN_CMD) || empty(SVN_CMD) 10338322Scperciva. for _P in /usr/bin /usr/local/bin 11338322Scperciva. for _S in svn svnlite 12338322Scperciva. if exists(${_P}/${_S}) 13338322ScpercivaSVN_CMD= ${_P}/${_S} 14338322Scperciva. endif 15338322Scperciva. endfor 16338322Scperciva. endfor 17338322Scperciva.endif 18338322Scperciva.if exists(${SRCTOP}/.svn) 19338322Scperciva. if empty(EC2_SVNBRANCH) 20338322Scperciva EC2_SVNBRANCH!= ${SVN_CMD} info --show-item relative-url ${WORLDDIR} 2>/dev/null | sed -e 's/\^\///' 21338322Scperciva. export EC2_SVNBRANCH 22338322Scperciva. endif 23338322Scperciva. if empty(EC2_SVNREV) 24338322Scperciva EC2_SVNREV!= ${SVN_CMD} info --show-item last-changed-revision ${WORLDDIR} 2>/dev/null || true 25338322Scperciva. export EC2_SVNREV 26338322Scperciva. endif 27338322Scperciva.else 28338322ScpercivaEC2_SVNBRANCH= unknown 29338322ScpercivaEC2_SVNREV= unknown 30338322Scperciva.endif 31338322Scperciva 32284811Sgjb.if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" || ${BRANCH} == "PRERELEASE" 33285005SgjbAMINAMESUFFIX!= date +-%Y-%m-%d 34280928Scperciva.endif 35338322Scperciva.if defined(EC2PUBLIC) && !empty(EC2PUBLIC) 36280928ScpercivaPUBLISH= --public 37280928Scperciva.endif 38338322Scperciva.if defined(EC2PUBLICSNAP) && !empty(EC2PUBLICSNAP) 39338322ScpercivaPUBLICSNAP= --publicsnap 40338322Scperciva.endif 41338322Scperciva.if defined(EC2SNSTOPIC) && !empty(EC2SNSTOPIC) 42338322ScpercivaEC2SNSREL= ${REVISION}-${BRANCH} 43338322ScpercivaEC2SNSVERS= ${EC2_SVNBRANCH}@${EC2_SVNREV} 44338322Scperciva.endif 45346309Scperciva.if ${TARGET_ARCH} != "amd64" 46346309ScpercivaEC2ARCH= --${TARGET_ARCH:S/aarch64/arm64/} 47346309Scperciva.endif 48280928Scperciva 49282419SgjbCLEANFILES+= ec2ami 50282419Sgjb 51282419Sgjb.if !exists(/usr/local/bin/bsdec2-image-upload) 52282419SgjbCW_EC2_PORTINSTALL= cw-ec2-portinstall 53282419SgjbCLEANFILES+= ${CW_EC2_PORTINSTALL} 54282419Sgjb.else 55282419SgjbCW_EC2_PORTINSTALL= 56282419Sgjb.endif 57282419Sgjb 58282116Sgjbcw-ec2-portinstall: 59282116Sgjb.if exists(${PORTSDIR}/net/bsdec2-image-upload/Makefile) 60301716Scperciva env - PATH=$$PATH make -C ${PORTSDIR}/net/bsdec2-image-upload BATCH=1 all install clean 61282116Sgjb.else 62282116Sgjb. if !exists(/usr/local/sbin/pkg-static) 63282116Sgjb env ASSUME_ALWAYS_YES=yes pkg bootstrap -y 64282116Sgjb. endif 65282116Sgjb env ASSUME_ALWAYS_YES=yes pkg install -y net/bsdec2-image-upload 66280928Scperciva.endif 67282419Sgjb @touch ${.TARGET} 68282116Sgjb 69282419Sgjbec2ami: cw-ec2 ${CW_EC2_PORTINSTALL} 70280928Scperciva.if !defined(AWSKEYFILE) || !exists(${AWSKEYFILE}) 71280928Scperciva @echo "--------------------------------------------------------------" 72280928Scperciva @echo ">>> AWSKEYFILE must point at AWS keys for EC2 AMI creation" 73280928Scperciva @echo "--------------------------------------------------------------" 74280928Scperciva @false 75280928Scperciva.endif 76280928Scperciva.if !defined(AWSREGION) 77280928Scperciva @echo "--------------------------------------------------------------" 78280928Scperciva @echo ">>> AWSREGION must be specified EC2 AMI creation" 79280928Scperciva @echo "--------------------------------------------------------------" 80280928Scperciva @false 81280928Scperciva.endif 82280928Scperciva.if !defined(AWSBUCKET) 83280928Scperciva @echo "--------------------------------------------------------------" 84280928Scperciva @echo ">>> AWSBUCKET must be specified for EC2 AMI creation" 85280928Scperciva @echo "--------------------------------------------------------------" 86280928Scperciva @false 87280928Scperciva.endif 88346309Scperciva /usr/local/bin/bsdec2-image-upload ${PUBLISH} ${PUBLICSNAP} \ 89346309Scperciva ${EC2ARCH} --sriov --ena \ 90283919Sgjb ${.OBJDIR}/ec2.raw \ 91283919Sgjb "${TYPE} ${REVISION}-${BRANCH}-${TARGET}${AMINAMESUFFIX}" \ 92338322Scperciva "${TYPE}/${TARGET} ${EC2_SVNBRANCH}@${EC2_SVNREV}" \ 93338322Scperciva ${AWSREGION} ${AWSBUCKET} ${AWSKEYFILE} \ 94338322Scperciva ${EC2SNSTOPIC} ${EC2SNSREL} ${EC2SNSVERS} 95282419Sgjb @touch ${.TARGET} 96