build: align SOURCE path for build system and SDK
[openwrt/openwrt.git] / include / package-bin.mk
index a777eadad92fad326ea152c2d1374947838ec9bf..4ca49218e95a27229926595cfa8317ee0ded2cf6 100644 (file)
@@ -1,16 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-only
 #
-# Copyright (C) 2007-2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
+# Copyright (C) 2007-2020 OpenWrt.org
 
 ifeq ($(DUMP),)
   define BuildTarget/bin
-    ifeq ($(if $(VARIANT),$(BUILD_VARIANT)),$(VARIANT))
+    TARGET_VARIANT=$(if $(ALL_VARIANTS),$(if $(VARIANT),$(filter-out *,$(VARIANT)),$(firstword $(ALL_VARIANTS))))
+    ifeq ($(if $(TARGET_VARIANT),$(BUILD_VARIANT)),$(TARGET_VARIANT))
     ifdef Package/$(1)/install
       ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER),)
-        .compile: $(PKG_BUILD_DIR)/.pkgdir/$(1).installed
+        $(_pkg_target)compile: $(PKG_BUILD_DIR)/.pkgdir/$(1).installed
         compile: install-bin-$(1)
       else
         compile: $(1)-disabled
@@ -27,9 +25,12 @@ ifeq ($(DUMP),)
                touch $$@
 
     install-bin-$(1): $(PKG_BUILD_DIR)/.pkgdir/$(1).installed
-         rm -rf $(BIN_DIR)/$(1)
-         $(INSTALL_DIR) $(BIN_DIR)/$(1)
-         $(CP) $(PKG_BUILD_DIR)/.pkgdir/$(1)/. $(BIN_DIR)/$(1)/
+       rm -rf $(BIN_DIR)/$(1)
+       -rmdir $(PKG_BUILD_DIR)/.pkgdir/$(1) >/dev/null 2>/dev/null
+       if [ -d $(PKG_BUILD_DIR)/.pkgdir/$(1) ]; then \
+               $(INSTALL_DIR) $(BIN_DIR)/$(1) && \
+               $(CP) $(PKG_BUILD_DIR)/.pkgdir/$(1)/. $(BIN_DIR)/$(1)/; \
+       fi
 
     clean-$(1):
          rm -rf $(BIN_DIR)/$(1)