X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=mk%2Frte.sdkinstall.mk;h=c5d088121f7700ae671b8119375cc840bce34466;hb=9db78eb58979d4641796a14f335b12439558b35d;hp=59e34161bca67841baee0a14a76627a626163a03;hpb=af75078fece3615088e561357c1e97603e43a5fe;p=dpdk.git diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk index 59e34161bc..c5d088121f 100644 --- a/mk/rte.sdkinstall.mk +++ b/mk/rte.sdkinstall.mk @@ -1,76 +1,72 @@ # BSD LICENSE -# -# Copyright(c) 2010-2012 Intel Corporation. All rights reserved. +# +# Copyright(c) 2010-2014 Intel Corporation. All rights reserved. # All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions # are met: -# -# * Redistributions of source code must retain the above copyright +# +# * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the # distribution. -# * Neither the name of Intel Corporation nor the names of its -# contributors may be used to endorse or promote products derived +# * Neither the name of Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived # from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# version: DPDK.L.1.2.3-3 -ifdef O -ifeq ("$(origin O)", "command line") -$(error "Cannot use O= with install target") -endif -endif +# Configuration, compilation and installation can be done at once +# with make install T= -# Targets to install can be specified in command line. It can be a -# target name or a name containing jokers "*". Example: -# x86_64-default-*-gcc -ifndef T -T=* -endif +# The build directory is T and may be prepended with O +O ?= . +RTE_OUTPUT := $O/$T -# -# 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))) +.PHONY: pre_install +pre_install: + $(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 $(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=$(RTE_OUTPUT) .PHONY: install -install: $(INSTALL_TARGETS) - -%_install: - @echo ================== Installing $* - $(Q)$(MAKE) config T=$* O=$* - $(Q)$(MAKE) all O=$* - -# -# uninstall: remove all built sdk -# -UNINSTALL_TARGETS := $(addsuffix _uninstall,\ - $(filter-out %~,$(INSTALL_CONFIGS))) - -.PHONY: uninstall -uninstall: $(UNINSTALL_TARGETS) - -%_uninstall: - @echo ================== Uninstalling $* - $(Q)rm -rf $* - - +install: + @echo ================== Installing $(DESTDIR) + $(Q)mkdir -p $(DESTDIR) + $(Q)tar -C $(RTE_SDK) -cf - mk scripts/*.sh | tar -C $(DESTDIR) -x \ + --keep-newer-files --warning=no-ignore-newer -f - + $(Q)mkdir -p $(DESTDIR)/$T + $(Q)tar -C $(RTE_OUTPUT) -chf - \ + --exclude app --exclude hostapp --exclude build \ + --exclude Makefile --exclude .depdirs . | \ + tar -C $(DESTDIR)/$T -x --keep-newer-files \ + --warning=no-ignore-newer -f - + $(Q)install -D $(RTE_OUTPUT)/app/testpmd \ + $(DESTDIR)/$T/app/testpmd + @echo Installation in $(DESTDIR) complete