1280928Scperciva# 2280928Scperciva# $FreeBSD: stable/10/release/Makefile.ec2 338323 2018-08-26 05:28:17Z cperciva $ 3280928Scperciva# 4280928Scperciva# 5280928Scperciva# Makefile for creating an EC2 AMI from a disk image. 6280928Scperciva# 7280928Scperciva 8338323Scperciva# Figure out where SVN is 9338323Scperciva.if !defined(SVN_CMD) || empty(SVN_CMD) 10338323Scperciva. for _P in /usr/bin /usr/local/bin 11338323Scperciva. for _S in svn svnlite 12338323Scperciva. if exists(${_P}/${_S}) 13338323ScpercivaSVN_CMD= ${_P}/${_S} 14338323Scperciva. endif 15338323Scperciva. endfor 16338323Scperciva. endfor 17338323Scperciva.endif 18338323Scperciva.if exists(${SRCTOP}/.svn) 19338323Scperciva. if empty(EC2_SVNBRANCH) 20338323Scperciva EC2_SVNBRANCH!= ${SVN_CMD} info --show-item relative-url ${WORLDDIR} 2>/dev/null | sed -e 's/\^\///' 21338323Scperciva. export EC2_SVNBRANCH 22338323Scperciva. endif 23338323Scperciva. if empty(EC2_SVNREV) 24338323Scperciva EC2_SVNREV!= ${SVN_CMD} info --show-item last-changed-revision ${WORLDDIR} 2>/dev/null || true 25338323Scperciva. export EC2_SVNREV 26338323Scperciva. endif 27338323Scperciva.else 28338323ScpercivaEC2_SVNBRANCH= unknown 29338323ScpercivaEC2_SVNREV= unknown 30338323Scperciva.endif 31338323Scperciva 32284813Sgjb.if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" || ${BRANCH} == "PRERELEASE" 33285049SgjbAMINAMESUFFIX!= date +-%Y-%m-%d 34280928Scperciva.endif 35338323Scperciva.if defined(EC2PUBLIC) && !empty(EC2PUBLIC) 36280928ScpercivaPUBLISH= --public 37280928Scperciva.endif 38338323Scperciva.if defined(EC2PUBLICSNAP) && !empty(EC2PUBLICSNAP) 39338323ScpercivaPUBLICSNAP= --publicsnap 40338323Scperciva.endif 41338323Scperciva.if defined(EC2SNSTOPIC) && !empty(EC2SNSTOPIC) 42338323ScpercivaEC2SNSREL= ${REVISION}-${BRANCH} 43338323ScpercivaEC2SNSVERS= ${EC2_SVNBRANCH}@${EC2_SVNREV} 44338323Scperciva.endif 45280928Scperciva 46282618SgjbCLEANFILES+= ec2ami 47282618Sgjb 48282618Sgjb.if !exists(/usr/local/bin/bsdec2-image-upload) 49282618SgjbCW_EC2_PORTINSTALL= cw-ec2-portinstall 50282618SgjbCLEANFILES+= ${CW_EC2_PORTINSTALL} 51282618Sgjb.else 52282618SgjbCW_EC2_PORTINSTALL= 53282618Sgjb.endif 54282618Sgjb 55282263Sgjbcw-ec2-portinstall: 56282263Sgjb.if exists(${PORTSDIR}/net/bsdec2-image-upload/Makefile) 57282263Sgjb make -C ${PORTSDIR}/net/bsdec2-image-upload BATCH=1 all install clean 58282263Sgjb.else 59282263Sgjb. if !exists(/usr/local/sbin/pkg-static) 60282263Sgjb env ASSUME_ALWAYS_YES=yes pkg bootstrap -y 61282263Sgjb. endif 62282263Sgjb env ASSUME_ALWAYS_YES=yes pkg install -y net/bsdec2-image-upload 63280928Scperciva.endif 64282618Sgjb @touch ${.TARGET} 65282263Sgjb 66282618Sgjbec2ami: cw-ec2 ${CW_EC2_PORTINSTALL} 67280928Scperciva.if !defined(AWSKEYFILE) || !exists(${AWSKEYFILE}) 68280928Scperciva @echo "--------------------------------------------------------------" 69280928Scperciva @echo ">>> AWSKEYFILE must point at AWS keys for EC2 AMI creation" 70280928Scperciva @echo "--------------------------------------------------------------" 71280928Scperciva @false 72280928Scperciva.endif 73280928Scperciva.if !defined(AWSREGION) 74280928Scperciva @echo "--------------------------------------------------------------" 75280928Scperciva @echo ">>> AWSREGION must be specified EC2 AMI creation" 76280928Scperciva @echo "--------------------------------------------------------------" 77280928Scperciva @false 78280928Scperciva.endif 79280928Scperciva.if !defined(AWSBUCKET) 80280928Scperciva @echo "--------------------------------------------------------------" 81280928Scperciva @echo ">>> AWSBUCKET must be specified for EC2 AMI creation" 82280928Scperciva @echo "--------------------------------------------------------------" 83280928Scperciva @false 84280928Scperciva.endif 85338323Scperciva /usr/local/bin/bsdec2-image-upload ${PUBLISH} ${PUBLICSNAP} \ 86284005Sgjb ${.OBJDIR}/ec2.raw \ 87284005Sgjb "${TYPE} ${REVISION}-${BRANCH}-${TARGET}${AMINAMESUFFIX}" \ 88338323Scperciva "${TYPE}/${TARGET} ${EC2_SVNBRANCH}@${EC2_SVNREV}" \ 89338323Scperciva ${AWSREGION} ${AWSBUCKET} ${AWSKEYFILE} \ 90338323Scperciva ${EC2SNSTOPIC} ${EC2SNSREL} ${EC2SNSVERS} 91282618Sgjb @touch ${.TARGET} 92