# # Copyright (C) 2013 Intel Corporation; author Matt Fleming # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, Inc., 53 Temple Place Ste 330, # Boston MA 02111-1307, USA; either version 2 of the License, or # (at your option) any later version; incorporated herein by reference. # # # See linux/Makefile for an example Makefile. When tests are invoked the # location of the Syslinux files, as used by qemu, is in $(MOUNTDIR). # Tests that copy files into $(MOUNTDIR) must be sure to delete them once # the test has completed, otherwise the qemu harddisk image will become # full. # ifeq ($(INITIAL),) INITIAL := 1 HDD = $(OBJ)/hdd.img export QEMU QEMU_FLAGS INITIAL HDD SYSLINUX_output-str := $(shell sudo $(SRC)/build-syslinux start \ $(objdir)/bios $(HDD) test.cfg) SYSLINUX_MOUNT_DIR = $(firstword $(SYSLINUX_output-str)) SYSLINUX_INSTALL_DIR = $(SYSLINUX_MOUNT_DIR)/boot/syslinux SYSLINUX_CONFIG_FILE = $(SYSLINUX_INSTALL_DIR)/syslinux.cfg SYSLINUX_LOOPDEV =$(lastword $(SYSLINUX_output-str)) PXELINUX_output-str := $(shell $(SRC)/build-pxelinux start $(topdir) test.cfg) PXELINUX_INSTALL_DIR = $(firstword $(PXELINUX_output-str))/tftpboot PXELINUX_CONFIG_FILE = $(PXELINUX_INSTALL_DIR)/pxelinux.cfg/default QEMU = qemu-system-i386 all: syslinux-tests pxelinux-tests syslinux-tests: $(MAKE) SRC="$(SRC)" OBJ="$(OBJ)" objdir="$(objdir)" \ INITIAL="$(INITIAL)" INSTALL_DIR="$(SYSLINUX_INSTALL_DIR)" \ CONFIG_FILE="$(SYSLINUX_CONFIG_FILE)" \ DERIVATIVE=SYSLINUX @sudo $(SRC)/build-syslinux stop $(SYSLINUX_MOUNT_DIR) \ $(SYSLINUX_LOOPDEV) test.cfg pxelinux-tests: $(MAKE) SRC="$(SRC)" OBJ="$(OBJ)" objdir="$(objdir)" \ INITIAL="$(INITIAL)" INSTALL_DIR="$(PXELINUX_INSTALL_DIR)" \ CONFIG_FILE="$(PXELINUX_CONFIG_FILE)" \ DERIVATIVE=PXELINUX $(SRC)/build-pxelinux stop $(PXELINUX_INSTALL_DIR) test.cfg else # ifeq ($(INITIAL),) export DERIVATIVE ifeq ($(DERIVATIVE),SYSLINUX) QEMU_FLAGS += -hda $(HDD) -no-reboot else QEMU_FLAGS = -boot n -net nic,model=virtio -net user,tftp="$(INSTALL_DIR)",bootfile=pxelinux.0 -no-reboot endif all: banner subdirs banner: printf "Executing regression tests for $(DERIVATIVE)\n" SUBDIRS = linux com32 .PHONY: subdirs $(SUBDIRS) fini subdirs: $(SUBDIRS) $(SUBDIRS): mkdir -p $(OBJ)/$@ $(MAKE) -C $(OBJ)/$@ SRC="$(SRC)"/$@ OBJ="$(OBJ)"/$@/ \ -f $(SRC)/$@/Makefile objdir="$(objdir)/tests" \ INSTALL_DIR="$(INSTALL_DIR)" CONFIG_FILE="$(CONFIG_FILE)" \ DERIVATIVE="$(DERIVATIVE)" endif # ifeq ($(INITIAL),)