xref: /dpdk/examples/flow_filtering/Makefile (revision acaa9ee9)
1#
2#   BSD LICENSE
3#
4#   Copyright 2017 Mellanox.
5#
6#   Redistribution and use in source and binary forms, with or without
7#   modification, are permitted provided that the following conditions
8#   are met:
9#
10#     * Redistributions of source code must retain the above copyright
11#       notice, this list of conditions and the following disclaimer.
12#     * Redistributions in binary form must reproduce the above copyright
13#       notice, this list of conditions and the following disclaimer in
14#       the documentation and/or other materials provided with the
15#       distribution.
16#     * Neither the name of Mellanox nor the names of its
17#       contributors may be used to endorse or promote products derived
18#       from this software without specific prior written permission.
19#
20#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31#
32
33APP = flow
34
35SRCS-y := main.c
36
37# Build using pkg-config variables if possible
38$(shell pkg-config --exists libdpdk)
39ifeq ($(.SHELLSTATUS),0)
40
41all: shared
42.PHONY: shared static
43shared: build/$(APP)-shared
44	ln -sf $(APP)-shared build/$(APP)
45static: build/$(APP)-static
46	ln -sf $(APP)-static build/$(APP)
47
48PC_FILE := $(shell pkg-config --path libdpdk)
49CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
50LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
51LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
52
53build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
54	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
55
56build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build
57	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)
58
59build:
60	@mkdir -p $@
61
62.PHONY: clean
63clean:
64	rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared
65	rmdir --ignore-fail-on-non-empty build
66
67else
68
69ifeq ($(RTE_SDK),)
70$(error "Please define RTE_SDK environment variable")
71endif
72
73# Default target, can be overridden by command line or environment
74RTE_TARGET ?= x86_64-native-linuxapp-gcc
75
76include $(RTE_SDK)/mk/rte.vars.mk
77
78CFLAGS += -O3
79CFLAGS += $(WERROR_FLAGS)
80
81include $(RTE_SDK)/mk/rte.extapp.mk
82
83endif
84