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>
This commit is contained in:

committed by
Damjan Marion

parent
1ac36d7421
commit
5a72e425f9
9
Makefile
9
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
|
||||
|
@ -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 @@@@ ; \
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
27
build-root/packages/vppinfra.mk → build-root/scripts/set-rpath
Normal file → Executable file
27
build-root/packages/vppinfra.mk → build-root/scripts/set-rpath
Normal file → Executable file
@ -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
|
||||
|
||||
# nothing
|
||||
which chrpath &> /dev/null
|
||||
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "Please install chrpath tool"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $1
|
||||
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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 $@` ; \
|
||||
@echo " JSON API" $@ ; \
|
||||
mkdir -p `dirname $@` ; \
|
||||
$(VPPAPIGEN) --includedir $(top_srcdir) --input $< JSON --output $@
|
||||
|
Reference in New Issue
Block a user