zephyr/samples/net/ieee802154/qemu/Makefile.qemu

80 lines
1.6 KiB
Makefile

# Makefile - Makefile for
#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#
PIPE_BASE=/tmp/net-802.15.4
ifeq ($(MAKECMDGOALS),qemu1)
QEMU_NUM=1
endif
ifeq ($(MAKECMDGOALS),qemu1monitor)
QEMU_NUM=1
endif
ifeq ($(MAKECMDGOALS),qemu2)
QEMU_NUM=2
endif
ifeq ($(MAKECMDGOALS),qemu2monitor)
QEMU_NUM=2
endif
ifdef QEMU_NUM
QEMU_EXTRA_FLAGS += -serial pipe:${PIPE_BASE}-${QEMU_NUM} \
-pidfile qemu-${QEMU_NUM}.pid
endif
PIPE1_IN=${PIPE_BASE}-1.in
PIPE1_OUT=${PIPE_BASE}-1.out
PIPE2_IN=${PIPE_BASE}-2.in
PIPE2_OUT=${PIPE_BASE}-2.out
.PHONY: remove_pipes
remove_pipes:
rm -f ${PIPE1_IN} ${PIPE1_OUT} ${PIPE2_IN} ${PIPE2_OUT}
${PIPE1_IN}:
mkfifo $@
${PIPE1_OUT}:
mkfifo $@
${PIPE2_IN}:
mkfifo $@
${PIPE2_OUT}:
mkfifo $@
.PHONY: PIPE2_IN_LINK
PIPE2_IN_LINK: ${PIPE1_IN}
-ln ${PIPE1_IN} ${PIPE2_OUT}
.PHONY: PIPE2_OUT_LINK
PIPE2_OUT_LINK: ${PIPE1_OUT}
-ln ${PIPE1_OUT} ${PIPE2_IN}
# Setup the dual qemu test case (two qemus passing data between them)
.PHONY: setup_pipes_dual
setup_pipes_dual: ${PIPE1_IN} ${PIPE1_OUT} PIPE2_IN_LINK PIPE2_OUT_LINK
# Setup the dual qemu test case with pcap support (two qemus passing data
# between them and saving data to pcap via help of monitor applicaiton)
.PHONY: setup_pipes_dual_monitor
setup_pipes_dual_monitor: ${PIPE1_IN} ${PIPE1_OUT} ${PIPE2_IN} ${PIPE2_OUT}
export QEMU_NUM
export QEMU_EXTRA_FLAGS
qemu1: setup_pipes_dual
$(Q)$(call zephyrmake,$(O),run)
qemu2: setup_pipes_dual
$(Q)$(call zephyrmake,$(O),run)
qemu1monitor: setup_pipes_dual_monitor
$(Q)$(call zephyrmake,$(O),run)
qemu2monitor: setup_pipes_dual_monitor
$(Q)$(call zephyrmake,$(O),run)