dpdk/examples/l2fwd-keepalive/ka-agent/Makefile
<<
>>
Prefs
   1# SPDX-License-Identifier: BSD-3-Clause
   2# Copyright(c) 2016-2020 Intel Corporation
   3
   4# binary name
   5APP = ka-agent
   6
   7# all source are stored in SRCS-y
   8SRCS-y := main.c
   9
  10CFLAGS += -I..
  11
  12PKGCONF ?= pkg-config
  13
  14# Build using pkg-config variables if possible
  15ifneq ($(shell $(PKGCONF) --exists libdpdk && echo 0),0)
  16$(error "no installation of DPDK found")
  17endif
  18
  19all: shared
  20.PHONY: shared static
  21shared: build/$(APP)-shared
  22        ln -sf $(APP)-shared build/$(APP)
  23static: build/$(APP)-static
  24        ln -sf $(APP)-static build/$(APP)
  25
  26LDFLAGS += -lpthread -lrt
  27
  28PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
  29CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
  30LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
  31LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)
  32
  33ifeq ($(MAKECMDGOALS),static)
  34# check for broken pkg-config
  35ifeq ($(shell echo $(LDFLAGS_STATIC) | grep 'whole-archive.*l:lib.*no-whole-archive'),)
  36$(warning "pkg-config output list does not contain drivers between 'whole-archive'/'no-whole-archive' flags.")
  37$(error "Cannot generate statically-linked binaries with this version of pkg-config")
  38endif
  39endif
  40
  41CFLAGS += -DALLOW_EXPERIMENTAL_API
  42
  43build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
  44        $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
  45
  46build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build
  47        $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)
  48
  49build:
  50        @mkdir -p $@
  51
  52.PHONY: clean
  53clean:
  54        rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared
  55        test -d build && rmdir -p build || true
  56