xref: /dpdk/examples/server_node_efd/node/Makefile (revision bc8e3247)
13998e2a0SBruce Richardson# SPDX-License-Identifier: BSD-3-Clause
225d3438cSKevin Laatz# Copyright(c) 2016-2020 Intel Corporation
3ed2a80fdSPablo de Lara
4ed2a80fdSPablo de Lara# binary name
5ed2a80fdSPablo de LaraAPP = node
6ed2a80fdSPablo de Lara
7ed2a80fdSPablo de Lara# all source are stored in SRCS-y
8ed2a80fdSPablo de LaraSRCS-y := node.c
9ed2a80fdSPablo de Lara
1025d3438cSKevin LaatzCFLAGS += -I../shared
11ed2a80fdSPablo de Lara
1225d3438cSKevin Laatz# Build using pkg-config variables if possible
1325d3438cSKevin Laatzifneq ($(shell pkg-config --exists libdpdk && echo 0),0)
1425d3438cSKevin Laatz$(error "no installation of DPDK found")
1525d3438cSKevin Laatzendif
1625d3438cSKevin Laatz
1725d3438cSKevin Laatzall: shared
1825d3438cSKevin Laatz.PHONY: shared static
1925d3438cSKevin Laatzshared: build/$(APP)-shared
2025d3438cSKevin Laatz	ln -sf $(APP)-shared build/$(APP)
2125d3438cSKevin Laatzstatic: build/$(APP)-static
2225d3438cSKevin Laatz	ln -sf $(APP)-static build/$(APP)
2325d3438cSKevin Laatz
2425d3438cSKevin LaatzPKGCONF ?= pkg-config
2525d3438cSKevin Laatz
2625d3438cSKevin LaatzPC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
2725d3438cSKevin LaatzCFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
2825d3438cSKevin LaatzLDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
2925d3438cSKevin LaatzLDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)
3025d3438cSKevin Laatz
31*bc8e3247SDavid MarchandCFLAGS += -DALLOW_EXPERIMENTAL_API
32*bc8e3247SDavid Marchand
3325d3438cSKevin Laatzbuild/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
3425d3438cSKevin Laatz	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
3525d3438cSKevin Laatz
3625d3438cSKevin Laatzbuild/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build
3725d3438cSKevin Laatz	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)
3825d3438cSKevin Laatz
3925d3438cSKevin Laatzbuild:
4025d3438cSKevin Laatz	@mkdir -p $@
4125d3438cSKevin Laatz
4225d3438cSKevin Laatz.PHONY: clean
4325d3438cSKevin Laatzclean:
4425d3438cSKevin Laatz	rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared
4525d3438cSKevin Laatz	test -d build && rmdir -p build || true
46