]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - release/Makefile.ec2
Use svn or svnlite, or ${SVN_CMD} if set, for extracting the SVN branch
[FreeBSD/FreeBSD.git] / release / Makefile.ec2
1 #
2 # $FreeBSD$
3 #
4 #
5 # Makefile for creating an EC2 AMI from a disk image.
6 #
7
8 # Figure out where SVN is
9 .if !defined(SVN_CMD) || empty(SVN_CMD)
10 . for _P in /usr/bin /usr/local/bin
11 .  for _S in svn svnlite
12 .   if exists(${_P}/${_S})
13 SVN_CMD=   ${_P}/${_S}
14 .   endif
15 .  endfor
16 . endfor
17 .endif
18 EC2_SVNBRANCH!= ${SVN_CMD} info --show-item relative-url ${WORLDDIR} | sed -e 's/\^\///'
19 EC2_SVNREV!=    ${SVN_CMD} info --show-item last-changed-revision ${WORLDDIR}
20
21 .if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" || ${BRANCH} == "PRERELEASE"
22 AMINAMESUFFIX!= date +-%Y-%m-%d
23 .endif
24 .if defined(EC2PUBLIC) && !empty(EC2PUBLIC)
25 PUBLISH=        --public
26 .endif
27 .if defined(EC2SNSTOPIC) && !empty(EC2SNSTOPIC)
28 EC2SNSREL=      ${REVISION}-${BRANCH}
29 EC2SNSVERS=     ${EC2_SVNBRANCH}@${EC2_SVNREV}
30 .endif
31
32 CLEANFILES+=            ec2ami
33
34 .if !exists(/usr/local/bin/bsdec2-image-upload)
35 CW_EC2_PORTINSTALL=     cw-ec2-portinstall
36 CLEANFILES+=            ${CW_EC2_PORTINSTALL}
37 .else
38 CW_EC2_PORTINSTALL=
39 .endif
40
41 cw-ec2-portinstall:
42 .if exists(${PORTSDIR}/net/bsdec2-image-upload/Makefile)
43         env - PATH=$$PATH make -C ${PORTSDIR}/net/bsdec2-image-upload BATCH=1 all install clean
44 .else
45 . if !exists(/usr/local/sbin/pkg-static)
46         env ASSUME_ALWAYS_YES=yes pkg bootstrap -y
47 . endif
48         env ASSUME_ALWAYS_YES=yes pkg install -y net/bsdec2-image-upload
49 .endif
50         @touch ${.TARGET}
51
52 ec2ami: cw-ec2 ${CW_EC2_PORTINSTALL}
53 .if !defined(AWSKEYFILE) || !exists(${AWSKEYFILE})
54         @echo "--------------------------------------------------------------"
55         @echo ">>> AWSKEYFILE must point at AWS keys for EC2 AMI creation"
56         @echo "--------------------------------------------------------------"
57         @false
58 .endif
59 .if !defined(AWSREGION)
60         @echo "--------------------------------------------------------------"
61         @echo ">>> AWSREGION must be specified EC2 AMI creation"
62         @echo "--------------------------------------------------------------"
63         @false
64 .endif
65 .if !defined(AWSBUCKET)
66         @echo "--------------------------------------------------------------"
67         @echo ">>> AWSBUCKET must be specified for EC2 AMI creation"
68         @echo "--------------------------------------------------------------"
69         @false
70 .endif
71         /usr/local/bin/bsdec2-image-upload ${PUBLISH} --sriov --ena \
72             ${.OBJDIR}/ec2.raw \
73             "${TYPE} ${REVISION}-${BRANCH}-${TARGET}${AMINAMESUFFIX}" \
74             "${TYPE}/${TARGET} ${EC2_SVNBRANCH}@${EC2_SVNREV}" \
75             ${AWSREGION} ${AWSBUCKET} ${AWSKEYFILE} \
76             ${EC2SNSTOPIC} ${EC2SNSREL} ${EC2SNSVERS}
77         @touch ${.TARGET}