get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/32180/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 32180,
    "url": "https://patches.dpdk.org/api/patches/32180/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20171212165940.272969-7-bruce.richardson@intel.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20171212165940.272969-7-bruce.richardson@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20171212165940.272969-7-bruce.richardson@intel.com",
    "date": "2017-12-12T16:59:40",
    "name": "[dpdk-dev,6/6] examples: enable linking examples both static and shared",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "8a7fd6647ce652f63e2b14553f346512942b3c2f",
    "submitter": {
        "id": 20,
        "url": "https://patches.dpdk.org/api/people/20/?format=api",
        "name": "Bruce Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "delegate": {
        "id": 10,
        "url": "https://patches.dpdk.org/api/users/10/?format=api",
        "username": "bruce",
        "first_name": "Bruce",
        "last_name": "Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20171212165940.272969-7-bruce.richardson@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/32180/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/32180/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id EBCC51AEF4;\n\tTue, 12 Dec 2017 18:04:42 +0100 (CET)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n\tby dpdk.org (Postfix) with ESMTP id 0E92B3237\n\tfor <dev@dpdk.org>; Tue, 12 Dec 2017 18:04:40 +0100 (CET)",
            "from fmsmga007.fm.intel.com ([10.253.24.52])\n\tby fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t12 Dec 2017 09:04:40 -0800",
            "from silpixa00399126.ir.intel.com (HELO\n\tsilpixa00399126.ger.corp.intel.com) ([10.237.223.223])\n\tby fmsmga007.fm.intel.com with ESMTP; 12 Dec 2017 09:04:38 -0800"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.45,395,1508828400\"; d=\"scan'208\";a=\"1856226\"",
        "From": "Bruce Richardson <bruce.richardson@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "luca.boccassi@gmail.com, aconole@redhat.com,\n\tBruce Richardson <bruce.richardson@intel.com>",
        "Date": "Tue, 12 Dec 2017 16:59:40 +0000",
        "Message-Id": "<20171212165940.272969-7-bruce.richardson@intel.com>",
        "X-Mailer": "git-send-email 2.14.3",
        "In-Reply-To": "<20171212165940.272969-1-bruce.richardson@intel.com>",
        "References": "<20171212165940.272969-1-bruce.richardson@intel.com>",
        "Subject": "[dpdk-dev] [PATCH 6/6] examples: enable linking examples both\n\tstatic and shared",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Since the DPDK build now includes both static and shared libraries, we need\na new way to enable building the examples using either method from the one\ninstallation. To do this, we add in a default \"shared\" target, and a\nseparate \"static\" target which links in the DPDK static libraries. In both\ncases, the final application name is symlinked to the last-built static or\nshared target, with both binaries able to co-exist in the build directory.\n\nSigned-off-by: Bruce Richardson <bruce.richardson@intel.com>\n---\n examples/bond/Makefile                     | 21 ++++++++++++++++-----\n examples/cmdline/Makefile                  | 21 ++++++++++++++++-----\n examples/distributor/Makefile              | 21 ++++++++++++++++-----\n examples/eventdev_pipeline_sw_pmd/Makefile | 21 ++++++++++++++++-----\n examples/exception_path/Makefile           | 21 ++++++++++++++++-----\n examples/flow_classify/Makefile            | 21 ++++++++++++++++-----\n examples/flow_filtering/Makefile           | 21 ++++++++++++++++-----\n examples/helloworld/Makefile               | 21 ++++++++++++++++-----\n examples/ip_fragmentation/Makefile         | 21 ++++++++++++++++-----\n examples/ip_pipeline/Makefile              | 21 ++++++++++++++++-----\n examples/ip_reassembly/Makefile            | 21 ++++++++++++++++-----\n examples/ipsec-secgw/Makefile              | 21 ++++++++++++++++-----\n examples/ipv4_multicast/Makefile           | 21 ++++++++++++++++-----\n examples/kni/Makefile                      | 21 ++++++++++++++++-----\n examples/l2fwd-cat/Makefile                | 21 ++++++++++++++++-----\n examples/l2fwd-crypto/Makefile             | 21 ++++++++++++++++-----\n examples/l2fwd-jobstats/Makefile           | 21 ++++++++++++++++-----\n examples/l2fwd-keepalive/Makefile          | 21 ++++++++++++++++-----\n examples/l2fwd/Makefile                    | 21 ++++++++++++++++-----\n examples/l3fwd-acl/Makefile                | 21 ++++++++++++++++-----\n examples/l3fwd-power/Makefile              | 21 ++++++++++++++++-----\n examples/l3fwd-vf/Makefile                 | 21 ++++++++++++++++-----\n examples/l3fwd/Makefile                    | 21 ++++++++++++++++-----\n examples/link_status_interrupt/Makefile    | 21 ++++++++++++++++-----\n examples/load_balancer/Makefile            | 21 ++++++++++++++++-----\n examples/packet_ordering/Makefile          | 21 ++++++++++++++++-----\n examples/ptpclient/Makefile                | 21 ++++++++++++++++-----\n examples/qos_meter/Makefile                | 21 ++++++++++++++++-----\n examples/qos_sched/Makefile                | 21 ++++++++++++++++-----\n examples/rxtx_callbacks/Makefile           | 21 ++++++++++++++++-----\n examples/service_cores/Makefile            | 21 ++++++++++++++++-----\n examples/skeleton/Makefile                 | 21 ++++++++++++++++-----\n examples/tep_termination/Makefile          | 21 ++++++++++++++++-----\n examples/timer/Makefile                    | 21 ++++++++++++++++-----\n examples/vhost/Makefile                    | 21 ++++++++++++++++-----\n examples/vhost_scsi/Makefile               | 21 ++++++++++++++++-----\n examples/vmdq/Makefile                     | 21 ++++++++++++++++-----\n examples/vmdq_dcb/Makefile                 | 21 ++++++++++++++++-----\n 38 files changed, 608 insertions(+), 190 deletions(-)",
    "diff": "diff --git a/examples/bond/Makefile b/examples/bond/Makefile\nindex 47e9adc77..6dc4d8279 100644\n--- a/examples/bond/Makefile\n+++ b/examples/bond/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/cmdline/Makefile b/examples/cmdline/Makefile\nindex a9b61c508..8c2edabfe 100644\n--- a/examples/cmdline/Makefile\n+++ b/examples/cmdline/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c commands.c parse_obj_list.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/distributor/Makefile b/examples/distributor/Makefile\nindex 96b250407..aa82e564e 100644\n--- a/examples/distributor/Makefile\n+++ b/examples/distributor/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/eventdev_pipeline_sw_pmd/Makefile b/examples/eventdev_pipeline_sw_pmd/Makefile\nindex 18fd35a55..9a8ac64f9 100644\n--- a/examples/eventdev_pipeline_sw_pmd/Makefile\n+++ b/examples/eventdev_pipeline_sw_pmd/Makefile\n@@ -38,19 +38,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/exception_path/Makefile b/examples/exception_path/Makefile\nindex 60bcf63fa..c0af595cc 100644\n--- a/examples/exception_path/Makefile\n+++ b/examples/exception_path/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/flow_classify/Makefile b/examples/flow_classify/Makefile\nindex 4a08165ae..da9ad8034 100644\n--- a/examples/flow_classify/Makefile\n+++ b/examples/flow_classify/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := flow_classify.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/flow_filtering/Makefile b/examples/flow_filtering/Makefile\nindex ba15651ab..01bb4cd81 100644\n--- a/examples/flow_filtering/Makefile\n+++ b/examples/flow_filtering/Makefile\n@@ -38,19 +38,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/helloworld/Makefile b/examples/helloworld/Makefile\nindex e5378f118..4b5be6056 100644\n--- a/examples/helloworld/Makefile\n+++ b/examples/helloworld/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/ip_fragmentation/Makefile b/examples/ip_fragmentation/Makefile\nindex b879ed694..6c183be5e 100644\n--- a/examples/ip_fragmentation/Makefile\n+++ b/examples/ip_fragmentation/Makefile\n@@ -40,19 +40,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/ip_pipeline/Makefile b/examples/ip_pipeline/Makefile\nindex 0d36ff223..a69d18bd4 100644\n--- a/examples/ip_pipeline/Makefile\n+++ b/examples/ip_pipeline/Makefile\n@@ -62,9 +62,17 @@ SRCS-y += pipeline_routing.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n \n VPATH += pipeline\n CFLAGS += -I. -I./pipeline/\n@@ -74,15 +82,18 @@ OBJS := $(patsubst %.c,build/%.o,$(SRCS-y))\n build/%.o: %.c Makefile $(PC_FILE) | build\n \t$(CC) $(CFLAGS) -c $< -o $@\n \n-build/$(APP): $(OBJS)\n-\t$(CC) $(OBJS) -o $@ $(LDFLAGS)\n+build/$(APP)-shared: $(OBJS)\n+\t$(CC) $(OBJS) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n+\n+build/$(APP)-static: $(OBJS)\n+\t$(CC) $(OBJS) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP) build/*.o\n+\trm -f build/$(APP)* build/*.o\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/ip_reassembly/Makefile b/examples/ip_reassembly/Makefile\nindex f20f89744..650bede8c 100644\n--- a/examples/ip_reassembly/Makefile\n+++ b/examples/ip_reassembly/Makefile\n@@ -40,19 +40,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/ipsec-secgw/Makefile b/examples/ipsec-secgw/Makefile\nindex a299e45ce..e0e93e2ec 100644\n--- a/examples/ipsec-secgw/Makefile\n+++ b/examples/ipsec-secgw/Makefile\n@@ -49,19 +49,30 @@ CFLAGS += -gdwarf-2\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/ipv4_multicast/Makefile b/examples/ipv4_multicast/Makefile\nindex 5278c15ef..e33c7fc2f 100644\n--- a/examples/ipv4_multicast/Makefile\n+++ b/examples/ipv4_multicast/Makefile\n@@ -40,19 +40,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/kni/Makefile b/examples/kni/Makefile\nindex 63d57472c..fc6b89bf6 100644\n--- a/examples/kni/Makefile\n+++ b/examples/kni/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l2fwd-cat/Makefile b/examples/l2fwd-cat/Makefile\nindex 308a4e078..6182dbde0 100644\n--- a/examples/l2fwd-cat/Makefile\n+++ b/examples/l2fwd-cat/Makefile\n@@ -39,22 +39,33 @@ SRCS-y := l2fwd-cat.c cat.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n \n CFLAGS += -D_GNU_SOURCE\n LDFLAGS += -lpqos\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n+\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l2fwd-crypto/Makefile b/examples/l2fwd-crypto/Makefile\nindex afa32b010..bc9f65987 100644\n--- a/examples/l2fwd-crypto/Makefile\n+++ b/examples/l2fwd-crypto/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l2fwd-jobstats/Makefile b/examples/l2fwd-jobstats/Makefile\nindex 315daf691..779d3c652 100644\n--- a/examples/l2fwd-jobstats/Makefile\n+++ b/examples/l2fwd-jobstats/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l2fwd-keepalive/Makefile b/examples/l2fwd-keepalive/Makefile\nindex a4daeeb04..b5dbf41c1 100644\n--- a/examples/l2fwd-keepalive/Makefile\n+++ b/examples/l2fwd-keepalive/Makefile\n@@ -40,19 +40,30 @@ LDFLAGS += -lrt\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l2fwd/Makefile b/examples/l2fwd/Makefile\nindex 55a67d636..3cc347830 100644\n--- a/examples/l2fwd/Makefile\n+++ b/examples/l2fwd/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l3fwd-acl/Makefile b/examples/l3fwd-acl/Makefile\nindex afd7421ff..78f6df7e5 100644\n--- a/examples/l3fwd-acl/Makefile\n+++ b/examples/l3fwd-acl/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l3fwd-power/Makefile b/examples/l3fwd-power/Makefile\nindex c17e66db3..c0cddcb5c 100644\n--- a/examples/l3fwd-power/Makefile\n+++ b/examples/l3fwd-power/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l3fwd-vf/Makefile b/examples/l3fwd-vf/Makefile\nindex f3b324db0..d7aae9e10 100644\n--- a/examples/l3fwd-vf/Makefile\n+++ b/examples/l3fwd-vf/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/l3fwd/Makefile b/examples/l3fwd/Makefile\nindex 41abfe7f6..a1f505ac4 100644\n--- a/examples/l3fwd/Makefile\n+++ b/examples/l3fwd/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c l3fwd_lpm.c l3fwd_em.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/link_status_interrupt/Makefile b/examples/link_status_interrupt/Makefile\nindex 0e36eac0c..8ed14f120 100644\n--- a/examples/link_status_interrupt/Makefile\n+++ b/examples/link_status_interrupt/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/load_balancer/Makefile b/examples/load_balancer/Makefile\nindex 458e712de..d767b4302 100644\n--- a/examples/load_balancer/Makefile\n+++ b/examples/load_balancer/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c config.c init.c runtime.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/packet_ordering/Makefile b/examples/packet_ordering/Makefile\nindex a9b4eb016..78e26fad0 100644\n--- a/examples/packet_ordering/Makefile\n+++ b/examples/packet_ordering/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/ptpclient/Makefile b/examples/ptpclient/Makefile\nindex 7ed57d9fc..bf5d2991e 100644\n--- a/examples/ptpclient/Makefile\n+++ b/examples/ptpclient/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := ptpclient.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/qos_meter/Makefile b/examples/qos_meter/Makefile\nindex 34879e105..01c7804ca 100644\n--- a/examples/qos_meter/Makefile\n+++ b/examples/qos_meter/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c rte_policer.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/qos_sched/Makefile b/examples/qos_sched/Makefile\nindex f33c5b61d..f082e06fd 100644\n--- a/examples/qos_sched/Makefile\n+++ b/examples/qos_sched/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c args.c init.c app_thread.c cfg_file.c cmdline.c stats.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/rxtx_callbacks/Makefile b/examples/rxtx_callbacks/Makefile\nindex 40989fdd5..88f17f63f 100644\n--- a/examples/rxtx_callbacks/Makefile\n+++ b/examples/rxtx_callbacks/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/service_cores/Makefile b/examples/service_cores/Makefile\nindex aada19497..09cbc49ed 100644\n--- a/examples/service_cores/Makefile\n+++ b/examples/service_cores/Makefile\n@@ -38,19 +38,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else\ndiff --git a/examples/skeleton/Makefile b/examples/skeleton/Makefile\nindex ff13e7888..e8a621b07 100644\n--- a/examples/skeleton/Makefile\n+++ b/examples/skeleton/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := basicfwd.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/tep_termination/Makefile b/examples/tep_termination/Makefile\nindex 52149a4b0..0354733fe 100644\n--- a/examples/tep_termination/Makefile\n+++ b/examples/tep_termination/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c vxlan_setup.c vxlan.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/timer/Makefile b/examples/timer/Makefile\nindex dc1fb74ce..716a2780e 100644\n--- a/examples/timer/Makefile\n+++ b/examples/timer/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/vhost/Makefile b/examples/vhost/Makefile\nindex de0c8d872..562e56e19 100644\n--- a/examples/vhost/Makefile\n+++ b/examples/vhost/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c virtio_net.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/vhost_scsi/Makefile b/examples/vhost_scsi/Makefile\nindex 29b654da6..593ca8962 100644\n--- a/examples/vhost_scsi/Makefile\n+++ b/examples/vhost_scsi/Makefile\n@@ -41,19 +41,30 @@ CFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/vmdq/Makefile b/examples/vmdq/Makefile\nindex bd2aae34c..0a0eae714 100644\n--- a/examples/vmdq/Makefile\n+++ b/examples/vmdq/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\ndiff --git a/examples/vmdq_dcb/Makefile b/examples/vmdq_dcb/Makefile\nindex d75498c45..1cd2ec1ea 100644\n--- a/examples/vmdq_dcb/Makefile\n+++ b/examples/vmdq_dcb/Makefile\n@@ -39,19 +39,30 @@ SRCS-y := main.c\n $(shell pkg-config --exists libdpdk)\n ifeq ($(.SHELLSTATUS),0)\n \n+all: shared\n+.PHONY: shared static\n+shared: build/$(APP)-shared\n+\tln -sf $(APP)-shared build/$(APP)\n+static: build/$(APP)-static\n+\tln -sf $(APP)-static build/$(APP)\n+\n PC_FILE := $(shell pkg-config --path libdpdk)\n-CFLAGS += $(shell pkg-config --cflags libdpdk)\n-LDFLAGS += $(shell pkg-config --libs libdpdk)\n+CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)\n+LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)\n+LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)\n+\n+build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)\n \n-build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build\n-\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build\n+\t$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)\n \n build:\n \t@mkdir -p $@\n \n .PHONY: clean\n clean:\n-\trm -f build/$(APP)\n+\trm -f build/$(APP) build/$(APP)-static build/$(APP)-shared\n \trmdir --ignore-fail-on-non-empty build\n \n else # Build using legacy build system\n",
    "prefixes": [
        "dpdk-dev",
        "6/6"
    ]
}