# Copyright 2010 by Nest Labs, Inc. All rights reserved.
#
# This program is confidential and proprietary to Nest Labs, Inc.,
# and may not be reproduced, published or disclosed to others without
# company authorization.
#

# OBJ_DIR should be set by the user to the right directory,
# if necessary.

#note that there are only dependencies on files within
#each subdirectory. if you change in file in one subdirectory
#nothing outside that directory will ever know about it.
#manage dependencies on your own. it's not that hard.
#and one final note, we are not generating shared libraries, so
#if you make a change in a component and rebuild it, you will also
#need to relink all executables. i should add a target to do just that.
#mmp

DEPTH = ./

include $(DEPTH)Makefile.config

.PHONY: libdir openssl polarssl

all: libdir openssl polarssl

libdir:
	$(MKDIR) $(LIB_DIR)
	$(MKDIR) $(BIN_DIR)

openssl:
	$(MAKE) BUILD_DIR=$(BUILD_DIR) -C $@

polarssl:
	$(MAKE) BUILD_DIR=$(BUILD_DIR) -C $@

driver:
	$(MAKE) BUILD_DIR=$(BUILD_DIR) -C $@

clean:
	$(MAKE) BUILD_DIR=$(BUILD_DIR) -C openssl $@
	$(MAKE) BUILD_DIR=$(BUILD_DIR) -C polarssl $@
	$(MAKE) BUILD_DIR=$(BUILD_DIR) -C driver $@
	$(RM) $(LIB_DIR)
	$(RM) $(BIN_DIR)
