xref: /f-stack/dpdk/examples/ip_pipeline/Makefile (revision fa64a7ff)
1# SPDX-License-Identifier: BSD-3-Clause
2# Copyright(c) 2010-2018 Intel Corporation
3
4# binary name
5APP = ip_pipeline
6
7# all source are stored in SRCS-y
8SRCS-y := action.c
9SRCS-y += cli.c
10SRCS-y += conn.c
11SRCS-y += kni.c
12SRCS-y += link.c
13SRCS-y += main.c
14SRCS-y += mempool.c
15SRCS-y += parser.c
16SRCS-y += pipeline.c
17SRCS-y += swq.c
18SRCS-y += tap.c
19SRCS-y += thread.c
20SRCS-y += tmgr.c
21SRCS-y += cryptodev.c
22
23# Build using pkg-config variables if possible
24ifeq ($(shell pkg-config --exists libdpdk && echo 0),0)
25
26all: shared
27.PHONY: shared static
28shared: build/$(APP)-shared
29	ln -sf $(APP)-shared build/$(APP)
30static: build/$(APP)-static
31	ln -sf $(APP)-static build/$(APP)
32
33PC_FILE := $(shell pkg-config --path libdpdk)
34CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
35LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
36LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
37
38CFLAGS += -I.
39
40OBJS := $(patsubst %.c,build/%.o,$(SRCS-y))
41
42build/%.o: %.c Makefile $(PC_FILE) | build
43	$(CC) $(CFLAGS) -c $< -o $@
44
45build/$(APP)-shared: $(OBJS)
46	$(CC) $(OBJS) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
47
48build/$(APP)-static: $(OBJS)
49	$(CC) $(OBJS) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)
50
51build:
52	@mkdir -p $@
53
54.PHONY: clean
55clean:
56	rm -f build/$(APP)* build/*.o
57	test -d build && rmdir -p build || true
58
59else
60
61ifeq ($(RTE_SDK),)
62$(error "Please define RTE_SDK environment variable")
63endif
64
65# Default target, can be overridden by command line or environment
66RTE_TARGET ?= x86_64-native-linuxapp-gcc
67
68include $(RTE_SDK)/mk/rte.vars.mk
69
70ifneq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP),y)
71$(info This application can only operate in a linuxapp environment, \
72please change the definition of the RTE_TARGET environment variable)
73all:
74clean:
75else
76
77INC += $(sort $(wildcard *.h))
78
79SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) := $(SRCS-y)
80
81CFLAGS += -DALLOW_EXPERIMENTAL_API
82CFLAGS += -I$(SRCDIR)
83CFLAGS += -O3
84CFLAGS += $(WERROR_FLAGS)
85
86include $(RTE_SDK)/mk/rte.extapp.mk
87
88endif
89endif
90