build_dir := build SHELL := /bin/bash .PHONY: all all: @echo "Make what specifically?" @echo "The most common target is 'iso'" .PHONY: check_build_config check_build_config: @scripts/check-config .PHONY: prepare prepare: @set -e @echo "Starting VyOS ISO image build" rm -rf build/config/* mkdir -p build/config cp -r data/live-build-config/* build/config/ @scripts/live-build-config @scripts/import-local-packages @scripts/make-version-file @scripts/build-flavour .PHONY: iso .ONESHELL: iso: check_build_config clean prepare @echo "It's not like I'm building this specially for you or anything!" cd $(build_dir) set -o pipefail lb build 2>&1 | tee build.log; if [ $$? -ne 0 ]; then exit 1; fi cd .. @scripts/copy-image exit 0 .PHONY: prepare-package-env .ONESHELL: prepare-package-env: @set -e @scripts/pbuilder-config @scripts/pbuilder-setup .PHONY: qemu .ONESHELL: qemu: @set -e @scripts/check-vm-build-env @scripts/build-qemu-image .PHONY: vagrant-libvirt .ONESHELL: vagrant-libvirt: @set -e @scripts/check-vm-build-env @scripts/build-vagrant-libvirt-box .PHONY: vmware .ONESHELL: vmware: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d cp tools/cloud-init/vmware/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/vmware/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ cd $(build_dir) @../scripts/build-vmware-image .PHONY: hyperv .ONESHELL: hyperv: @set -e @scripts/check-vm-build-env @scripts/build-hyperv-image .PHONY: clearfog .ONESHELL: clearfog: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" cd $(build_dir) @../scripts/build-clearfog-image .PHONY: azure .ONESHELL: azure: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" cp tools/cloud-init/azure/99-walinuxagent.chroot build/config/hooks/live/ cp tools/cloud-init/azure/vyos-azure.list.chroot build/config/package-lists/ cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/azure/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ cd $(build_dir) @../scripts/build-azure-image .PHONY: GCE .ONESHELL: GCE: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d cp tools/cloud-init/GCE/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/GCE/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ cd $(build_dir) @../scripts/build-GCE-image .PHONY: GCE-debug .ONESHELL: GCE-debug: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d cp tools/cloud-init/99-debug-user.chroot build/config/hooks/live/ cp tools/cloud-init/GCE/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/GCE/config.boot.default-debug build/config/includes.chroot/opt/vyatta/etc/config.boot.default cd $(build_dir) @../scripts/build-GCE-image .PHONY: AWS .ONESHELL: AWS: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" wget -O build/config/packages.chroot/amazon-cloudwatch-agent-amd64.deb https://s3.eu-central-1.amazonaws.com/amazoncloudwatch-agent-eu-central-1/debian/amd64/latest/amazon-cloudwatch-agent.deb mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d cp tools/cloud-init/AWS/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ cp tools/cloud-init/AWS/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/AWS/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ cd $(build_dir) lb build 2>&1 | tee build.log cd .. @scripts/copy-image .PHONY: openstack .ONESHELL: openstack: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d cp tools/cloud-init/openstack/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/openstack/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ cd $(build_dir) lb build 2>&1 | tee build.log cd .. @scripts/copy-image .PHONY: oracle .ONESHELL: oracle: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d cp tools/cloud-init/OCI/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/OCI/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ cd $(build_dir) @../scripts/build-oracle-image .PHONY: PACKET .ONESHELL: PACKET: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d cp tools/cloud-init/99-disable-networking.chroot build/config/hooks/live/ cp tools/cloud-init/PACKET/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/PACKET/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ cd $(build_dir) lb build 2>&1 | tee build.log cd .. @scripts/copy-image .PHONY: PACKET-debug .ONESHELL: PACKET-debug: clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d cp tools/cloud-init/99-debug-user.chroot build/config/hooks/live/ cp tools/cloud-init/99-disable-networking.chroot build/config/hooks/live/ cp tools/cloud-init/PACKET/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ cp tools/cloud-init/cloud-init.list.chroot build/config/package-lists/ cp -f tools/cloud-init/PACKET/config.boot.default-debug build/config/includes.chroot/opt/vyatta/etc/config.boot.default cd $(build_dir) lb build 2>&1 | tee build.log cd .. @scripts/copy-image .PHONY: vep4600 .ONESHELL: vep4600: check_build_config clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/systemd/network mkdir -p build/config/includes.chroot/usr/share/initramfs-tools/hooks cp tools/dell/90-vep.chroot build/config/hooks/live/ cp tools/dell/vep4600/*.link build/config/includes.chroot/etc/systemd/network/ cp tools/dell/vep-hook build/config/includes.chroot/usr/share/initramfs-tools/hooks/ cd $(build_dir) lb build 2>&1 | tee build.log cd .. @scripts/copy-image .PHONY: vep1400 .ONESHELL: vep1400: check_build_config clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/etc/systemd/network mkdir -p build/config/includes.chroot/usr/share/initramfs-tools/hooks cp tools/dell/90-vep.chroot build/config/hooks/live/ cp tools/dell/vep1400/*.link build/config/includes.chroot/etc/systemd/network/ cp tools/dell/vep-hook build/config/includes.chroot/usr/share/initramfs-tools/hooks/ cd $(build_dir) lb build 2>&1 | tee build.log cd .. @scripts/copy-image .PHONY: edgecore .ONESHELL: edgecore: check_build_config clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" mkdir -p build/config/includes.chroot/lib/udev/rules.d/ cp tools/vendors_udev/64-vyos-SAF51015I-net.rules build/config/includes.chroot/lib/udev/rules.d/ cp tools/vendors_udev/64-vyos-SAF51003I-net.rules build/config/includes.chroot/lib/udev/rules.d/ cd $(build_dir) lb build 2>&1 | tee build.log cd .. @scripts/copy-image .PHONY: xcp-ng-iso .ONESHELL: xcp-ng-iso: check_build_config clean prepare @set -e @echo "It's not like I'm building this specially for you or anything!" sed -i 's/vyos-xe-guest-utilities/xe-guest-utilities/g' $(build_dir)/config/package-lists/vyos-x86.list.chroot cd $(build_dir) set -o pipefail lb build 2>&1 | tee build.log; if [ $$? -ne 0 ]; then exit 1; fi cd .. @scripts/copy-image exit 0 .PHONY: test .ONESHELL: test: if [ ! -f build/live-image-amd64.hybrid.iso ]; then echo "Could not find build/live-image-amd64.hybrid.iso" exit 1 fi scripts/check-qemu-install --debug --uefi build/live-image-amd64.hybrid.iso .PHONY: test-no-interfaces .ONESHELL: test-no-interfaces: if [ ! -f build/live-image-amd64.hybrid.iso ]; then echo "Could not find build/live-image-amd64.hybrid.iso" exit 1 fi scripts/check-qemu-install --debug --no-interfaces build/live-image-amd64.hybrid.iso .PHONY: testd .ONESHELL: testd: if [ ! -f build/live-image-amd64.hybrid.iso ]; then echo "Could not find build/live-image-amd64.hybrid.iso" exit 1 fi scripts/check-qemu-install --debug --configd build/live-image-amd64.hybrid.iso .PHONY: testc .ONESHELL: testc: if [ ! -f build/live-image-amd64.hybrid.iso ]; then echo "Could not find build/live-image-amd64.hybrid.iso" exit 1 fi scripts/check-qemu-install --debug --configd --configtest build/live-image-amd64.hybrid.iso .PHONY: clean .ONESHELL: clean: @set -e cd $(build_dir) lb clean rm -f config/binary config/bootstrap config/chroot config/common config/source rm -f build.log rm -f vyos-*.iso rm -f *.img rm -f *.xz rm -f *.vhd rm -f *.raw rm -f *.tar.gz rm -f *.qcow2 rm -f *.mf rm -f *.ovf rm -f *.ova rm -f *.vmdk .PHONY: purge purge: rm -rf build packer_build packer_cache testinstall-*.img