X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=mk%2Frte.sdkinstall.mk;h=86c98a52dda0362e5a8b708cf678430186ae582d;hb=5cd40a8416b736c12125652437fcd5ff3364a43f;hp=1b6744b2be40735412660489b44a9e77d0a723e3;hpb=1c1d4d7a923d4804f1926fc5264f9ecdd8977b04;p=dpdk.git diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk index 1b6744b2be..86c98a52dd 100644 --- a/mk/rte.sdkinstall.mk +++ b/mk/rte.sdkinstall.mk @@ -1,12 +1,12 @@ # BSD LICENSE -# -# Copyright(c) 2010-2013 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 # are met: -# +# # * 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 @@ -16,7 +16,7 @@ # * 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 @@ -29,15 +29,16 @@ # (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 @@ -55,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 @@ -69,6 +84,4 @@ uninstall: $(UNINSTALL_TARGETS) %_uninstall: @echo ================== Uninstalling $* - $(Q)rm -rf $* - - + $(Q)rm -rf $(BUILD_DIR)/$*