aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2018-03-13 12:54:43 -0400
committerDamjan Marion <dmarion.lists@gmail.com>2018-03-14 19:06:16 +0000
commit5a72e425f9c2d5ca049fd05cd280c4bff5f73d57 (patch)
tree866875c0f6f0fb0899dc5111600288c48f84c72a
parent1ac36d74210069d574e00e110dae398cae5130a6 (diff)
Clean up vpp build bootstrap step
Net of rewriting vppapigen in python-ply, there's no need to compile vppinfra. Install a copy of vppapigen in .../build-root/tools/bin, so the sample plugin build will work. Rationalize suffix-rules.mk. Add clang, clang++ links to .../build-root/ccache-bin. Change-Id: Ib4017848b7767b6054238ea544ee5319667c3659 Signed-off-by: Dave Barach <dave@barachs.net>
-rw-r--r--Makefile9
-rw-r--r--build-root/Makefile12
-rwxr-xr-xbuild-root/bootstrap.sh26
-rw-r--r--build-root/packages/src.mk17
-rw-r--r--build-root/packages/tools.mk16
-rwxr-xr-x[-rw-r--r--]build-root/scripts/set-rpath (renamed from build-root/packages/vppinfra.mk)27
-rw-r--r--src/examples/sample-plugin/Makefile.am7
-rw-r--r--src/suffix-rules.mk12
8 files changed, 55 insertions, 71 deletions
diff --git a/Makefile b/Makefile
index b3eb9cc285a..8168b9434da 100644
--- a/Makefile
+++ b/Makefile
@@ -262,8 +262,13 @@ else
@mkdir -p $(BR)/tools/ccache-bin
@ln -s /usr/bin/ccache $(BR)/tools/ccache-bin/gcc
@ln -s /usr/bin/ccache $(BR)/tools/ccache-bin/g++
+ @ln -s /usr/bin/ccache $(BR)/tools/ccache-bin/clang
+ @ln -s /usr/bin/ccache $(BR)/tools/ccache-bin/clang++
+ @mkdir -p $(BR)/tools/bin
+ @rm -f $(BR)/tools/bin/vppapigen
+ @ln -s $(WS_ROOT)/src/tools/vppapigen/vppapigen \
+ $(BR)/tools/bin/vppapigen
endif
- @make -C $(BR) V=$(V) is_build_tool=yes tools-install
@touch $@
bootstrap: $(BR)/.bootstrap.ok
@@ -327,7 +332,7 @@ dist:
@ln -rs $(DIST_FILE).xz $(BR)/vpp-latest.tar.xz
build: $(BR)/.bootstrap.ok
- $(call make,$(PLATFORM)_debug,$(addsuffix -install,$(TARGETS)))
+ $(call make,$(PLATFORM),$(addsuffix -install,$(TARGETS)))
wipedist:
@$(RM) $(BR)/*.tar.xz
diff --git a/build-root/Makefile b/build-root/Makefile
index 8154ecdaa7b..9190803c3ab 100644
--- a/build-root/Makefile
+++ b/build-root/Makefile
@@ -929,11 +929,7 @@ install-packages: $(patsubst %,%-find-source,$(ROOT_PACKAGES))
basic_system \
$(ROOT_PACKAGES)) || exit 1; \
$(call build_msg_fn, Relocating ELF executables to run in $${d}) ; \
- find $${d} -type f \
- -exec elftool quiet in '{}' out '{}' \
- set-interpreter \
- $${d}/$(arch_lib_dir)/$(DYNAMIC_LINKER) \
- set-rpath $${d}/$(arch_lib_dir):$${d}/lib ';' ; \
+ scripts/set-rpath $${d} $${d}/$(arch_lib_dir) ; \
: strip symbols from files ; \
if [ $${strip_symbols:-no} = 'yes' ] ; then \
$(call build_msg_fn, Stripping symbols from files) ; \
@@ -968,11 +964,7 @@ $(PLATFORM_IMAGE_DIR)/ro.img ro-image: $(patsubst %,%-find-source,$(ROOT_PACKAGE
: make dev directory ; \
$(linuxrc_makedev) ; \
echo @@@@ Relocating ELF executables to run in / @@@@ ; \
- find $${d} -type f \
- -exec elftool quiet in '{}' out '{}' \
- set-interpreter \
- /$(arch_lib_dir)/$(DYNAMIC_LINKER) \
- set-rpath /$(arch_lib_dir):/lib ';' ; \
+ scripts/set-rpath /$(arch_lib_dir):/lib ; \
: strip symbols from files ; \
if [ '$${strip_symbols:-yes}' = 'yes' ] ; then \
echo @@@@ Stripping symbols from files @@@@ ; \
diff --git a/build-root/bootstrap.sh b/build-root/bootstrap.sh
index 3f71cefe2e8..c3b355b4f8c 100755
--- a/build-root/bootstrap.sh
+++ b/build-root/bootstrap.sh
@@ -38,28 +38,22 @@ EOF
# regenerate tools/ccache-bin
rm -rf tools/ccache-bin
-mkdir -p tools/ccache-bin
+mkdir -p tools/ccache-bin tools/bin
if [ ! -f /usr/bin/ccache ] ; then
- echo Please install ccache AYEC and re-run this script
+ echo CCACHE is required. Please install it!
+ exit 1
fi
cd tools/ccache-bin
-for c in gcc g++
- do
- if [ -f /usr/bin/ccache ] ; then
- ln -s /usr/bin/ccache $c
- else
- ln -s /usr/bin/gcc
- fi
+for c in gcc g++ clang clang++
+do
+ ln -s /usr/bin/ccache $c
done
-
-cd $wsroot
+cd ../
+ln -s $wsroot/src/tools/vppapigen/vppapigen \
+ $build_root/tools/bin/vppapigen
cd $build_root
-echo Compile native tools
-for tool in tools
-do
- make V=0 is_build_tool=yes $tool-install
-done
+exit 0
diff --git a/build-root/packages/src.mk b/build-root/packages/src.mk
deleted file mode 100644
index 4f7e823078f..00000000000
--- a/build-root/packages/src.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (c) 2015 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# nothing
-
-
-
diff --git a/build-root/packages/tools.mk b/build-root/packages/tools.mk
deleted file mode 100644
index 7db04e62eb1..00000000000
--- a/build-root/packages/tools.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (c) 2015 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-tools_source = src
-tools_configure_args = --disable-vlib --disable-svm --disable-japi
-
diff --git a/build-root/packages/vppinfra.mk b/build-root/scripts/set-rpath
index 40d9c735dc9..f20ff3f6f40 100644..100755
--- a/build-root/packages/vppinfra.mk
+++ b/build-root/scripts/set-rpath
@@ -1,3 +1,5 @@
+#!/bin/bash
+
# Copyright (c) 2015 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,8 +13,31 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+if [ -z $1 ]; then
+ echo "Please specify path"
+ exit 1
+fi
+
+which chrpath &> /dev/null
+
+if [ $? -ne 0 ] ; then
+ echo "Please install chrpath tool"
+ exit 1
+fi
+
+cd $1
-# nothing
+libs=$(find * -type f -name \*.so\*)
+execs=$(find * -type f -path bin/\* )
+echo "Setting RPATH to $2 ..."
+for i in $libs $execs; do
+ # in case non-ELF file is found
+ chrpath $i 2> /dev/null > /dev/null
+ if [ $? -eq 0 ] ; then
+ echo $i
+ chrpath -r $2
+ fi
+done
diff --git a/src/examples/sample-plugin/Makefile.am b/src/examples/sample-plugin/Makefile.am
index 5c279c44b11..1825a8f111f 100644
--- a/src/examples/sample-plugin/Makefile.am
+++ b/src/examples/sample-plugin/Makefile.am
@@ -31,12 +31,13 @@ vpppluginsdir = ${libdir}/vpp_plugins
include sample.am
%.api.h: %.api
- mkdir -p `dirname $@` ; \
+ @echo " APIGEN " $@ ; \
+ mkdir -p `dirname $@` ; \
vppapigen --input $^ --output $@
%.api.json: %.api
- @echo " JSON APIGEN " $@ ; \
- mkdir -p `dirname $@` ; \
+ @echo " JSON APIGEN " $@ ; \
+ mkdir -p `dirname $@` ; \
vppapigen --input $^ JSON --output $@
apidir = $(prefix)/api/plugins
diff --git a/src/suffix-rules.mk b/src/suffix-rules.mk
index 8b1ab83b28b..1e701651822 100644
--- a/src/suffix-rules.mk
+++ b/src/suffix-rules.mk
@@ -14,13 +14,13 @@
# Shared suffix rules
# Please do not set "SUFFIXES = .api.h .api" here
-VPPAPIGEN = $(top_srcdir)/tools/vppapigen/vppapigen
+VPPAPIGEN = vppapigen
%.api.h: %.api
- @echo " APIGEN " $@ ; \
- mkdir -p `dirname $@` ; \
+ @echo " APIGEN " $@ ; \
+ mkdir -p `dirname $@` ; \
$(VPPAPIGEN) --includedir $(top_srcdir) --input $< --output $@
-%.api.json: %.api
- @echo " JSON API" $@ ; \
- mkdir -p `dirname $@` ; \
+%.api.json: %.api
+ @echo " JSON API" $@ ; \
+ mkdir -p `dirname $@` ; \
$(VPPAPIGEN) --includedir $(top_srcdir) --input $< JSON --output $@