X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=mk%2Frte.sdkinstall.mk;h=86c98a52dda0362e5a8b708cf678430186ae582d;hb=1589b64c358b94d96eef05cd82815249ec4b286e;hp=975d9b9ca37503a028f22804bae83377197ac6ea;hpb=dada9ef6edc59015b6674b5a95258787c71401b0;p=dpdk.git diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk index 975d9b9ca3..86c98a52dd 100644 --- a/mk/rte.sdkinstall.mk +++ b/mk/rte.sdkinstall.mk @@ -1,44 +1,44 @@ # 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. -# +# Build directory is given with O= ifdef O -ifeq ("$(origin O)", "command line") -$(error "Cannot use O= with install target") -endif +BUILD_DIR=$(O) +else +BUILD_DIR=. endif # 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 +# x86_64-native-*-gcc ifndef T T=* endif @@ -56,8 +56,22 @@ install: $(INSTALL_TARGETS) %_install: @echo ================== Installing $* - $(Q)$(MAKE) config T=$* O=$* - $(Q)$(MAKE) all O=$* + $(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)/$*; \ + 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 \ + 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 @@ -70,6 +84,4 @@ uninstall: $(UNINSTALL_TARGETS) %_uninstall: @echo ================== Uninstalling $* - $(Q)rm -rf $* - - + $(Q)rm -rf $(BUILD_DIR)/$*