| # Makefile - IP 15.4 test Makefile for nano and micro kernel |
| |
| # |
| # Copyright (c) 2015 Intel Corporation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| PIPE_BASE=/tmp/ip-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 none -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} |
| |
| SINGLE_CONFIG_OPTIONS="CONFIG_NETWORKING_WITH_15_4_LOOPBACK=y" |
| |
| .PHONY: set_options_default |
| set_options_default: |
| echo "${SINGLE_CONFIG_OPTIONS}" >> ${DOTCONFIG} |
| |
| # Setup the single qemu test case (one qemu using loopback driver) |
| qemu0: $(DOTCONFIG) |
| $(Q)$(call zephyrmake,$(O),qemu) |
| |
| # 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} |
| |
| DUAL_CONFIG_OPTIONS="CONFIG_NETWORKING_WITH_15_4_LOOPBACK_UART=y" |
| |
| .PHONY: set_options |
| set_options: |
| echo "${DUAL_CONFIG_OPTIONS}" >> ${DOTCONFIG} |
| |
| export QEMU_NUM |
| export QEMU_EXTRA_FLAGS |
| |
| qemu1: setup_pipes_dual $(DOTCONFIG) set_options |
| $(Q)$(call zephyrmake,$(O),qemu) |
| |
| qemu2: setup_pipes_dual $(DOTCONFIG) set_options |
| $(Q)$(call zephyrmake,$(O),qemu) |
| |
| qemu1monitor: setup_pipes_dual_monitor $(DOTCONFIG) set_options |
| $(Q)$(call zephyrmake,$(O),qemu) |
| |
| qemu2monitor: setup_pipes_dual_monitor $(DOTCONFIG) set_options |
| $(Q)$(call zephyrmake,$(O),qemu) |