Makefile.vm revision 273823
1#
2# $FreeBSD: projects/release-vmimage/release/Makefile.vm 273823 2014-10-29 14:57:30Z gjb $
3#
4#
5# Makefile for building virtual machine and cloud provider disk images.
6#
7
8VMTARGETS=	vm-base vm-image
9VMFORMATS?=	vhd vmdk qcow2 raw
10VMSIZE?=	20G
11VMBASE?=	vm
12AZURECONF?=	${.CURDIR}/tools/azure.conf
13
14.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
15CLEANDIRS+=	${VMTARGETS}
16CLEANFILES+=	${VMBASE}.img
17. for FORMAT in ${VMFORMATS}
18CLEANFILES+=	${VMBASE}.${FORMAT}
19. endfor
20.endif
21
22.if exists(${.CURDIR}/${TARGET}/mk-azure.sh)
23CLEANFILES+=	${OSRELEASE}.vhd \
24		${OSRELEASE}.vhd.raw \
25		azure.img
26CLEANDIRS+=	vm-azure
27.endif
28
29vm-base:
30.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
31. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh)
32	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
33		${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
34		${VMBASE}.img ${WORLDDIR} ${.OBJDIR}/${.TARGET} ${VMSIZE}
35. endif
36.endif
37	touch ${.TARGET}
38
39vm-image: vm-base
40.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
41. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh)
42.  for FORMAT in ${VMFORMATS}
43	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
44		${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
45		${VMBASE}.img ${FORMAT} ${VMBASE}.${FORMAT}
46.  endfor
47. endif
48.endif
49	touch ${.TARGET}
50
51vm-azure:
52.if exists(${.CURDIR}/${TARGET}/mk-azure.sh)
53	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} AZURECONF=${AZURECONF} \
54		${.CURDIR}/${TARGET}/mk-azure.sh ${.TARGET} azure.img \
55		${WORLDDIR} ${.TARGET} ${VMSIZE} ${OSRELEASE}.vhd
56.endif
57	touch ${.TARGET}
58