xref: /freebsd/release/Makefile.vm (revision 26bb2a6066639c76eeee9b32509dae17250d69da)
16513e474SGlen Barber#
26513e474SGlen Barber# $FreeBSD$
36513e474SGlen Barber#
46513e474SGlen Barber#
56513e474SGlen Barber# Makefile for building virtual machine and cloud provider disk images.
66513e474SGlen Barber#
76513e474SGlen Barber
81e7c1f17SGlen BarberVMTARGETS=	vm-image
96513e474SGlen BarberVMFORMATS?=	vhd vmdk qcow2 raw
106513e474SGlen BarberVMSIZE?=	20G
116513e474SGlen BarberVMBASE?=	vm
12d08ce983SGlen Barber
13573e7ccaSGlen BarberCLOUDWARE?=	AZURE \
14573e7ccaSGlen Barber		OPENSTACK
15f27438c7SGlen BarberAZURE_FORMAT=	vhdf
16573e7ccaSGlen BarberOPENSTACK_FORMAT=qcow2
17d08ce983SGlen Barber
18d08ce983SGlen Barber.if defined(WITH_CLOUDWARE) && !empty(WITH_CLOUDWARE) && !empty(CLOUDWARE)
19d08ce983SGlen Barber. for _CW in ${CLOUDWARE}
20d08ce983SGlen BarberCLOUDTARGETS+=	vm-${_CW:tl}
21d08ce983SGlen BarberCLEANDIRS+=	vm-${_CW:tl}
22d08ce983SGlen BarberCLEANFILES+=	${_CW:tl}.img \
23b6dd8a62SGlen Barber		vm-${_CW:tl} \
24d08ce983SGlen Barber		${_CW:tl}.${${_CW:tu}_FORMAT} \
25d08ce983SGlen Barber		${_CW:tl}.${${_CW:tu}_FORMAT}.raw
26f27438c7SGlen Barber${_CW:tu}IMAGE=	${_CW:tl}.${${_CW:tu}_FORMAT}
27d08ce983SGlen Barber.  if exists(${.CURDIR}/tools/${_CW:tl}.conf) && !defined(${_CW:tu}CONF)
28d08ce983SGlen Barber${_CW:tu}CONF?=	${.CURDIR}/tools/${_CW:tl}.conf
29d08ce983SGlen Barber.  endif
30d08ce983SGlen Barber. endfor
31d08ce983SGlen Barber.endif
326513e474SGlen Barber
336513e474SGlen Barber.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
346513e474SGlen BarberCLEANDIRS+=	${VMTARGETS}
356513e474SGlen BarberCLEANFILES+=	${VMBASE}.img
366513e474SGlen Barber. for FORMAT in ${VMFORMATS}
376513e474SGlen BarberCLEANFILES+=	${VMBASE}.${FORMAT}
386513e474SGlen Barber. endfor
396513e474SGlen Barber.endif
406513e474SGlen Barber
411e7c1f17SGlen Barbervm-base:	vm-image
426513e474SGlen Barber
431e7c1f17SGlen Barbervm-image:
446513e474SGlen Barber.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
456513e474SGlen Barber. for FORMAT in ${VMFORMATS}
461c34bf95SGlen Barber	mkdir -p ${.OBJDIR}/${.TARGET}
476513e474SGlen Barber	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
48*26bb2a60SGlen Barber		${.CURDIR}/scripts/mk-vmimage.sh \
491c34bf95SGlen Barber		-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} \
50*26bb2a60SGlen Barber		-i ${.OBJDIR}/${VMBASE}.img -s ${VMSIZE} -f ${FORMAT} \
51*26bb2a60SGlen Barber		-S ${WORLDDIR} -o ${.OBJDIR}/${VMBASE}.${FORMAT}
526513e474SGlen Barber. endfor
536513e474SGlen Barber.endif
546513e474SGlen Barber	touch ${.TARGET}
556513e474SGlen Barber
567d2ef961SGlen Barbervm-cloudware:	${CLOUDTARGETS}
577d2ef961SGlen Barber
586513e474SGlen Barbervm-azure:
591c34bf95SGlen Barber	mkdir -p ${.OBJDIR}/${.TARGET}
601e7c1f17SGlen Barber	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
61*26bb2a60SGlen Barber		${.CURDIR}/scripts/mk-vmimage.sh \
621c34bf95SGlen Barber		-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} \
63*26bb2a60SGlen Barber		-i ${.OBJDIR}/azure.img -s ${VMSIZE} -f ${AZURE_FORMAT} \
64*26bb2a60SGlen Barber		-S ${WORLDDIR} -o ${.OBJDIR}/${AZUREIMAGE} -c ${AZURECONF}
656513e474SGlen Barber	touch ${.TARGET}
66573e7ccaSGlen Barber
67573e7ccaSGlen Barbervm-openstack:
681c34bf95SGlen Barber	mkdir -p ${.OBJDIR}/${.TARGET}
69573e7ccaSGlen Barber	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
70*26bb2a60SGlen Barber		${.CURDIR}/scripts/mk-vmimage.sh \
711c34bf95SGlen Barber		-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} \
72*26bb2a60SGlen Barber		-i ${.OBJDIR}/openstack.img -s ${VMSIZE} -f ${OPENSTACK_FORMAT} \
73*26bb2a60SGlen Barber		-S ${WORLDDIR} -o ${.OBJDIR}/${OPENSTACKIMAGE} -c ${OPENSTACKCONF}
74573e7ccaSGlen Barber	touch ${.TARGET}
75