Implement DHCPv6 PD client (VPP-718, VPP-1050)
[vpp.git] / build-root / Makefile
index 6298ea1..a333523 100644 (file)
@@ -245,6 +245,8 @@ tag_var_with_added_space_fn = $(if $($(TAG)_TAG_$(1)),$($(TAG)_TAG_$(1)) )
 # TAG=debug for debugging
 debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -march=$(MARCH) \
                   -fstack-protector-all -fPIC
+debug_TAG_CXXFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -march=$(MARCH) \
+                  -fstack-protector-all -fPIC
 debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -march=$(MARCH) \
                   -fstack-protector-all -fPIC
 
@@ -315,7 +317,8 @@ endif
 
 BUILD_ENV =                                                                            \
     export CCACHE_DIR=$(CCACHE_DIR) ;                                  \
-    export PATH=$(TOOL_INSTALL_DIR)/ccache-bin:$(TOOL_INSTALL_DIR)/bin:$${PATH} ;      \
+    export PATH=$(wildcard /usr/lib*/ccache):$(TOOL_INSTALL_DIR)/bin:$${PATH} ;                \
+    $(if $(call configure_var_fn,PATH), export PATH=$${PATH}:$(call configure_var_fn,PATH);,)  \
     export PATH="`echo $${PATH} | sed -e s/[.]://`" ;                                  \
     $(if $(not_native),export CONFIG_SITE=$(MU_BUILD_ROOT_DIR)/config.site ;,) \
     set -eu$(BUILD_DEBUG) ;                                                            \
@@ -365,7 +368,7 @@ CROSS_TOOLS_$(IS_LINUX) += glibc gcc
 NATIVE_TOOLS = findutils make
 
 # basic tools needed for build system
-NATIVE_TOOLS += git automake autoconf libtool texinfo bison flex tar
+NATIVE_TOOLS += git automake autoconf libtool texinfo tar
 
 # needed to compile gcc
 NATIVE_TOOLS += mpfr gmp mpc
@@ -537,6 +540,8 @@ configure_ldflags_fn = \
 CONFIGURE_ENV =                                                                \
     $(if $(call configure_var_fn,CPPFLAGS),                            \
         CPPFLAGS="$(CPPFLAGS) $(call configure_var_fn,CPPFLAGS)")      \
+    $(if $(call configure_var_fn,CXXFLAGS),                            \
+        CXXFLAGS="$(CXXFLAGS) $(call configure_var_fn,CXXFLAGS)")      \
     $(if $(call configure_var_fn,CFLAGS),                              \
         CFLAGS="$(CFLAGS) $(call configure_var_fn,CFLAGS)")            \
     $(if $(call configure_var_fn,CCASFLAGS),                           \
@@ -643,9 +648,13 @@ configure_check_timestamp =                                                \
 # we assume there's 1 processor; we use 2*ncpu for the -j option.
 # NB: GNU Make 4.2 will let us use '$(file </proc/cpuinfo)' to both test
 # for file presence and content; for now this will have to do.
+ifndef MAKE_PARALLEL_JOBS
 MAKE_PARALLEL_JOBS = -j $(if $(shell [ -f /proc/cpuinfo ] && head /proc/cpuinfo), \
-       $(shell expr 2 '*' $$(grep -c ^processor /proc/cpuinfo)), 2)
-MAKE_PARALLEL_FLAGS = $(if $($(PACKAGE)_make_parallel_fails),,$(MAKE_PARALLEL_JOBS))
+       $(shell grep -c ^processor /proc/cpuinfo), 2)
+else
+MAKE_PARALLEL_JOBS := -j $(MAKE_PARALLEL_JOBS)
+endif
+MAKE_PARALLEL_FLAGS ?= $(if $($(PACKAGE)_make_parallel_fails),,$(MAKE_PARALLEL_JOBS))
 
 # Make command shorthand for packages & tools.
 PACKAGE_MAKE =                                 \
@@ -925,11 +934,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) ;                \
@@ -964,11 +969,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 @@@@ ;             \