mk: remove multi-target install
The multi-target install create some subdirectories with the target name which is not standard for a "make install" procedure. The uninstall procedure cannot be applied properly (without removing all files in a directory). It would need to pre-compute paths. As it is a packaging issue, it is removed from the build system capabilities. The variable BUILD_DIR is also renamed to RTE_OUTPUT used in other files. Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Panu Matilainen <pmatilai@redhat.com>
This commit is contained in:
parent
fbae3cdd20
commit
27f356c48d
@ -5,8 +5,7 @@ Build commands
|
||||
all same as build (default rule)
|
||||
build build in a configured directory
|
||||
clean remove files but keep configuration
|
||||
install build many targets (wildcard allowed) and install in DESTDIR
|
||||
uninstall remove all installed targets
|
||||
install configure, build and install a target in DESTDIR
|
||||
examples build examples for given targets (T=)
|
||||
examples_clean clean examples for given targets (T=)
|
||||
Build variables
|
||||
@ -20,6 +19,6 @@ Build variables
|
||||
D debug dependencies
|
||||
O build directory (default: build/ - install default: ./)
|
||||
DESTDIR second-stage install directory
|
||||
T target template (install default: *) - used with config or install
|
||||
T target template - used with config or install
|
||||
format: <arch-machine-execenv-toolchain>
|
||||
templates in config/defconfig_*
|
||||
|
@ -110,22 +110,6 @@ To compile a 32-bit build using gcc, the make command should be:
|
||||
|
||||
make install T=i686-native-linuxapp-gcc
|
||||
|
||||
To compile all 64-bit targets using gcc, use:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
make install T=x86_64*gcc
|
||||
|
||||
To compile all 64-bit targets using both gcc and icc, use:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
make install T=x86_64-*
|
||||
|
||||
.. note::
|
||||
|
||||
The wildcard operator (*) can be used to create multiple targets at the same time.
|
||||
|
||||
To prepare a target without building it, for example, if the configuration changes need to be made before compilation,
|
||||
use the make config T=<target> command:
|
||||
|
||||
|
@ -108,21 +108,14 @@ Install Targets
|
||||
* Install
|
||||
|
||||
Build the DPDK binary.
|
||||
Actually, this builds each supported target in a separate directory.
|
||||
The name of each directory is the name of the target.
|
||||
The name of the targets to install can be optionally specified using T=mytarget.
|
||||
The target name can contain wildcard \* characters.
|
||||
The name of the target to install is specified using T=mytarget.
|
||||
The list of available targets are in $(RTE_SDK)/config (remove the defconfig\_ prefix).
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
make install T=x86_64-*
|
||||
|
||||
* Uninstall
|
||||
|
||||
Remove installed target directories.
|
||||
make install T=x86_64-native-linuxapp-gcc
|
||||
|
||||
Test Targets
|
||||
------------
|
||||
|
@ -29,59 +29,29 @@
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# Build directory is given with O=
|
||||
ifdef O
|
||||
BUILD_DIR=$(O)
|
||||
else
|
||||
BUILD_DIR=.
|
||||
endif
|
||||
# Configuration, compilation and installation can be done at once
|
||||
# with make install T=<config>
|
||||
|
||||
# Targets to install can be specified in command line. It can be a
|
||||
# target name or a name containing jokers "*". Example:
|
||||
# x86_64-native-*-gcc
|
||||
ifndef T
|
||||
T=*
|
||||
endif
|
||||
|
||||
#
|
||||
# install: build sdk for all supported targets
|
||||
#
|
||||
INSTALL_CONFIGS := $(patsubst $(RTE_SRCDIR)/config/defconfig_%,%,\
|
||||
$(wildcard $(RTE_SRCDIR)/config/defconfig_$(T)))
|
||||
INSTALL_TARGETS := $(addsuffix _install,\
|
||||
$(filter-out %~,$(INSTALL_CONFIGS)))
|
||||
# The build directory is T and may be prepended with O
|
||||
O ?= .
|
||||
RTE_OUTPUT := $O/$T
|
||||
|
||||
.PHONY: install
|
||||
install: $(INSTALL_TARGETS)
|
||||
|
||||
%_install:
|
||||
@echo ================== Installing $*
|
||||
$(Q)if [ ! -f $(BUILD_DIR)/$*/.config ]; then \
|
||||
$(MAKE) config T=$* O=$(BUILD_DIR)/$*; \
|
||||
elif cmp -s $(BUILD_DIR)/$*/.config.orig $(BUILD_DIR)/$*/.config; then \
|
||||
$(MAKE) config T=$* O=$(BUILD_DIR)/$*; \
|
||||
install:
|
||||
@echo ================== Installing $T
|
||||
$(Q)if [ ! -f $(RTE_OUTPUT)/.config ]; then \
|
||||
$(MAKE) config O=$(RTE_OUTPUT); \
|
||||
elif cmp -s $(RTE_OUTPUT)/.config.orig $(RTE_OUTPUT)/.config; then \
|
||||
$(MAKE) config O=$(RTE_OUTPUT); \
|
||||
else \
|
||||
if [ -f $(BUILD_DIR)/$*/.config.orig ] ; then \
|
||||
tmp_build=$(BUILD_DIR)/$*/.config.tmp; \
|
||||
$(MAKE) config T=$* O=$$tmp_build; \
|
||||
if ! cmp -s $(BUILD_DIR)/$*/.config.orig $$tmp_build/.config ; then \
|
||||
if [ -f $(RTE_OUTPUT)/.config.orig ] ; then \
|
||||
tmp_build=$(RTE_OUTPUT)/.config.tmp; \
|
||||
$(MAKE) config O=$$tmp_build; \
|
||||
if ! cmp -s $(RTE_OUTPUT)/.config.orig $$tmp_build/.config ; then \
|
||||
echo "Conflict: local config and template config have both changed"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi; \
|
||||
echo "Using local configuration"; \
|
||||
fi
|
||||
$(Q)$(MAKE) all O=$(BUILD_DIR)/$*
|
||||
|
||||
#
|
||||
# uninstall: remove all built sdk
|
||||
#
|
||||
UNINSTALL_TARGETS := $(addsuffix _uninstall,\
|
||||
$(filter-out %~,$(INSTALL_CONFIGS)))
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall: $(UNINSTALL_TARGETS)
|
||||
|
||||
%_uninstall:
|
||||
@echo ================== Uninstalling $*
|
||||
$(Q)rm -rf $(BUILD_DIR)/$*
|
||||
$(Q)$(MAKE) all O=$(RTE_OUTPUT)
|
||||
|
@ -93,8 +93,8 @@ config showconfigs showversion:
|
||||
test fast_test ring_test mempool_test perf_test coverage:
|
||||
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdktest.mk $@
|
||||
|
||||
.PHONY: install uninstall
|
||||
install uninstall:
|
||||
.PHONY: install
|
||||
install:
|
||||
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
|
||||
|
||||
.PHONY: doc help
|
||||
|
@ -110,14 +110,6 @@ setup_target()
|
||||
echo "------------------------------------------------------------------------------"
|
||||
}
|
||||
|
||||
#
|
||||
# Uninstall all targets.
|
||||
#
|
||||
uninstall_targets()
|
||||
{
|
||||
make uninstall
|
||||
}
|
||||
|
||||
#
|
||||
# Creates hugepage filesystem.
|
||||
#
|
||||
@ -577,23 +569,20 @@ step5_func()
|
||||
{
|
||||
TITLE="Uninstall and system cleanup"
|
||||
|
||||
TEXT[1]="Uninstall all targets"
|
||||
FUNC[1]="uninstall_targets"
|
||||
TEXT[1]="Unbind NICs from IGB UIO or VFIO driver"
|
||||
FUNC[1]="unbind_nics"
|
||||
|
||||
TEXT[2]="Unbind NICs from IGB UIO or VFIO driver"
|
||||
FUNC[2]="unbind_nics"
|
||||
TEXT[2]="Remove IGB UIO module"
|
||||
FUNC[2]="remove_igb_uio_module"
|
||||
|
||||
TEXT[3]="Remove IGB UIO module"
|
||||
FUNC[3]="remove_igb_uio_module"
|
||||
TEXT[3]="Remove VFIO module"
|
||||
FUNC[3]="remove_vfio_module"
|
||||
|
||||
TEXT[4]="Remove VFIO module"
|
||||
FUNC[4]="remove_vfio_module"
|
||||
TEXT[4]="Remove KNI module"
|
||||
FUNC[4]="remove_kni_module"
|
||||
|
||||
TEXT[5]="Remove KNI module"
|
||||
FUNC[5]="remove_kni_module"
|
||||
|
||||
TEXT[6]="Remove hugepage mappings"
|
||||
FUNC[6]="clear_huge_pages"
|
||||
TEXT[5]="Remove hugepage mappings"
|
||||
FUNC[5]="clear_huge_pages"
|
||||
}
|
||||
|
||||
STEPS[1]="step1_func"
|
||||
|
Loading…
Reference in New Issue
Block a user