Enable p8-pore-binutils as an external toolchain

Create the infrastructure necessary to bundle the p8-pore-binutils as
part of the sdk build, allowing it to be re-inserted as part of an
external sdk.

Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
diff --git a/openpower/package/Config.in b/openpower/package/Config.in
index 903e6cb..52662e6 100755
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -7,7 +7,6 @@
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/machine-xml/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-pnor/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/petitboot/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/p8-pore-binutils/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hcode/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/occ/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/occ-p8/Config.in"
diff --git a/openpower/package/p8-pore-binutils/Config.in b/openpower/package/p8-pore-binutils/Config.in
index 3d69782..db06064 100644
--- a/openpower/package/p8-pore-binutils/Config.in
+++ b/openpower/package/p8-pore-binutils/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_HOST_P8_PORE_BINUTILS
         bool "p8-pore-binutils"
-        default y if (BR2_OPENPOWER_POWER8)
         select BR2_PACKAGE_HAS_P8_PORE_TOOLCHAIN
         select BR2_CPP
         help
diff --git a/openpower/package/p8-pore-binutils/p8-pore-binutils.mk b/openpower/package/p8-pore-binutils/p8-pore-binutils.mk
index 7cd9807..00477a6 100644
--- a/openpower/package/p8-pore-binutils/p8-pore-binutils.mk
+++ b/openpower/package/p8-pore-binutils/p8-pore-binutils.mk
@@ -11,8 +11,8 @@
 P8_PORE_BINUTILS_PROVIDES = p8-pore-toolchain
 HOST_P8_PORE_BINUTILS_DEPENDENCIES = host-binutils
 
-P8_PORE_BINUTILS_DIR = $(STAGING_DIR)/p8-pore-binutils
-P8_PORE_BINUTILS_BIN = $(STAGING_DIR)/p8-pore-binutils/linux
+P8_PORE_BINUTILS_DIR = $(HOST_DIR)/$(P8_PORE_TOOLCHAIN_DIR)
+P8_PORE_BINUTILS_BIN = $(HOST_DIR)/$(P8_PORE_TOOLCHAIN_BIN)
 
 define HOST_P8_PORE_BINUTILS_BUILD_CMDS
         cd $(@D) && \
diff --git a/openpower/package/p8-pore-toolchain-external/Config.in b/openpower/package/p8-pore-toolchain-external/Config.in
new file mode 100644
index 0000000..cad96c0
--- /dev/null
+++ b/openpower/package/p8-pore-toolchain-external/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_P8_PORE_TOOLCHAIN_EXTERNAL
+	bool "p8-pore-toolchain-external"
+	select BR2_PACKAGE_HAS_P8_PORE_TOOLCHAIN
+	help
+	  Use an external P8 PORE toolchain
+
+if BR2_PACKAGE_P8_PORE_TOOLCHAIN_EXTERNAL
+config BR2_PACKAGE_PROVIDES_P8_PORE_TOOLCHAIN
+	default "p8-pore-toolchain-external"
+
+config BR2_P8_PORE_TOOLCHAIN_EXTERNAL_PATH
+	string "External P8 PORE toolchain path"
+	help
+	  Pathname to where the external P8 PORE toolchain
+	  is installed. The binutils are expected to be
+	  fully contained within the
+	  "sysroot/p8-pore-toolchain" directory
+endif
+
diff --git a/openpower/package/p8-pore-toolchain-external/p8-pore-toolchain-external.mk b/openpower/package/p8-pore-toolchain-external/p8-pore-toolchain-external.mk
new file mode 100644
index 0000000..c88864a
--- /dev/null
+++ b/openpower/package/p8-pore-toolchain-external/p8-pore-toolchain-external.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# p8-pore-toolchain-external
+#
+################################################################################
+P8_PORE_TOOLCHAIN_EXTERNAL_REDISTRIBUTE = NO
+P8_PORE_TOOLCHAIN_EXTERNAL_SITE =
+P8_PORE_TOOLCHAIN_EXTERNAL_SOURCE =
+P8_PORE_TOOLCHAIN_EXTERNAL_PROVIDES = p8-pore-toolchain
+P8_PORE_TOOLCHAIN_EXTERNAL_PATH = \
+	$(call qstrip,$(BR2_P8_PORE_TOOLCHAIN_EXTERNAL_PATH))/$(P8_PORE_TOOLCHAIN_DIR)
+
+define HOST_P8_PORE_TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS
+	test -e $(P8_PORE_TOOLCHAIN_EXTERNAL_PATH)
+endef
+
+define HOST_P8_PORE_TOOLCHAIN_EXTERNAL_INSTALL_CMDS
+	ln -snf $(P8_PORE_TOOLCHAIN_EXTERNAL_PATH) $(HOST_DIR)/$(P8_PORE_TOOLCHAIN_DIR)
+
+endef
+
+$(eval $(host-generic-package))