Dave Barach | 8d0f2f0 | 2018-03-12 09:31:36 -0400 | [diff] [blame] | 1 | # Copyright (c) 2015 Cisco and/or its affiliates. |
| 2 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 3 | # you may not use this file except in compliance with the License. |
| 4 | # You may obtain a copy of the License at: |
| 5 | # |
| 6 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 7 | # |
| 8 | # Unless required by applicable law or agreed to in writing, software |
| 9 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 11 | # See the License for the specific language governing permissions and |
| 12 | # limitations under the License. |
| 13 | |
Damjan Marion | 7cd468a | 2016-12-19 23:05:39 +0100 | [diff] [blame] | 14 | vpp_source = src |
Ed Warnicke | cb9cada | 2015-12-08 15:45:58 -0700 | [diff] [blame] | 15 | |
Damjan Marion | ad1e1c5 | 2018-09-01 20:06:10 +0200 | [diff] [blame] | 16 | ifneq ($(shell which cmake3),) |
| 17 | CMAKE?=cmake3 |
| 18 | else |
| 19 | CMAKE?=cmake |
| 20 | endif |
| 21 | |
Damjan Marion | 4a6cb83 | 2018-09-18 18:41:38 +0200 | [diff] [blame] | 22 | vpp_cmake_prefix_path = /opt/vpp/external/$(shell uname -m) |
| 23 | vpp_cmake_prefix_path += $(PACKAGE_INSTALL_DIR)external |
| 24 | vpp_cmake_prefix_path := $(subst $() $(),;,$(vpp_cmake_prefix_path)) |
| 25 | |
Damjan Marion | ad1e1c5 | 2018-09-01 20:06:10 +0200 | [diff] [blame] | 26 | vpp_cmake_args ?= |
| 27 | vpp_cmake_args += -DCMAKE_INSTALL_PREFIX:PATH=$(PACKAGE_INSTALL_DIR) |
| 28 | vpp_cmake_args += -DCMAKE_C_FLAGS="$($(TAG)_TAG_CFLAGS)" |
| 29 | vpp_cmake_args += -DCMAKE_LINKER_FLAGS="$($(TAG)_TAG_LDFLAGS)" |
Damjan Marion | 4a6cb83 | 2018-09-18 18:41:38 +0200 | [diff] [blame] | 30 | vpp_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(vpp_cmake_prefix_path)" |
Lijian Zhang | 2e08b1a | 2018-09-20 18:40:56 +0800 | [diff] [blame] | 31 | ifeq ("$(V)","1") |
| 32 | vpp_cmake_args += -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON |
| 33 | endif |
Lijian.Zhang | 49c1bc8 | 2019-02-27 18:17:34 +0800 | [diff] [blame] | 34 | ifeq (,$(TARGET_PLATFORM)) |
| 35 | ifeq ($(MACHINE),aarch64) |
| 36 | vpp_cmake_args += -DVPP_LOG2_CACHE_LINE_SIZE=7 |
| 37 | endif |
| 38 | endif |
Damjan Marion | ad1e1c5 | 2018-09-01 20:06:10 +0200 | [diff] [blame] | 39 | |
| 40 | # Use devtoolset on centos 7 |
| 41 | ifneq ($(wildcard /opt/rh/devtoolset-7/enable),) |
| 42 | vpp_cmake_args += -DCMAKE_PROGRAM_PATH:PATH="/opt/rh/devtoolset-7/root/bin" |
| 43 | endif |
| 44 | |
Damjan Marion | 4a6cb83 | 2018-09-18 18:41:38 +0200 | [diff] [blame] | 45 | vpp_configure_depend += external-install |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 46 | vpp_configure = \ |
| 47 | cd $(PACKAGE_BUILD_DIR) && \ |
Damjan Marion | ad1e1c5 | 2018-09-01 20:06:10 +0200 | [diff] [blame] | 48 | $(CMAKE) -G Ninja $(vpp_cmake_args) $(call find_source_fn,$(PACKAGE_SOURCE)) |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 49 | #vpp_make_args = --no-print-directory |
Damjan Marion | ad1e1c5 | 2018-09-01 20:06:10 +0200 | [diff] [blame] | 50 | vpp_build = $(CMAKE) --build $(PACKAGE_BUILD_DIR) |
| 51 | vpp_install = $(CMAKE) --build $(PACKAGE_BUILD_DIR) -- install | grep -v 'Set runtime path' |
Damjan Marion | 4d2f86a | 2019-01-18 13:28:22 +0100 | [diff] [blame] | 52 | |
| 53 | vpp-package-deb: vpp-install |
| 54 | @$(CMAKE) --build $(PACKAGE_BUILD_DIR)/vpp -- package-deb |
| 55 | @find $(PACKAGE_BUILD_DIR) \ |
| 56 | -maxdepth 1 \ |
| 57 | \( -name '*.changes' -o -name '*.deb' -o -name '*.buildinfo' \) \ |
| 58 | -exec mv {} $(CURDIR) \; |