#
#    Copyright (c) 2010-2011 Nest, Inc.
#    All rights reserved.
#
#    This document is the property of Nest. 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.
#
#    Description:
#      This file is the makefile for the GNU debugger (GDB) client and
#      server applications.
#
#      The following set of packages MUST be a matched set:
#
#	 * Target Binary Utilities
#        * Target GNU C Standard Library
#        * Target GNU C++ Standard Library
#        * Target GDB server and client
#	 * Host Cross Binary Utilities
#	 * Host Cross Compilers
#        * Host Cross GDB client
#
#      These are presumed provided by the tool chain and are simply
#      sourced from it rather than built anew from source.
#
#      This is acceptable but a little less than ideal since it makes
#      the build tree, specifically this make file, dependent on the tool
#      chain in a non-abstracted way. Ideally, we'd like to be able to
#      rebuild all the target pieces from source against any arbitrary
#      tool chain meeting some minimum set of capabilities.
#

include pre.mak

PackageName		:= gdb


all: $(PackageDefaultGoal)

# Prepare the sources.

.PHONY: source
source:

# Patch the sources, if necessary.

.PHONY: patch
patch: source

# Configure the source for building.

.PHONY: configure
configure: source

# Build the source.

.PHONY: build
build: configure

# Stage the build to a temporary installation area.

.PHONY: stage
stage: build stage-dirs | $(ResultDirectory)

.PHONY: stage-dirs stage-usrinclude stage-usrlib stage-usrbin
stage-dirs: stage-usrinclude stage-usrlib stage-usrbin 

include $(ToolVendor)-$(ToolProduct)-$(ToolVersion).mak

clean:
	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)

include post.mak
