#
#    Copyright (c) 2014-2015 Nest Labs, Inc.
#    All rights reserved.
#
#    This document is the property of Nest Labs. It is considered
#    confidential and proprietary information.
#
#    This document may not be reproduced or transmitted in any form,
#    in whole or in part, without the express written permission of
#    Nest Labs.
#
#    Description:
#      This file is the makefile for the GCC G++
#      staging rules and commands for the GNU C++
#      Standard Library.
#

# Stage the build to a temporary installation area.
#
# Per the comments at the top of this file, we simply pull the tool
# chain's C++ library. We also appear to need libgcc.

.PHONY: stage
stage: | $(ResultDirectory)
	$(Verbose)install -d $(call GenerateResultPaths,,usr/lib)
	$(Verbose)install $(ToolLibDir)/libgcc_s.so.1		$(call GenerateResultPaths,,usr/lib/libgcc_s.so.1)
	$(Verbose)install $(ToolLibDir)/../usr/lib/libstdc++.so.6.0.18	$(call GenerateResultPaths,,usr/lib/libstdc++.so.6.0.18)
	$(Verbose)ln -sf libgcc_s.so.1     			$(call GenerateResultPaths,,usr/lib/libgcc_s.so)
	$(Verbose)ln -sf libstdc++.so.6.0.18			$(call GenerateResultPaths,,usr/lib/libstdc++.so)
	$(Verbose)ln -sf libstdc++.so.6.0.18			$(call GenerateResultPaths,,usr/lib/libstdc++.so.6)
