xref: /freebsd/release/Makefile.vm (revision f27438c75256f550d9327bf6d3915fc83fd34620)
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
86513e474SGlen BarberVMTARGETS=	vm-base vm-image
96513e474SGlen BarberVMFORMATS?=	vhd vmdk qcow2 raw
106513e474SGlen BarberVMSIZE?=	20G
116513e474SGlen BarberVMBASE?=	vm
12d08ce983SGlen Barber
13d08ce983SGlen BarberCLOUDWARE?=	AZURE
14*f27438c7SGlen BarberAZURE_FORMAT=	vhdf
15d08ce983SGlen Barber
16d08ce983SGlen Barber.if defined(WITH_CLOUDWARE) && !empty(WITH_CLOUDWARE) && !empty(CLOUDWARE)
17d08ce983SGlen Barber. for _CW in ${CLOUDWARE}
18d08ce983SGlen BarberCLOUDTARGETS+=	vm-${_CW:tl}
19d08ce983SGlen BarberCLEANDIRS+=	vm-${_CW:tl}
20d08ce983SGlen BarberCLEANFILES+=	${_CW:tl}.img \
21d08ce983SGlen Barber		${_CW:tl}.${${_CW:tu}_FORMAT} \
22d08ce983SGlen Barber		${_CW:tl}.${${_CW:tu}_FORMAT}.raw
23*f27438c7SGlen Barber${_CW:tu}IMAGE=	${_CW:tl}.${${_CW:tu}_FORMAT}
24d08ce983SGlen Barber.  if exists(${.CURDIR}/tools/${_CW:tl}.conf) && !defined(${_CW:tu}CONF)
25d08ce983SGlen Barber${_CW:tu}CONF?=	${.CURDIR}/tools/${_CW:tl}.conf
26d08ce983SGlen Barber.  endif
27d08ce983SGlen Barber. endfor
28d08ce983SGlen Barber.endif
296513e474SGlen Barber
306513e474SGlen Barber.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
316513e474SGlen BarberCLEANDIRS+=	${VMTARGETS}
326513e474SGlen BarberCLEANFILES+=	${VMBASE}.img
336513e474SGlen Barber. for FORMAT in ${VMFORMATS}
346513e474SGlen BarberCLEANFILES+=	${VMBASE}.${FORMAT}
356513e474SGlen Barber. endfor
366513e474SGlen Barber.endif
376513e474SGlen Barber
386513e474SGlen Barbervm-base:
396513e474SGlen Barber.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
406513e474SGlen Barber. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh)
416513e474SGlen Barber	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
426513e474SGlen Barber		${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
436513e474SGlen Barber		${VMBASE}.img ${WORLDDIR} ${.OBJDIR}/${.TARGET} ${VMSIZE}
446513e474SGlen Barber. endif
456513e474SGlen Barber.endif
466513e474SGlen Barber	touch ${.TARGET}
476513e474SGlen Barber
486513e474SGlen Barbervm-image: vm-base
496513e474SGlen Barber.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
506513e474SGlen Barber. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh)
516513e474SGlen Barber.  for FORMAT in ${VMFORMATS}
526513e474SGlen Barber	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
536513e474SGlen Barber		${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
546513e474SGlen Barber		${VMBASE}.img ${FORMAT} ${VMBASE}.${FORMAT}
556513e474SGlen Barber.  endfor
566513e474SGlen Barber. endif
576513e474SGlen Barber.endif
586513e474SGlen Barber	touch ${.TARGET}
596513e474SGlen Barber
606513e474SGlen Barbervm-azure:
616513e474SGlen Barber.if exists(${.CURDIR}/${TARGET}/mk-azure.sh)
626513e474SGlen Barber	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} AZURECONF=${AZURECONF} \
63*f27438c7SGlen Barber		AZURE_FORMAT=${AZURE_FORMAT} \
646513e474SGlen Barber		${.CURDIR}/${TARGET}/mk-azure.sh ${.TARGET} azure.img \
65*f27438c7SGlen Barber		${WORLDDIR} ${.TARGET} ${VMSIZE} ${AZUREIMAGE}
666513e474SGlen Barber.endif
676513e474SGlen Barber	touch ${.TARGET}
68